From: Michael Fritch Date: Wed, 20 May 2020 14:27:17 +0000 (-0600) Subject: mgr/orch: add explicit naming tests (MDS / RGW) X-Git-Tag: v16.1.0~2251^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=959ee9bb68eb35daa60c8d065f1951abf0cf658d;p=ceph.git mgr/orch: add explicit naming tests (MDS / RGW) Signed-off-by: Michael Fritch --- diff --git a/src/pybind/mgr/cephadm/__init__.py b/src/pybind/mgr/cephadm/__init__.py index f390f18c16aa..9a9f07432113 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 8287fbe6b793..f7283a97156c 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 fb6d69e01165..7bccfc799708 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()