Eduardo has uploaded a new change for review. Change subject: [WIP] Simplifiying hsm.copyImage logic. ......................................................................
[WIP] Simplifiying hsm.copyImage logic. Consider further optimization moving the *.validateCreateVolumeParams() to the domain level. Change-Id: I5db9053dabb97423611634e2bdfbdd09ec02876b Signed-off-by: Eduardo <[email protected]> --- M vdsm/storage/hsm.py M vdsm/storage/sd.py 2 files changed, 14 insertions(+), 27 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/09/8509/1 diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py index 2a8bc59..2c031f8 100644 --- a/vdsm/storage/hsm.py +++ b/vdsm/storage/hsm.py @@ -1386,35 +1386,29 @@ Create new template/volume from VM. Do it by collapse and copy the whole chain (baseVolUUID->srcVolUUID) """ - argsStr = "sdUUID=%s, spUUID=%s, vmUUID=%s, srcImgUUID=%s, srcVolUUID=%s, dstImgUUID=%s, "\ - "dstVolUUID=%s, description=%s, dstSdUUID=%s, volType=%s, volFormat=%s, "\ - "preallocate=%s force=%s, postZero=%s" % (sdUUID, spUUID, vmUUID, - srcImgUUID, srcVolUUID, dstImgUUID, dstVolUUID, description, - dstSdUUID, volType, volFormat, preallocate, force, postZero) + argsStr = str(locals()) vars.task.setDefaultException(se.TemplateCreationError("%s" % argsStr)) + if dstSdUUID == sd.BLANK_UUID: + dstSdUUID = sdUUID + + if dstSdUUID != sdUUID: + domains = (sdUUID, dstSdUUID) # Validate imgUUID in case of copy inside source domain itself - if dstSdUUID in (sdUUID, sd.BLANK_UUID): - if srcImgUUID == dstImgUUID: + elif srcImgUUID == dstImgUUID: raise se.InvalidParameterException("dstImgUUID", dstImgUUID) + else: + domains = (sdUUID) + pool = self.getPool(spUUID) - self.validateSdUUID(sdUUID) + for dom in domains: + self.validateSdUUID(domains) # Avoid VM copy if one of its volume (including template if exists) ILLEGAL/FAKE pool.validateVolumeChain(sdUUID, srcImgUUID) # Validate volume type and format - if dstSdUUID != sd.BLANK_UUID: - dom = dstSdUUID - else: - dom = sdUUID - sdCache.produce(dom).validateCreateVolumeParams(volFormat, preallocate, volume.BLANK_UUID) + sdCache.produce(dstSdUUID).validateCreateVolumeParams(volFormat, preallocate, volume.BLANK_UUID) - # If dstSdUUID defined, means we copy image to it - domains = [sdUUID] - if dstSdUUID not in [sdUUID, sd.BLANK_UUID]: - self.validateSdUUID(dstSdUUID) - domains.append(dstSdUUID) - domains.sort() - + domains.sort() for dom in domains: vars.task.getSharedLock(STORAGE, dom) diff --git a/vdsm/storage/sd.py b/vdsm/storage/sd.py index fcb796c..9c7fd52 100644 --- a/vdsm/storage/sd.py +++ b/vdsm/storage/sd.py @@ -369,13 +369,6 @@ """ pass - @classmethod - def validateCreateVolumeParams(cls, volFormat, preallocate, srcVolUUID): - """ - Validate create volume parameters - """ - pass - def createVolume(self, imgUUID, size, volFormat, preallocate, diskType, volUUID, desc, srcImgUUID, srcVolUUID): """ -- To view, visit http://gerrit.ovirt.org/8509 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5db9053dabb97423611634e2bdfbdd09ec02876b Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Eduardo <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
