def test_alertmanager_config(self, _run_cephadm, cephadm_module: CephadmOrchestrator): _run_cephadm.side_effect = async_side_effect(('{}', '', 0)) with with_host(cephadm_module, 'test'): with with_service(cephadm_module, AlertManagerSpec()): y = dedent(""" # This file is generated by cephadm. # See https://prometheus.io/docs/alerting/configuration/ for documentation. global: resolve_timeout: 5m http_config: tls_config: insecure_skip_verify: true route: receiver: 'default' routes: - group_by: ['alertname'] group_wait: 10s group_interval: 10s repeat_interval: 1h receiver: 'ceph-dashboard' receivers: - name: 'default' webhook_configs: - name: 'ceph-dashboard' webhook_configs: - url: 'http://[::1]:8080/api/prometheus_receiver' """).lstrip() _run_cephadm.assert_called_with( 'test', 'alertmanager.test', 'deploy', [ '--name', 'alertmanager.test', '--meta-json', '{"service_name": "alertmanager", "ports": [9093, 9094], "ip": null, "deployed_by": [], "rank": null, "rank_generation": null, "extra_container_args": null}', '--config-json', '-', '--tcp-ports', '9093 9094' ], stdin=json.dumps({"files": {"alertmanager.yml": y}, "peers": []}), image='')\
def test_alertmanager_spec_2(): spec = AlertManagerSpec(user_data={'default_webhook_urls': ['foo']}) assert isinstance(spec.user_data, dict) assert 'default_webhook_urls' in spec.user_data.keys()
def test_alertmanager_spec_1(): spec = AlertManagerSpec() assert spec.service_type == 'alertmanager' assert isinstance(spec.user_data, dict) assert len(spec.user_data.keys()) == 0