Esempio n. 1
0
    def test_no_lvs_found_that_match_id_fsid(self, volumes, monkeypatch,
                                             device_info):
        tags = 'ceph.osd_id=9,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,'+\
               'ceph.type=data'
        osd = api.Volume(lv_name='volume1',
                         lv_uuid='y',
                         vg_name='vg',
                         lv_tags=tags,
                         lv_path='/dev/VolGroup/lv')
        volumes.append(osd)
        monkeypatch.setattr(zap.api, 'get_lvs', lambda **kwargs: {})

        with pytest.raises(RuntimeError):
            zap.find_associated_devices(osd_id='9', osd_fsid='aaaa-lkjh')
Esempio n. 2
0
    def test_lv_is_matched_fsid(self, volumes, monkeypatch):
        tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,' +\
               'ceph.type=data'
        osd = api.Volume(lv_name='volume1',
                         lv_uuid='y',
                         vg_name='',
                         lv_path='/dev/VolGroup/lv',
                         lv_tags=tags)
        volumes.append(osd)
        monkeypatch.setattr(zap.api, 'get_lvs',
                            lambda **kwargs: deepcopy(volumes))

        result = zap.find_associated_devices(osd_fsid='asdf-lkjh')
        assert result[0].abspath == '/dev/VolGroup/lv'
Esempio n. 3
0
    def test_lvm_size(self, monkeypatch, device_info):
        volume = api.Volume(lv_name='lv', lv_uuid='y', vg_name='vg',
                            lv_tags={}, lv_path='/dev/VolGroup/lv')
        volumes = []
        volumes.append(volume)
        monkeypatch.setattr(api, 'get_lvs', lambda **kwargs:
                            deepcopy(volumes))

        # 5GB in size
        data = {"/dev/sda": {"size": "5368709120"}}
        lsblk = {"TYPE": "disk"}
        device_info(devices=data,lsblk=lsblk)
        disk = device.Device("/dev/sda")
        assert disk.lvm_size.gb == 4
Esempio n. 4
0
 def test_report_a_ceph_journal_device(self, volumes, monkeypatch):
     # ceph lvs are detected by looking into its tags
     tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data,ceph.journal_device=/dev/sda1'
     lv = api.Volume(lv_name='lv',
                     vg_name='VolGroup',
                     lv_path='/dev/VolGroup/lv',
                     lv_uuid='aaa',
                     lv_tags=tags)
     volumes.append(lv)
     monkeypatch.setattr(lvm.listing.api, 'Volumes', lambda: volumes)
     result = lvm.listing.List([]).single_report('/dev/sda1')
     assert result['0'][0]['tags'] == {'PARTUUID': 'x'}
     assert result['0'][0]['type'] == 'journal'
     assert result['0'][0]['path'] == '/dev/sda1'
Esempio n. 5
0
    def test_ceph_data_lv_reported(self, monkeypatch):
        tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data'
        pv = api.PVolume(pv_name='/dev/sda1', pv_tags={}, pv_uuid="0000",
                         vg_name='VolGroup', lv_uuid="aaaa")
        osd = api.Volume(lv_name='volume1', lv_uuid='y', lv_tags=tags,
                         lv_path='/dev/VolGroup/lv', vg_name='VolGroup')
        volumes = []
        volumes.append(osd)
        monkeypatch.setattr(lvm.listing.api, 'get_single_pv', lambda **kwargs: pv)
        monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs:
                            volumes)

        result = lvm.listing.List([]).full_report()
        assert result['0'][0]['name'] == 'volume1'
Esempio n. 6
0
    def test_physical_2nd_device_gets_reported(self, type_, monkeypatch):
        tags = ('ceph.osd_id=0,ceph.{t}_uuid=x,ceph.type=data,'
                'ceph.{t}_device=/dev/sda1').format(t=type_)
        osd = api.Volume(lv_name='volume1',
                         lv_uuid='y',
                         lv_tags=tags,
                         vg_name='VolGroup',
                         lv_path='/dev/VolGroup/lv')
        monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: [osd])

        result = lvm.listing.List([]).full_report()
        assert result['0'][1]['path'] == '/dev/sda1'
        assert result['0'][1]['tags'] == {'PARTUUID': 'x'}
        assert result['0'][1]['type'] == type_
