Gilad Chaplik has uploaded a new change for review. Change subject: core: RunVmCommand.canDoAction clean-up (7) ......................................................................
core: RunVmCommand.canDoAction clean-up (7) extract storage pool validation. Change-Id: I37e73f99f15b69b9e41527a1ae8de66d80c36a17 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, 21 insertions(+), 11 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/13660/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 db9f1e3..7438683 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 @@ -19,6 +19,7 @@ import org.ovirt.engine.core.bll.quota.QuotaConsumptionParameter; import org.ovirt.engine.core.bll.quota.QuotaVdsDependent; import org.ovirt.engine.core.bll.quota.QuotaVdsGroupConsumptionParameter; +import org.ovirt.engine.core.bll.storage.StoragePoolValidator; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; import org.ovirt.engine.core.bll.validator.RunVmValidator; @@ -692,6 +693,7 @@ vmDisks, isInternalExecution(), messages) && + validate(new StoragePoolValidator(getStoragePoolDAO().get(vm.getStoragePoolId())).isUp()) && 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 fc86858..b3ad6f6 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 @@ -268,7 +268,8 @@ messages, getDiskDao().getAllForVm(vm.getId(), true), runVmParams.getBootSequence(), - false) + false, + fetchStoragePool(vm.getStoragePoolId())) && VmRunHandler.getInstance().canRunVm(vm, messages, @@ -281,6 +282,10 @@ return DbFacade.getInstance().getDiskDao(); } + private static storage_pool fetchStoragePool(Guid storagePoolId) { + return DbFacade.getInstance().getStoragePoolDao().get(storagePoolId); + } + private static RunVmValidator getRunVmValidator() { return new RunVmValidator(); } 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 c138685..984901e 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 @@ -10,7 +10,6 @@ import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.interfaces.BackendInternal; import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; -import org.ovirt.engine.core.bll.storage.StoragePoolValidator; import org.ovirt.engine.core.bll.validator.StorageDomainValidator; import org.ovirt.engine.core.common.VdcActionUtils; import org.ovirt.engine.core.common.action.RunVmParams; @@ -24,7 +23,6 @@ import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; -import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.queries.GetImagesListParameters; @@ -61,13 +59,6 @@ public boolean canRunVm(VM vm, ArrayList<String> message, RunVmParams runParams, VdsSelector vdsSelector, SnapshotsValidator snapshotsValidator) { boolean retValue = true; - - storage_pool sp = getStoragePoolDAO().get(vm.getStoragePoolId()); - ValidationResult spUpResult = new StoragePoolValidator(sp).isUp(); - if (!spUpResult.isValid()) { - message.add(spUpResult.getMessage().name()); - retValue = false; - } // Check if iso and floppy path exists if (retValue && !vm.isAutoStartup() 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 40bef98..1f479a8 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 @@ -7,10 +7,12 @@ import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.bll.VmHandler; import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; +import org.ovirt.engine.core.bll.storage.StoragePoolValidator; import org.ovirt.engine.core.common.businessentities.BootSequence; import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.VdcBllMessages; import org.ovirt.engine.core.dal.dbbroker.DbFacade; @@ -96,7 +98,8 @@ List<String> messages, List<Disk> vmDisks, BootSequence bootSequence, - boolean isInternalExecution) { + boolean isInternalExecution, + storage_pool storagePool) { if (!validateVmProperties(vm, messages)) { return false; } @@ -118,6 +121,11 @@ if (validateImagesForRunVm(vm, vmDisks, isInternalExecution, messages)) { return false; } + result = new StoragePoolValidator(storagePool).isUp(); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + 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 b7813c3..4bcf6d7 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 @@ -462,6 +462,10 @@ Matchers.anyListOf(Disk.class), anyBoolean(), Matchers.anyListOf(String.class))).thenReturn(true); + storage_pool sp = new storage_pool(); + sp.setstatus(StoragePoolStatus.Up); + when(spDao.get(any(Guid.class))).thenReturn(sp); + doReturn(spDao).when(command).getStoragePoolDAO(); doReturn(runVmValidator).when(command).getRunVmValidator(); return runVmValidator; } -- To view, visit http://gerrit.ovirt.org/13660 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I37e73f99f15b69b9e41527a1ae8de66d80c36a17 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