]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: test_cephadm: make use of with_osd_daemon
authorSebastian Wagner <sewagner@redhat.com>
Wed, 10 Nov 2021 11:11:48 +0000 (12:11 +0100)
committerSebastian Wagner <sewagner@redhat.com>
Wed, 10 Nov 2021 12:49:24 +0000 (13:49 +0100)
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
src/pybind/mgr/cephadm/tests/test_cephadm.py

index 4db0b413380a63df2b90b6d1e9add4324c90db15..a3a81f994648357529a98630006c5f8461b67093 100644 (file)
@@ -81,17 +81,36 @@ def with_osd_daemon(cephadm_module: CephadmOrchestrator, _run_cephadm, host: str
         ]
     })
 
-    ceph_volume_lvm_list = ceph_volume_lvm_list or {
-        str(osd_id): [{
-            'tags': {
-                'ceph.cluster_fsid': cephadm_module._cluster_fsid,
-                'ceph.osd_fsid': 'uuid'
-            },
-            'type': 'data'
-        }]
-    }
-    _run_cephadm.return_value = (json.dumps(ceph_volume_lvm_list), '', 0)
-    _run_cephadm.reset_mock()
+    _run_cephadm.reset_mock(return_value=True, side_effect=True)
+    if ceph_volume_lvm_list:
+        _run_cephadm.side_effect = ceph_volume_lvm_list
+    else:
+        def _ceph_volume_list(s, host, entity, cmd, **kwargs):
+            logging.info(f'ceph-volume cmd: {cmd}')
+            if 'raw' in cmd:
+                return json.dumps({
+                    "21a4209b-f51b-4225-81dc-d2dca5b8b2f5": {
+                        "ceph_fsid": cephadm_module._cluster_fsid,
+                        "device": "/dev/loop0",
+                        "osd_id": 21,
+                        "osd_uuid": "21a4209b-f51b-4225-81dc-d2dca5b8b2f5",
+                        "type": "bluestore"
+                    },
+                }), '', 0
+            if 'lvm' in cmd:
+                return json.dumps({
+                    str(osd_id): [{
+                        'tags': {
+                            'ceph.cluster_fsid': cephadm_module._cluster_fsid,
+                            'ceph.osd_fsid': 'uuid'
+                        },
+                        'type': 'data'
+                    }]
+                }), '', 0
+            return '{}', '', 0
+
+        _run_cephadm.side_effect = _ceph_volume_list
+
     assert cephadm_module._osd_activate(
         [host]).stdout == f"Created osd(s) 1 on host '{host}'"
     assert _run_cephadm.mock_calls == [
@@ -101,6 +120,8 @@ def with_osd_daemon(cephadm_module: CephadmOrchestrator, _run_cephadm, host: str
                   ['--name', f'osd.{osd_id}', '--meta-json', mock.ANY,
                    '--config-json', '-', '--osd-fsid', 'uuid'],
                   stdin=mock.ANY, image=''),
+        mock.call(host, 'osd', 'ceph-volume',
+                  ['--', 'raw', 'list', '--format', 'json'], no_fsid=False, image=''),
     ]
     dd = cephadm_module.cache.get_daemon(f'osd.{osd_id}', host=host)
     assert dd.name() == f'osd.{osd_id}'
@@ -1550,53 +1571,8 @@ Traceback (most recent call last):
     def test_osd_activate_datadevice(self, _run_cephadm, cephadm_module: CephadmOrchestrator):
         _run_cephadm.return_value = ('{}', '', 0)
         with with_host(cephadm_module, 'test', refresh_hosts=False):