Esempio n. 7
0
    def test_sys_api(self, monkeypatch, device_info):
        volume = api.Volume(lv_name='lv', lv_uuid='y', vg_name='vg',
                            lv_tags={}, lv_path='/dev/VolGroup/lv')
        volumes = []
        volumes.append(volume)
        monkeypatch.setattr(api, 'get_lvs', lambda **kwargs:
                            deepcopy(volumes))

        data = {"/dev/sda": {"foo": "bar"}}
        lsblk = {"TYPE": "disk"}
        device_info(devices=data,lsblk=lsblk)
        disk = device.Device("/dev/sda")
        assert disk.sys_api
        assert "foo" in disk.sys_api
Esempio n. 8
0
    def test_lv_is_matched_id(self, monkeypatch):
        tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data'
        osd = api.Volume(lv_name='volume1',
                         lv_uuid='y',
                         vg_name='',
                         lv_path='/dev/VolGroup/lv',
                         lv_tags=tags)
        volumes = []
        volumes.append(osd)
        monkeypatch.setattr(zap.api, 'get_lvs', lambda **kw: volumes)
        monkeypatch.setattr(process, 'call', lambda x, **kw: ('', '', 0))

        result = zap.find_associated_devices(osd_id='0')
        assert result[0].abspath == '/dev/VolGroup/lv'
Esempio n. 9
0
 def test_multiple_backing_devs_are_found(self):
     volumes = []
     for _type in ['journal', 'db', 'wal']:
         tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.wal_uuid=x,ceph.type=%s' % _type
         osd = api.Volume(lv_name='volume%s' % _type,
                          lv_uuid='y',
                          vg_name='',
                          lv_path='/dev/VolGroup/lv%s' % _type,
                          lv_tags=tags)
         volumes.append(osd)
     result = zap.ensure_associated_lvs(volumes)
     assert '/dev/VolGroup/lvjournal' in result
     assert '/dev/VolGroup/lvwal' in result
     assert '/dev/VolGroup/lvdb' in result
Esempio n. 10
0
 def test_multiple_wals_are_found(self):
     tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.wal_uuid=x,ceph.type=wal'
     volumes = []
     for i in range(3):
         osd = api.Volume(lv_name='volume%s' % i,
                          lv_uuid='y',
                          vg_name='',
                          lv_path='/dev/VolGroup/lv%s' % i,
                          lv_tags=tags)
         volumes.append(osd)
     result = zap.ensure_associated_lvs(volumes)
     assert '/dev/VolGroup/lv0' in result
     assert '/dev/VolGroup/lv1' in result
     assert '/dev/VolGroup/lv2' in result
Esempio n. 11
0
 def test_block_and_partition_are_found(self, monkeypatch):
     monkeypatch.setattr(zap.disk, 'get_device_from_partuuid',
                         lambda x: '/dev/sdb1')
     tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=block'
     osd = api.Volume(lv_name='volume1',
                      lv_uuid='y',
                      vg_name='',
                      lv_path='/dev/VolGroup/block',
                      lv_tags=tags)
     volumes = []
     volumes.append(osd)
     result = zap.ensure_associated_lvs(volumes)
     assert '/dev/sdb1' in result
     assert '/dev/VolGroup/block' in result
Esempio n. 12
0
 def test_physical_wal_gets_reported(self, volumes, monkeypatch):
     tags = 'ceph.osd_id=0,ceph.wal_uuid=x,ceph.type=data'
     osd = api.Volume(lv_name='volume1',
                      lv_uuid='y',
                      lv_path='/dev/VolGroup/lv',
                      lv_tags=tags)
     volumes.append(osd)
     monkeypatch.setattr(lvm.listing.api, 'Volumes', lambda: volumes)
     monkeypatch.setattr(lvm.listing.disk, 'get_device_from_partuuid',
                         lambda x: '/dev/sda1')
     result = lvm.listing.List([]).full_report()
     assert result['0'][1]['path'] == '/dev/sda1'
     assert result['0'][1]['tags'] == {'PARTUUID': 'x'}
     assert result['0'][1]['type'] == 'wal'
