Gilad Chaplik has uploaded a new change for review. Change subject: core: runVmCommand.canDoAction clean-up (12) ......................................................................
core: runVmCommand.canDoAction clean-up (12) move vdsSelector validation to the command itself Change-Id: Ia048045389c5388022b5023233192a503cb3902a Signed-off-by: Gilad Chaplik <gchap...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java 5 files changed, 11 insertions(+), 12 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/06/13406/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java index 8f91e85..f5deb9e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java @@ -703,6 +703,7 @@ vmDisks, getParameters().getRunAsStateless())) && + getVdsSelector().canFindVdsToRunOn(messages, false) && canRunVm(vm) && validateNetworkInterfaces(); if (!canDoAction) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java index 7e5f110..e464631 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java @@ -275,7 +275,8 @@ fetchStoragePool(vm.getStoragePoolId()), runVmParams.getDiskPath(), runVmParams.getFloppyPath(), - runVmParams.getRunAsStateless()) + runVmParams.getRunAsStateless(), + vdsSelector) && VmRunHandler.getInstance().canRunVm(vm, messages, diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java index 008ff83..34a908c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java @@ -9,7 +9,6 @@ import org.ovirt.engine.core.common.VdcActionUtils; import org.ovirt.engine.core.common.action.RunVmParams; import org.ovirt.engine.core.common.action.VdcActionType; -import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; @@ -44,12 +43,6 @@ public boolean canRunVm(VM vm, ArrayList<String> message, RunVmParams runParams, VdsSelector vdsSelector, SnapshotsValidator snapshotsValidator) { boolean retValue = true; - - List<Disk> vmDisks = getDiskDao().getAllForVm(vm.getId(), true); - if (retValue) { - } - - retValue = retValue == false ? retValue : vdsSelector.canFindVdsToRunOn(message, false); /** * only if can do action ok then check with actions matrix that status is valid for this action diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java index 5eb81df..92bfeb0 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java @@ -10,6 +10,7 @@ import org.ovirt.engine.core.bll.ImagesHandler; import org.ovirt.engine.core.bll.IsoDomainListSyncronizer; import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.bll.VdsSelector; import org.ovirt.engine.core.bll.VmHandler; import org.ovirt.engine.core.bll.interfaces.BackendInternal; import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; @@ -278,7 +279,7 @@ storage_pool storagePool, String diskPath, String floppyPath, - Boolean runAsStateless) { + Boolean runAsStateless, VdsSelector vdsSelector) { if (!validateVmProperties(vm, messages)) { return false; } @@ -325,6 +326,9 @@ messages.add(result.getMessage().toString()); return false; } + if (!vdsSelector.canFindVdsToRunOn(messages, false)) { + return false; + } return true; } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java index d2812a7..9d26ff9 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java @@ -49,7 +49,6 @@ import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.common.vdscommands.VdsAndVmIDVDSParametersBase; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.compat.NGuid; import org.ovirt.engine.core.dao.DiskDao; import org.ovirt.engine.core.dao.StorageDomainDAO; import org.ovirt.engine.core.dao.StoragePoolDAO; @@ -343,8 +342,9 @@ final VM vm = new VM(); vm.setStatus(VMStatus.Down); vm.setStoragePoolId(Guid.NewGuid()); - doReturn(new VdsSelector(vm, new NGuid(), true, new VdsFreeMemoryChecker(command))).when(command) - .getVdsSelector(); + VdsSelector vdsSelector = mock(VdsSelector.class); + doReturn(true).when(vdsSelector).canFindVdsToRunOn(Matchers.anyList(), anyBoolean()); + doReturn(vdsSelector).when(command).getVdsSelector(); doReturn(vm).when(command).getVm(); doReturn(true).when(command).canRunVm(vm); doReturn(true).when(command).validateNetworkInterfaces(); -- To view, visit http://gerrit.ovirt.org/13406 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia048045389c5388022b5023233192a503cb3902a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Gilad Chaplik <gchap...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches