Arik Hadas has uploaded a new change for review. Change subject: core: major refactoring ......................................................................
core: major refactoring Change-Id: I55b4365d9a71a47b4a72f98bae649a363f43ef03 Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java 1 file changed, 42 insertions(+), 34 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/02/25602/1 diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java index d0e1520..2731db8 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java @@ -1,10 +1,14 @@ package org.ovirt.engine.core.vdsbroker; +import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; +import org.ovirt.engine.core.common.businessentities.VmDynamic; +import org.ovirt.engine.core.common.businessentities.VmExitStatus; import org.ovirt.engine.core.common.vdscommands.MigrateVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dao.VmDynamicDAO; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; import org.ovirt.engine.core.utils.transaction.TransactionMethod; @@ -21,41 +25,45 @@ @Override protected void executeVdsIdCommand() { - MigrateVDSCommandParameters parameters = getParameters(); - if (_vdsManager != null) { - VMStatus retval; - MigrateBrokerVDSCommand<MigrateVDSCommandParameters> command = - new MigrateBrokerVDSCommand<>(parameters); - command.execute(); - VDSReturnValue vdsReturnValue = command.getVDSReturnValue(); - - final VM vm = DbFacade.getInstance().getVmDao().get(parameters.getVmId()); - - if (vdsReturnValue.getSucceeded()) { - retval = VMStatus.MigratingFrom; - ResourceManager.getInstance().InternalSetVmStatus(vm, VMStatus.MigratingFrom); - vm.setMigratingToVds(parameters.getDstVdsId()); - ResourceManager.getInstance().AddAsyncRunningVm(parameters.getVmId()); - } else { - retval = vm.getStatus(); - log.error("Failed Vm migration"); - getVDSReturnValue().setSucceeded(false); - getVDSReturnValue().setVdsError(vdsReturnValue.getVdsError()); - getVDSReturnValue().setExceptionString(vdsReturnValue.getExceptionString()); - getVDSReturnValue().setExceptionObject(vdsReturnValue.getExceptionObject()); - } - - TransactionSupport.executeInNewTransaction(new TransactionMethod<Void>() { - @Override - public Void runInTransaction() { - DbFacade.getInstance().getVmDynamicDao().update(vm.getDynamicData()); - return null; - } - }); - - getVDSReturnValue().setReturnValue(retval); - } else { + if (_vdsManager == null) { getVDSReturnValue().setSucceeded(false); + return; } + + MigrateBrokerVDSCommand<?> command = new MigrateBrokerVDSCommand<>(getParameters()); + command.execute(); + VDSReturnValue vdsReturnValue = command.getVDSReturnValue(); + + final VmDynamic vmDynamic = getVmDynamicDAO().get(getParameters().getVmId()); + + if (vdsReturnValue.getSucceeded()) { + vmDynamic.setStatus(VMStatus.MigratingFrom); + vmDynamic.setMigratingToVds(getParameters().getDstVdsId()); + vmDynamic.setExitStatus(VmExitStatus.Normal); + vmDynamic.setExitMessage(StringUtils.EMPTY); + ResourceManager.getInstance().AddAsyncRunningVm(getParameters().getVmId()); + getVDSReturnValue().setReturnValue(VMStatus.MigratingFrom); + } else { + log.error("Failed Vm migration"); + getVDSReturnValue().setSucceeded(false); + getVDSReturnValue().setReturnValue(vmDynamic.getStatus()); + getVDSReturnValue().setVdsError(vdsReturnValue.getVdsError()); + getVDSReturnValue().setExceptionString(vdsReturnValue.getExceptionString()); + getVDSReturnValue().setExceptionObject(vdsReturnValue.getExceptionObject()); + } + + TransactionSupport.executeInNewTransaction(new TransactionMethod<Void>() { + @Override + public Void runInTransaction() { + getVmDynamicDAO().update(vmDynamic); + return null; + } + }); } + + private VmDynamicDAO getVmDynamicDAO() { + return DbFacade.getInstance().getVmDynamicDao(); + } + + } -- To view, visit http://gerrit.ovirt.org/25602 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I55b4365d9a71a47b4a72f98bae649a363f43ef03 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
