コード例 #1
0
def test_boil_down_parameters_good_case():
    assert boil_down_parameters(_all_dicts(), {"default": "some_value"}) == {
        "key": "first_value",
        "key2": "some_value",
        "default": "some_value",
    }
    assert boil_down_parameters(_all_dicts(), None) == {
        "key": "first_value",
        "key2": "some_value",
    }
コード例 #2
0
ファイル: __init__.py プロジェクト: gradecke/checkmk
def _evaluate_timespecific_entry(entry: Dict[str, Any]) -> LegacyCheckParameters:
    # Dictionary entries without timespecific settings
    if "tp_default_value" not in entry:
        return entry

    merged = boil_down_parameters(
        _filter_active_parameter_subsets(entry["tp_values"]),
        entry["tp_default_value"],
    )
    return merged
コード例 #3
0
    def get_service_ruleset_merged_dict(self, match_object: RulesetMatchObject,
                                        ruleset: Ruleset) -> Dict[str, Any]:
        """Returns a dictionary of the merged dict values of the matched rules
        The first dict setting a key defines the final value.

        Replaces host_extra_conf_merged / service_extra_conf_merged"""
        merged = boil_down_parameters(
            self.get_service_ruleset_values(match_object,
                                            ruleset,
                                            is_binary=False), {})
        assert isinstance(merged,
                          dict)  # remove along with LegacyCheckParameters
        return merged
コード例 #4
0
def time_resolved_check_parameters(
    entries: cmk.base.config.TimespecificParamList, ) -> LegacyCheckParameters:
    # Check if first entry is not dict based or if its dict based
    # check if the tp_default_value is not a dict
    if not isinstance(entries[0], dict) or not isinstance(
            entries[0].get("tp_default_value", {}), dict):
        # This rule is tuple based, means no dict-key merging
        if not isinstance(entries[0], dict):
            return entries[0]  # A tuple rule, simply return first match

        return _evaluate_timespecific_entry(
            entries[0])  # A timespecific rule, determine the correct tuple

    return boil_down_parameters(
        # Ignore (old) default parameters like
        #   'NAME_default_levels' = (80.0, 85.0)
        # A rule with a timespecifc parameter settings always has an
        # implicit default parameter set, even if no timeperiod matches.
        (_evaluate_timespecific_entry(entry)
         for entry in entries if isinstance(entry, dict)),
        {},
    )
コード例 #5
0
def test_boil_down_parameters_default_is_tuple():
    assert boil_down_parameters((), (42, 42)) == (42, 42)
    assert boil_down_parameters(_all_dicts(), (42, 42)) == {
        "key": "first_value",
        "key2": "some_value",
    }
コード例 #6
0
def test_boil_down_parameters_first_tuple_wins():
    assert boil_down_parameters(_with_tuple(), (42, 42)) == (23, 23)
    assert boil_down_parameters((), (42, 42)) == (42, 42)