Allon Mureinik has uploaded a new change for review. Change subject: core: Remove ImagesHandler.PerformImagesChecks ......................................................................
core: Remove ImagesHandler.PerformImagesChecks After the recent changes, PerformImagesChecks had the following functionality: For each disk: - GetImageInfo from VDSM - if it does not exists, fail - if it's status is different from the engine's status, update the engine's status. Analyzing ImageStatus' different values, this validation is useless: - OK: The engine did not issue any command regarding this image. It may have been manually removed from the storage itself, but that could also happen right after the check finishes successfully. - LOCKED: The engine is in the middle of performing a command on the image. It's status in VDSM is meaningless, as it may change any moment now. - ILLEGAL/INVALID: The engine issued a command on the image, and it was interrupted somehow (e.g., restart, network failure, etc.). The image may have been partly or fully compromised, and it cannot be trusted anyway. In conclusion, this validation NEVER returns any useful information, and thus could (and should!) be removed. For good measures, an additional validation that the disks aren't INVALID in the engine side was added to the commands where it was missing, just to be safe. Change-Id: I983a4c3a016909385ec16f21803ef3a82e4dcaf6 Signed-off-by: Allon Mureinik <amure...@redhat.com> --- 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/CreateAllSnapshotsFromVmCommand.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/MoveVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java 5 files changed, 3 insertions(+), 67 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/14/14114/1 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 b07d090..8194847 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 @@ -221,15 +221,6 @@ return false; } - if (!ImagesHandler.PerformImagesChecks( - getReturnValue().getCanDoActionMessages(), - getVm().getStoragePoolId(), - true, - true, - diskImagesToCheck)) { - return false; - } - Map<Guid, StorageDomain> storageDomains = new HashMap<Guid, StorageDomain>(); Set<Guid> destImageDomains = getStorageGuidSet(); destImageDomains.removeAll(sourceImageDomainsImageMap.keySet()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java index 57b76d7..76395ea 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java @@ -315,12 +315,7 @@ && validate(vmValidator.vmNotRunningStateless()) && validate(vmValidator.vmNotIlegal()) && validate(diskImagesValidator.diskImagesNotLocked()) - && ImagesHandler.PerformImagesChecks( - getReturnValue().getCanDoActionMessages(), - getVm().getStoragePoolId(), - true, - true, - disksList) + && validate(diskImagesValidator.diskImagesNotIllegal()) && validate(vmValidator.vmNotLocked()) && validate(sdValidator.allDomainsExistAndActive()) && validate(sdValidator.allDomainsWithinThresholds()); 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 d08abe4..2bf55da 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 @@ -446,29 +446,6 @@ return result; } - public static boolean PerformImagesChecks( - List<String> messages, - Guid storagePoolId, - boolean checkImagesIllegalInVdsm, - boolean checkImagesExist, - List<DiskImage> diskImageList) { - - boolean returnValue = true; - ArrayList<DiskImage> irsImages = new ArrayList<DiskImage>(); - - if (returnValue && checkImagesExist) { - boolean isImagesExist = isImagesExists(diskImageList, storagePoolId, irsImages); - if (!isImagesExist) { - returnValue = false; - ListUtils.nullSafeAdd(messages, VdcBllMessages.ACTION_TYPE_FAILED_VM_IMAGE_DOES_NOT_EXIST.toString()); - } - } - if (returnValue && checkImagesIllegalInVdsm) { - returnValue = checkImagesLegalityInVdsm(messages, diskImageList, irsImages); - } - return returnValue; - } - /** * @return A unique {@link Set} of all the storage domain IDs relevant to all the given images * @param images The images to get the storage domain IDs for @@ -512,26 +489,6 @@ } } return validationResult.isValid(); - } - - private static boolean checkImagesLegalityInVdsm - (List<String> messages, List<DiskImage> images, List<DiskImage> irsImages) { - boolean returnValue = true; - int i = 0; - for (DiskImage diskImage : images) { - if (diskImage != null) { - DiskImage image = irsImages.get(i++); - if (image.getImageStatus() != ImageStatus.OK) { - diskImage.setImageStatus(image.getImageStatus()); - DbFacade.getInstance().getImageDao().update(diskImage.getImage()); - returnValue = false; - ListUtils.nullSafeAdd(messages, - VdcBllMessages.ACTION_TYPE_FAILED_VM_IMAGE_IS_ILLEGAL.toString()); - break; - } - } - } - return returnValue; } public static void fillImagesBySnapshots(VM vm) { 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 82000cd..b72ba33 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 @@ -76,12 +76,7 @@ retValue = retValue && validate(new StoragePoolValidator(getStoragePool()).isUp()) && validate(diskImagesValidator.diskImagesNotLocked()) && - ImagesHandler.PerformImagesChecks( - getReturnValue().getCanDoActionMessages(), - getVm().getStoragePoolId(), - true, - true, - diskImagesToValidate); + validate(diskImagesValidator.diskImagesNotIllegal()); ensureDomainMap(diskImages, getParameters().getStorageDomainId()); for(DiskImage disk : diskImages) { 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 1457b36..a8ea541 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 @@ -267,9 +267,7 @@ DiskImagesValidator diskImagesValidator = new DiskImagesValidator(imagesToValidate); return validate(diskImagesValidator.diskImagesNotLocked()) && - ImagesHandler.PerformImagesChecks(getReturnValue().getCanDoActionMessages(), - getVm().getStoragePoolId(), - true, true, imagesToValidate); + validate(diskImagesValidator.diskImagesNotIllegal()); } protected boolean validateImageNotInTemplate() { -- To view, visit http://gerrit.ovirt.org/14114 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I983a4c3a016909385ec16f21803ef3a82e4dcaf6 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Allon Mureinik <amure...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches