MKP 2.2.0 released, bugfixes for rules with no levels set
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# pylint: disable=line-too-long, simplifiable-if-statement, missing-module-docstring, too-many-locals
|
||||
|
||||
|
||||
# import necessary elements from API version 2
|
||||
from cmk.agent_based.v2 import (
|
||||
AgentSection,
|
||||
@@ -16,6 +17,9 @@ def get_state_upper(
|
||||
levels: tuple[int | float, int | float], value: int | float
|
||||
) -> State:
|
||||
"""returns OK/WARN/CRIT depending on the given parameters"""
|
||||
if levels is None:
|
||||
# a rule with no levels set is active, assume OK state
|
||||
return State.OK
|
||||
warn, crit = levels
|
||||
if value >= crit:
|
||||
return State.CRIT
|
||||
@@ -62,9 +66,9 @@ def discover_mailcow_info(section):
|
||||
def check_mailcow_info(params, section):
|
||||
"""the check function"""
|
||||
# get thresholds
|
||||
_type, levels_num_domains = params["levels_num_domains"]
|
||||
_type, levels_num_mailboxes = params["levels_num_mailboxes"]
|
||||
_type, levels_num_global_messages = params["levels_num_global_messages"]
|
||||
_level_type, levels_num_domains = params["levels_num_domains"]
|
||||
_level_type, levels_num_mailboxes = params["levels_num_mailboxes"]
|
||||
_level_type, levels_num_global_messages = params["levels_num_global_messages"]
|
||||
# get all section data
|
||||
version: str = section["version"]
|
||||
git_version: str = section["git_version"]
|
||||
@@ -74,17 +78,6 @@ def check_mailcow_info(params, section):
|
||||
num_mailboxes: int = section["num_mailboxes"]
|
||||
num_global_messages: int = section["num_global_messages"]
|
||||
|
||||
# create graphs for number of domains, mailboxes and messages
|
||||
yield Metric(name="mc_num_domains", value=num_domains, levels=levels_num_domains)
|
||||
yield Metric(
|
||||
name="mc_num_mailboxes", value=num_mailboxes, levels=levels_num_mailboxes
|
||||
)
|
||||
yield Metric(
|
||||
name="mc_num_global_messages",
|
||||
value=num_global_messages,
|
||||
levels=levels_num_global_messages,
|
||||
)
|
||||
|
||||
# create overall result
|
||||
if check_version_enabled:
|
||||
if update_available:
|
||||
@@ -100,22 +93,28 @@ def check_mailcow_info(params, section):
|
||||
yield Result(state=state, summary=summary, details=details)
|
||||
|
||||
# Create result for number of domains
|
||||
warn, crit = levels_num_domains
|
||||
state = get_state_upper((warn, crit), num_domains)
|
||||
state = get_state_upper(levels_num_domains, num_domains)
|
||||
yield Metric(name="mc_num_domains", value=num_domains, levels=levels_num_domains)
|
||||
notice = f"Number of domains: {num_domains}"
|
||||
if state != State.OK:
|
||||
yield Result(state=state, notice=notice)
|
||||
|
||||
# Create result for number of mailboxes
|
||||
warn, crit = levels_num_mailboxes
|
||||
state = get_state_upper((warn, crit), num_mailboxes)
|
||||
state = get_state_upper(levels_num_mailboxes, num_mailboxes)
|
||||
yield Metric(
|
||||
name="mc_num_mailboxes", value=num_mailboxes, levels=levels_num_mailboxes
|
||||
)
|
||||
notice = f"Number of mailboxes: {num_mailboxes}"
|
||||
if state != State.OK:
|
||||
yield Result(state=state, notice=notice)
|
||||
|
||||
# Create result for number of global messages
|
||||
warn, crit = levels_num_global_messages
|
||||
state = get_state_upper((warn, crit), num_global_messages)
|
||||
state = get_state_upper(levels_num_global_messages, num_global_messages)
|
||||
yield Metric(
|
||||
name="mc_num_global_messages",
|
||||
value=num_global_messages,
|
||||
levels=levels_num_global_messages,
|
||||
)
|
||||
notice = f"Number of messages: {num_global_messages}"
|
||||
if state != State.OK:
|
||||
yield Result(state=state, notice=notice)
|
||||
|
||||
Reference in New Issue
Block a user