コード例 #1
0
ファイル: conftest.py プロジェクト: gradecke/checkmk
def fixture_edition_short(monkeypatch, request):
    edition_short = request.param
    if edition_short == "cme" and not is_managed_repo():
        pytest.skip("Needed files are not available")

    if edition_short == "cee" and not is_enterprise_repo():
        pytest.skip("Needed files are not available")

    monkeypatch.setattr(cmk_version, "edition_short", lambda: edition_short)
    yield edition_short
コード例 #2
0
def test_unused_scss_variables() -> None:
    definitions, usages = _scss_variables(_scss_files())
    unused = [var for var in definitions if var not in usages]
    expected = [
        "$self",  # used in interpolation with #{}
    ]

    if not is_enterprise_repo():
        expected.append("$ntop-protocol-painter-padding-top")

    assert sorted(unused) == sorted(expected), "Found unused SCSS variables"
コード例 #3
0
def fixture_edition(monkeypatch, request) -> Iterable[cmk_version.Edition]:
    edition_short = request.param
    if edition_short == "cpe" and not is_plus_repo():
        pytest.skip("Needed files are not available")

    if edition_short == "cme" and not is_managed_repo():
        pytest.skip("Needed files are not available")

    if edition_short == "cee" and not is_enterprise_repo():
        pytest.skip("Needed files are not available")

    yield cmk_version.Edition[edition_short.upper()]
コード例 #4
0
ファイル: test_main.py プロジェクト: troelsarvin/checkmk
def test_load_plugins():
    main.load_plugins()
    expected = [
        "sites",
        "hosts_and_folders",
        "update_core_config",
        "warn_remote_site",
        "warn_about_network_ports",
        "warn_about_configs_to_review",
    ]

    if is_enterprise_repo():
        expected.append("dcd_connections")

    assert sorted(rename_action_registry.keys()) == sorted(expected)
コード例 #5
0
def register(linter):
    # Disable some CEE/CME specific things when linting CRE repos
    if not is_enterprise_repo():
        # Is used to disable import-error. Would be nice if no-name-in-module could be
        # disabled using this, but this does not seem to be possible :(
        linter.global_set_option(
            "ignored-modules",
            "cmk.base.cee,cmk.gui.cee,cmk.gui.cme,cmk.gui.cme.managed")
        # This disables no-member errors
        linter.global_set_option(
            "generated-members",
            r"(cmk\.base\.cee|cmk\.gui\.cee|cmk\.gui\.cme)(\..*)?")

    linter.register_reporter(CMKColorizedTextReporter)
    linter.register_reporter(CMKParseableTextReporter)
コード例 #6
0
def registry_reset():
    """Fixture to reset registries to its default entries."""
    registries = [
        cmk.gui.dashboard.dashlet_registry,
        cmk.gui.views.icon_and_action_registry,
        cmk.gui.permissions.permission_registry,
        cmk.gui.permissions.permission_section_registry,
    ]
    if is_enterprise_repo():
        registries.append(
            cmk.cee.dcd.plugins.connectors.connectors_api.v1.connector_config_registry
        )
        registries.append(cmk.cee.dcd.plugins.connectors.connectors_api.v1.connector_registry)
    
    defaults_per_registry = [(registry, list(registry)) for registry in registries]  # type: ignore[call-overload]
    try:
        yield
    finally:
        for registry, defaults in defaults_per_registry:
            for entry in list(registry):  # type: ignore[call-overload]
                if entry not in defaults:
                    registry.unregister(entry)  # type: ignore[attr-defined]
コード例 #7
0
ファイル: test_gui_config.py プロジェクト: tribe29/checkmk
def test_default_config_from_plugins():
    expected = [
        "roles",
        "debug",
        "screenshotmode",
        "profile",
        "users",
        "admin_users",
        "guest_users",
        "default_user_role",
        "user_online_maxage",
        "log_levels",
        "slow_views_duration_threshold",
        "multisite_users",
        "multisite_hostgroups",
        "multisite_servicegroups",
        "multisite_contactgroups",
        "sidebar",
        "sidebar_update_interval",
        "sidebar_show_scrollbar",
        "sidebar_notify_interval",
        "quicksearch_dropdown_limit",
        "quicksearch_search_order",
        "failed_notification_horizon",
        "soft_query_limit",
        "hard_query_limit",
        "sound_url",
        "enable_sounds",
        "sounds",
        "view_option_refreshes",
        "view_option_columns",
        "doculink_urlformat",
        "view_action_defaults",
        "custom_links",
        "debug_livestatus_queries",
        "show_livestatus_errors",
        "liveproxyd_enabled",
        "visible_views",
        "hidden_views",
        "service_view_grouping",
        "custom_style_sheet",
        "ui_theme",
        "show_mode",
        "start_url",
        "page_heading",
        "login_screen",
        "reschedule_timeout",
        "filter_columns",
        "default_language",
        "hide_languages",
        "default_ts_format",
        "selection_livetime",
        "auth_by_http_header",
        "table_row_limit",
        "multisite_draw_ruleicon",
        "adhoc_downtime",
        "pagetitle_date_format",
        "staleness_threshold",
        "escape_plugin_output",
        "virtual_host_trees",
        "crash_report_url",
        "crash_report_target",
        "guitests_enabled",
        "bulk_discovery_default_settings",
        "use_siteicons",
        "graph_timeranges",
        "userdb_automatic_sync",
        "user_login",
        "user_connections",
        "default_user_profile",
        "log_logon_failures",
        "lock_on_logon_failures",
        "user_idle_timeout",
        "single_user_session",
        "password_policy",
        "user_localizations",
        "user_icons_and_actions",
        "custom_service_attributes",
        "user_downtime_timeranges",
        "builtin_icon_visibility",
        "trusted_certificate_authorities",
        "mkeventd_enabled",
        "mkeventd_pprint_rules",
        "mkeventd_notify_contactgroup",
        "mkeventd_notify_facility",
        "mkeventd_notify_remotehost",
        "mkeventd_connect_timeout",
        "log_level",
        "log_rulehits",
        "rule_optimizer",
        "mkeventd_service_levels",
        "wato_host_tags",
        "wato_aux_tags",
        "wato_tags",
        "wato_enabled",
        "wato_hide_filenames",
        "wato_hide_hosttags",
        "wato_upload_insecure_snapshots",
        "wato_hide_varnames",
        "wato_hide_help_in_lists",
        "wato_activate_changes_concurrency",
        "wato_max_snapshots",
        "wato_num_hostspecs",
        "wato_num_itemspecs",
        "wato_activation_method",
        "wato_write_nagvis_auth",
        "wato_use_git",
        "wato_hidden_users",
        "wato_user_attrs",
        "wato_host_attrs",
        "wato_read_only",
        "wato_hide_folders_without_read_permissions",
        "wato_pprint_config",
        "wato_icon_categories",
        "wato_activate_changes_comment_mode",
        "rest_api_etag_locking",
        "aggregation_rules",
        "aggregations",
        "host_aggregations",
        "bi_packs",
        "default_bi_layout",
        "bi_layouts",
        "bi_compile_log",
        "bi_precompile_on_demand",
        "bi_use_legacy_compilation",
        "sites",
        "config_storage_format",
        "tags",
    ]

    if is_enterprise_repo():
        expected += [
            "agent_deployment_enabled",
            "agent_deployment_host_selection",
            "agent_deployment_central",
            "agent_deployment_remote",
            "agent_signature_keys",
            "have_combined_graphs",
            "reporting_use",
            "reporting_rangespec",
            "reporting_filename",
            "reporting_view_limit",
            "reporting_font_size",
            "reporting_lineheight",
            "reporting_font_family",
            "reporting_pagesize",
            "reporting_margins",
            "reporting_mirror_margins",
            "reporting_date_format",
            "reporting_time_format",
            "reporting_table_layout",
            "reporting_graph_layout",
            "reporting_email_options",
            "subscription_settings",
            "ntop_connection",
        ]

    if is_managed_repo():
        expected += [
            "customers",
            "current_customer",
        ]

    default_config = cmk.gui.config.get_default_config()
    assert sorted(list(default_config.keys())) == sorted(expected)

    default_config2 = asdict(cmk.gui.config.make_config_object(default_config))
    assert sorted(default_config2.keys()) == sorted(expected)
コード例 #8
0
def _expected_replication_paths():
    expected = [
        ReplicationPath("dir", "check_mk", "etc/check_mk/conf.d/wato/", []),
        ReplicationPath("dir", "multisite", "etc/check_mk/multisite.d/wato/",
                        []),
        ReplicationPath("file", "htpasswd", "etc/htpasswd", []),
        ReplicationPath("file", "auth.secret", "etc/auth.secret", []),
        ReplicationPath("file", "password_store.secret",
                        "etc/password_store.secret", []),
        ReplicationPath("file", "auth.serials", "etc/auth.serials", []),
        ReplicationPath("file", "stored_passwords",
                        "var/check_mk/stored_passwords", []),
        ReplicationPath("dir", "usersettings", "var/check_mk/web",
                        ["report-thumbnails", "session_info.mk"]),
        ReplicationPath("dir", "mkps", "var/check_mk/packages", []),
        ReplicationPath("dir", "local", "local", []),
    ]

    if not cmk_version.is_raw_edition():
        expected += [
            ReplicationPath("dir", "liveproxyd",
                            "etc/check_mk/liveproxyd.d/wato/", []),
        ]

    if testlib.is_enterprise_repo():
        expected += [
            ReplicationPath("dir", "dcd", "etc/check_mk/dcd.d/wato/", []),
            ReplicationPath("dir", "mknotify", "etc/check_mk/mknotifyd.d/wato",
                            []),
        ]

    expected += [
        ReplicationPath("dir", "mkeventd", "etc/check_mk/mkeventd.d/wato", []),
        ReplicationPath("dir", "mkeventd_mkp",
                        "etc/check_mk/mkeventd.d/mkp/rule_packs", []),
        ReplicationPath("file", "diskspace", "etc/diskspace.conf", []),
    ]

    if cmk_version.is_managed_edition():
        expected += [
            ReplicationPath(
                ty="file",
                ident="customer_check_mk",
                site_path="etc/check_mk/conf.d/customer.mk",
                excludes=[],
            ),
            ReplicationPath(
                ty="file",
                ident="customer_gui_design",
                site_path="etc/check_mk/multisite.d/zzz_customer_gui_design.mk",
                excludes=[],
            ),
            ReplicationPath(
                ty="file",
                ident="customer_multisite",
                site_path="etc/check_mk/multisite.d/customer.mk",
                excludes=[],
            ),
            ReplicationPath(
                ty="file",
                ident="gui_logo",
                site_path=
                "local/share/check_mk/web/htdocs/themes/classic/images/sidebar_top.png",
                excludes=[],
            ),
            ReplicationPath(
                ty="file",
                ident="gui_logo_dark",
                site_path=
                "local/share/check_mk/web/htdocs/themes/modern-dark/images/mk-logo.png",
                excludes=[],
            ),
            ReplicationPath(
                ty="file",
                ident="gui_logo_facelift",
                site_path=
                "local/share/check_mk/web/htdocs/themes/facelift/images/mk-logo.png",
                excludes=[],
            ),
        ]

    return expected
コード例 #9
0
from cmk.utils.plugin_loader import load_plugins_with_exceptions
from cmk.utils.plugin_registry import Registry
from cmk.utils.site import omd_site

import cmk.gui.dashboard

# The openapi import below pulls a huge part of our GUI code indirectly into the process.  We need
# to have the default permissions loaded before that to fix some implicit dependencies.
# TODO: Extract the livestatus mock to some other place to reduce the dependencies here.
import cmk.gui.default_permissions
import cmk.gui.permissions
import cmk.gui.views
from cmk.gui.livestatus_utils.testing import mock_livestatus
from cmk.gui.utils.script_helpers import application_and_request_context

if is_enterprise_repo():
    import cmk.cee.dcd.plugins.connectors.connectors_api.v1  # pylint: disable=import-error,no-name-in-module

logger = logging.getLogger(__name__)


@pytest.fixture(autouse=True)
def enable_debug_fixture():
    debug_mode = cmk.utils.debug.debug_mode
    cmk.utils.debug.enable()
    yield
    cmk.utils.debug.debug_mode = debug_mode


@pytest.fixture(autouse=True)
def fixture_umask():