def getVGBlockSizes(vgUUID): pvs = listPVNames(vgUUID) if not pvs: raise se.VolumeGroupDoesNotExist("vg_uuid: %s" % vgUUID) # Returning the block size of the first pv is correct since we don't allow # devices with different block size to be on the same VG. return _getpvblksize(pvs[0])
def getVGbyUUID(vgUUID): # cycle through all the VGs until the one with the given UUID found for vg in getAllVGs(): try: if vg.uuid == vgUUID: return vg except AttributeError as e: # An unreloadable VG found but may be we are not looking for it. log.debug("%s" % e.message, exc_info=True) continue # If not cry loudly raise se.VolumeGroupDoesNotExist("vg_uuid: %s" % vgUUID)
def getVG(vgName): vg = _lvminfo.getVg(vgName) # returns single VG namedtuple if not vg: raise se.VolumeGroupDoesNotExist(vgName) else: return vg
def checkVGBlockSizes(vgUUID, vgBlkSize=None): pvs = listPVNames(vgUUID) if not pvs: raise se.VolumeGroupDoesNotExist("vg_uuid: %s" % vgUUID) _checkpvsblksize(pvs, vgBlkSize)
# TODO: lvm VG UUID should not be exposed. # Remove this function when hsm.public_createVG is removed. def getVGbyUUID(vgUUID): # cycle through all the VGs until the one with the given UUID found for vg in getAllVGs(): try: if vg.uuid == vgUUID: return vg except AttributeError, e: # An unreloadable VG found but may be we are not looking for it. log.debug("%s" % e.message, exc_info=True) continue # If not cry loudly raise se.VolumeGroupDoesNotExist("vg_uuid: %s" % vgUUID) def getLV(vgName, lvName=None): lv = _lvminfo.getLv(vgName, lvName) #getLV() should not return None if not lv: raise se.LogicalVolumeDoesNotExistError("%s/%s" % (vgName, lvName)) else: return lv # # Public Volume Group interface #