From a1906f997a210f6110d8e0652979006ad88e3d73 Mon Sep 17 00:00:00 2001 From: Aashish Sharma Date: Tue, 21 Apr 2026 13:40:54 +0530 Subject: [PATCH] mgr/cephadm: add unit tests Signed-off-by: Aashish Sharma --- .../cephadm/tests/services/test_monitoring.py | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/src/pybind/mgr/cephadm/tests/services/test_monitoring.py b/src/pybind/mgr/cephadm/tests/services/test_monitoring.py index 57a9d8a3da1..494075da155 100644 --- a/src/pybind/mgr/cephadm/tests/services/test_monitoring.py +++ b/src/pybind/mgr/cephadm/tests/services/test_monitoring.py @@ -1867,3 +1867,67 @@ spec: error_ok=True, use_current_daemon_image=False, ) + + @patch("cephadm.services.monitoring.PrometheusService.get_dependencies", lambda *a, **k: []) + def test_prometheus_config_sets_default_when_missing(self, cephadm_module): + + svc = PrometheusService(cephadm_module) + + daemon_spec = Mock() + daemon_spec.daemon_type = 'prometheus' + daemon_spec.service_name = 'prometheus' + daemon_spec.host = 'test' + + cephadm_module.mon_command = Mock(return_value=(-2, '', '')) + cephadm_module.check_mon_command = Mock() + + loader = Mock() + loader.get_source.return_value = ("raw_template_content", None, None) + cephadm_module.template.engine.env.loader = loader + + cephadm_module.template.render = Mock(return_value="rendered_config") + + cephadm_module._get_security_config = Mock(return_value=(False, False, False)) + cephadm_module._get_alertmanager_credentials = Mock(return_value=(None, None)) + cephadm_module._get_mgr_ips = Mock(return_value=['127.0.0.1']) + + cephadm_module.spec_store = { + 'prometheus': Mock() + } + cephadm_module.spec_store['prometheus'].spec = PrometheusSpec('prometheus') + + svc.generate_config(daemon_spec) + + cephadm_module.check_mon_command.assert_called_once_with({ + 'prefix': 'config-key set', + 'key': 'mgr/cephadm/services/prometheus/prometheus.yml', + 'val': "raw_template_content" + }) + + @patch("cephadm.services.monitoring.PrometheusService.get_dependencies", lambda *a, **k: []) + def test_prometheus_config_does_not_override_existing(self, cephadm_module): + + svc = PrometheusService(cephadm_module) + + daemon_spec = Mock() + daemon_spec.daemon_type = 'prometheus' + daemon_spec.service_name = 'prometheus' + daemon_spec.host = 'test' + + cephadm_module.mon_command = Mock(return_value=(0, 'existing', '')) + cephadm_module.check_mon_command = Mock() + + cephadm_module.template.render = Mock(return_value="rendered_config") + + cephadm_module._get_security_config = Mock(return_value=(False, False, False)) + cephadm_module._get_alertmanager_credentials = Mock(return_value=(None, None)) + cephadm_module._get_mgr_ips = Mock(return_value=['127.0.0.1']) + + cephadm_module.spec_store = { + 'prometheus': Mock() + } + cephadm_module.spec_store['prometheus'].spec = PrometheusSpec('prometheus') + + svc.generate_config(daemon_spec) + + cephadm_module.check_mon_command.assert_not_called() -- 2.47.3