package org.ovirt.engine.core.vdsbroker.irsbroker; import java.util.ArrayList; import java.util.Map; import java.util.Map.Entry; import org.ovirt.engine.core.common.vdscommands.GetVmsInfoVDSCommandParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.utils.log.Logged; import org.ovirt.engine.core.utils.log.Logged.LogLevel; import org.ovirt.engine.core.vdsbroker.vdsbroker.Status; @Logged(returnLevel = LogLevel.TRACE) public class GetVmsInfoVDSCommand<P extends GetVmsInfoVDSCommandParameters> extends IrsBrokerCommand<P> { private GetVmsInfoReturn _vmsInfo; public GetVmsInfoVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { String storagePoolId = getParameters().getStoragePoolId().toString(); String storageDomainId = getParameters().getStorageDomainId().toString(); ArrayList<String> ids = new ArrayList<>(); if (getParameters().getVmIdList() != null) { for (Guid id : getParameters().getVmIdList()) { ids.add(id.toString()); } } _vmsInfo = getIrsProxy().getVmsInfo(storagePoolId, storageDomainId, ids.toArray(new String[] {})); proceedProxyReturnValue(); Map<String, Object> struct = _vmsInfo.vmlist; ArrayList<String> retVal = new ArrayList<>(); for (Entry<String, Object> entry : struct.entrySet()) { retVal.add(entry.getValue().toString()); } setReturnValue(retVal); } @Override protected Status getReturnStatus() { return _vmsInfo.getStatus(); } @Override protected Object getReturnValueFromBroker() { return _vmsInfo; } }