]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume tests ensure is_lv detection on LVs
authorAlfredo Deza <adeza@redhat.com>
Wed, 2 May 2018 22:59:51 +0000 (18:59 -0400)
committerAlfredo Deza <adeza@redhat.com>
Wed, 1 Aug 2018 15:38:27 +0000 (11:38 -0400)
Signed-off-by: Alfredo Deza <adeza@redhat.com>
(cherry picked from commit 47060a1ef4562b29771bdfb5a375a225f18c228c)

src/ceph-volume/ceph_volume/tests/api/test_lvm.py

index 5157189137109f65da23c9285f00993c8b4f9456..27246a87f08024d8e18995ca80ee76f07774c69a 100644 (file)
@@ -578,3 +578,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