package org.ovirt.engine.core.bll;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.ovirt.engine.core.common.action.VdcActionParametersBase;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
public class RunVMActionRunner extends SortedMultipleActionsRunnerBase {
public RunVMActionRunner(VdcActionType actionType, ArrayList<VdcActionParametersBase> parameters, boolean isInternal) {
super(actionType, parameters, isInternal);
// TODO Auto-generated constructor stub
}
@Override
protected void SortCommands() {
ArrayList<CommandBase> commandsList = getCommands();
HashMap<Guid, RunVmCommandBase> runVmCommandsMap = new HashMap<Guid, RunVmCommandBase>();
for (CommandBase command : commandsList) {
RunVmCommandBase runVMCommandBase = (RunVmCommandBase) command;
runVmCommandsMap.put(runVMCommandBase.getVmId(), runVMCommandBase);
}
List<Guid> guids = new ArrayList<Guid>();
guids.addAll(runVmCommandsMap.keySet());
List<Guid> orderedGuids = DbFacade.getInstance().getOrderedVmGuidsForRunMultipleActions(guids);
commandsList.clear();
for (Guid guid : orderedGuids) {
commandsList.add(runVmCommandsMap.get(guid));
}
}
}