From 959ee9bb68eb35daa60c8d065f1951abf0cf658d Mon Sep 17 00:00:00 2001 From: Michael Fritch Date: Wed, 20 May 2020 08:27:17 -0600 Subject: [PATCH] mgr/orch: add explicit naming tests (MDS / RGW) Signed-off-by: Michael Fritch --- src/pybind/mgr/cephadm/__init__.py | 1 + src/pybind/mgr/cephadm/tests/test_cephadm.py | 34 ++++++++++++++++++-- src/pybind/mgr/tests/__init__.py | 2 ++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/pybind/mgr/cephadm/__init__.py b/src/pybind/mgr/cephadm/__init__.py index f390f18c16aaa..9a9f074321133 100644 --- a/src/pybind/mgr/cephadm/__init__.py +++ b/src/pybind/mgr/cephadm/__init__.py @@ -2,5 +2,6 @@ import os if 'UNITTEST' in os.environ: import tests + tests.mock_ceph_modules() # type: ignore from .module import CephadmOrchestrator diff --git a/src/pybind/mgr/cephadm/tests/test_cephadm.py b/src/pybind/mgr/cephadm/tests/test_cephadm.py index 8287fbe6b793e..f7283a97156cd 100644 --- a/src/pybind/mgr/cephadm/tests/test_cephadm.py +++ b/src/pybind/mgr/cephadm/tests/test_cephadm.py @@ -15,7 +15,7 @@ except ImportError: from execnet.gateway_bootstrap import HostNotFound from ceph.deployment.service_spec import ServiceSpec, PlacementSpec, RGWSpec, \ - NFSServiceSpec, IscsiServiceSpec + NFSServiceSpec, IscsiServiceSpec, HostPlacementSpec from ceph.deployment.drive_selection.selector import DriveSelection from ceph.deployment.inventory import Devices, Device from orchestrator import ServiceDescription, DaemonDescription, InventoryHost, \ @@ -455,19 +455,47 @@ class TestCephadm(object): (ServiceSpec('alertmanager'), CephadmOrchestrator.apply_alertmanager), (ServiceSpec('rbd-mirror'), CephadmOrchestrator.apply_rbd_mirror), (ServiceSpec('mds', service_id='fsname'), CephadmOrchestrator.apply_mds), + (ServiceSpec( + 'mds', service_id='fsname', + placement=PlacementSpec( + hosts=[HostPlacementSpec( + hostname='test', + name='fsname', + network='' + )] + ) + ), CephadmOrchestrator.apply_mds), (RGWSpec(rgw_realm='realm', rgw_zone='zone'), CephadmOrchestrator.apply_rgw), + (RGWSpec( + rgw_realm='realm', rgw_zone='zone', + placement=PlacementSpec( + hosts=[HostPlacementSpec( + hostname='test', + name='realm.zone.a', + network='' + )] + ) + ), CephadmOrchestrator.apply_rgw), (NFSServiceSpec('name', pool='pool', namespace='namespace'), CephadmOrchestrator.apply_nfs), (IscsiServiceSpec('name', pool='pool'), CephadmOrchestrator.apply_iscsi), ] ) @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}')) - def test_apply_save(self, spec: ServiceSpec, meth, cephadm_module): + def test_apply_save(self, spec: ServiceSpec, meth, cephadm_module: CephadmOrchestrator): with self._with_host(cephadm_module, 'test'): - spec.placement = PlacementSpec(hosts=['test'], count=1) + if not spec.placement: + spec.placement = PlacementSpec(hosts=['test'], count=1) c = meth(cephadm_module, spec) assert wait(cephadm_module, c) == f'Scheduled {spec.service_name()} update...' assert [d.spec for d in wait(cephadm_module, cephadm_module.describe_service())] == [spec] + cephadm_module._apply_all_services() + + dds = wait(cephadm_module, cephadm_module.list_daemons()) + for dd in dds: + assert dd.service_name() == spec.service_name() + + assert_rm_service(cephadm_module, spec.service_name()) diff --git a/src/pybind/mgr/tests/__init__.py b/src/pybind/mgr/tests/__init__.py index fb6d69e01165b..7bccfc7997088 100644 --- a/src/pybind/mgr/tests/__init__.py +++ b/src/pybind/mgr/tests/__init__.py @@ -54,6 +54,8 @@ if 'UNITTEST' in os.environ: self._ceph_get_version = mock.Mock() self._ceph_get = mock.MagicMock() self._ceph_get_option = mock.MagicMock() + self._ceph_get_context = mock.MagicMock() + self._ceph_register_client = mock.MagicMock() self._configure_logging = lambda *_: None self._unconfigure_logging = mock.MagicMock() self._ceph_log = mock.MagicMock() -- 2.39.5