Liron Ar has posted comments on this change.
Change subject: core: Add a validation when deactivate ISO domain.
......................................................................
Patch Set 7:
(5 comments)
....................................................
File
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
Line 123: if (getStorageDomain().getStorageDomainType() ==
StorageDomainType.ISO) {
Line 124: List<String> vmNames = getVmsWithAttachedISO();
Line 125: if (!vmNames.isEmpty()) {
Line 126: addCanDoActionMessage(String.format("$VmNames %1$s",
StringUtils.join(vmNames, ",")));
Line 127:
addCanDoActionMessage(VdcBllMessages.ERROR_CANNOT_DEACTIVATE_STORAGE_DOMAIN_WITH_ISO_ATTACHED);
the ENUM name of the message should be changed.
Line 128: return false;
Line 129: }
Line 130: }
Line 131: if (!getParameters().getIsInternal()
Line 124: List<String> vmNames = getVmsWithAttachedISO();
Line 125: if (!vmNames.isEmpty()) {
Line 126: addCanDoActionMessage(String.format("$VmNames %1$s",
StringUtils.join(vmNames, ",")));
Line 127:
addCanDoActionMessage(VdcBllMessages.ERROR_CANNOT_DEACTIVATE_STORAGE_DOMAIN_WITH_ISO_ATTACHED);
Line 128: return false;
merge those two lines to return failCanDo..
Line 129: }
Line 130: }
Line 131: if (!getParameters().getIsInternal()
Line 132: && !getVmDAO()
Line 151: return true;
Line 152: }
Line 153:
Line 154: private List<String> getVmsWithAttachedISO() {
Line 155: List<VmStatic> vms =
getVmStaticDAO().getAllByStoragePoolId(getStorageDomain().getStoragePoolId());
what if all of those vms are down? why would i care to deactivate the iso
domain?
after making this change please also merge the used query with the one at line
132.
Line 156: List<String> vmNames = new ArrayList<>();
Line 157: for (VmStatic vmStatic : vms) {
Line 158: if (isVMHasAttachedISO(vmStatic.getId())) {
Line 159: vmNames.add(vmStatic.getName());
Line 377: }
Line 378: return null;
Line 379: }
Line 380:
Line 381: private static boolean isVMHasAttachedISO(Guid vmId) {
please move this method to VmDeviceUtils
Line 382: List<VmDevice> deviceList =
Line 383: DbFacade.getInstance()
Line 384: .getVmDeviceDao()
Line 385: .getVmDeviceByVmIdAndType(vmId,
Line 382: List<VmDevice> deviceList =
Line 383: DbFacade.getInstance()
Line 384: .getVmDeviceDao()
Line 385: .getVmDeviceByVmIdAndType(vmId,
Line 386: VmDeviceGeneralType.DISK);
I think that a query can be added here, "getVmDeviceWithSpecParam" (we will
pass "path" there) to be used regardless of this.
Line 387: for (VmDevice device : deviceList) {
Line 388: if (device.getDevice() == VmDeviceType.CDROM.toString()
Line 389: || device.getDevice() ==
VmDeviceType.FLOPPY.toString()) {
Line 390: String path = (String)
device.getSpecParams().get("path");
--
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: 7
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Maor Lipchuk <[email protected]>
Gerrit-Reviewer: Allon Mureinik <[email protected]>
Gerrit-Reviewer: Cheryn Tan <[email protected]>
Gerrit-Reviewer: Daniel Erez <[email protected]>
Gerrit-Reviewer: Liron Ar <[email protected]>
Gerrit-Reviewer: Maor Lipchuk <[email protected]>
Gerrit-Reviewer: Sergey Gotliv <[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