Esempio n. 13
0
 def test_filestore_systemd(self, is_root, volumes, monkeypatch, capture):
     fake_enable = Capture()
     fake_start_osd = Capture()
     monkeypatch.setattr('ceph_volume.configuration.load', lambda: None)
     monkeypatch.setattr('ceph_volume.util.system.device_is_mounted',
                         lambda *a, **kw: True)
     monkeypatch.setattr('ceph_volume.util.system.chown',
                         lambda *a, **kw: True)
     monkeypatch.setattr('ceph_volume.process.run', lambda *a, **kw: True)
     monkeypatch.setattr(activate.systemctl, 'enable_volume', fake_enable)
     monkeypatch.setattr(activate.systemctl, 'start_osd', fake_start_osd)
     JournalVolume = api.Volume(lv_name='journal',
                                lv_path='/dev/vg/journal',
                                lv_uuid='000',
                                lv_tags=','.join([
                                    "ceph.cluster_name=ceph",
                                    "ceph.journal_device=/dev/vg/journal",
                                    "ceph.journal_uuid=000",
                                    "ceph.type=journal", "ceph.osd_id=0",
                                    "ceph.osd_fsid=1234"
                                ]))
     DataVolume = api.Volume(
         lv_name='data',
         lv_path='/dev/vg/data',
         lv_tags=
         "ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/journal,ceph.journal_uuid=000,ceph.type=data,ceph.osd_id=0,ceph.osd_fsid=1234"
     )
     volumes.append(DataVolume)
     volumes.append(JournalVolume)
     monkeypatch.setattr(api, 'Volumes', lambda: volumes)
     args = Args(osd_id=None,
                 osd_fsid='1234',
                 no_systemd=False,
                 filestore=True)
     activate.Activate([]).activate(args)
     assert fake_enable.calls != []
     assert fake_start_osd.calls != []
Esempio n. 14
0
    def test_report_by_osd_id_for_just_block_wal_and_db_dev(self, monkeypatch):
        tags1 = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=block'
        tags2 = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=wal'
        tags3 = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=db'
        lvs = [
            api.Volume(lv_name='lv1',
                       lv_tags=tags1,
                       lv_path='/dev/vg/lv1',
                       lv_uuid='aaaa',
                       vg_name='vg'),
            api.Volume(lv_name='lv2',
                       lv_tags=tags2,
                       lv_path='/dev/vg/lv2',
                       lv_uuid='bbbb',
                       vg_name='vg'),
            api.Volume(lv_name='lv3',
                       lv_tags=tags3,
                       lv_path='/dev/vg/lv3',
                       lv_uuid='cccc',
                       vg_name='vg'),
        ]
        monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: lvs)

        listing = lvm.listing.List([])
        result = listing.single_report(0)
        assert result['0'][0]['name'] == 'lv1'
        assert result['0'][0]['lv_tags'] == tags1
        assert result['0'][0]['lv_path'] == '/dev/vg/lv1'
        assert result['0'][0]['vg_name'] == 'vg'
        assert result['0'][1]['name'] == 'lv2'
        assert result['0'][1]['lv_tags'] == tags2
        assert result['0'][1]['lv_path'] == '/dev/vg/lv2'
        assert result['0'][1]['vg_name'] == 'vg'
        assert result['0'][2]['name'] == 'lv3'
        assert result['0'][2]['lv_tags'] == tags3
        assert result['0'][2]['lv_path'] == '/dev/vg/lv3'
        assert result['0'][2]['vg_name'] == 'vg'
