Example #1
0
def _check_plugins_missing_data(
    plugins_missing_data: List[CheckPluginName],
    exit_spec: ExitSpec,
    some_success: bool,
) -> Iterable[ActiveCheckResult]:
    if not plugins_missing_data:
        return

    if not some_success:
        yield ActiveCheckResult(exit_spec.get("empty_output", 2),
                                "Got no information from host")
        return

    # key is a legacy name, kept for compatibility.
    specific_plugins_missing_data_spec = exit_spec.get(
        "specific_missing_sections", [])
    specific_plugins, generic_plugins = set(), set()
    for check_plugin_name in plugins_missing_data:
        for pattern, status in specific_plugins_missing_data_spec:
            reg = regex(pattern)
            if reg.match(str(check_plugin_name)):
                specific_plugins.add((check_plugin_name, status))
                break
        else:  # no break
            generic_plugins.add(str(check_plugin_name))

    # key is a legacy name, kept for compatibility.
    missing_status = exit_spec.get("missing_sections", 1)
    plugin_list = ", ".join(sorted(generic_plugins))
    yield ActiveCheckResult(
        missing_status,
        f"Missing monitoring data for plugins: {plugin_list}",
    )
    yield from (ActiveCheckResult(status, str(plugin))
                for plugin, status in sorted(specific_plugins))
Example #2
0
def _check_plugins_missing_data(
    plugins_missing_data: List[CheckPluginName],
    exit_spec: ExitSpec,
    some_success: bool,
) -> Tuple[ServiceState, ServiceDetails]:
    if not some_success:
        return exit_spec.get("empty_output", 2), "Got no information from host"

    # key is a legacy name, kept for compatibility.
    specific_plugins_missing_data_spec = exit_spec.get("specific_missing_sections", [])

    specific_plugins, generic_plugins = set(), set()
    for check_plugin_name in plugins_missing_data:
        for pattern, status in specific_plugins_missing_data_spec:
            reg = regex(pattern)
            if reg.match(str(check_plugin_name)):
                specific_plugins.add((check_plugin_name, status))
                break
        else:  # no break
            generic_plugins.add(str(check_plugin_name))

    # key is a legacy name, kept for compatibility.
    generic_plugins_status = exit_spec.get("missing_sections", 1)
    infotexts = [
        "Missing monitoring data for check plugins: %s%s" % (
            ", ".join(sorted(generic_plugins)),
            state_markers[generic_plugins_status],
        ),
    ]

    for plugin, status in sorted(specific_plugins):
        infotexts.append("%s%s" % (plugin, state_markers[status]))
        generic_plugins_status = max(generic_plugins_status, status)

    return generic_plugins_status, ", ".join(infotexts)
Example #3
0
 def summarizer(self):
     return AgentSummarizerDefault(
         ExitSpec(),
         is_cluster=False,
         agent_min_version=0,
         agent_target_version=None,
         only_from=["deep_space"],
     )
Example #4
0
 def summarizer(self, request):
     return AgentSummarizerDefault(
         ExitSpec(),
         is_cluster=False,
         agent_min_version=0,
         agent_target_version=request.param,
         only_from=None,
     )
Example #5
0
 def test_configure_missmatch(self, mode, state):
     assert (AgentSummarizerDefault(
         ExitSpec(restricted_address_mismatch=state),
         is_cluster=False,
         agent_min_version=0,
         agent_target_version=None,
         only_from=["deep_space"],
     ).summarize_check_mk_section(
         [
             ["onlyfrom:", "somewhere_else"],
         ],
         mode=mode,
     )[0].state == state)
Example #6
0
 def summarizer(self):
     return Summarizer(ExitSpec())
Example #7
0
 def summarizer(self):
     return AgentSummarizerDefault(ExitSpec())