Arik Hadas has uploaded a new change for review. Change subject: core: remove RemoveVmCommand#isVmRunning ......................................................................
core: remove RemoveVmCommand#isVmRunning Change-Id: Icec8d587a10d76e138c09cc1b94358a359506d5a Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmToPoolCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromPoolCommand.java 3 files changed, 13 insertions(+), 21 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/28867/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmToPoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmToPoolCommand.java index a77c196..c085a97 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmToPoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmToPoolCommand.java @@ -2,7 +2,7 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.AddVmToPoolParameters; -import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmPool; import org.ovirt.engine.core.common.businessentities.VmPoolMap; import org.ovirt.engine.core.common.errors.VdcBllMessages; @@ -15,7 +15,11 @@ @Override protected boolean canDoAction() { - if (RemoveVmCommand.isVmRunning(getParameters().getVmId())) { + if (getVm() == null) { + return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VM_NOT_FOUND); + } + + if (getVm().isRunningOrPaused() || getVm().getStatus() == VMStatus.Unknown) { return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_ADD_RUNNING_VM_TO_POOL); } @@ -24,13 +28,10 @@ } if (getParameters().getVmPoolId() != null) { - VM vm = getVmDAO().get(getParameters().getVmId()); - if (vm != null) { - VmPool pool = getVmPoolDAO().get(getParameters().getVmPoolId()); - if (pool != null) { - if (!pool.getVdsGroupId().equals(vm.getVdsGroupId())) { - return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_ADD_VM_DIFFERENT_CLUSTER); - } + VmPool pool = getVmPoolDAO().get(getParameters().getVmPoolId()); + if (pool != null) { + if (!pool.getVdsGroupId().equals(getVm().getVdsGroupId())) { + return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_ADD_VM_DIFFERENT_CLUSTER); } } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java index 4c440f1..17361af 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java @@ -36,14 +36,12 @@ import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.common.businessentities.LunDisk; -import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.network.VmNic; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.locks.LockingGroup; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.utils.transaction.TransactionMethod; import org.ovirt.engine.core.utils.transaction.TransactionSupport; @@ -164,7 +162,7 @@ return false; } - if (isVmRunning(getVmId()) || (getVm().getStatus() == VMStatus.NotResponding)) { + if (getVm().isRunningOrPaused() || getVm().getStatus() == VMStatus.Unknown || getVm().getStatus() == VMStatus.NotResponding) { return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VM_IS_RUNNING); } if (getVm().getStatus() == VMStatus.Suspended) { @@ -229,14 +227,6 @@ protected void setActionMessageParameters() { addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE); addCanDoActionMessage(VdcBllMessages.VAR__TYPE__VM); - } - - public static boolean isVmRunning(Guid vmId) { - VM vm = DbFacade.getInstance().getVmDao().get(vmId); - if (vm != null) { - return vm.isRunningOrPaused() || vm.getStatus() == VMStatus.Unknown; - } - return false; } private boolean canRemoveVmWithDetachDisks() { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromPoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromPoolCommand.java index a5fbd3e..99dbd36 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromPoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromPoolCommand.java @@ -2,6 +2,7 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.RemoveVmFromPoolParameters; +import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.errors.VdcBllMessages; public class RemoveVmFromPoolCommand<T extends RemoveVmFromPoolParameters> extends VmPoolCommandBase<T> { @@ -23,7 +24,7 @@ return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_DETACH_VM_NOT_ATTACHED_TO_POOL); } - if (RemoveVmCommand.isVmRunning(getParameters().getVmId())) { + if (getVm().isRunningOrPaused() || getVm().getStatus() == VMStatus.Unknown) { return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_REMOVE_RUNNING_VM_FROM_POOL); } -- To view, visit http://gerrit.ovirt.org/28867 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icec8d587a10d76e138c09cc1b94358a359506d5a 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
