]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/cephadm: When create osd which include db, _create_daemon will be executed twice...
authorjianglong01 <jianglong01@qianxin.com>
Tue, 8 Jun 2021 06:00:48 +0000 (14:00 +0800)
committerjianglong01 <jianglong01@qianxin.com>
Wed, 9 Jun 2021 05:04:14 +0000 (13:04 +0800)
Signed-off-by: jianglong01 <jianglong01@qianxin.com>
src/pybind/mgr/cephadm/services/osd.py
src/pybind/mgr/cephadm/tests/test_cephadm.py

index 2b49a581bf505ceb34e4570d4193d2e9146f6ada..3c30a413980210f4077ad35d47622fb2322b0f87 100644 (file)
@@ -112,6 +112,8 @@ class OSDService(CephService):
         created = []
         for osd_id, osds in osds_elems.items():
             for osd in osds:
+                if osd['type'] == 'db':
+                    continue
                 if osd['tags']['ceph.cluster_fsid'] != fsid:
                     logger.debug('mismatched fsid, skipping %s' % osd)
                     continue
index 84c4cb5f6a6d360a2a1d8099e0f1f5712740439e..72e365b345fbc97faf2c0741bddc1f52630cf6a7 100644 (file)
@@ -1221,7 +1221,7 @@ Traceback (most recent call last):
             ]
 
     @mock.patch("cephadm.serve.CephadmServe._run_cephadm")
-    def test_osd_activate(self, _run_cephadm, cephadm_module: CephadmOrchestrator):
+    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', {
@@ -1239,7 +1239,41 @@ Traceback (most recent call last):
                     '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)
+            assert cephadm_module._osd_activate(
+                ['test']).stdout == "Created osd(s) 1 on host 'test'"
+
+    @mock.patch("cephadm.serve.CephadmServe._run_cephadm")
+    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'
                     }
+                ]
+            })
+
+            ceph_volume_lvm_list = {
+                '1': [{
+                    'tags': {
+                        'ceph.cluster_fsid': cephadm_module._cluster_fsid,
+                        'ceph.osd_fsid': 'uuid'
+                    },
+                    'type': 'data'
+                }, {
+                    'tags': {
+                        'ceph.cluster_fsid': cephadm_module._cluster_fsid,
+                        'ceph.osd_fsid': 'uuid'
+                    },
+                    'type': 'db'
                 }]
             }
             _run_cephadm.return_value = (json.dumps(ceph_volume_lvm_list), '', 0)