diff --git a/checkman/robotmk_scheduler_status b/checkman/robotmk_scheduler_status new file mode 100644 index 00000000000..83dc3df96cb --- /dev/null +++ b/checkman/robotmk_scheduler_status @@ -0,0 +1,10 @@ +title: Robotmk Scheduler Status +agents: robotmk +catalog: robotframework +license: GPLv2 +distribution: check_mk +description: + Provides information about the scheduler status. + +discovery: + One service called "Robotmk Scheduler Status" is created. diff --git a/cmk/base/plugins/agent_based/robotmk.py b/cmk/base/plugins/agent_based/robotmk.py index d6b2acec5ef..5f4b2e1222f 100644 --- a/cmk/base/plugins/agent_based/robotmk.py +++ b/cmk/base/plugins/agent_based/robotmk.py @@ -25,7 +25,6 @@ class Params(TypedDict): DEFAULT: Params = {"test_runtime": None} - LivestatusFile = Literal["suite_last_log.html", "suite_last_error_log.html"] @@ -120,9 +119,6 @@ def discover(section: robotmk_api.Section) -> DiscoveryResult: ServiceLabel("robotmk/html_last_log", "yes"), ], ) - if isinstance(result, robotmk_api.ConfigFileContent): - for suite in result.config_file_content.suites: - yield Service(item=suite) if isinstance(result, robotmk_api.SuiteExecutionReport): yield Service(item=f"Suite {result.suite_name}") @@ -160,12 +156,6 @@ def _check_suite_execution_result( yield _attempt_result(attempt) -def _check_config_file_content(result: robotmk_api.ConfigFileContent, item: str) -> CheckResult: - for suite in result.config_file_content.suites: - if suite == item: - yield Result(state=State.OK, summary="This Suite was discovered!") - - def _check_result(params: Params, result: robotmk_api.Result, item: str) -> CheckResult: for test in result.tests: if _item(result, test) == item: @@ -178,9 +168,7 @@ def _check_result(params: Params, result: robotmk_api.Result, item: str) -> Chec def check(item: str, params: Params, section: robotmk_api.Section) -> CheckResult: for result in section: - if isinstance(result, robotmk_api.ConfigFileContent): - yield from _check_config_file_content(result, item) - elif isinstance(result, robotmk_api.Result): + if isinstance(result, robotmk_api.Result): yield from _check_result(params, result, item) elif isinstance(result, robotmk_api.SuiteExecutionReport): yield from _check_suite_execution_result(result, item) diff --git a/cmk/base/plugins/agent_based/robotmk_scheduler_status.py b/cmk/base/plugins/agent_based/robotmk_scheduler_status.py new file mode 100644 index 00000000000..01821a1a623 --- /dev/null +++ b/cmk/base/plugins/agent_based/robotmk_scheduler_status.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +# Copyright (C) 2023 Checkmk GmbH - License: GNU General Public License v2 +# This file is part of Checkmk (https://checkmk.com). It is subject to the terms and +# conditions defined in the file COPYING, which is part of this source code package. + + +from cmk.base.plugins.agent_based.agent_based_api.v1 import register, Result, Service, State +from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import CheckResult, DiscoveryResult +from cmk.base.plugins.agent_based.utils import robotmk_api # Should be replaced by external package + + +def discover_scheduler_status(section: robotmk_api.ConfigFileContent | None) -> DiscoveryResult: + if section: + yield Service(item="Robotmk Scheduler Status") + + +def check_scheduler_status(item: str, section: robotmk_api.ConfigFileContent | None) -> CheckResult: + if not section: + return + + # TODO: Determine the conditions for the status + yield Result(state=State.OK, summary="The Scheduler status is OK") + + +register.check_plugin( + name="robotmk_scheduler_status", + sections=["robotmk_v2"], + service_name="%s", + discovery_function=discover_scheduler_status, + check_function=check_scheduler_status, +)