def mock_livestatus( with_context: bool = False, with_html: bool = False ) -> Generator[MockLiveStatusConnection, None, None]: live = MockLiveStatusConnection() env = EnvironBuilder().get_environ() req = http.Request(env) resp = http.Response() app_context: ContextManager req_context: ContextManager if with_html: html_obj = None else: html_obj = HTMLGenerator( request=req, output_funnel=OutputFunnel(resp), output_format="html", mobile=is_mobile(req, resp), ) if with_context: app_context = AppContext(None, stack=app_stack()) req_context = RequestContext( html_obj=html_obj, req=req, resp=resp, funnel=OutputFunnel(resp), config_obj=make_config_object(get_default_config()), user=LoggedInNobody(), display_options=DisplayOptions(), prefix_logs_with_url=False, stack=request_stack(), url_filter=PrependURLFilter(), ) else: app_context = contextlib.nullcontext() req_context = contextlib.nullcontext() with app_context, req_context, mock.patch( "cmk.gui.sites._get_enabled_and_disabled_sites", new=live.enabled_and_disabled_sites), mock.patch( "livestatus.MultiSiteConnection.expect_query", new=live.expect_query, create=True), mock.patch( "livestatus.SingleSiteConnection._create_socket", new=live.create_socket), mock.patch.dict( os.environ, { "OMD_ROOT": "/", "OMD_SITE": "NO_SITE" }): # We don't want to be polluted by other tests. omd_site.cache_clear() yield live # We don't want to pollute other tests. omd_site.cache_clear()
def _request_context(secure=True): import os import mock from werkzeug.test import create_environ from cmk.gui.utils.script_helpers import request_context if secure: protocol = 'https' else: protocol = 'http' # Previous tests already set the site to "heute", which makes this test fail. omd_site.cache_clear() with mock.patch.dict(os.environ, {'OMD_SITE': 'NO_SITE'}), \ request_context(create_environ(base_url=f"{protocol}://localhost:5000/")): yield
def patch_omd_site(monkeypatch): monkeypatch.setenv("OMD_SITE", "NO_SITE") omd_site.cache_clear() _touch(cmk.utils.paths.htpasswd_file) store.makedirs(cmk.utils.paths.autochecks_dir) store.makedirs(cmk.utils.paths.var_dir + "/web") store.makedirs(cmk.utils.paths.var_dir + "/php-api") store.makedirs(cmk.utils.paths.var_dir + "/wato/php-api") store.makedirs(cmk.utils.paths.var_dir + "/wato/auth") store.makedirs(cmk.utils.paths.tmp_dir + "/wato/activation") store.makedirs(cmk.utils.paths.omd_root + "/var/log") store.makedirs(cmk.utils.paths.omd_root + "/tmp/check_mk") store.makedirs(cmk.utils.paths.default_config_dir + "/conf.d/wato") store.makedirs(cmk.utils.paths.default_config_dir + "/multisite.d/wato") store.makedirs(cmk.utils.paths.default_config_dir + "/mkeventd.d/wato") _touch(cmk.utils.paths.default_config_dir + "/mkeventd.mk") _touch(cmk.utils.paths.default_config_dir + "/multisite.mk") yield omd_site.cache_clear()
def patch_omd_site(monkeypatch): monkeypatch.setenv("OMD_SITE", "NO_SITE") monkeypatch.setenv("OMD_ROOT", str(cmk.utils.paths.omd_root)) omd_site.cache_clear() _touch(cmk.utils.paths.htpasswd_file) store.makedirs(cmk.utils.paths.autochecks_dir) store.makedirs(cmk.utils.paths.var_dir + "/web") store.makedirs(cmk.utils.paths.var_dir + "/php-api") store.makedirs(cmk.utils.paths.var_dir + "/wato/php-api") store.makedirs(cmk.utils.paths.var_dir + "/wato/auth") store.makedirs(cmk.utils.paths.tmp_dir + "/wato/activation") store.makedirs(cmk.utils.paths.omd_root / "var/log") store.makedirs(cmk.utils.paths.omd_root / "tmp/check_mk") store.makedirs(cmk.utils.paths.default_config_dir + "/conf.d/wato") store.makedirs(cmk.utils.paths.default_config_dir + "/multisite.d/wato") store.makedirs(cmk.utils.paths.default_config_dir + "/mkeventd.d/wato") _touch(cmk.utils.paths.default_config_dir + "/mkeventd.mk") _touch(cmk.utils.paths.default_config_dir + "/multisite.mk") omd_config_dir = "%s/etc/omd" % (cmk.utils.paths.omd_root, ) _dump( omd_config_dir + "/site.conf", """CONFIG_ADMIN_MAIL='' CONFIG_AGENT_RECEIVER='on' CONFIG_AGENT_RECEIVER_PORT='8000' CONFIG_APACHE_MODE='own' CONFIG_APACHE_TCP_ADDR='127.0.0.1' CONFIG_APACHE_TCP_PORT='5002' CONFIG_AUTOSTART='off' CONFIG_CORE='cmc' CONFIG_LIVEPROXYD='on' CONFIG_LIVESTATUS_TCP='off' CONFIG_LIVESTATUS_TCP_ONLY_FROM='0.0.0.0 ::/0' CONFIG_LIVESTATUS_TCP_PORT='6557' CONFIG_LIVESTATUS_TCP_TLS='on' CONFIG_MKEVENTD='on' CONFIG_MKEVENTD_SNMPTRAP='off' CONFIG_MKEVENTD_SYSLOG='on' CONFIG_MKEVENTD_SYSLOG_TCP='off' CONFIG_MULTISITE_AUTHORISATION='on' CONFIG_MULTISITE_COOKIE_AUTH='on' CONFIG_NAGIOS_THEME='classicui' CONFIG_NSCA='off' CONFIG_NSCA_TCP_PORT='5667' CONFIG_PNP4NAGIOS='on' CONFIG_TMPFS='on'""", ) _dump( cmk.utils.paths.default_config_dir + "/mkeventd.d/wato/rules.mk", r""" # Written by WATO # encoding: utf-8 rule_packs += \ [{'id': 'default', 'title': 'Default rule pack', 'rules': [], 'disabled': False, 'hits': 0}] """, ) yield omd_site.cache_clear()