private CommandContext createAddVmStepContext(String currentVmName) { CommandContext commandCtx = null; try { Map<String, String> values = new HashMap<>(); values.put(VdcObjectType.VM.name().toLowerCase(), currentVmName); Step addVmStep = ExecutionHandler.addSubStep( getExecutionContext(), getExecutionContext().getJob().getStep(StepEnum.EXECUTING), StepEnum.ADD_VM_TO_POOL, ExecutionMessageDirector.resolveStepMessage(StepEnum.ADD_VM_TO_POOL, values)); ExecutionContext ctx = new ExecutionContext(); ctx.setStep(addVmStep); ctx.setMonitored(true); commandCtx = cloneContextAndDetachFromParent().withExecutionContext(ctx); } catch (RuntimeException e) { log.error( "Failed to create command context of adding VM '{}' to Pool '{}': {}", currentVmName, getParameters().getVmPool().getName(), e.getMessage()); log.debug("Exception", e); } return commandCtx; }
protected CommandContext createMigrateVmContext(ExecutionContext parentContext, VM vm) { ExecutionContext ctx = new ExecutionContext(); try { Map<String, String> values = new HashMap<>(); values.put(VdcObjectType.VM.name().toLowerCase(), vm.getName()); values.put(VdcObjectType.VDS.name().toLowerCase(), vm.getRunOnVdsName()); Step step = ExecutionHandler.addSubStep( getExecutionContext(), parentContext.getJob().getStep(StepEnum.EXECUTING), StepEnum.MIGRATE_VM, ExecutionMessageDirector.resolveStepMessage(StepEnum.MIGRATE_VM, values)); ctx.setJob(parentContext.getJob()); ctx.setStep(step); ctx.setMonitored(true); } catch (RuntimeException e) { log.error("Failed to create ExecutionContext for MigrateVmCommand", e); } return cloneContextAndDetachFromParent().withExecutionContext(ctx); }