Maor Lipchuk has posted comments on this change.

Change subject: core: fail deletion of template disk with derived disks
......................................................................


Patch Set 2:

(3 comments)

....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
Line 200:     private DiskImagesValidator createDiskImagesValidator(DiskImage 
disk) {
Line 201:       return new DiskImagesValidator(Arrays.asList(disk));
Line 202:     }
Line 203: 
Line 204:     private boolean checkDerivedDisksFromDiskNotExist(DiskImage 
diskImage) {
isTemplateDiskHasDerivedDisks?
Line 205:         return 
validate(createDiskImagesValidator(diskImage).diskImagesHaveNoDerivedDisks(getParameters().getStorageDomainId()));
Line 206:     }
Line 207: 
Line 208:     private List<String> getNamesOfDerivedVmsFromTemplate(DiskImage 
diskImage) {


....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/DiskImagesValidator.java
Line 130:     }
Line 131: 
Line 132: 
Line 133:     public ValidationResult diskImagesHaveNoDerivedDisks(Guid 
storageDomainId) {
Line 134:         List<String> disksInfo = null;
I didn't saw it was discussed here.
any how, performance wise I'm not sure if calling an if condition at every disk 
in the loop will be better, also the code looks much simpler to read... but 
that's simply my opinion
Line 135:         for (DiskImage diskImage : diskImages) {
Line 136:             if (diskImage.getVmEntityType() != null && 
diskImage.getVmEntityType().isTemplateType()) {
Line 137:                 List<DiskImage> basedDisks = 
getDiskImageDAO().getAllSnapshotsForParent(diskImage.getImageId());
Line 138:                 for (DiskImage basedDisk : basedDisks) {


Line 132: 
Line 133:     public ValidationResult diskImagesHaveNoDerivedDisks(Guid 
storageDomainId) {
Line 134:         List<String> disksInfo = null;
Line 135:         for (DiskImage diskImage : diskImages) {
Line 136:             if (diskImage.getVmEntityType() != null && 
diskImage.getVmEntityType().isTemplateType()) {
1. but you're validation is for template disks, how can a template disk be 
floating?

2. When you will have derived disks which are not from template disks? why 
should we consider checking this?

I think the main question is, what do you think will use this validation? I 
think that this validation is only relevant to template disks, and any other 
use of it will be wrong and should not be return a valid status. Am I'm missing 
anything?
Line 137:                 List<DiskImage> basedDisks = 
getDiskImageDAO().getAllSnapshotsForParent(diskImage.getImageId());
Line 138:                 for (DiskImage basedDisk : basedDisks) {
Line 139:                     if (storageDomainId == null || 
basedDisk.getStorageIds().contains(storageDomainId)) {
Line 140:                         if (disksInfo == null) {


-- 
To view, visit http://gerrit.ovirt.org/22428
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ifca48993f40f3c5f7b603f33add7049e78e6c4e9
Gerrit-PatchSet: 2
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liron Ar <[email protected]>
Gerrit-Reviewer: Allon Mureinik <[email protected]>
Gerrit-Reviewer: Liron Ar <[email protected]>
Gerrit-Reviewer: Maor Lipchuk <[email protected]>
Gerrit-Reviewer: Tal Nisan <[email protected]>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to