Maor Lipchuk has uploaded a new change for review. Change subject: core: Add method to be used for common use case when filtering images. ......................................................................
core: Add method to be used for common use case when filtering images. Add a method at ImagesHandler for the most used case when filtering images, and make all the commands use it. Signed-off-by: Maor Lipchuk <mlipc...@redhat.com> Change-Id: I39dc31ca740ee1d0dd9258a2894ca105bf196b6a --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromSnapshotCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveAllVmImagesCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.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/RemoveVmFromImportExportCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java 14 files changed, 26 insertions(+), 72 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/50/25350/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromSnapshotCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromSnapshotCommand.java index a81a3de..557cf62 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromSnapshotCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromSnapshotCommand.java @@ -222,10 +222,7 @@ protected Collection<DiskImage> getDiskImagesFromConfiguration() { if (diskImagesFromConfiguration == null) { diskImagesFromConfiguration = - ImagesHandler.filterImageDisks(vmFromConfiguration.getDiskMap().values(), - !ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + ImagesHandler.getImagesForSnapshot(vmFromConfiguration.getDiskMap().values()); } return diskImagesFromConfiguration; } @@ -325,10 +322,7 @@ } List<DiskImage> disksToCheck = - ImagesHandler.filterImageDisks(getDiskDao().getAllForVm(getSourceVmFromDb().getId()), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + ImagesHandler.getImagesForSnapshot(getDiskDao().getAllForVm(getSourceVmFromDb().getId())); DiskImagesValidator diskImagesValidator = new DiskImagesValidator(disksToCheck); if (!validate(diskImagesValidator.diskImagesNotLocked())) { return false; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java index 20f5caa..78fe89a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java @@ -390,10 +390,7 @@ return false; } - List<DiskImage> diskImagesToCheck = ImagesHandler.filterImageDisks(mImages, - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + List<DiskImage> diskImagesToCheck = ImagesHandler.getImagesForSnapshot(mImages); DiskImagesValidator diskImagesValidator = new DiskImagesValidator(diskImagesToCheck); if (!validate(diskImagesValidator.diskImagesNotIllegal()) || !validate(diskImagesValidator.diskImagesNotLocked())) { @@ -439,10 +436,7 @@ Map<StorageDomain, Integer> domainMap = StorageDomainValidator.getSpaceRequirementsForStorageDomains( - ImagesHandler.filterImageDisks(getVm().getDiskMap().values(), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS), + ImagesHandler.getImagesForSnapshot(getVm().getDiskMap().values()), storageDomains, diskInfoDestinationMap); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java index 430be1f..92ac75b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java @@ -299,10 +299,7 @@ private List<DiskImage> getDisksBasedOnImage() { if (disksImages == null) { - disksImages = ImagesHandler.filterImageDisks(getVm().getDiskMap().values(), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + disksImages = ImagesHandler.getImagesForSnapshot(getVm().getDiskMap().values()); } return disksImages; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java index 1ac33f8..3187f18 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java @@ -478,8 +478,8 @@ return sum; } - public static List<DiskImage> getPluggedActiveImagesForVm(Guid vmId) { - return filterImageDisks(DbFacade.getInstance().getDiskDao().getAllForVm(vmId, true), + public static List<DiskImage> getImagesForSnapshot(Collection<? extends Disk> listOfDisks) { + return filterImageDisks(listOfDisks, ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java index 35d25d7..297ce8f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java @@ -14,6 +14,7 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.FeatureSupported; import org.ovirt.engine.core.common.action.MigrateVmParameters; +import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.MigrationMethod; import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.VDS; @@ -33,6 +34,7 @@ import org.ovirt.engine.core.common.vdscommands.MigrateVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.utils.NetworkUtils; @LockIdNameAttribute(isReleaseAtEndOfExecute = false) @@ -332,7 +334,7 @@ return validate(new SnapshotsValidator().vmNotDuringSnapshot(vm.getId())) // This check was added to prevent migration of VM while its disks are being migrated // TODO: replace it with a better solution - && validate(new DiskImagesValidator(ImagesHandler.getPluggedActiveImagesForVm(vm.getId())).diskImagesNotLocked()) + && validate(new DiskImagesValidator(getPluggedActiveImagesForVm(vm.getId())).diskImagesNotLocked()) && SchedulingManager.getInstance().canSchedule(getVdsGroup(), getVm(), getVdsBlackList(), @@ -341,6 +343,10 @@ getReturnValue().getCanDoActionMessages()); } + private static List<DiskImage> getPluggedActiveImagesForVm(Guid vmId) { + return ImagesHandler.getImagesForSnapshot(DbFacade.getInstance().getDiskDao().getAllForVm(vmId, true)); + } + @Override protected void setActionMessageParameters() { addCanDoActionMessage(VdcBllMessages.VAR__ACTION__MIGRATE); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveVmCommand.java index 44928a8..f2d2f1d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveVmCommand.java @@ -79,10 +79,7 @@ !ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); - List<DiskImage> diskImagesToValidate = ImagesHandler.filterImageDisks(diskImages, - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + List<DiskImage> diskImagesToValidate = ImagesHandler.getImagesForSnapshot(diskImages); DiskImagesValidator diskImagesValidator = new DiskImagesValidator(diskImagesToValidate); retValue = retValue && validate(new StoragePoolValidator(getStoragePool()).isUp()) && diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveAllVmImagesCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveAllVmImagesCommand.java index e1a9cd9..045ab60 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveAllVmImagesCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveAllVmImagesCommand.java @@ -38,12 +38,8 @@ Set<Guid> mImagesToBeRemoved = new HashSet<Guid>(); List<DiskImage> images = getParameters().images; if (images == null) { - images = - ImagesHandler.filterImageDisks(DbFacade.getInstance().getDiskDao().getAllForVm(getVmId()), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); - } + images = ImagesHandler.getImagesForSnapshot(DbFacade.getInstance().getDiskDao().getAllForVm(getVmId())); + } for (DiskImage image : images) { if (Boolean.TRUE.equals(image.getActive())) { mImagesToBeRemoved.add(image.getImageId()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java index 50b04a4..00a8e34 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java @@ -222,12 +222,7 @@ if (!validate(new StoragePoolValidator(sp).isUp())) { return false; } - - List<DiskImage> diskList = - ImagesHandler.filterImageDisks(Arrays.asList(getDisk()), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + List<DiskImage> diskList = ImagesHandler.getImagesForSnapshot(Arrays.asList(getDisk())); DiskImagesValidator diskImagesValidator = new DiskImagesValidator(diskList); if (!validate(diskImagesValidator.diskImagesNotLocked())) { return false; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java index f21f9d9..d19da6f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java @@ -311,11 +311,7 @@ } protected boolean validateImages() { - List<DiskImage> imagesToValidate = - ImagesHandler.filterImageDisks(getDiskDao().getAllForVm(getVmId()), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + List<DiskImage> imagesToValidate = ImagesHandler.getImagesForSnapshot(getDiskDao().getAllForVm(getVmId())); DiskImagesValidator diskImagesValidator = new DiskImagesValidator(imagesToValidate); return validate(diskImagesValidator.diskImagesNotLocked()) && 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 748dc5e..8c616d2 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 @@ -80,10 +80,7 @@ } private boolean removeVm() { - final List<DiskImage> diskImages = ImagesHandler.filterImageDisks(getVm().getDiskList(), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + final List<DiskImage> diskImages = ImagesHandler.getImagesForSnapshot(getVm().getDiskList()); for (VmNic nic : getInterfaces()) { new ExternalNetworkManager(nic).deallocateIfExternal(); } @@ -209,10 +206,7 @@ } Collection<Disk> vmDisks = getVm().getDiskMap().values(); - List<DiskImage> vmImages = ImagesHandler.filterImageDisks(vmDisks, - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + List<DiskImage> vmImages = ImagesHandler.getImagesForSnapshot(vmDisks); if (!vmImages.isEmpty()) { Set<Guid> storageIds = ImagesHandler.getAllStorageIdsForImageIds(vmImages); MultipleStorageDomainsValidator storageValidator = new MultipleStorageDomainsValidator(getVm().getStoragePoolId(), storageIds); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java index 8557919..21ee4f4 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java @@ -103,11 +103,7 @@ } private void removeDiskImages() { - List<DiskImage> images = - ImagesHandler.filterImageDisks(getVm().getDiskMap().values(), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + List<DiskImage> images = ImagesHandler.getImagesForSnapshot(getVm().getDiskMap().values()); for (DiskImage image : images) { image.setStorageIds(new ArrayList<Guid>(Arrays.asList(getParameters().getStorageDomainId()))); image.setStoragePoolId(getParameters().getStoragePoolId()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java index 8031eb3..de8b8fe 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java @@ -433,11 +433,7 @@ } protected boolean performImagesChecks() { - List<DiskImage> diskImagesToCheck = - ImagesHandler.filterImageDisks(getImagesList(), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + List<DiskImage> diskImagesToCheck = ImagesHandler.getImagesForSnapshot(getImagesList()); DiskImagesValidator diskImagesValidator = new DiskImagesValidator(diskImagesToCheck); return validate(diskImagesValidator.diskImagesNotLocked()); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java index 386edec..d367c11 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java @@ -317,10 +317,7 @@ } protected boolean checkImagesStatus() { - List<DiskImage> disksToCheck = ImagesHandler.filterImageDisks(getDiskDao().getAllForVm(getVmId()), - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS); + List<DiskImage> disksToCheck = ImagesHandler.getImagesForSnapshot(getDiskDao().getAllForVm(getVmId())); DiskImagesValidator diskImagesValidator = new DiskImagesValidator(disksToCheck); return validate(diskImagesValidator.diskImagesNotLocked()); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java index 8d8f7e3..51cdd45 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java @@ -98,12 +98,8 @@ public ValidationResult vmNotHavingDeviceSnapshotsAttachedToOtherVms(boolean onlyPlugged) { for (VM vm : vms) { List<Disk> vmDisks = getDbFacade().getDiskDao().getAllForVm(vm.getId()); - ValidationResult result = - (new DiskImagesValidator(ImagesHandler.filterImageDisks(vmDisks, - ImagesHandler.FILTER_OUT_SHAREABLE_DISKS, - !ImagesHandler.FILTER_OUT_NOT_SNAPABLE_DISKS, - ImagesHandler.FILTER_OUT_NOT_ACTIVE_DISKS))) - .diskImagesSnapshotsNotAttachedToOtherVms(onlyPlugged); + ValidationResult result = (new DiskImagesValidator(ImagesHandler.getImagesForSnapshot(vmDisks))) + .diskImagesSnapshotsNotAttachedToOtherVms(onlyPlugged); if (result != ValidationResult.VALID) { return result; } -- To view, visit http://gerrit.ovirt.org/25350 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I39dc31ca740ee1d0dd9258a2894ca105bf196b6a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Maor Lipchuk <mlipc...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches