Beispiel #1
0
 def test_filestore_systemd(self, is_root, volumes, monkeypatch, capture):
     fake_enable = Capture()
     fake_start_osd = Capture()
     monkeypatch.setattr('ceph_volume.util.system.device_is_mounted', lambda *a, **kw: True)
     monkeypatch.setattr('ceph_volume.util.system.chown', lambda *a, **kw: True)
     monkeypatch.setattr('ceph_volume.process.run', lambda *a, **kw: True)
     monkeypatch.setattr(activate.systemctl, 'enable_volume', fake_enable)
     monkeypatch.setattr(activate.systemctl, 'start_osd', fake_start_osd)
     JournalVolume = api.Volume(
         lv_name='journal',
         lv_path='/dev/vg/journal',
         lv_uuid='000',
         lv_tags=','.join([
             "ceph.cluster_name=ceph", "ceph.journal_device=/dev/vg/journal",
             "ceph.journal_uuid=000", "ceph.type=journal",
             "ceph.osd_id=0","ceph.osd_fsid=1234"])
         )
     DataVolume = api.Volume(
         lv_name='data',
         lv_path='/dev/vg/data',
         lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/journal,ceph.journal_uuid=000,ceph.type=data,ceph.osd_id=0,ceph.osd_fsid=1234")
     volumes.append(DataVolume)
     volumes.append(JournalVolume)
     monkeypatch.setattr(api, 'Volumes', lambda: volumes)
     args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, filestore=True)
     activate.Activate([]).activate(args)
     assert fake_enable.calls != []
     assert fake_start_osd.calls != []
Beispiel #2
0
 def test_bluestore_systemd_autodetect(self, is_root, volumes, monkeypatch,
                                       capture):
     fake_enable = Capture()
     fake_start_osd = Capture()
     monkeypatch.setattr('ceph_volume.util.system.path_is_mounted',
                         lambda *a, **kw: True)
     monkeypatch.setattr('ceph_volume.util.system.chown',
                         lambda *a, **kw: True)
     monkeypatch.setattr('ceph_volume.process.run', lambda *a, **kw: True)
     monkeypatch.setattr(activate.systemctl, 'enable_volume', fake_enable)
     monkeypatch.setattr(activate.systemctl, 'start_osd', fake_start_osd)
     DataVolume = api.Volume(
         lv_name='data',
         lv_path='/dev/vg/data',
         lv_tags=
         "ceph.cluster_name=ceph,,ceph.journal_uuid=000,ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234"
     )
     volumes.append(DataVolume)
     monkeypatch.setattr(api, 'Volumes', lambda: volumes)
     args = Args(osd_id=None,
                 osd_fsid='1234',
                 no_systemd=False,
                 bluestore=True,
                 auto_detect_objectstore=False)
     activate.Activate([]).activate(args)
     assert fake_enable.calls != []
     assert fake_start_osd.calls != []
Beispiel #3
0
    def test_filestore_no_systemd_autodetect(self, is_root, monkeypatch, capture):
        monkeypatch.setattr('ceph_volume.configuration.load', lambda: None)
        fake_enable = Capture()
        fake_start_osd = Capture()
        monkeypatch.setattr('ceph_volume.util.system.device_is_mounted', lambda *a, **kw: True)
        monkeypatch.setattr('ceph_volume.util.system.chown', lambda *a, **kw: True)
        monkeypatch.setattr('ceph_volume.process.run', lambda *a, **kw: True)
        monkeypatch.setattr(activate.systemctl, 'enable_volume', fake_enable)
        monkeypatch.setattr(activate.systemctl, 'start_osd', fake_start_osd)
        JournalVolume = api.Volume(
            lv_name='journal',
            lv_path='/dev/vg/journal',
            lv_uuid='000',
            lv_tags=','.join([
                "ceph.cluster_name=ceph", "ceph.journal_device=/dev/vg/journal",
                "ceph.journal_uuid=000", "ceph.type=journal",
                "ceph.osd_id=0", "ceph.osd_fsid=1234"])
        )
        DataVolume = api.Volume(
            lv_name='data',
            lv_path='/dev/vg/data',
            lv_uuid='001',
            lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/" + \
                    "journal,ceph.journal_uuid=000,ceph.type=data," + \
                    "ceph.osd_id=0,ceph.osd_fsid=1234")
        volumes = []
        volumes.append(DataVolume)
        volumes.append(JournalVolume)
        monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes))

        args = Args(osd_id=None, osd_fsid='1234', no_systemd=True,
                    filestore=True, auto_detect_objectstore=True)
        activate.Activate([]).activate(args)
        assert fake_enable.calls == []
        assert fake_start_osd.calls == []