Esempio n. 15
0
    def test_report_a_ceph_lv(self, monkeypatch):
        # ceph lvs are detected by looking into its tags
        tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data'
        lv = api.Volume(lv_name='lv', vg_name='VolGroup', lv_uuid='aaaa',
                        lv_path='/dev/VolGroup/lv', lv_tags=tags)
        volumes = []
        volumes.append(lv)
        monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs:
                            volumes)

        result = lvm.listing.List([]).single_report('VolGroup/lv')
        assert result['0'][0]['name'] == 'lv'
        assert result['0'][0]['lv_tags'] == tags
        assert result['0'][0]['path'] == '/dev/VolGroup/lv'
        assert result['0'][0]['devices'] == []
Esempio n. 16
0
 def mock_lv():
     size = 21474836480
     dev = create_autospec(device.Device)
     dev.lv_name = 'lv'
     dev.vg_name = 'vg'
     dev.path = '{}/{}'.format(dev.vg_name, dev.lv_name)
     dev.used_by_ceph = False
     dev.vg_size = [size]
     dev.vg_free = dev.vg_size
     dev.lvs = [
         lvm.Volume(vg_name=dev.vg_name,
                    lv_name=dev.lv_name,
                    lv_size=size,
                    lv_tags='')
     ]
     return dev
Esempio n. 17
0
    def test_report_a_ceph_lv_with_devices(self, volumes, pvolumes,
                                           monkeypatch):
        tags = 'ceph.osd_id=0,ceph.type=data'
        pv1 = api.PVolume(vg_name="VolGroup",
                          pv_name='/dev/sda1',
                          pv_uuid='',
                          pv_tags={},
                          lv_uuid="aaaa")
        pv2 = api.PVolume(vg_name="VolGroup",
                          pv_name='/dev/sdb1',
                          pv_uuid='',
                          pv_tags={},
                          lv_uuid="aaaa")
        lv = api.Volume(lv_name='lv',
                        vg_name='VolGroup',
                        lv_uuid='aaaa',
                        lv_path='/dev/VolGroup/lv',
                        lv_tags=tags)
        pvolumes.append(pv1)
        pvolumes.append(pv2)
        volumes.append(lv)
        monkeypatch.setattr(lvm.listing.api, 'get_pvs',
                            lambda **kwargs: pvolumes)
        monkeypatch.setattr(lvm.listing.api, 'get_lvs',
                            lambda **kwargs: volumes)

        listing = lvm.listing.List([])
        listing._pvs = [
            {
                'lv_uuid': 'aaaa',
                'pv_name': '/dev/sda1',
                'pv_tags': '',
                'pv_uuid': ''
            },
            {
                'lv_uuid': 'aaaa',
                'pv_name': '/dev/sdb1',
                'pv_tags': '',
                'pv_uuid': ''
            },
        ]

        result = listing.single_report('VolGroup/lv')
        assert result['0'][0]['name'] == 'lv'
        assert result['0'][0]['lv_tags'] == tags
        assert result['0'][0]['path'] == '/dev/VolGroup/lv'
        assert result['0'][0]['devices'] == ['/dev/sda1', '/dev/sdb1']
Esempio n. 18
0
    def test_report_by_osd_id_for_just_data_dev(self, monkeypatch):
        tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data'
        lvs = [
            api.Volume(lv_name='lv1',
                       lv_tags=tags,
                       lv_path='/dev/vg/lv1',
                       lv_uuid='bbbb',
                       vg_name='vg'),
        ]
        monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: lvs)

        listing = lvm.listing.List([])
        result = listing.single_report(0)
        assert result['0'][0]['name'] == 'lv1'
        assert result['0'][0]['lv_tags'] == tags
        assert result['0'][0]['lv_path'] == '/dev/vg/lv1'
        assert result['0'][0]['vg_name'] == 'vg'
