Arik Hadas has uploaded a new change for review. Change subject: core: minor refactoring in pool related commands ......................................................................
core: minor refactoring in pool related commands Change-Id: I34ee0c07081286b6445c732c87c105bc16ef6a66 Signed-off-by: Arik Hadas <aha...@redhat.com> --- 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/RemoveVmFromPoolCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveVmFromPoolParameters.java 3 files changed, 35 insertions(+), 69 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/64/28864/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 bac27a9..4af0ca6 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 @@ -1,14 +1,11 @@ package org.ovirt.engine.core.bll; -import java.util.ArrayList; 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.VmPool; import org.ovirt.engine.core.common.businessentities.VmPoolMap; import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dal.dbbroker.DbFacade; public class AddVmToPoolCommand<T extends AddVmToPoolParameters> extends VmPoolCommandBase<T> { public AddVmToPoolCommand(T parameters) { @@ -16,58 +13,34 @@ super.setVmId(parameters.getVmId()); } - /** - * Vm can be added to pool only if it not attach to user. - * - * @param vmId - * The vm id. - * @param messages - * The messages. - * @param poolId - * The pool id. - * @return <c>true</c> if this instance [can add vm to pool] the specified - * vm id; otherwise, <c>false</c>. - */ - public static boolean canAddVmToPool(Guid vmId, ArrayList<String> messages, Guid poolId) { - boolean returnValue = true; + @Override + protected boolean canDoAction() { + if (RemoveVmCommand.isVmRunning(getParameters().getVmId())) { + return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_ADD_RUNNING_VM_TO_POOL); + } - boolean isRunning = RemoveVmCommand.isVmRunning(vmId); - if (isRunning) { - returnValue = false; - if (messages != null) { - messages.add(VdcBllMessages.VM_POOL_CANNOT_ADD_RUNNING_VM_TO_POOL.toString()); - } + if (getVmPoolDAO().getVmPoolMapByVmGuid(getParameters().getVmId()) != null) { + return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_ADD_VM_ATTACHED_TO_POOL); } - if (DbFacade.getInstance().getVmPoolDao().getVmPoolMapByVmGuid(vmId) != null) { - returnValue = false; - if (messages != null) { - messages.add(VdcBllMessages.VM_POOL_CANNOT_ADD_VM_ATTACHED_TO_POOL.toString()); - } - } - if (poolId != null) { - VM vm = DbFacade.getInstance().getVmDao().get(vmId); + + if (getParameters().getVmPoolId() != null) { + VM vm = getVmDAO().get(getParameters().getVmId()); if (vm != null) { - VmPool pool = DbFacade.getInstance().getVmPoolDao().get(poolId); + VmPool pool = getVmPoolDAO().get(getParameters().getVmPoolId()); if (pool != null) { - if (messages != null && !pool.getVdsGroupId().equals(vm.getVdsGroupId())) { - messages.add(VdcBllMessages.VM_POOL_CANNOT_ADD_VM_DIFFERENT_CLUSTER.toString()); + if (!pool.getVdsGroupId().equals(vm.getVdsGroupId())) { + return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_ADD_VM_DIFFERENT_CLUSTER); } } } - } - return returnValue; - } - @Override - protected boolean canDoAction() { - return canAddVmToPool(getParameters().getVmId(), getReturnValue().getCanDoActionMessages(), getParameters() - .getVmPoolId()); + return true; } @Override protected void executeCommand() { - DbFacade.getInstance().getVmPoolDao().addVmToPool(new VmPoolMap(getVmId(), getVmPoolId())); + getVmPoolDAO().addVmToPool(new VmPoolMap(getVmId(), getVmPoolId())); setSucceeded(true); } 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 42e3ba4..2798ce3 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 @@ -1,48 +1,41 @@ package org.ovirt.engine.core.bll; -import java.util.ArrayList; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.RemoveVmFromPoolParameters; import org.ovirt.engine.core.common.businessentities.VmPoolMap; import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dal.dbbroker.DbFacade; public class RemoveVmFromPoolCommand<T extends RemoveVmFromPoolParameters> extends VmPoolCommandBase<T> { public RemoveVmFromPoolCommand(T parameters) { super(parameters); - super.setVmId(parameters.getVmId()); - VmPoolMap map = DbFacade.getInstance().getVmPoolDao().getVmPoolMapByVmGuid(parameters.getVmId()); + setVmId(parameters.getVmId()); + VmPoolMap map = getVmPoolDAO().getVmPoolMapByVmGuid(parameters.getVmId()); if (map != null) { setVmPoolId(map.getvm_pool_id()); } } - public static boolean canRemoveVmFromPool(Guid vmId, ArrayList<String> messages) { - boolean returnValue = true; - // Check if the vm is in a pool. - if (DbFacade.getInstance().getVmPoolDao().getVmPoolMapByVmGuid(vmId) == null) { - messages.add(VdcBllMessages.VM_POOL_CANNOT_DETACH_VM_NOT_ATTACHED_TO_POOL.toString()); - returnValue = false; - } - if (returnValue) { - if (RemoveVmCommand.isVmRunning(vmId)) { - messages.add(VdcBllMessages.VM_POOL_CANNOT_REMOVE_RUNNING_VM_FROM_POOL.toString()); - returnValue = false; - } - } - return returnValue; - } - @Override protected boolean canDoAction() { - return canRemoveVmFromPool(getParameters().getVmId(), getReturnValue().getCanDoActionMessages()); + if (getVm() == null) { + return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VM_NOT_FOUND); + } + + if (getVmPoolId() == null) { + return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_DETACH_VM_NOT_ATTACHED_TO_POOL); + } + + if (RemoveVmCommand.isVmRunning(getParameters().getVmId())) { + return failCanDoAction(VdcBllMessages.VM_POOL_CANNOT_REMOVE_RUNNING_VM_FROM_POOL); + } + + return true; } @Override protected void executeCommand() { if (getVmPoolId() != null) { - DbFacade.getInstance().getVmPoolDao().removeVmFromVmPool(getVmId()); + getVmPoolDAO().removeVmFromVmPool(getVmId()); setSucceeded(true); } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveVmFromPoolParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveVmFromPoolParameters.java index afeea76..e845559 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveVmFromPoolParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveVmFromPoolParameters.java @@ -4,7 +4,7 @@ public class RemoveVmFromPoolParameters extends VmPoolParametersBase { private static final long serialVersionUID = -9051384517712295806L; - private Guid _vmId; + private Guid vmId; private boolean removePoolUponDetachAllVMs; public RemoveVmFromPoolParameters(Guid vmId) { @@ -13,16 +13,16 @@ public RemoveVmFromPoolParameters(Guid vmId, boolean removePoolUponDetachAllVMs) { super(Guid.Empty); - _vmId = vmId; + this.vmId = vmId; this.removePoolUponDetachAllVMs = removePoolUponDetachAllVMs; } public RemoveVmFromPoolParameters() { - _vmId = Guid.Empty; + vmId = Guid.Empty; } public Guid getVmId() { - return _vmId; + return vmId; } public boolean isRemovePoolUponDetachAllVMs() { -- To view, visit http://gerrit.ovirt.org/28864 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I34ee0c07081286b6445c732c87c105bc16ef6a66 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <aha...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches