def _extendSizeRaw(self, new_capacity): # Since this method relies on lvm.extendLV (lvextend) when the # requested size is equal or smaller than the current size, the # request is siliently ignored. new_capacity_mb = (utils.round(new_capacity, constants.MEGAB) // constants.MEGAB) lvm.extendLV(self.sdUUID, self.volUUID, new_capacity_mb)
def extend(self, new_size): """Extend a logical volume 'new_size' - new size in bytes """ self.log.info( "Request to extend LV %s of image %s in VG %s with " "size = %s", self.volUUID, self.imgUUID, self.sdUUID, new_size) # we should return: Success/Failure # Backend APIs: sizemb = utils.round(new_size, MiB) // MiB lvm.extendLV(self.sdUUID, self.volUUID, sizemb)
def extend(self, newSize): """Extend a logical volume 'newSize' - new size in blocks """ self.log.info("Request to extend LV %s of image %s in VG %s with " "size = %s", self.volUUID, self.imgUUID, self.sdUUID, newSize) # we should return: Success/Failure # Backend APIs: sizemb = (newSize + SECTORS_TO_MB - 1) / SECTORS_TO_MB lvm.extendLV(self.sdUUID, self.volUUID, sizemb)
def extend(self, newSize): """Extend a logical volume 'newSize' - new size in blocks """ self.log.info("Request to extend LV %s of image %s in VG %s with " "size = %s", self.volUUID, self.imgUUID, self.sdUUID, newSize) # we should return: Success/Failure # Backend APIs: sizemb = utils.round(newSize, BLOCKS_TO_MB) // BLOCKS_TO_MB lvm.extendLV(self.sdUUID, self.volUUID, sizemb)
def extend(self, new_size_blk): """Extend a logical volume 'new_size_blk' - new size in blocks """ self.log.info( "Request to extend LV %s of image %s in VG %s with " "size = %s blocks", self.volUUID, self.imgUUID, self.sdUUID, new_size_blk) # we should return: Success/Failure # Backend APIs: sizemb = utils.round(new_size_blk, BLOCKS_TO_MB) // BLOCKS_TO_MB lvm.extendLV(self.sdUUID, self.volUUID, sizemb)
def test_lv_extend_reduce(tmp_storage): dev_size = 20 * 1024**3 dev = tmp_storage.create_device(dev_size) vg_name = str(uuid.uuid4()) lv_name = str(uuid.uuid4()) lvm.set_read_only(False) lvm.createVG(vg_name, [dev], "initial-tag", 128) lvm.createLV(vg_name, lv_name, 1024) lvm.extendLV(vg_name, lv_name, 2048) lv = lvm.getLV(vg_name, lv_name) assert int(lv.size) == 2 * 1024**3 # Reducing active LV requires force. lvm.reduceLV(vg_name, lv_name, 1024, force=True) lv = lvm.getLV(vg_name, lv_name) assert int(lv.size) == 1 * 1024**3
def test_lv_extend_reduce(tmp_storage): dev_size = 20 * GiB dev = tmp_storage.create_device(dev_size) vg_name = str(uuid.uuid4()) lv_name = str(uuid.uuid4()) lvm.set_read_only(False) lvm.createVG(vg_name, [dev], "initial-tag", 128) lvm.createLV(vg_name, lv_name, 1024) lvm.extendLV(vg_name, lv_name, 2048) lv = lvm.getLV(vg_name, lv_name) assert int(lv.size) == 2 * GiB # Extending LV to same does nothing. lvm.extendLV(vg_name, lv_name, 2048) lvm.invalidateVG(vg_name) lv = lvm.getLV(vg_name, lv_name) assert int(lv.size) == 2 * GiB # Extending LV to smaller size does nothing. lvm.extendLV(vg_name, lv_name, 1024) lvm.invalidateVG(vg_name) lv = lvm.getLV(vg_name, lv_name) assert int(lv.size) == 2 * GiB # Reducing active LV requires force. lvm.reduceLV(vg_name, lv_name, 1024, force=True) lv = lvm.getLV(vg_name, lv_name) assert int(lv.size) == 1 * GiB
def _extendSizeRaw(self, newSize): # Since this method relies on lvm.extendLV (lvextend) when the # requested size is equal or smaller than the current size, the # request is siliently ignored. newSizeMb = (newSize + SECTORS_TO_MB - 1) / SECTORS_TO_MB lvm.extendLV(self.sdUUID, self.volUUID, newSizeMb)
def _extendSizeRaw(self, newSize): # Since this method relies on lvm.extendLV (lvextend) when the # requested size is equal or smaller than the current size, the # request is siliently ignored. newSizeMb = utils.round(newSize, BLOCKS_TO_MB) // BLOCKS_TO_MB lvm.extendLV(self.sdUUID, self.volUUID, newSizeMb)