-            cephadm_module.mock_store_set('_ceph_get', 'osd_map', {
-                'osds': [
-                    {
-                        'osd': 1,
-                        'up_from': 0,
-                        'uuid': 'uuid'
-                    }
-                ]
-            })
-
-            def _ceph_volume_list(s, host, entity, cmd, **kwargs):
-                logging.info(f'ceph-volume cmd: {cmd}')
-                if 'raw' in cmd:
-                    return json.dumps({
-                        "21a4209b-f51b-4225-81dc-d2dca5b8b2f5": {
-                            "ceph_fsid": "64c84f19-fe1d-452a-a731-ab19dc144aa8",
-                            "device": "/dev/loop0",
-                            "osd_id": 21,
-                            "osd_uuid": "21a4209b-f51b-4225-81dc-d2dca5b8b2f5",
-                            "type": "bluestore"
-                        },
-                    }), '', 0
-                if 'lvm' in cmd:
-                    return json.dumps({
-                        '1': [{
-                            'tags': {
-                                'ceph.cluster_fsid': cephadm_module._cluster_fsid,
-                                'ceph.osd_fsid': 'uuid'
-                            },
-                            'type': 'data'
-                        }]
-                    }), '', 0
-                return '{}', '', 0
-            _run_cephadm.reset_mock(return_value=True)
-            _run_cephadm.side_effect = _ceph_volume_list
-            assert cephadm_module._osd_activate(
-                ['test']).stdout == "Created osd(s) 1 on host 'test'"
-            assert _run_cephadm.mock_calls == [
-                mock.call('test', 'osd', 'ceph-volume',
-                          ['--', 'lvm', 'list', '--format', 'json'], no_fsid=False, image=''),
-                mock.call('test', 'osd.1', 'deploy',
-                          ['--name', 'osd.1', '--meta-json', mock.ANY,
-                              '--config-json', '-', '--osd-fsid', 'uuid'],
-                          stdin=mock.ANY, image=''),
-                mock.call('test', 'osd', 'ceph-volume',
-                          ['--', 'raw', 'list', '--format', 'json'], no_fsid=False, image=''),
-            ]
+            with with_osd_daemon(cephadm_module, _run_cephadm, 'test', 1):
+                pass
 
     @mock.patch("cephadm.serve.CephadmServe._run_cephadm")
     def test_osd_activate_datadevice_fail(self, _run_cephadm, cephadm_module: CephadmOrchestrator):
@@ -1642,15 +1618,6 @@ Traceback (most recent call last):
     def test_osd_activate_datadevice_dbdevice(self, _run_cephadm, cephadm_module: CephadmOrchestrator):
         _run_cephadm.return_value = ('{}', '', 0)
         with with_host(cephadm_module, 'test', refresh_hosts=False):
-            cephadm_module.mock_store_set('_ceph_get', 'osd_map', {
-                'osds': [
-                    {
-                        'osd': 1,
-                        'up_from': 0,
-                        'uuid': 'uuid'
-                    }
-                ]
-            })
 
             def _ceph_volume_list(s, host, entity, cmd, **kwargs):
                 logging.info(f'ceph-volume cmd: {cmd}')
@@ -1681,17 +1648,6 @@ Traceback (most recent call last):
                         }]
                     }), '', 0
                 return '{}', '', 0
-            _run_cephadm.reset_mock(return_value=True)
-            _run_cephadm.side_effect = _ceph_volume_list
-            assert cephadm_module._osd_activate(
-                ['test']).stdout == "Created osd(s) 1 on host 'test'"
-            assert _run_cephadm.mock_calls == [
-                mock.call('test', 'osd', 'ceph-volume',
-                          ['--', 'lvm', 'list', '--format', 'json'], no_fsid=False, image=''),
-                mock.call('test', 'osd.1', 'deploy',
-                          ['--name', 'osd.1', '--meta-json', mock.ANY,
-                              '--config-json', '-', '--osd-fsid', 'uuid'],
-                          stdin=mock.ANY, image=''),
-                mock.call('test', 'osd', 'ceph-volume',
-                          ['--', 'raw', 'list', '--format', 'json'], no_fsid=False, image=''),
-            ]
+
+            with with_osd_daemon(cephadm_module, _run_cephadm, 'test', 1, ceph_volume_lvm_list=_ceph_volume_list):
+                pass