package org.ovirt.engine.core.vdsbroker;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.HostDevice;
import org.ovirt.engine.core.common.vdscommands.VdsIdAndVdsVDSCommandParametersBase;
import org.ovirt.engine.core.utils.log.Logged;
import org.ovirt.engine.core.vdsbroker.vdsbroker.HostDevListReturn;
import org.ovirt.engine.core.vdsbroker.vdsbroker.Status;
import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand;
import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerObjectsBuilder;
@Logged(executionLevel = Logged.LogLevel.DEBUG)
public class HostDevListByCapsVDSCommand<P extends VdsIdAndVdsVDSCommandParametersBase> extends VdsBrokerCommand<P> {
private HostDevListReturn hostDevListReturn;
public HostDevListByCapsVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void executeVdsBrokerCommand() {
hostDevListReturn = getBroker().hostDevListByCaps();
proceedProxyReturnValue();
List<HostDevice> devices = VdsBrokerObjectsBuilder.buildHostDevices(hostDevListReturn.devices);
attachHostIdToDevices(devices);
setReturnValue(devices);
}
private void attachHostIdToDevices(List<HostDevice> devices) {
for (HostDevice device : devices) {
device.setHostId(getParameters().getVdsId());
}
}
@Override
protected Status getReturnStatus() {
return hostDevListReturn.status;
}
@Override
protected Object getReturnValueFromBroker() {
return hostDevListReturn;
}
@Override
protected boolean getIsPrintReturnValue() {
return false;
}
}