def rebaseVolumeRollback(cls, taskObj, sdUUID, srcImg, srcVol, dstFormat, srcParent, unsafe): """ Rebase volume rollback """ cls.log.info( 'rebase volume rollback (sdUUID=%s srcImg=%s srcVol=%s ' 'dstFormat=%s srcParent=%s)', sdUUID, srcImg, srcVol, dstFormat, srcParent) imageResourcesNamespace = sd.getNamespace(sc.IMAGE_NAMESPACE, sdUUID) with rm.acquireResource(imageResourcesNamespace, srcImg, rm.EXCLUSIVE): vol = sdCache.produce(sdUUID).produceVolume(srcImg, srcVol) vol.prepare(rw=True, chainrw=True, setrw=True) volumePath = vol.getVolumePath() backingVolPath = getBackingVolumePath(srcImg, srcParent) try: qemuimg.rebase(volumePath, backingVolPath, sc.fmt2str(vol.getFormat()), sc.fmt2str(int(dstFormat)), misc.parseBool(unsafe), vars.task.aborting) vol.setParent(srcParent) vol.recheckIfLeaf() except qemuimg.QImgError: cls.log.exception( 'cannot rollback rebase for volume %s on ' '%s', volumePath, backingVolPath) raise se.MergeVolumeRollbackError(srcVol) finally: vol.teardown(sdUUID, srcVol)
def rebaseVolumeRollback(cls, taskObj, sdUUID, srcImg, srcVol, dstFormat, srcParent, unsafe): """ Rebase volume rollback """ cls.log.info('rebase volume rollback (sdUUID=%s srcImg=%s srcVol=%s ' 'dstFormat=%s srcParent=%s)', sdUUID, srcImg, srcVol, dstFormat, srcParent) imageResourcesNamespace = sd.getNamespace(sc.IMAGE_NAMESPACE, sdUUID) with rm.acquireResource(imageResourcesNamespace, srcImg, rm.EXCLUSIVE): vol = sdCache.produce(sdUUID).produceVolume(srcImg, srcVol) vol.prepare(rw=True, chainrw=True, setrw=True) volumePath = vol.getVolumePath() backingVolPath = getBackingVolumePath(srcImg, srcParent) try: qemuimg.rebase(volumePath, backingVolPath, sc.fmt2str(vol.getFormat()), sc.fmt2str(int(dstFormat)), misc.parseBool(unsafe), vars.task.aborting) vol.setParent(srcParent) vol.recheckIfLeaf() except qemuimg.QImgError: cls.log.exception('cannot rollback rebase for volume %s on ' '%s', volumePath, backingVolPath) raise se.MergeVolumeRollbackError(srcVol) finally: vol.teardown(sdUUID, srcVol)
def testValidInput(self): """ Compare valid inputs with expected results. """ self.assertEqual(misc.parseBool(True), True) self.assertEqual(misc.parseBool(False), False) self.assertEqual(misc.parseBool("true"), True) self.assertEqual(misc.parseBool("tRue"), True) self.assertEqual(misc.parseBool("false"), False) self.assertEqual(misc.parseBool("fAlse"), False) self.assertEqual(misc.parseBool("BOB"), False)