def teardown(cls, sdUUID, volUUID, justme=False): """ Deactivate volume and release resources. Volume deactivation occurs as part of resource releasing. If justme is false, the entire COW chain should be torn down. """ cls.log.info("Tearing down volume %s/%s justme %s" % (sdUUID, volUUID, justme)) lvmActivationNamespace = rm.getNamespace(sc.LVM_ACTIVATION_NAMESPACE, sdUUID) rm.releaseResource(lvmActivationNamespace, volUUID) if not justme: try: pvolUUID = getVolumeTag(sdUUID, volUUID, sc.TAG_PREFIX_PARENT) except Exception as e: # If storage not accessible or lvm error occurred # we will failure to get the parent volume. # We can live with it and still succeed in volume's teardown. pvolUUID = sc.BLANK_UUID cls.log.warn("Failure to get parent of volume %s/%s (%s)" % (sdUUID, volUUID, e)) if pvolUUID != sc.BLANK_UUID: cls.teardown(sdUUID=sdUUID, volUUID=pvolUUID, justme=False)
def testReleaseInvalidResource(self, tmp_manager): with pytest.raises(ValueError): rm.releaseResource("DONT_EXIST", "resource") with pytest.raises(ValueError): rm.releaseResource("storage", "DOT")