Esempio n. 19
0
 def test_report_a_ceph_lv_with_no_matching_devices(self, volumes, monkeypatch):
     tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data'
     lv = api.Volume(
         lv_name='lv', vg_name='VolGroup',
         lv_uuid='aaaa', lv_path='/dev/VolGroup/lv', lv_tags=tags
     )
     volumes.append(lv)
     monkeypatch.setattr(lvm.listing.api, 'Volumes', lambda: volumes)
     listing = lvm.listing.List([])
     listing._pvs = [
         {'lv_uuid': 'ffff', 'pv_name': '/dev/sda1', 'pv_tags': '', 'pv_uuid': ''},
         {'lv_uuid': 'ffff', 'pv_name': '/dev/sdb1', 'pv_tags': '', 'pv_uuid': ''},
     ]
     result = listing.single_report('VolGroup/lv')
     assert result['0'][0]['name'] == 'lv'
     assert result['0'][0]['lv_tags'] == tags
     assert result['0'][0]['path'] == '/dev/VolGroup/lv'
     assert result['0'][0]['devices'] == []
Esempio n. 20
0
 def test_bluestore_systemd(self, is_root, volumes, monkeypatch, capture):
     fake_enable = Capture()
     fake_start_osd = Capture()
     monkeypatch.setattr('ceph_volume.util.system.path_is_mounted', lambda *a, **kw: True)
     monkeypatch.setattr('ceph_volume.util.system.chown', lambda *a, **kw: True)
     monkeypatch.setattr('ceph_volume.process.run', lambda *a, **kw: True)
     monkeypatch.setattr(activate.systemctl, 'enable_volume', fake_enable)
     monkeypatch.setattr(activate.systemctl, 'start_osd', fake_start_osd)
     DataVolume = api.Volume(
         lv_name='data',
         lv_path='/dev/vg/data',
         lv_tags="ceph.cluster_name=ceph,,ceph.journal_uuid=000,ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234")
     volumes.append(DataVolume)
     monkeypatch.setattr(api, 'Volumes', lambda: volumes)
     args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, bluestore=True)
     activate.Activate([]).activate(args)
     assert fake_enable.calls != []
     assert fake_start_osd.calls != []
Esempio n. 21
0
    def test_setup_device_lv_passed(self, m_get_first_lv, m_set_tags):
        fake_volume = api.Volume(lv_name='lv_foo',
                                 lv_path='/fake-path',
                                 vg_name='vg_foo',
                                 lv_tags='',
                                 lv_uuid='fake-uuid')
        m_get_first_lv.return_value = fake_volume
        result = lvm.prepare.Prepare([]).setup_device(
            device_type='data',
            device_name='vg_foo/lv_foo',
            tags={'ceph.type': 'data'},
            size=0,
            slots=None)

        assert result == ('/fake-path', 'fake-uuid', {
            'ceph.type': 'data',
            'ceph.vdo': '0',
            'ceph.data_uuid': 'fake-uuid',
            'ceph.data_device': '/fake-path'
        })
Esempio n. 22
0
    def test_bluestore_no_systemd_autodetect(self, is_root, monkeypatch, capture):
        fake_enable = Capture()
        fake_start_osd = Capture()
        monkeypatch.setattr('ceph_volume.util.system.path_is_mounted', lambda *a, **kw: True)
        monkeypatch.setattr('ceph_volume.util.system.chown', lambda *a, **kw: True)
        monkeypatch.setattr('ceph_volume.process.run', lambda *a, **kw: True)
        monkeypatch.setattr(activate.systemctl, 'enable_volume', fake_enable)
        monkeypatch.setattr(activate.systemctl, 'start_osd', fake_start_osd)
        DataVolume = api.Volume(
            lv_name='data',
            lv_path='/dev/vg/data',
            lv_tags="ceph.cluster_name=ceph,,ceph.block_uuid=000," + \
                    "ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234")
        volumes = []
        volumes.append(DataVolume)
        monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes))

        args = Args(osd_id=None, osd_fsid='1234', no_systemd=True,
                    bluestore=True, auto_detect_objectstore=True)
        activate.Activate([]).activate(args)
        assert fake_enable.calls == []
        assert fake_start_osd.calls == []
