Fehler bei Predefined Condition und Host Labels

Hallo,

wenn wie folgt ein Label zu einem Host hinzugefügt wird und diese Regel eine Precondition verwendet, die wiederum die Hosts mit Labels auswählt, kann man die Änderungen nicht aktivieren.

Version: 1.6.0p9



Stopping mkeventd...killing 17605...OK
Stopping 6 remaining site processes...OK
OMD[my_site_test]:~$ cmk -R
Generating configuration for core (type cmc)...Error creating configuration: maximum recursion depth exceeded while calling a Python object
Original Traceback (most recent call last):
  File "/omd/sites/my_site_test/lib/python/cmk_base/cee/core_cmc.py", line 613, in wrapper
    return func(*args, **kwargs)
  File "/omd/sites/my_site_test/lib/python/cmk_base/cee/core_cmc.py", line 625, in get_host_configurations
    return [host_class(hostname).get_serialized_data() for hostname in hostlist]
  File "/omd/sites/my_site_test/lib/python/cmk_base/cee/core_cmc.py", line 904, in __init__
    hostname, config.get_config_cache()),
  File "/omd/sites/my_site_test/lib/python/cmk_base/core_config.py", line 379, in get_host_attributes
    host_config = config_cache.get_host_config(hostname)
  File "/omd/sites/my_site_test/lib/python/cmk_base/config.py", line 2888, in get_host_config
    host_config = self._host_configs[hostname] = config_class(self, hostname)
  File "/omd/sites/my_site_test/lib/python/cmk_base/config.py", line 2090, in __init__
    hostname)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 60, in labels_of_host
    labels.update(self._ruleset_labels_of_host(ruleset_matcher, hostname))
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 79, in _ruleset_labels_of_host
    return ruleset_matcher.get_host_ruleset_merged_dict(match_object, self._host_label_rules)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 114, in get_host_ruleset_merged_dict
    for rule_dict in self.get_host_ruleset_values(match_object, ruleset, is_binary=False):
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 131, in get_host_ruleset_values
    is_binary=is_binary)
Gesamten recursion Fehler anzeigen
OMD[my_site_test]:~$ cmk -O
Other restart currently in progress. Aborting.
OMD[my_site_test]:~$ cmk -R
Other restart currently in progress. Aborting.
OMD[my_site_test]:~$ omd stop
Removing Crontab...OK
Stopping dcd...killing 18001....OK
Stopping apache...killing 17761.......OK
Stopping cmc...killing 17654......OK
Stopping rrdcached...waiting for termination...OK
Stopping mknotifyd...killing 17629...
Stopping liveproxyd...killing 13214....OK
Stopping mkeventd...killing 17605...OK
Stopping 6 remaining site processes...OK
OMD[my_site_test]:~$ cmk -R
Generating configuration for core (type cmc)...Error creating configuration: maximum recursion depth exceeded while calling a Python object
Original Traceback (most recent call last):
  File "/omd/sites/my_site_test/lib/python/cmk_base/cee/core_cmc.py", line 613, in wrapper
    return func(*args, **kwargs)
  File "/omd/sites/my_site_test/lib/python/cmk_base/cee/core_cmc.py", line 625, in get_host_configurations
    return [host_class(hostname).get_serialized_data() for hostname in hostlist]
  File "/omd/sites/my_site_test/lib/python/cmk_base/cee/core_cmc.py", line 904, in __init__
    hostname, config.get_config_cache()),
  File "/omd/sites/my_site_test/lib/python/cmk_base/core_config.py", line 379, in get_host_attributes
    host_config = config_cache.get_host_config(hostname)
  File "/omd/sites/my_site_test/lib/python/cmk_base/config.py", line 2888, in get_host_config
    host_config = self._host_configs[hostname] = config_class(self, hostname)
  File "/omd/sites/my_site_test/lib/python/cmk_base/config.py", line 2090, in __init__
    hostname)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 60, in labels_of_host
    labels.update(self._ruleset_labels_of_host(ruleset_matcher, hostname))
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 79, in _ruleset_labels_of_host
    return ruleset_matcher.get_host_ruleset_merged_dict(match_object, self._host_label_rules)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 114, in get_host_ruleset_merged_dict
    for rule_dict in self.get_host_ruleset_values(match_object, ruleset, is_binary=False):
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 131, in get_host_ruleset_values
    is_binary=is_binary)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 344, in get_host_ruleset
    ruleset = self._convert_host_ruleset(ruleset, with_foreign_hosts, is_binary)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 359, in _convert_host_ruleset
    for hostname in self._all_matching_hosts(rule["condition"], with_foreign_hosts):
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 478, in _all_matching_hosts
    host_labels = self._labels.labels_of_host(self._ruleset_matcher, hostname)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 60, in labels_of_host
    labels.update(self._ruleset_labels_of_host(ruleset_matcher, hostname))
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 79, in _ruleset_labels_of_host
    return ruleset_matcher.get_host_ruleset_merged_dict(match_object, self._host_label_rules)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 114, in get_host_ruleset_merged_dict
    for rule_dict in self.get_host_ruleset_values(match_object, ruleset, is_binary=False):
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 131, in get_host_ruleset_values
    is_binary=is_binary)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 344, in get_host_ruleset
    ruleset = self._convert_host_ruleset(ruleset, with_foreign_hosts, is_binary)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 359, in _convert_host_ruleset
    for hostname in self._all_matching_hosts(rule["condition"], with_foreign_hosts):
  File "/omd/sites/my_site_test/lib/python/cmk/utils/rulesets/ruleset_matcher.py", line 478, in _all_matching_hosts
    host_labels = self._labels.labels_of_host(self._ruleset_matcher, hostname)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 59, in labels_of_host
    labels.update(self._discovered_labels_of_host(hostname))
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 85, in _discovered_labels_of_host
    for label_id, label in DiscoveredHostLabelsStore(hostname).load().iteritems()
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 143, in load
    self.file_path), default={}).iteritems() if isinstance(v, dict)
  File "/omd/sites/my_site_test/lib/python/cmk/utils/labels.py", line 166, in file_path
    return (cmk.utils.paths.discovered_host_labels_dir / self._hostname).with_suffix(".mk")
  File "/omd/sites/my_site_test/lib/python/pathlib2/__init__.py", line 1102, in __truediv__
    return self._make_child((key,))
  File "/omd/sites/my_site_test/lib/python/pathlib2/__init__.py", line 878, in _make_child
    drv, root, parts = self._parse_args(args)
  File "/omd/sites/my_site_test/lib/python/pathlib2/__init__.py", line 841, in _parse_args
    return cls._flavour.parse_parts(parts)
  File "/omd/sites/my_site_test/lib/python/pathlib2/__init__.py", line 201, in parse_parts
    parts = _py2_fsencode(parts)
  File "/omd/sites/my_site_test/lib/python/pathlib2/__init__.py", line 62, in _py2_fsencode
    else part for part in parts]
RuntimeError: maximum recursion depth exceeded while calling a Python object

OMD[my_site_test]:~$

Habe den Fehler ein wenig zusammengekürzt, da das Forum nicht so viele Zeichen erlaubt :slight_smile:

Wäre relativ dringend, bitte danke :slight_smile:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.