Liron Ar has posted comments on this change.

Change subject: core: Add a validation when deactivate ISO domain.
......................................................................


Patch Set 12:

(3 comments)

....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
Line 116:             if (!filterDomainsByStatus(domains, 
StorageDomainStatus.Locked).isEmpty()) {
Line 117:                 return 
failCanDoAction(VdcBllMessages.ERROR_CANNOT_DEACTIVATE_MASTER_WITH_LOCKED_DOMAINS);
Line 118:             }
Line 119:         }
Line 120:         if (getStorageDomain().getStorageDomainType() == 
StorageDomainType.ISO) {
there's a bug here, it should be checked that the execution isn't internal
!getParameters().getIsInternal() otherwise the domain fail process won't work.
Line 121:             List<String> vmNames = getVmsWithAttachedISO();
Line 122:             if (!vmNames.isEmpty()) {
Line 123:                 
failCanDoAction(VdcBllMessages.ERROR_CANNOT_DEACTIVATE_STORAGE_DOMAIN_WITH_ISO_ATTACHED,
Line 124:                         String.format("$VmNames %1$s", 
StringUtils.join(vmNames, ",")));


Line 151:             if (getVmDynamicDAO().get(vmStatic.getId()).getStatus() 
!= VMStatus.Down
Line 152:                     && 
VmDeviceUtils.isVMHasAttachedISO(vmStatic.getId())) {
Line 153:                 vmNames.add(vmStatic.getName());
Line 154:             }
Line 155:         }
The queries here will load huge parts of the db, we should discuss whether we 
want this logic here or just fix VmDao.getAllActiveForStorageDomain or 
something to work also for ISO domains as this stored procedure doesn't work 
properly for iso domains.

if we do want to keep this logic out of the db, it might be better to maybe 
load only the vms of the pool with plugged iso and test them, it will reduce 
the overload there by a lot.
Line 156:         return vmNames;
Line 157:     }
Line 158: 
Line 159:     /**


....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java
Line 110:                 VmDeviceGeneralType.DISK);
Line 111:         for (VmDevice device : deviceList) {
Line 112:             if 
(device.getDevice().equals(VmDeviceType.CDROM.toString())
Line 113:                     || 
device.getDevice().equals(VmDeviceType.FLOPPY.toString())) {
Line 114:                 String path = (String) 
device.getSpecParams().get("path");
what if the "iso device" is unplugged? we should get false then.
Line 115:                 if (!StringUtils.isEmpty(path)) {
Line 116:                     return true;
Line 117:                 }
Line 118:             }


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I47c1a8155762ecd0b04bb17676151946982bb919
Gerrit-PatchSet: 12
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Maor Lipchuk <mlipc...@redhat.com>
Gerrit-Reviewer: Allon Mureinik <amure...@redhat.com>
Gerrit-Reviewer: Cheryn Tan <cheryn...@redhat.com>
Gerrit-Reviewer: Daniel Erez <de...@redhat.com>
Gerrit-Reviewer: Liron Ar <lara...@redhat.com>
Gerrit-Reviewer: Maor Lipchuk <mlipc...@redhat.com>
Gerrit-Reviewer: Sergey Gotliv <sgot...@redhat.com>
Gerrit-Reviewer: Tal Nisan <tni...@redhat.com>
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

Reply via email to