From fce9f6ef60e3725ac6912bcb150ae59e36ff56fb Mon Sep 17 00:00:00 2001 From: Noah Watkins Date: Wed, 16 Jan 2019 15:50:08 -0800 Subject: [PATCH] cv: support zap by osd fsid Signed-off-by: Noah Watkins --- library/ceph_volume.py | 17 ++++++++++++++--- library/test_ceph_volume.py | 13 +++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/library/ceph_volume.py b/library/ceph_volume.py index 85d25242d..53e58a90f 100644 --- a/library/ceph_volume.py +++ b/library/ceph_volume.py @@ -49,6 +49,10 @@ options: description: - If data is a lv, this must be the name of the volume group it belongs to. required: false + osd_fsid: + description: + - The OSD FSID + required: false journal: description: - The logical volume name or partition to use as a filestore journal. @@ -441,7 +445,7 @@ def zap_devices(module, container_image): ''' # get module variables - data = module.params['data'] + data = module.params.get('data', None) data_vg = module.params.get('data_vg', None) journal = module.params.get('journal', None) journal_vg = module.params.get('journal_vg', None) @@ -449,13 +453,19 @@ def zap_devices(module, container_image): db_vg = module.params.get('db_vg', None) wal = module.params.get('wal', None) wal_vg = module.params.get('wal_vg', None) - data = get_data(data, data_vg) + osd_fsid = module.params.get('osd_fsid', None) # build the CLI action = ['lvm', 'zap'] cmd = build_ceph_volume_cmd(action, container_image) cmd.append('--destroy') - cmd.append(data) + + if osd_fsid: + cmd.extend(['--osd-fsid', osd_fsid]) + + if data: + data = get_data(data, data_vg) + cmd.append(data) if journal: journal = get_journal(journal, journal_vg) @@ -496,6 +506,7 @@ def run_module(): block_db_size=dict(type='str', required=False, default='-1'), report=dict(type='bool', required=False, default=False), containerized=dict(type='str', required=False, default=False), + osd_fsid=dict(type='str', required=False), ) module = AnsibleModule( diff --git a/library/test_ceph_volume.py b/library/test_ceph_volume.py index f7808e5d1..e262b75c2 100644 --- a/library/test_ceph_volume.py +++ b/library/test_ceph_volume.py @@ -86,6 +86,19 @@ class TestCephVolumeModule(object): result = ceph_volume.zap_devices(fake_module, fake_container_image) assert result == expected_command_list + def test_zap_osd_fsid(self): + fake_module = MagicMock() + fake_module.params = {'osd_fsid': 'a_uuid'} + fake_container_image = None + expected_command_list = ['ceph-volume', + 'lvm', + 'zap', + '--destroy', + '--osd-fsid', + 'a_uuid'] + result = ceph_volume.zap_devices(fake_module, fake_container_image) + assert result == expected_command_list + def test_activate_osd(self): expected_command_list = ['ceph-volume', 'lvm',