def test_getblocksize_defaults(self): with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): manifest = make_blocksd(tmpdir, lvm) self.assertEquals(512, manifest.logBlkSize) self.assertEquals(512, manifest.phyBlkSize)
def test_getreaddelay(self): with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): manifest = make_blocksd(tmpdir, lvm) vg_name = manifest.sdUUID make_file(lvm.lvPath(vg_name, 'metadata')) self.assertIsInstance(manifest.getReadDelay(), float)
def test_metaslot_lock(self): with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): manifest = make_blocksd(tmpdir, lvm) with manifest.acquireVolumeMetadataSlot(None, 1): acquired = manifest._lvTagMetaSlotLock.acquire(False) self.assertFalse(acquired)
def test_getmetaparam(self): with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): metadata = {sd.DMDK_VERSION: 3} manifest = make_blocksd(tmpdir, lvm, metadata=metadata) metadata[sd.DMDK_SDUUID] = manifest.sdUUID self.assertEquals(manifest.sdUUID, manifest.getMetaParam(sd.DMDK_SDUUID))
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_getblocksize(self): with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): metadata = {sd.DMDK_VERSION: 3, blockSD.DMDK_LOGBLKSIZE: 2048, blockSD.DMDK_PHYBLKSIZE: 1024} manifest = make_blocksd(tmpdir, lvm, metadata=metadata) self.assertEquals(2048, manifest.logBlkSize) self.assertEquals(1024, manifest.phyBlkSize)
def test_getblocksize(self): with namedTemporaryDir() as tmpdir: lvm = FakeLVM(tmpdir) with MonkeyPatchScope([(blockSD, 'lvm', lvm)]): metadata = { sd.DMDK_VERSION: 3, blockSD.DMDK_LOGBLKSIZE: 2048, blockSD.DMDK_PHYBLKSIZE: 1024 } manifest = make_blocksd(tmpdir, lvm, metadata=metadata) self.assertEquals(2048, manifest.logBlkSize) self.assertEquals(1024, manifest.phyBlkSize)
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)