Gilad Chaplik has uploaded a new change for review. Change subject: core: removing canRunVm helper compat method ......................................................................
core: removing canRunVm helper compat method During the refactoring of runVmCommand.CanDoAction, a static helper method was needed to keep supporting VmPoolCommandBase, which had a static reference to validation code. Once the refactor is completed, moving all validation logic into that class, instead of helper method. Change-Id: Ia5063a8ae840ee27736722015480748ece048337 Signed-off-by: Gilad Chaplik <[email protected]> --- 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/validator/RunVmValidator.java 2 files changed, 64 insertions(+), 82 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/96/13696/1 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 95bba08..a8d467f 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 @@ -31,6 +31,7 @@ public abstract class VmPoolCommandBase<T extends VmPoolParametersBase> extends CommandBase<T> { private static final RunVmValidator runVmValidator = new RunVmValidator(); + private static final SnapshotsValidator snapshotValidator = new SnapshotsValidator(); private VmPool mVmPool; protected VmPool getVmPool() { @@ -171,7 +172,7 @@ } // check vm images: - SnapshotsValidator snapshotsValidator = new SnapshotsValidator(); + SnapshotsValidator snapshotsValidator = snapshotValidator; ValidationResult vmDuringSnapshotResult = snapshotsValidator.vmNotDuringSnapshot(vmId); if (!vmDuringSnapshotResult.isValid()) { return failVmFree(messages, vmDuringSnapshotResult.getMessage().name()); @@ -265,16 +266,68 @@ true, new VdsFreeMemoryChecker(new NonWaitingDelayer())); - return getRunVmValidator().canRunVm(vm, - messages, - getDiskDao().getAllForVm(vm.getId(), true), - runVmParams.getBootSequence(), - false, - fetchStoragePool(vm.getStoragePoolId()), - runVmParams.getDiskPath(), - runVmParams.getFloppyPath(), - runVmParams.getRunAsStateless(), - vdsSelector); + List<Disk> vmDisks = getDiskDao().getAllForVm(vm.getId(), true); + if (!getRunVmValidator().validateVmProperties(vm, messages)) { + return false; + } + ValidationResult result = getRunVmValidator().validateBootSequence(vm, runVmParams.getBootSequence(), vmDisks); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + return false; + } + result = new VmValidator(vm).vmNotLocked(); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + return false; + } + result = getSnapshotValidator().vmNotDuringSnapshot(vm.getId()); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + return false; + } + if (getRunVmValidator().validateImagesForRunVm(vm, vmDisks, false, messages)) { + return false; + } + result = new StoragePoolValidator(fetchStoragePool(vm.getStoragePoolId())).isUp(); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + return false; + } + result = + getRunVmValidator().validateIsoPath(vm.isAutoStartup(), + vm.getStoragePoolId(), + runVmParams.getDiskPath(), + runVmParams.getFloppyPath()); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + return false; + } + result = getRunVmValidator().vmDuringInitialization(vm); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + return false; + } + if (!getRunVmValidator().validateVdsStatus(vm, messages)) { + return false; + } + result = getRunVmValidator().validateStatelessVm(vm, vmDisks, runVmParams.getRunAsStateless()); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + return false; + } + if (!vdsSelector.canFindVdsToRunOn(messages, false)) { + return false; + } + result = getRunVmValidator().validateVmStatusUsingMatrix(vm); + if (!result.isValid()) { + messages.add(result.getMessage().toString()); + return false; + } + return true; + } + + private static SnapshotsValidator getSnapshotValidator() { + return snapshotValidator; } private static DiskDao getDiskDao() { 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 f792cd0..3837e54 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 @@ -11,11 +11,9 @@ 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; -import org.ovirt.engine.core.bll.storage.StoragePoolValidator; import org.ovirt.engine.core.common.VdcActionUtils; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.BootSequence; @@ -28,7 +26,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; @@ -284,72 +281,4 @@ protected VmPropertiesUtils getVmPropertiesUtils() { return VmPropertiesUtils.getInstance(); } - - // Compatibility method for static VmPoolCommandBase.canRunPoolVm - // who uses the same validation as runVmCommand - public boolean canRunVm(VM vm, - List<String> messages, - List<Disk> vmDisks, - BootSequence bootSequence, - boolean isInternalExecution, - storage_pool storagePool, - String diskPath, - String floppyPath, - Boolean runAsStateless, VdsSelector vdsSelector) { - if (!validateVmProperties(vm, messages)) { - return false; - } - ValidationResult result = validateBootSequence(vm, bootSequence, vmDisks); - if (!result.isValid()) { - messages.add(result.getMessage().toString()); - return false; - } - result = new VmValidator(vm).vmNotLocked(); - if (!result.isValid()) { - messages.add(result.getMessage().toString()); - return false; - } - result = getSnapshotValidator().vmNotDuringSnapshot(vm.getId()); - if (!result.isValid()) { - messages.add(result.getMessage().toString()); - return false; - } - if (validateImagesForRunVm(vm, vmDisks, isInternalExecution, messages)) { - return false; - } - result = new StoragePoolValidator(storagePool).isUp(); - if (!result.isValid()) { - messages.add(result.getMessage().toString()); - return false; - } - result = validateIsoPath(vm.isAutoStartup(), vm.getStoragePoolId(), diskPath, floppyPath); - if (!result.isValid()) { - messages.add(result.getMessage().toString()); - return false; - } - result = vmDuringInitialization(vm); - if (!result.isValid()) { - messages.add(result.getMessage().toString()); - return false; - } - if (!validateVdsStatus(vm, messages)) { - return false; - } - result = validateStatelessVm(vm, vmDisks, runAsStateless); - if (!result.isValid()) { - messages.add(result.getMessage().toString()); - return false; - } - if (!vdsSelector.canFindVdsToRunOn(messages, false)) { - return false; - } - result = validateVmStatusUsingMatrix(vm); - if (!result.isValid()) { - messages.add(result.getMessage().toString()); - return false; - } - - return true; - } - } -- To view, visit http://gerrit.ovirt.org/13696 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia5063a8ae840ee27736722015480748ece048337 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Gilad Chaplik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