Beispiel #4
0
    def test_bluestore_no_systemd(self, is_root, monkeypatch, capture):
        monkeypatch.setattr('ceph_volume.configuration.load', lambda: None)
        fake_enable = Capture()
        fake_start_osd = Capture()
        monkeypatch.setattr('ceph_volume.util.system.path_is_mounted',
                            lambda *a, **kw: True)
        monkeypatch.setattr('ceph_volume.util.system.chown',
                            lambda *a, **kw: True)
        monkeypatch.setattr('ceph_volume.process.run', lambda *a, **kw: True)
        monkeypatch.setattr(activate.systemctl, 'enable_volume', fake_enable)
        monkeypatch.setattr(activate.systemctl, 'start_osd', fake_start_osd)
        DataVolume = api.Volume(
            lv_name='data',
            lv_path='/dev/vg/data',
            lv_tags="ceph.cluster_name=ceph,,ceph.journal_uuid=000," + \
                    "ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234")
        volumes = []
        volumes.append(DataVolume)
        monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes))

        args = Args(osd_id=None,
                    osd_fsid='1234',
                    no_systemd=True,
                    bluestore=True)
        activate.Activate([]).activate(args)
        assert fake_enable.calls == []
        assert fake_start_osd.calls == []
Beispiel #5
0
 def test_no_osd_id_no_matching_fsid(self, is_root, volumes, monkeypatch, capture):
     FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=11234")
     volumes.append(FooVolume)
     monkeypatch.setattr(api, 'Volumes', lambda: volumes)
     monkeypatch.setattr(activate, 'activate_filestore', capture)
     args = Args(osd_id=None, osd_fsid='1234')
     with pytest.raises(RuntimeError):
         activate.Activate([]).activate(args)
Beispiel #6
0
 def test_no_osd_id_matches_fsid_bluestore(self, is_root, volumes, monkeypatch, capture):
     FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=1234")
     volumes.append(FooVolume)
     monkeypatch.setattr(api, 'Volumes', lambda: volumes)
     monkeypatch.setattr(activate, 'activate_bluestore', capture)
     args = Args(osd_id=None, osd_fsid='1234', bluestore=True)
     activate.Activate([]).activate(args)
     assert capture.calls[0]['args'][0] == [FooVolume]
Beispiel #7
0
 def test_does_not_detect_osds(self, capsys, is_root, capture, monkeypatch):
     monkeypatch.setattr('ceph_volume.devices.lvm.activate.direct_report', lambda: {})
     args = ['--all']
     activation = activate.Activate(args)
     activation.main()
     out, err = capsys.readouterr()
     assert 'Was unable to find any OSDs to activate' in out
     assert 'Verify OSDs are present with ' in out
Beispiel #8
0
 def test_uses_bluestore(self, capture):
     args = ['--bluestore', '0', 'asdf-ljh-asdf']
     activation = activate.Activate(args)
     activation.activate = capture
     activation.main()
     parsed_args = capture.calls[0]['args'][0]
     assert parsed_args.filestore is False
     assert parsed_args.bluestore is True
Beispiel #9
0
 def test_detects_running_osds(self, capsys, is_root, capture, monkeypatch):
     monkeypatch.setattr('ceph_volume.devices.lvm.activate.direct_report', lambda: direct_report)
     monkeypatch.setattr('ceph_volume.devices.lvm.activate.systemctl.osd_is_active', lambda x: True)
     args = ['--all']
     activation = activate.Activate(args)
     activation.main()
     out, err = capsys.readouterr()
     assert 'a8789a96ce8b process is active. Skipping activation' in out
     assert 'b8218eaa1634 process is active. Skipping activation' in out
Beispiel #10
0
 def test_detects_osds_to_activate_no_systemd(self, is_root, capture, monkeypatch):
     monkeypatch.setattr('ceph_volume.devices.lvm.activate.direct_report', lambda: direct_report)
     args = ['--all', '--no-systemd']
     activation = activate.Activate(args)
     activation.activate = capture
     activation.main()
     calls = sorted(capture.calls, key=lambda x: x['kwargs']['osd_id'])
     assert calls[0]['kwargs']['osd_id'] == '0'
     assert calls[0]['kwargs']['osd_fsid'] == '957d22b7-24ce-466a-9883-b8218eaa1634'
     assert calls[1]['kwargs']['osd_id'] == '1'
     assert calls[1]['kwargs']['osd_fsid'] == 'd0f3e4ad-e52a-4520-afc0-a8789a96ce8b'
Beispiel #11
0
 def test_no_osd_id_no_osd_fsid(self, is_root):
     args = Args(osd_id=None, osd_fsid=None)
     with pytest.raises(RuntimeError) as result:
         activate.Activate([]).activate(args)
     assert result.value.args[0] == 'Please provide both osd_id and osd_fsid'
Beispiel #12
0
 def test_osd_id_no_osd_fsid(self, is_root):
     args = Args(osd_id=42, osd_fsid=None)
     with pytest.raises(RuntimeError) as result:
         activate.Activate([]).activate(args)
     assert result.value.args[0] == 'could not activate osd.42, please provide the osd_fsid too'