Idan Shaby has posted comments on this change. Change subject: core: WAD should be Ignored on File Domain Disks ......................................................................
Patch Set 1: (15 comments) http://gerrit.ovirt.org/#/c/30706/1//COMMIT_MSG Commit Message: Line 5: CommitDate: 2014-07-24 17:27:50 +0300 Line 6: Line 7: core: WAD should be Ignored on File Domain Disks Line 8: Line 9: Since file systems do the wiping for us, there is no need for doing > "file systems do the wiping for us" is a tad inaccurate. Perhaps try someth Done Line 10: it again for disks on file domains. Line 11: Thus, the only case we should wipe a disk after deleting it is when Line 12: we have a disk on a block domain with 'wipeAfterDelete' = true. Line 13: http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java: Line 127: params.setVolumeFormat(diskImage.getVolumeFormat()); Line 128: params.setVolumeType(diskImage.getVolumeType()); Line 129: params.setUseCopyCollapse(true); Line 130: params.setSourceDomainId(srcStorageDomainId); Line 131: setStorageDomainId(srcStorageDomainId); > Regardless - you're COPYING a disk. WAD should be calculated according to t Done Line 132: params.setWipeAfterDelete(ImagesHandler.shouldWipeAfterDelete( Line 133: diskImage.isWipeAfterDelete(), getStorageDomain().getStorageType())); Line 134: params.setEntityInfo(new EntityInfo(VdcObjectType.VM, getVmId())); Line 135: params.setParentParameters(getParameters()); http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java: Line 809: return snapshot; Line 810: } Line 811: Line 812: /** Line 813: * Decides whether an image disk should be wiped after it's being deleted or not. > s/being deleted/deleted/ Done Line 814: * A disk on a file domain, for example, should not be wiped even if it holds 'wipeAfterDelete' = true. Line 815: * @param shouldDiskBeWipedAfterDelete the disk's 'wipeAfterDelete' property. Line 816: * @param type the disk's type. Line 817: * @return true iff the disk should be wiped after its deletion, Line 810: } Line 811: Line 812: /** Line 813: * Decides whether an image disk should be wiped after it's being deleted or not. Line 814: * A disk on a file domain, for example, should not be wiped even if it holds 'wipeAfterDelete' = true. > Don't give examples - describe the entire logic, either here or in the @ret Done Line 815: * @param shouldDiskBeWipedAfterDelete the disk's 'wipeAfterDelete' property. Line 816: * @param type the disk's type. Line 817: * @return true iff the disk should be wiped after its deletion, Line 818: * i.e. only if the disk is on a block domain and holds 'wipeAfterDelete' = true. Line 811: Line 812: /** Line 813: * Decides whether an image disk should be wiped after it's being deleted or not. Line 814: * A disk on a file domain, for example, should not be wiped even if it holds 'wipeAfterDelete' = true. Line 815: * @param shouldDiskBeWipedAfterDelete the disk's 'wipeAfterDelete' property. > s/the/The/ Done Line 816: * @param type the disk's type. Line 817: * @return true iff the disk should be wiped after its deletion, Line 818: * i.e. only if the disk is on a block domain and holds 'wipeAfterDelete' = true. Line 819: */ Line 812: /** Line 813: * Decides whether an image disk should be wiped after it's being deleted or not. Line 814: * A disk on a file domain, for example, should not be wiped even if it holds 'wipeAfterDelete' = true. Line 815: * @param shouldDiskBeWipedAfterDelete the disk's 'wipeAfterDelete' property. Line 816: * @param type the disk's type. > The disk's **storage** type Done Line 817: * @return true iff the disk should be wiped after its deletion, Line 818: * i.e. only if the disk is on a block domain and holds 'wipeAfterDelete' = true. Line 819: */ Line 820: public static boolean shouldWipeAfterDelete (boolean shouldDiskBeWipedAfterDelete, StorageType type) { http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveMemoryVolumesCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveMemoryVolumesCommand.java: Line 36: Line 37: @Override Line 38: protected void executeCommand() { Line 39: MemoryImageRemoverOnDataDomain memoryImageRemover = Line 40: new MemoryImageRemoverOnDataDomain(getParameters().getVmId(), this); > This is just a formatting change. Why is it part of this patch? Done Line 41: Line 42: setSucceeded(memoryImageRemover.remove( Line 43: Collections.singleton(getParameters().getMemoryVolumes()))); Line 44: } http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java: Line 132: } Line 133: Line 134: private void removeMemoryImages() { Line 135: new MemoryImageRemoverFromExportDomain(getVm(), this, Line 136: getParameters().getStoragePoolId(), getParameters().getStorageDomainId()).remove(); > This is just a formatting change. Done Line 137: } Line 138: Line 139: @Override Line 140: public AuditLogType getAuditLogTypeValue() { http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/CreateImagePlaceholderTaskHandler.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/CreateImagePlaceholderTaskHandler.java: Line 80: boolean wipeAfterDelete = ImagesHandler.shouldWipeAfterDelete( Line 81: DbFacade.getInstance().getDiskImageDao().get(getEnclosingCommand(). Line 82: getParameters().getDestinationImageId()).isWipeAfterDelete(), Line 83: DbFacade.getInstance().getStorageDomainDao().get(getEnclosingCommand(). Line 84: getParameters().getStorageDomainId()).getStorageType()); > You have two DAO calls here, which is a shame. Done Line 85: return new DeleteImageGroupVDSCommandParameters( Line 86: getEnclosingCommand().getParameters().getStoragePoolId(), Line 87: getEnclosingCommand().getParameters().getTargetStorageDomainId(), Line 88: getEnclosingCommand().getParameters().getImageGroupID(), http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java: Line 139: boolean wipeAfterDelete = ImagesHandler.shouldWipeAfterDelete( Line 140: DbFacade.getInstance().getDiskImageDao().get(getEnclosingCommand(). Line 141: getParameters().getDestinationImageId()).isWipeAfterDelete(), Line 142: DbFacade.getInstance().getStorageDomainDao().get(getEnclosingCommand(). Line 143: getParameters().getStorageDomainId()).getStorageType()); > See my comment in CreateImagePlaceholderTaskHandler - same problem here. Done Line 144: return new DeleteImageGroupVDSCommandParameters( Line 145: getEnclosingCommand().getParameters().getStoragePoolId(), Line 146: getEnclosingCommand().getParameters().getSourceStorageDomainId(), Line 147: getEnclosingCommand().getParameters().getImageGroupID(), http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/HibernationVolumesRemover.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/HibernationVolumesRemover.java: Line 12: private Guid vmId; Line 13: private String memoryState; Line 14: Line 15: public HibernationVolumesRemover(String memoryState, Guid vmId, Line 16: TaskHandlerCommand<?> enclosingCommand) { > why? Done Line 17: this(memoryState, vmId, enclosingCommand, false); Line 18: } Line 19: Line 20: public HibernationVolumesRemover(String memoryState, Guid vmId, Line 18: } Line 19: Line 20: public HibernationVolumesRemover(String memoryState, Guid vmId, Line 21: TaskHandlerCommand<?> enclosingCommand, Line 22: boolean startPollingTasks) { > why? Done Line 23: super(enclosingCommand, startPollingTasks); Line 24: this.memoryState = memoryState; Line 25: this.vmId = vmId; Line 26: } http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryImageRemover.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryImageRemover.java: Line 36: this.enclosingCommand = enclosingCommand; Line 37: } Line 38: Line 39: public MemoryImageRemover(TaskHandlerCommand<?> enclosingCommand, Line 40: boolean startPollingTasks) { > why? Done Line 41: this(enclosingCommand); Line 42: this.startPollingTasks = startPollingTasks; Line 43: } Line 44: http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryImageRemoverFromExportDomain.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryImageRemoverFromExportDomain.java: Line 15: Line 16: public MemoryImageRemoverFromExportDomain(VM vm, Line 17: TaskHandlerCommand<?> enclosingCommand, Line 18: Guid storagePoolId, Line 19: Guid storageDomainId) { > why? Done Line 20: super(enclosingCommand); Line 21: this.vm = vm; Line 22: this.storagePoolId = storagePoolId; Line 23: this.storageDomainId = storageDomainId; http://gerrit.ovirt.org/#/c/30706/1/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryImageRemoverOnDataDomain.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryImageRemoverOnDataDomain.java: Line 16: private boolean removeOnlyIfNotUsedAtAll; Line 17: Line 18: public MemoryImageRemoverOnDataDomain(Guid vmId, Line 19: TaskHandlerCommand Line 20: <? extends RemoveMemoryVolumesParameters> enclosingCommand) { > why? Done Line 21: super(enclosingCommand, false); Line 22: this.vmId = vmId; Line 23: removeOnlyIfNotUsedAtAll = enclosingCommand.getParameters().isRemoveOnlyIfNotUsedAtAll(); Line 24: } -- To view, visit http://gerrit.ovirt.org/30706 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ie8a9932725ef861525f5102e8617938f0e0a71c7 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Idan Shaby <ish...@redhat.com> Gerrit-Reviewer: Allon Mureinik <amure...@redhat.com> Gerrit-Reviewer: Arik Hadas <aha...@redhat.com> Gerrit-Reviewer: Daniel Erez <de...@redhat.com> Gerrit-Reviewer: Idan Shaby <ish...@redhat.com> Gerrit-Reviewer: Maor Lipchuk <mlipc...@redhat.com> Gerrit-Reviewer: Omer Frenkel <ofren...@redhat.com> Gerrit-Reviewer: Tal Nisan <tni...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches