Beispiel #1
0
 def test_lvpath(self):
     with namedTemporaryDir() as tmpdir:
         lvm = FakeLVM(tmpdir)
         vg_name = 'foo'
         lv_name = 'bar'
         expected = os.path.join(tmpdir, 'dev', vg_name, lv_name)
         self.assertEqual(expected, lvm.lvPath(vg_name, lv_name))
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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))
Beispiel #5
0
 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))
Beispiel #6
0
 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))
Beispiel #7
0
 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)
Beispiel #8
0
 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)
Beispiel #9
0
 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)
Beispiel #10
0
 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))
Beispiel #11
0
 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)
Beispiel #12
0
 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))
Beispiel #13
0
def fake_block_env(obj=None):
    with namedTemporaryDir() as tmpdir:
        lvm = FakeLVM(tmpdir)
        fake_sdc = FakeStorageDomainCache()
        with MonkeyPatchScope([
            (blockSD, 'lvm', lvm),
            (blockVolume, 'lvm', lvm),
            (volume_artifacts, 'lvm', lvm),
            (sd, 'storage_repository', tmpdir),
            (volume, 'sdCache', fake_sdc),
        ]):
            sd_manifest = make_blocksd_manifest(tmpdir, lvm)
            fake_sdc.domains[sd_manifest.sdUUID] = FakeSD(sd_manifest)
            yield FakeEnv(sd_manifest, lvm=lvm)
Beispiel #14
0
    def base_config(self):
        """
        Create a simple volume group from a single 10G LUN.

        lvm.createVG('1ffead52-7363-4968-a8c7-3bc34504d452',
                     ['360014054d75cb132d474c0eae9825766'],
                     blockSD.STORAGE_UNREADY_DOMAIN_TAG,
                     blockSD.VG_METADATASIZE)

        print lvm.getVG('1ffead52-7363-4968-a8c7-3bc34504d452')
        VG(uuid='15hlPF-V3eG-F9Cp-SGtu-4Mq0-28Do-HC806y',
           name='1ffead52-7363-4968-a8c7-3bc34504d452',
           attr=VG_ATTR(permission='w', resizeable='z', exported='-',
                        partial='-', allocation='n', clustered='-'),
           size='10334765056', free='10334765056', extent_size='134217728',
           extent_count='77', free_count='77',
           tags=('RHAT_storage_domain_UNREADY',), vg_mda_size='134217728',
           vg_mda_free='67107328', lv_count='0', pv_count='1',
           pv_name=('/dev/mapper/360014054d75cb132d474c0eae9825766',),
           writeable=True, partial='OK')

        print lvm.getPV('360014054d75cb132d474c0eae9825766')
        PV(uuid='fIRjbD-usOA-tYgW-b2Uz-oUly-AJ49-bMMjYe',
           name='/dev/mapper/360014054d75cb132d474c0eae9825766',
           size='10334765056', vg_name='1ffead52-7363-4968-a8c7-3bc34504d452',
           vg_uuid='15hlPF-V3eG-F9Cp-SGtu-4Mq0-28Do-HC806y',
           pe_start='138412032', pe_count='77', pe_alloc_count='0',
           mda_count='2', dev_size='10737418240',
           guid='360014054d75cb132d474c0eae9825766')
        """
        with namedTemporaryDir() as tmpdir:
            lvm = FakeLVM(tmpdir)
            lvm.createVG(self.VG_NAME, self.DEVICES,
                         blockSD.STORAGE_UNREADY_DOMAIN_TAG,
                         blockSD.VG_METADATASIZE)
            yield lvm
Beispiel #15
0
 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))
Beispiel #16
0
 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)
Beispiel #17
0
def fake_block_env(obj=None, sd_version=3):
    with namedTemporaryDir() as tmpdir:
        lvm = FakeLVM(tmpdir)
        fake_sdc = FakeStorageDomainCache()
        with MonkeyPatchScope([
            (blockSD, 'lvm', lvm),
            (blockVolume, 'lvm', lvm),
            (volume_artifacts, 'lvm', lvm),
            (sd, 'storage_repository', tmpdir),
            (volume, 'sdCache', fake_sdc),
            (hsm, 'sdCache', fake_sdc),
        ]):
            sd_manifest = make_blocksd_manifest(tmpdir,
                                                lvm,
                                                sd_version=sd_version)
            fake_sdc.domains[sd_manifest.sdUUID] = FakeSD(sd_manifest)
            try:
                yield FakeBlockEnv(tmpdir, sd_manifest, fake_sdc, lvm)
            finally:
                oop.stop()
Beispiel #18
0
 def test_bad_args(self, exception, fn, args):
     with namedTemporaryDir() as tmpdir:
         lvm = FakeLVM(tmpdir)
         lvm_fn = getattr(lvm, fn)
         self.assertRaises(exception, lvm_fn, *args)