package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.common.action.MigrateVmParameters;
import org.ovirt.engine.core.common.businessentities.MigrationSupport;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.compat.Guid;
@InternalCommandAttribute
public class InternalMigrateVmCommand<T extends MigrateVmParameters> extends MigrateVmCommand<T> {
public InternalMigrateVmCommand(T parameters) {
super(parameters);
}
@Override
protected void executeCommand() {
try {
super.executeCommand();
setActionReturnValue(true);
setSucceeded(true);
} catch (java.lang.Exception e) {
setActionReturnValue(false);
}
}
@Override
protected boolean canMigrateVm(Guid vmGuid, java.util.ArrayList<String> reasons) {
boolean canMigrateVM = super.canMigrateVm(vmGuid, reasons);
VM vm = getVm();
// Internal migrate command is initiated by server, if migration support
// is not set to "migratable" the internal migration
// should fail
canMigrateVM = vm.getMigrationSupport() == MigrationSupport.MIGRATABLE && canMigrateVM;
return canMigrateVM;
}
}