def test_getvsize_inactive_lv(self): # Tests the path when the device file is not present with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): manifest = make_blocksd(tmpdir, lvm) lv_name = str(uuid.uuid4()) lvm.createLV(manifest.sdUUID, lv_name, VOLSIZE / MB) self.assertEqual(VOLSIZE, manifest.getVSize('<imgUUID>', lv_name))
def test_lv_size_rounding(self): vg_name = 'foo' lv_name = 'bar' devices = ['360014054d75cb132d474c0eae9825766'] with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) lvm.createVG(vg_name, devices, blockSD.STORAGE_UNREADY_DOMAIN_TAG, blockSD.VG_METADATASIZE) lvm.createLV(vg_name, lv_name, sc.VG_EXTENT_SIZE_MB - 1) lv = lvm.getLV(vg_name, lv_name) self.assertEqual(sc.VG_EXTENT_SIZE_MB * MB, int(lv.size))
def test_getvsize_active_lv(self): # Tests the path when the device file is present with namedTemporaryDir() as tmpdir: manifest = make_blocksd_manifest(tmpdir) lvm = FakeLVM(tmpdir) vg_name = make_vg(lvm, manifest) lv_name = str(uuid.uuid4()) lvm.createLV(vg_name, lv_name, VOLSIZE) lvm.fake_lv_symlink_create(vg_name, lv_name) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): self.assertEqual(VOLSIZE, manifest.getVSize('<imgUUID>', lv_name))
def test_metaslot_selection(self): with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): manifest = make_blocksd(tmpdir, lvm) lvs = ('0b6287f0-3679-4c4d-8be5-9bbfe3ec9c1f', 'ea13af29-b64a-4d1a-b35f-3e6ab15c3b04') for lv, offset in zip(lvs, [4, 7]): lvm.createLV(manifest.sdUUID, lv, VOLSIZE) tag = blockVolume.TAG_PREFIX_MD + str(offset) lvm.addtag(manifest.sdUUID, lv, tag) with manifest.acquireVolumeMetadataSlot(None, 1) as mdSlot: self.assertEqual(mdSlot, 5)