Liron Aravot has posted comments on this change. Change subject: core: Add alias and description for disk meta data ......................................................................
Patch Set 13: (9 comments) http://gerrit.ovirt.org/#/c/34163/13/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddImageFromScratchCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddImageFromScratchCommand.java: Line 126: AuditLogableBase auditLogableBase = new AuditLogableBase(); Line 127: auditLogableBase.addCustomValue("DataCenterName", getStoragePool().getName()); Line 128: auditLogableBase.addCustomValue("StorageDomainName", getStorageDomain().getName()); Line 129: auditLogableBase.addCustomValue("DiskName", getParameters().getDiskInfo().getDiskAlias()); Line 130: AuditLogDirector.log(auditLogableBase, AuditLogType.UPDATE_DESCRIPTION_FOR_DISK_FAILED); see comment in patch 3, the auditlog used is incorrect ( we are not updating anything). in my opinion the log is enough (no need for audit log)..this will never happen Line 131: return StringUtils.EMPTY; Line 132: } Line 133: } Line 134: http://gerrit.ovirt.org/#/c/34163/13/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetUnregisteredDiskQuery.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetUnregisteredDiskQuery.java: Line 74: } Line 75: Line 76: DiskImage newDiskImage = (DiskImage) imageInfoReturn.getReturnValue(); Line 77: if (StringUtils.isNotEmpty(newDiskImage.getDescription())) { Line 78: Map<String, Object> diskDescriptionMap; you can define it in line 80 Line 79: try { Line 80: diskDescriptionMap = JsonHelper.jsonToMap(newDiskImage.getDescription()); Line 81: newDiskImage.setDiskAlias((String) diskDescriptionMap.get(ImagesHandler.DISK_ALIAS)); Line 82: newDiskImage.setDiskDescription((String) diskDescriptionMap.get(ImagesHandler.DISK_DESCRIPTION)); http://gerrit.ovirt.org/#/c/34163/13/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java: Line 354: Line 355: private void performDiskUpdate(final boolean unlockImage) { Line 356: if (isMetaDataPropertiesChangedForDiskImage()) { Line 357: updateMetaDataDescription((DiskImage) getNewDisk()); Line 358: } now this command executes vdsm call, the disk should be locked in the db Line 359: final Disk disk = getDiskDao().get(getParameters().getDiskId()); Line 360: applyUserChanges(disk); Line 361: Line 362: TransactionSupport.executeInNewTransaction(new TransactionMethod<Object>() { Line 395: } Line 396: }); Line 397: } Line 398: Line 399: private boolean isMetaDataPropertiesChangedForDiskImage() { /s/isMetaDataPropertiesChangedForDiskImage/shouldPerformMetadataUpdate Line 400: if ((getNewDisk().getDiskStorageType() == DiskStorageType.IMAGE) Line 401: && (!getOldDisk().getDiskAlias().equals(getNewDisk().getDiskAlias()) || !getOldDisk().getDiskDescription() Line 402: .equals(getNewDisk().getDiskDescription()))) { Line 403: return true; Line 397: } Line 398: Line 399: private boolean isMetaDataPropertiesChangedForDiskImage() { Line 400: if ((getNewDisk().getDiskStorageType() == DiskStorageType.IMAGE) Line 401: && (!getOldDisk().getDiskAlias().equals(getNewDisk().getDiskAlias()) || !getOldDisk().getDiskDescription() can't the DiskDescription be null? what about NPE? use ObjectUtils.isEqual.. Line 402: .equals(getNewDisk().getDiskDescription()))) { Line 403: return true; Line 404: } Line 405: return false; Line 398: Line 399: private boolean isMetaDataPropertiesChangedForDiskImage() { Line 400: if ((getNewDisk().getDiskStorageType() == DiskStorageType.IMAGE) Line 401: && (!getOldDisk().getDiskAlias().equals(getNewDisk().getDiskAlias()) || !getOldDisk().getDiskDescription() Line 402: .equals(getNewDisk().getDiskDescription()))) { please move this check (alias/description changed) to a ImagesHandler next to ImagesHandler.getJsonDiskDescription. Line 403: return true; Line 404: } Line 405: return false; Line 406: } Line 412: diskImage.getStorageIds().get(0), Line 413: diskImage.getId(), Line 414: diskImage.getImageId(), Line 415: getJsonDiskDescription()); Line 416: runVdsCommand(VDSCommandType.SetVolumeDescription, vdsCommandParameters); try to update only if the status of the domain/pool makes sense (Active/Up) Line 417: } catch (Exception e) { Line 418: StorageDomain storageDomain = Line 419: getStorageDomainDAO().getForStoragePool(diskImage.getStorageIds().get(0), Line 420: getVm().getStoragePoolId()); Line 430: try { Line 431: return ImagesHandler.getJsonDiskDescription(getParameters().getDiskInfo().getDiskAlias(), Line 432: getParameters().getDiskInfo().getDiskDescription()); Line 433: } catch (IOException e) { Line 434: throw new RuntimeException("Exception while generating json for disk", e); remove the try-catch, that will never happen. and if it does, it will be catched outside. Line 435: } Line 436: } Line 437: Line 438: protected void updateDiskProfile() { http://gerrit.ovirt.org/#/c/34163/13/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImagesHandlerTest.java File backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImagesHandlerTest.java: Line 125: String diskAlias = null; Line 126: try { Line 127: diskAlias = ImagesHandler.getJsonDiskDescription("DiskAlias", "DiskDescription"); Line 128: } catch (IOException e) { Line 129: // Do nothing. Test should fail. why not just define the method as throws exception? Line 130: } Line 131: assertTrue("Should be map of disk alias and disk description", Line 132: diskAlias.equals("{\"DiskDescription\":\"DiskDescription\",\"DiskAlias\":\"DiskAlias\"}")); Line 133: } -- To view, visit http://gerrit.ovirt.org/34163 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ie2642ae7016579ead699509426e01ac2010bd374 Gerrit-PatchSet: 13 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Maor Lipchuk <[email protected]> Gerrit-Reviewer: Allon Mureinik <[email protected]> Gerrit-Reviewer: Daniel Erez <[email protected]> Gerrit-Reviewer: Liron Aravot <[email protected]> Gerrit-Reviewer: Maor Lipchuk <[email protected]> Gerrit-Reviewer: Tal Nisan <[email protected]> Gerrit-Reviewer: [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
