From 9aaec35702551e662bb67425617b4ac11f1b8f39 Mon Sep 17 00:00:00 2001 From: Moritz Kiemer Date: Fri, 11 Oct 2024 23:18:38 +0200 Subject: [PATCH] legacy check_api: drop get_check_api_context Even legacy plugins import properly these days. Change-Id: If189bf2af30e40791dc63ea2485ce7446fb1efaa --- bin/check_mk | 3 +-- cmk/base/automations/__init__.py | 3 +-- cmk/base/automations/check_mk.py | 4 +--- cmk/base/check_api.py | 9 --------- cmk/base/config.py | 18 +++++------------- cmk/base/core_nagios/_host_check_template.py | 4 ++-- cmk/update_config/main.py | 2 -- .../pre_actions/deprecated_config_style.py | 2 -- .../pre_actions/legacy_check_plugins.py | 5 +---- cmk/validate_plugins.py | 2 -- .../_helper_failed_base_plugins.py | 2 -- tests/unit/conftest.py | 2 -- 12 files changed, 11 insertions(+), 45 deletions(-) diff --git a/bin/check_mk b/bin/check_mk index a78100405cf..09c2629269d 100755 --- a/bin/check_mk +++ b/bin/check_mk @@ -38,7 +38,7 @@ import cmk.utils.paths from cmk.utils.log import console import cmk.base.utils -from cmk.base import check_api, config, profiling +from cmk.base import config, profiling from cmk.base.modes import modes from cmk import trace @@ -120,7 +120,6 @@ try: # the configuration may refer to check config variable names. if mode_name not in modes.non_checks_options(): errors = config.load_all_plugins( - check_api.get_check_api_context, local_checks_dir=cmk.utils.paths.local_checks_dir, checks_dir=cmk.utils.paths.checks_dir, ) diff --git a/cmk/base/automations/__init__.py b/cmk/base/automations/__init__.py index 3b71e955f89..acdaf7dd028 100644 --- a/cmk/base/automations/__init__.py +++ b/cmk/base/automations/__init__.py @@ -21,7 +21,7 @@ from cmk.automations.results import ABCAutomationResult -from cmk.base import check_api, config, profiling +from cmk.base import config, profiling from cmk import trace @@ -62,7 +62,6 @@ def execute(self, cmd: str, args: list[str]) -> Any: ): log.setup_console_logging() config.load_all_plugins( - check_api.get_check_api_context, local_checks_dir=paths.local_checks_dir, checks_dir=paths.checks_dir, ) diff --git a/cmk/base/automations/check_mk.py b/cmk/base/automations/check_mk.py index c45ad995814..4e2e727cc65 100644 --- a/cmk/base/automations/check_mk.py +++ b/cmk/base/automations/check_mk.py @@ -154,7 +154,7 @@ import cmk.base.core import cmk.base.nagios_utils import cmk.base.parent_scan -from cmk.base import check_api, config, core_config, notify, server_side_calls, sources +from cmk.base import config, core_config, notify, server_side_calls, sources from cmk.base.api.agent_based.value_store import ValueStoreManager from cmk.base.automations import Automation, automations, MKAutomationError from cmk.base.checkers import ( @@ -995,7 +995,6 @@ def execute(self, args: list[str]) -> SetAutochecksResult: # (See autochecks.set_autochecks_of_cluster()) if hostname in config_cache.hosts_config.clusters: config.load_all_plugins( - check_api.get_check_api_context, local_checks_dir=local_checks_dir, checks_dir=checks_dir, ) @@ -1887,7 +1886,6 @@ def execute(self, args: list[str]) -> GetConfigurationResult: if missing_variables: config.load_all_plugins( - check_api.get_check_api_context, local_checks_dir=local_checks_dir, checks_dir=checks_dir, ) diff --git a/cmk/base/check_api.py b/cmk/base/check_api.py index 69f62d71208..7abfdb10363 100644 --- a/cmk/base/check_api.py +++ b/cmk/base/check_api.py @@ -20,8 +20,6 @@ from cmk.utils.legacy_check_api import LegacyCheckDefinition as LegacyCheckDefinition -from cmk.base.config import CheckContext as _CheckContext - from cmk.agent_based import v1 as _v1 __all__ = [ @@ -30,7 +28,6 @@ "passwordstore_get_cmdline", "LegacyResult", "LegacyCheckResult", - "get_check_api_context", "LegacyCheckDefinition", ] @@ -52,12 +49,6 @@ LegacyCheckResult = Generator[tuple[int, str] | tuple[int, str, list[_MetricTuple]], None, None] -def get_check_api_context() -> _CheckContext: - """This is called from cmk.base code to get the Check API things. Don't - use this from checks.""" - return {k: v for k, v in globals().items() if k in __all__} - - # . # .--Check API-----------------------------------------------------------. # | ____ _ _ _ ____ ___ | diff --git a/cmk/base/config.py b/cmk/base/config.py index 284f2b6e409..7ff4dd95c09 100644 --- a/cmk/base/config.py +++ b/cmk/base/config.py @@ -1400,7 +1400,6 @@ def get_http_proxy(http_proxy: tuple[str, str]) -> HTTPProxyConfig: def load_all_plugins( - get_check_api_context: GetCheckApiContext, *, local_checks_dir: Path, checks_dir: str, @@ -1413,7 +1412,7 @@ def load_all_plugins( with tracer.start_as_current_span("discover_legacy_check_plugins"): filelist = _get_plugin_paths(str(local_checks_dir), checks_dir) - errors.extend(load_checks(get_check_api_context, filelist)) + errors.extend(load_checks(filelist)) return errors @@ -1436,10 +1435,9 @@ def _get_plugin_paths(*dirs: str) -> list[str]: # especially in tests. @tracer.start_as_current_span("load_legacy_checks") def load_checks( - get_check_api_context: GetCheckApiContext, filelist: list[str], ) -> list[str]: - discovered_legacy_checks = discover_legacy_checks(get_check_api_context, filelist) + discovered_legacy_checks = discover_legacy_checks(filelist) section_errors, sections = _make_agent_and_snmp_sections( discovered_legacy_checks.sane_check_info, discovered_legacy_checks.plugin_files @@ -1465,7 +1463,6 @@ class _DiscoveredLegacyChecks: def discover_legacy_checks( - get_check_api_context: GetCheckApiContext, filelist: list[str], ) -> _DiscoveredLegacyChecks: loaded_files: set[str] = set() @@ -1483,7 +1480,7 @@ def discover_legacy_checks( continue # skip already loaded files (e.g. from local) try: - check_context = new_check_context(get_check_api_context) + check_context = new_check_context() # Make a copy of known plug-in names, we need to track them for nagios config generation known_checks = {str(k) for k in check_info} @@ -1521,17 +1518,12 @@ def discover_legacy_checks( ) -# Constructs a new check context dictionary. It contains the whole check API. -def new_check_context(get_check_api_context: GetCheckApiContext) -> CheckContext: +def new_check_context() -> CheckContext: # Add the data structures where the checks register with Checkmk - context = { + return { "check_info": check_info, "special_agent_info": special_agent_info, } - # NOTE: For better separation it would be better to copy the values, but - # this might consume too much memory, so we simply reference them. - context |= get_check_api_context() - return context def plugin_pathnames_in_directory(path: str) -> list[str]: diff --git a/cmk/base/core_nagios/_host_check_template.py b/cmk/base/core_nagios/_host_check_template.py index a83c1e902df..2078785acd7 100644 --- a/cmk/base/core_nagios/_host_check_template.py +++ b/cmk/base/core_nagios/_host_check_template.py @@ -18,7 +18,7 @@ from cmk.checkengine.submitters import get_submitter import cmk.base.utils -from cmk.base import check_api, config +from cmk.base import config from cmk.base.api.agent_based.register import register_plugin_by_type from cmk.base.core_nagios import HostCheckConfig from cmk.base.modes.check_mk import mode_check @@ -91,7 +91,7 @@ def main() -> int: if debug: cmk.ccc.debug.enable() - config.load_checks(check_api.get_check_api_context, CONFIG.checks_to_load) + config.load_checks(CONFIG.checks_to_load) config.load_packed_config(LATEST_CONFIG) diff --git a/cmk/update_config/main.py b/cmk/update_config/main.py index bd38bb4ecb9..fb5261c5855 100644 --- a/cmk/update_config/main.py +++ b/cmk/update_config/main.py @@ -33,7 +33,6 @@ # to a specific layer in the future, but for the the moment we need to deal # with it. from cmk.base import config as base_config -from cmk.base.check_api import get_check_api_context from cmk.gui import main_modules from cmk.gui.exceptions import MKUserError @@ -290,7 +289,6 @@ def _check_failed_gui_plugins(logger: logging.Logger) -> None: def _initialize_base_environment() -> None: base_config.load_all_plugins( - get_check_api_context, local_checks_dir=paths.local_checks_dir, checks_dir=paths.checks_dir, ) diff --git a/cmk/update_config/plugins/pre_actions/deprecated_config_style.py b/cmk/update_config/plugins/pre_actions/deprecated_config_style.py index 51e0602f9db..909c584aeee 100644 --- a/cmk/update_config/plugins/pre_actions/deprecated_config_style.py +++ b/cmk/update_config/plugins/pre_actions/deprecated_config_style.py @@ -11,7 +11,6 @@ import cmk.base.config as base_config from cmk.base.api.agent_based import register as agent_based_register -from cmk.base.check_api import get_check_api_context from cmk.gui.exceptions import MKUserError from cmk.gui.session import SuperUserContext @@ -671,7 +670,6 @@ def __call__(self, logger: Logger, conflict_mode: ConflictMode) -> None: if conflict_mode in (ConflictMode.INSTALL, ConflictMode.KEEP_OLD): return base_config.load_all_plugins( - get_check_api_context, local_checks_dir=paths.local_checks_dir, checks_dir=paths.checks_dir, ) diff --git a/cmk/update_config/plugins/pre_actions/legacy_check_plugins.py b/cmk/update_config/plugins/pre_actions/legacy_check_plugins.py index 7138b6ac9dc..70182238ccf 100644 --- a/cmk/update_config/plugins/pre_actions/legacy_check_plugins.py +++ b/cmk/update_config/plugins/pre_actions/legacy_check_plugins.py @@ -7,7 +7,6 @@ from cmk.utils.paths import local_checks_dir -from cmk.base.check_api import get_check_api_context from cmk.base.config import load_checks, plugin_pathnames_in_directory from cmk.gui.exceptions import MKUserError @@ -20,9 +19,7 @@ class PreUpdateLegacyCheckPlugins(PreUpdateAction): """Load all legacy checks plugins before the real update happens""" def __call__(self, logger: Logger, conflict_mode: ConflictMode) -> None: - errors = "".join( - load_checks(get_check_api_context, plugin_pathnames_in_directory(str(local_checks_dir))) - ) + errors = "".join(load_checks(plugin_pathnames_in_directory(str(local_checks_dir)))) if errors: logger.error(errors) if continue_per_users_choice( diff --git a/cmk/validate_plugins.py b/cmk/validate_plugins.py index 289f090e9a6..4fbd1a58e9a 100644 --- a/cmk/validate_plugins.py +++ b/cmk/validate_plugins.py @@ -22,7 +22,6 @@ ) from cmk.base import ( # pylint: disable=cmk-module-layer-violation - check_api, server_side_calls, ) from cmk.base.api.agent_based.register import ( # pylint: disable=cmk-module-layer-violation @@ -86,7 +85,6 @@ def to_result(step: ValidationStep, errors: Sequence[str]) -> ActiveCheckResult: def _validate_agent_based_plugin_loading() -> ActiveCheckResult: errors = load_all_plugins( - check_api.get_check_api_context, local_checks_dir=paths.local_checks_dir, checks_dir=paths.checks_dir, ) diff --git a/tests/extension_compatibility/_helper_failed_base_plugins.py b/tests/extension_compatibility/_helper_failed_base_plugins.py index 48d98e10efa..cdfd1089231 100644 --- a/tests/extension_compatibility/_helper_failed_base_plugins.py +++ b/tests/extension_compatibility/_helper_failed_base_plugins.py @@ -7,13 +7,11 @@ from cmk.utils import paths -from cmk.base.check_api import get_check_api_context from cmk.base.config import load_all_plugins print( json.dumps( load_all_plugins( - get_check_api_context, local_checks_dir=paths.local_checks_dir, checks_dir=paths.checks_dir, ) diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py index de912fcd3c2..2fc30d94b88 100644 --- a/tests/unit/conftest.py +++ b/tests/unit/conftest.py @@ -269,7 +269,6 @@ class FixRegister: def __init__(self) -> None: # Local import to have faster pytest initialization from cmk.base import ( # pylint: disable=bad-option-value,import-outside-toplevel,cmk-module-layer-violation - check_api, config, ) from cmk.base.api.agent_based import ( # pylint: disable=bad-option-value,import-outside-toplevel,cmk-module-layer-violation @@ -280,7 +279,6 @@ def __init__(self) -> None: assert not config.check_info errors = config.load_all_plugins( - check_api.get_check_api_context, local_checks_dir=repo_path() / "no-such-path-but-thats-ok", checks_dir=str(repo_path() / "cmk/base/legacy_checks"), )