diff --git a/cmk/plugins/mssql/agent_based/mssql_jobs.py b/cmk/plugins/mssql/agent_based/mssql_jobs.py index 00543a2c0b2..2d901002c58 100644 --- a/cmk/plugins/mssql/agent_based/mssql_jobs.py +++ b/cmk/plugins/mssql/agent_based/mssql_jobs.py @@ -193,9 +193,11 @@ def parse_mssql_jobs(string_table: StringTable) -> Mapping[str, JobSpec]: return section -def discover_mssql_jobs(section: Mapping[str, JobSpec]) -> DiscoveryResult: - for job_name in section: - if job_name: +def discover_mssql_jobs(params: dict[str, bool], section: Mapping[str, JobSpec]) -> DiscoveryResult: + for job_name, job_specs in section.items(): + if not params.get("discover_schedule_disabled") and not job_specs.schedule_enabled: + continue + else: yield Service(item=job_name) @@ -256,4 +258,8 @@ def _calc_job_result(job_specs: JobSpec, params: Mapping[str, Any]) -> Result: "status_disabled_schedule": 0, "status_missing_jobs": 2, }, + discovery_ruleset_name="mssql_jobs_discovery", + discovery_default_parameters={ + "discover_schedule_disabled": True, + }, ) diff --git a/cmk/plugins/mssql/rulesets/mssql_jobs_discovery.py b/cmk/plugins/mssql/rulesets/mssql_jobs_discovery.py new file mode 100644 index 00000000000..8fef6178f6f --- /dev/null +++ b/cmk/plugins/mssql/rulesets/mssql_jobs_discovery.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +from cmk.rulesets.v1 import ( + Label, + Title, +) + +from cmk.rulesets.v1.form_specs import ( + BooleanChoice, + DefaultValue, + DictElement, + Dictionary, +) + +from cmk.rulesets.v1.rule_specs import ( + DiscoveryParameters, + Topic, +) + + +def _parameter_form_mssql_jobs_discovery() -> Dictionary: + return Dictionary( + title=Title("MSSQL Jobs Discovery"), + elements={ + "discover_schedule_disabled": DictElement( + parameter_form=BooleanChoice( + label=Label("Discover jobs with disabled Scheduler"), prefill=DefaultValue(True) + ), + required=True, + ), + }, + ) + + +rule_spec_mssql_jobs_discovery = DiscoveryParameters( + name="mssql_jobs_discovery", + title=Title("MSSQL Jobs Discovery"), + topic=Topic.APPLICATIONS, + parameter_form=_parameter_form_mssql_jobs_discovery, +)