Esempio n. 23
0
    def test_used_by_ceph(self, device_info, volumes, pvolumes, pvolumes_empty,
                          monkeypatch, ceph_type):
        data = {"/dev/sda": {"foo": "bar"}}
        lsblk = {"TYPE": "part"}
        FooPVolume = api.PVolume(pv_name='/dev/sda', pv_uuid="0000",
                                 lv_uuid="0000", pv_tags={}, vg_name="vg")
        pvolumes.append(FooPVolume)
        lv_data = {"lv_name": "lv", "lv_path": "vg/lv", "vg_name": "vg",
                   "lv_uuid": "0000", "lv_tags":
                   "ceph.osd_id=0,ceph.type="+ceph_type}
        lv = api.Volume(**lv_data)
        volumes.append(lv)
        monkeypatch.setattr(api, 'get_pvs', lambda **kwargs:
                            deepcopy(pvolumes))
        monkeypatch.setattr(api, 'get_lvs', lambda **kwargs:
                            deepcopy(volumes))

        device_info(devices=data, lsblk=lsblk, lv=lv_data)
        vg = api.VolumeGroup(vg_name='foo/bar', vg_free_count=6,
                             vg_extent_size=1073741824)
        monkeypatch.setattr(api, 'get_device_vgs', lambda x: [vg])
        disk = device.Device("/dev/sda")
        assert disk.used_by_ceph
Esempio n. 24
0
    def test_physical_wal_gets_reported(self, pvolumes, volumes, monkeypatch):
        tags = 'ceph.osd_id=0,ceph.wal_uuid=x,ceph.type=wal'
        pv = api.PVolume(pv_name='/dev/sda1',
                         pv_tags={},
                         pv_uuid="0000",
                         vg_name="VolGroup",
                         lv_uuid="aaaa")
        osd = api.Volume(lv_name='volume1',
                         lv_uuid='y',
                         lv_tags=tags,
                         lv_path='/dev/VolGroup/lv',
                         vg_name="VolGroup")
        pvolumes.append(pv)
        volumes.append(osd)
        monkeypatch.setattr(lvm.listing.api, 'get_pvs',
                            lambda **kwargs: pvolumes)
        monkeypatch.setattr(lvm.listing.api, 'get_lvs',
                            lambda **kwargs: volumes)

        result = lvm.listing.List([]).full_report()
        assert result['0'][1]['path'] == '/dev/sda1'
        assert result['0'][1]['tags'] == {'PARTUUID': 'x'}
        assert result['0'][1]['type'] == 'wal'
Esempio n. 25
0
 def setup(self):
     self.foo_volume = api.Volume(lv_name='foo',
                                  lv_path='/path/to/lv',
                                  vg_name='foo_group',
                                  lv_tags='')
Esempio n. 26
0
 def test_no_empty_lv_name(self):
     with pytest.raises(ValueError):
         api.Volume(lv_name='', lv_tags='')
Esempio n. 27
0
 def test_single_lv_is_matched(self, volumes, monkeypatch):
     FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.type=data")
     volumes.append(FooVolume)
     monkeypatch.setattr(api, 'Volumes', lambda: volumes)
     assert api.get_lv(lv_name='foo') == FooVolume
Esempio n. 28
0
 def test_find_the_correct_one(self, volumes):
     volume1 = api.Volume(lv_name='volume1', lv_path='/dev/vg/lv', lv_tags='')
     volume2 = api.Volume(lv_name='volume2', lv_path='/dev/vg/lv', lv_tags='')
     volumes.append(volume1)
     volumes.append(volume2)
     assert volumes.get(lv_name='volume1') == volume1
Esempio n. 29
0
 def test_as_dict_populates_path_from_lv_api(self, volumes):
     lv_tags = "ceph.type=data,ceph.fsid=000-aaa"
     osd = api.Volume(lv_name='volume1', lv_path='/dev/vg/lv', lv_tags=lv_tags)
     volumes.append(osd)
     result = volumes.get(lv_tags={'ceph.type': 'data'}).as_dict()
     assert result['path'] == '/dev/vg/lv'
Esempio n. 30
0
 def test_volume_has_multiple_matches(self, volumes):
     volume1 = volume2 = api.Volume(lv_name='foo', lv_path='/dev/vg/lv', lv_tags='')
     volumes.append(volume1)
     volumes.append(volume2)
     with pytest.raises(exceptions.MultipleLVsError):
         volumes.get(lv_name='foo')