def test_filter_by_lv_uuid_nothing_found(self, volumes): osd = api.Volume(lv_name='volume1', lv_path='/dev/volume1', lv_uuid='1111', lv_tags='') journal = api.Volume(lv_name='volume2', lv_path='/dev/volume2', lv_uuid='', lv_tags='') volumes.append(osd) volumes.append(journal) volumes.filter(lv_uuid='22222') assert volumes == []
def test_filter_by_lv_path(self, volumes): osd = api.Volume(lv_name='volume1', lv_path='/dev/volume1', lv_tags='') journal = api.Volume(lv_name='volume2', lv_path='/dev/volume2', lv_tags='') volumes.append(osd) volumes.append(journal) volumes.filter(lv_path='/dev/volume1') assert len(volumes) == 1 assert volumes[0].lv_name == 'volume1'
def test_filter_by_vg_name(self, volumes): lv_tags = "ceph.type=data,ceph.fsid=000-aaa" osd = api.Volume(lv_name='volume1', vg_name='ceph_vg', lv_tags=lv_tags) journal = api.Volume(lv_name='volume2', vg_name='system_vg', lv_tags='ceph.type=journal') volumes.append(osd) volumes.append(journal) volumes.filter(vg_name='ceph_vg') assert len(volumes) == 1 assert volumes[0].lv_name == 'volume1'
def test_filter_by_tag(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) journal = api.Volume(lv_name='volume2', lv_path='/dev/vg/lv', lv_tags='ceph.type=journal') volumes.append(osd) volumes.append(journal) volumes.filter(lv_tags={'ceph.type': 'data'}) assert len(volumes) == 1 assert volumes[0].lv_name == 'volume1'
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
def test_filter_by_tag_does_not_match_one(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) journal = api.Volume(lv_name='volume2', lv_path='/dev/vg/lv', lv_tags='ceph.osd_id=1,ceph.type=journal') volumes.append(osd) volumes.append(journal) # note the different osd_id! volumes.filter(lv_tags={'ceph.type': 'data', 'ceph.osd_id': '2'}) assert volumes == []
def test_single_pv_is_matched_by_uuid(self, volumes, monkeypatch): FooVolume = api.Volume( lv_name='foo', lv_path='/dev/vg/foo', lv_uuid='1111', lv_tags="ceph.type=data") volumes.append(FooVolume) monkeypatch.setattr(api, 'Volumes', lambda: volumes) assert api.get_lv(lv_uuid='1111') == FooVolume
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')
def test_no_osd_id_no_matching_fsid(self, is_root, volumes, monkeypatch, capture): FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=11234") volumes.append(FooVolume) monkeypatch.setattr(api, 'Volumes', lambda: volumes) monkeypatch.setattr(activate, 'activate_filestore', capture) args = Args(osd_id=None, osd_fsid='1234') with pytest.raises(RuntimeError): activate.Activate([]).activate(args)
def test_no_osd_id_matches_fsid(self, is_root, volumes, monkeypatch, capture): FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=1234") volumes.append(FooVolume) monkeypatch.setattr(api, 'Volumes', lambda: volumes) monkeypatch.setattr(activate, 'activate_filestore', capture) args = Args(osd_id=None, osd_fsid='1234') activate.Activate([]).activate(args) assert capture.calls[0]['args'][0] == [FooVolume]
def setup(self): self.foo_volume = api.Volume(lv_name='foo', lv_path='/path', vg_name='foo_group', lv_tags='')