def test_get_single_vg_multiple_matches_raises_runtimeerror(self, m_get_vgs): fake_vgs = [] fake_vgs.append(api.VolumeGroup(vg_name='vg1')) fake_vgs.append(api.VolumeGroup(vg_name='vg2')) m_get_vgs.return_value = fake_vgs with pytest.raises(RuntimeError) as e: api.get_single_vg() assert "matched more than 1 VG present on this host." in str(e.value)
def test_get_single_vg_one_match(self, m_get_vgs): fake_vgs = [] fake_vgs.append(api.VolumeGroup(vg_name='vg1')) m_get_vgs.return_value = fake_vgs vg = api.get_single_vg() assert isinstance(vg, api.VolumeGroup) assert vg.name == 'vg1'
def zap_lvm_member(self, device): """ An LVM member may have more than one LV and or VG, for example if it is a raw device with multiple partitions each belonging to a different LV Device example: /dev/sda Requirements: An LV or VG present in the device, making it an LVM member """ for lv in device.lvs: if lv.lv_name: mlogger.info('Zapping lvm member {}. lv_path is {}'.format(device.path, lv.lv_path)) self.zap_lv(Device(lv.lv_path)) else: vg = api.get_single_vg(filters={'vg_name': lv.vg_name}) if vg: mlogger.info('Found empty VG {}, removing'.format(vg.vg_name)) api.remove_vg(vg.vg_name)
def test_get_single_vg_no_match_returns_none(self, m_get_vgs): m_get_vgs.return_value = [] vg = api.get_single_vg() assert vg == None