From b2254050c01d872ebc906708a3b4c8d4fa2105d7 Mon Sep 17 00:00:00 2001 From: Rishabh Dave Date: Mon, 30 Dec 2019 20:26:22 +0530 Subject: [PATCH] ceph-volume: don't use api.lvm.get_lv Use api.lvm.get_lvs() and api.lvm.get_first_lv() instead and update the tests. Signed-off-by: Rishabh Dave --- src/ceph-volume/ceph_volume/devices/lvm/prepare.py | 4 +++- src/ceph-volume/ceph_volume/devices/lvm/zap.py | 3 ++- .../ceph_volume/tests/devices/lvm/test_prepare.py | 5 +++-- src/ceph-volume/ceph_volume/util/device.py | 1 - 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/ceph-volume/ceph_volume/devices/lvm/prepare.py b/src/ceph-volume/ceph_volume/devices/lvm/prepare.py index 284f3c43ac1a4..2e07d15ec0a03 100644 --- a/src/ceph-volume/ceph_volume/devices/lvm/prepare.py +++ b/src/ceph-volume/ceph_volume/devices/lvm/prepare.py @@ -135,6 +135,7 @@ class Prepare(object): raise RuntimeError('unable to use device') return uuid + # TODO: get rid of this method? def get_lv(self, argument): """ Perform some parsing of the command-line value so that the process @@ -148,7 +149,8 @@ class Prepare(object): vg_name, lv_name = argument.split('/') except (ValueError, AttributeError): return None - return api.get_lv(lv_name=lv_name, vg_name=vg_name) + return api.get_first_lv(filters={'lv_name': lv_name, 'vg_name': + vg_name}) def setup_device(self, device_type, device_name, tags, size): """ diff --git a/src/ceph-volume/ceph_volume/devices/lvm/zap.py b/src/ceph-volume/ceph_volume/devices/lvm/zap.py index 9d09713ecf477..0e51d1edb706f 100644 --- a/src/ceph-volume/ceph_volume/devices/lvm/zap.py +++ b/src/ceph-volume/ceph_volume/devices/lvm/zap.py @@ -165,7 +165,8 @@ class Zap(object): Device examples: vg-name/lv-name, /dev/vg-name/lv-name Requirements: Must be a logical volume (LV) """ - lv = api.get_lv(lv_name=device.lv_name, vg_name=device.vg_name) + lv = api.get_first_lv(filters={'lv_name': device.lv_name, 'vg_name': + device.vg_name}) self.unmount_lv(lv) wipefs(device.abspath) diff --git a/src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py b/src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py index f16b2ffffce63..6a2c3fc72f8b4 100644 --- a/src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py +++ b/src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py @@ -1,4 +1,5 @@ import pytest +from ceph_volume.api import lvm as api from ceph_volume.devices import lvm from mock.mock import patch, Mock @@ -119,13 +120,13 @@ class TestGetJournalLV(object): @pytest.mark.parametrize('arg', ['', '///', None, '/dev/sda1']) def test_no_journal_on_invalid_path(self, monkeypatch, arg): - monkeypatch.setattr(lvm.prepare.api, 'get_lv', lambda **kw: False) + monkeypatch.setattr(api, '_get_lv', lambda **kw: False) prepare = lvm.prepare.Prepare([]) assert prepare.get_lv(arg) is None def test_no_journal_lv_found(self, monkeypatch): # patch it with 0 so we know we are getting to get_lv - monkeypatch.setattr(lvm.prepare.api, 'get_lv', lambda **kw: 0) + monkeypatch.setattr(api, '_get_lv', lambda **kw: 0) prepare = lvm.prepare.Prepare([]) assert prepare.get_lv('vg/lv') == 0 diff --git a/src/ceph-volume/ceph_volume/util/device.py b/src/ceph-volume/ceph_volume/util/device.py index c72dfe89666e9..8ea83c30e711a 100644 --- a/src/ceph-volume/ceph_volume/util/device.py +++ b/src/ceph-volume/ceph_volume/util/device.py @@ -252,7 +252,6 @@ class Device(object): # actually unused (not 100% sure) and can simply be removed self.vg_name = vgs[0] self._is_lvm_member = True - self.lvs.extend(lvm.get_device_lvs(path)) return self._is_lvm_member -- 2.39.5