def test_automation_update_dns_cache(test_cfg, site: Site): cache_path = "var/check_mk/ipaddresses.cache" if site.file_exists(cache_path): site.delete_file(cache_path) try: site.openapi.create_host("update-dns-cache-host") site.openapi.create_host("localhost") site.write_text_file(cache_path, "{('bla', 4): '127.0.0.1'}") result = _execute_automation(site, "update-dns-cache") assert isinstance(result, results.UpdateDNSCacheResult) assert result.n_updated > 0 assert result.failed_hosts == ["update-dns-cache-host"] assert site.file_exists(cache_path) cache = eval(site.read_file(cache_path)) # pylint:disable=eval-used assert isinstance(cache, dict) assert cache[("localhost", 4)] == "127.0.0.1" assert ("bla", 4) not in cache finally: site.openapi.delete_host("localhost") site.openapi.delete_host("update-dns-cache-host")
def test_automation_set_autochecks(test_cfg, site: Site): hostname = HostName("blablahost") new_items: SetAutochecksTable = { ("df", "xxx"): ("Filesystem xxx", {}, { "xyz": "123" }, [hostname]), ("uptime", None): ("Uptime", None, {}, [hostname]), } try: assert isinstance( _execute_automation( site, "set-autochecks", args=[hostname], stdin=repr(new_items), ), results.SetAutochecksResult, ) autochecks_file = "%s/%s.mk" % (cmk.utils.paths.autochecks_dir, hostname) assert os.path.exists(autochecks_file) data = autochecks.AutochecksStore(hostname).read() services = [( (str(s.check_plugin_name), s.item), s.parameters, s.service_labels, ) for s in data] assert sorted(services) == [ ( ("df", "xxx"), {}, { "xyz": "123" }, ), ( ("uptime", None), None, {}, ), ] assert site.file_exists("var/check_mk/autochecks/%s.mk" % hostname) finally: if site.file_exists("var/check_mk/autochecks/%s.mk" % hostname): site.delete_file("var/check_mk/autochecks/%s.mk" % hostname)
def test_load_dashboard_plugin(request, site: Site): plugin_path = "local/lib/check_mk/gui/plugins/dashboard/test_plugin.py" def cleanup(): site.delete_file(plugin_path) request.addfinalizer(cleanup) assert not site.file_exists("tmp/dashboard_test") site.write_text_file( plugin_path, """ with open("%s", "w") as f: f.write("ding") """ % site.path("tmp/dashboard_test"), ) # Reload site apache to trigger the reload of our plugin site.omd("reload", "apache") def file_created(): return site.file_exists("tmp/dashboard_test") # We need to wait some time for apache to initialize our application wait_until(file_created, timeout=60, interval=1)
def test_automation_get_configuration(test_cfg, site: Site): variable_names = [ "agent_port", ] automation_result = _execute_automation( site, "get-configuration", stdin=repr(variable_names), ) assert isinstance(automation_result, results.GetConfigurationResult) assert automation_result.result["agent_port"] == 6556 try: site.write_text_file("etc/check_mk/main.mk", "agent_port = 6558") result = _execute_automation(site, "get-configuration", stdin=repr(variable_names)).result assert result["agent_port"] == 6558 site.write_text_file("etc/check_mk/conf.d/agent-port.mk", "agent_port = 1234") result = _execute_automation(site, "get-configuration", stdin=repr(variable_names)).result assert result["agent_port"] == 6558 site.write_text_file("etc/check_mk/main.mk", "") result = _execute_automation(site, "get-configuration", stdin=repr(variable_names)).result assert result["agent_port"] == 6556 site.delete_file("etc/check_mk/conf.d/agent-port.mk") result = _execute_automation(site, "get-configuration", stdin=repr(variable_names)).result assert result["agent_port"] == 6556 finally: if site.file_exists("etc/check_mk/conf.d/agent-port.mk"): site.delete_file("etc/check_mk/conf.d/agent-port.mk") site.write_text_file("etc/check_mk/main.mk", "")
def _create_cmk_backup(site: Site, execute): p = execute(["cmk", "--backup", "x.tgz"], cwd=site.root) assert p.returncode == 0, on_failure(p) assert p.stderr == "" assert p.stdout == "" assert site.file_exists("x.tgz")
def test_dcd_logrotate(site: Site): assert site.file_exists("etc/logrotate.d/dcd")
def test_dcd_exists(site: Site): assert site.file_exists("bin/dcd")