From: Alfredo Deza Date: Wed, 2 May 2018 22:59:51 +0000 (-0400) Subject: ceph-volume tests ensure is_lv detection on LVs X-Git-Tag: v13.2.1~130^2~13 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4e707d6e012b0c079532ae288dc8f79c71f13486;p=ceph.git ceph-volume tests ensure is_lv detection on LVs Signed-off-by: Alfredo Deza (cherry picked from commit 47060a1ef4562b29771bdfb5a375a225f18c228c) --- diff --git a/src/ceph-volume/ceph_volume/tests/api/test_lvm.py b/src/ceph-volume/ceph_volume/tests/api/test_lvm.py index 43fd0a56fe97..77335ea5d9b3 100644 --- a/src/ceph-volume/ceph_volume/tests/api/test_lvm.py +++ b/src/ceph-volume/ceph_volume/tests/api/test_lvm.py @@ -688,3 +688,42 @@ class TestVDOParents(object): '/sys/block': block_path}) result = api._vdo_parents(['dm-3']) assert result == [] + + +class TestSplitNameParser(object): + + def test_keys_are_parsed_without_prefix(self): + line = ["DM_VG_NAME='/dev/mapper/vg';DM_LV_NAME='lv';DM_LV_LAYER=''"] + result = api._splitname_parser(line) + assert result['VG_NAME'] == 'vg' + assert result['LV_NAME'] == 'lv' + assert result['LV_LAYER'] == '' + + def test_vg_name_sans_mapper(self): + line = ["DM_VG_NAME='/dev/mapper/vg';DM_LV_NAME='lv';DM_LV_LAYER=''"] + result = api._splitname_parser(line) + assert '/dev/mapper' not in result['VG_NAME'] + + +class TestIsLV(object): + + def test_is_not_an_lv(self, monkeypatch): + monkeypatch.setattr(api, 'dmsetup_splitname', lambda x: {}) + assert api.is_lv('/dev/sda1', lvs=[]) is False + + def test_lvs_not_found(self, monkeypatch, volumes): + CephVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.type=data") + volumes.append(CephVolume) + splitname = {'LV_NAME': 'data', 'VG_NAME': 'ceph'} + monkeypatch.setattr(api, 'dmsetup_splitname', lambda x: splitname) + assert api.is_lv('/dev/sda1', lvs=volumes) is False + + def test_is_lv(self, monkeypatch, volumes): + CephVolume = api.Volume( + vg_name='ceph', lv_name='data', + lv_path='/dev/vg/foo', lv_tags="ceph.type=data" + ) + volumes.append(CephVolume) + splitname = {'LV_NAME': 'data', 'VG_NAME': 'ceph'} + monkeypatch.setattr(api, 'dmsetup_splitname', lambda x: splitname) + assert api.is_lv('/dev/sda1', lvs=volumes) is True