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: v15.2.4~69^2~21 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d72964e786d8cc5ca4a8b24134f0c1a7683d8a49;p=ceph.git mgr/orch: add explicit naming tests (MDS / RGW) Signed-off-by: Michael Fritch (cherry picked from commit 959ee9bb68eb35daa60c8d065f1951abf0cf658d) --- 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 069b81f4a35a..cb9453f03670 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, \ @@ -482,19 +482,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 40c3c2c2fd68..d3b10393e8ff 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()