Module: check_mk
Branch: master
Commit: aec959116985be2728bb340930eeb78d4953cf6f
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=aec959116985be…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Apr 4 09:04:23 2019 +0200
Cleanup config.tags_of_host
* Using the precomputed host_config.tags instead now
* Cleaned up HostConfig constructor a bit
Change-Id: I33a673ffa17ef49448f8a5d074b32e18658fc54f
---
cmk_base/check_api.py | 8 +++++++-
cmk_base/config.py | 20 ++++++++------------
cmk_base/core_config.py | 2 +-
cmk_base/data_sources/__init__.py | 2 +-
4 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/cmk_base/check_api.py b/cmk_base/check_api.py
index 8c5811e..20fa1bc 100644
--- a/cmk_base/check_api.py
+++ b/cmk_base/check_api.py
@@ -223,9 +223,15 @@ get_rule_options = _config.get_rule_options
# the future check API. It's kept here for compatibility reasons for now.
in_extraconf_hostlist = _config.in_extraconf_hostlist
hosttags_match_taglist = _config.hosttags_match_taglist
-tags_of_host = _config.tag_list_of_host
all_matching_hosts = _config.all_matching_hosts
+
+# These functions were used in some specific checks until 1.6. Don't add it to
+# the future check API. It's kept here for compatibility reasons for now.
+def tags_of_host(hostname):
+ return _config.get_config_cache().get_host_config(hostname).tags
+
+
nagios_illegal_chars = _config.nagios_illegal_chars
is_ipv6_primary = _config.is_ipv6_primary
is_cmc = _config.is_cmc
diff --git a/cmk_base/config.py b/cmk_base/config.py
index ceb037e..70c995e 100644
--- a/cmk_base/config.py
+++ b/cmk_base/config.py
@@ -603,10 +603,6 @@ def strip_tags(tagged_hostlist):
return result
-def tag_list_of_host(hostname):
- return get_config_cache().tag_list_of_host(hostname)
-
-
#.
# .--HostCollections-----------------------------------------------------.
# | _ _ _ ____ _ _ _ _ |
@@ -776,7 +772,7 @@ def all_configured_offline_hosts():
def host_is_member_of_site(hostname, site):
- for tag in tag_list_of_host(hostname):
+ for tag in get_config_cache().get_host_config(hostname).tags:
if tag.startswith("site:"):
return site == tag[5:]
# hosts without a site: tag belong to all sites
@@ -2753,9 +2749,8 @@ class HostConfig(object):
self.is_cluster = is_cluster(hostname)
self.part_of_clusters = self._config_cache.clusters_of(hostname)
- tags = self._config_cache.tag_list_of_host(self.hostname)
# TODO: Rename self.tags to self.tag_list and self.tag_groups to self.tags
- self.tags = tags
+ self.tags = self._config_cache.tag_list_of_host(self.hostname)
self.tag_groups = host_tags.get(hostname, {})
# Basic types
@@ -2780,18 +2775,19 @@ class HostConfig(object):
self.is_dual_host = self.is_tcp_host and self.is_snmp_host
self.is_all_agents_host = "all-agents" in self.tags
- self.is_all_special_agents_host = "special-agents" in tags
+ self.is_all_special_agents_host = "special-agents" in self.tags
# IP addresses
# Whether or not the given host is configured not to be monitored via IP
- self.is_no_ip_host = "no-ip" in tags
- self.is_ipv6_host = "ip-v6" in tags
+ self.is_no_ip_host = "no-ip" in self.tags
+ self.is_ipv6_host = "ip-v6" in self.tags
# Whether or not the given host is configured to be monitored via IPv4.
# This is the case when it is set to be explicit IPv4 or implicit (when
# host is not an IPv6 host and not a "No IP" host)
- self.is_ipv4_host = "ip-v4" in tags or (not self.is_ipv6_host and not
self.is_no_ip_host)
+ self.is_ipv4_host = "ip-v4" in self.tags or (not self.is_ipv6_host and
+ not self.is_no_ip_host)
- self.is_ipv4v6_host = "ip-v6" in tags and "ip-v4" in tags
+ self.is_ipv4v6_host = "ip-v6" in self.tags and "ip-v4" in
self.tags
# Whether or not the given host is configured to be monitored primarily via IPv6
self.is_ipv6_primary = (not self.is_ipv4v6_host and self.is_ipv6_host) \
diff --git a/cmk_base/core_config.py b/cmk_base/core_config.py
index 294be85..e8a6eb0 100644
--- a/cmk_base/core_config.py
+++ b/cmk_base/core_config.py
@@ -391,7 +391,7 @@ def get_host_attributes(hostname, config_cache):
# Pre 1.6 legacy attribute. We have changed our whole code to use the
# livestatus column "tags" which is populated by all attributes starting
with
# "__TAG_" instead. We may deprecate this is one day.
- attrs["_TAGS"] = "
".join(sorted(config_cache.tag_list_of_host(hostname)))
+ attrs["_TAGS"] = "
".join(sorted(config_cache.get_host_config(hostname).tags))
attrs.update(_get_tag_attributes(config_cache.tags_of_host(hostname)))
diff --git a/cmk_base/data_sources/__init__.py b/cmk_base/data_sources/__init__.py
index a30a453..bef1f14 100644
--- a/cmk_base/data_sources/__init__.py
+++ b/cmk_base/data_sources/__init__.py
@@ -134,7 +134,7 @@ class DataSources(object):
source.set_main_agent_data_source()
self._add_source(source)
- if "no-piggyback" not in config.tag_list_of_host(self._hostname):
+ if self._host_config.is_piggyback_host:
self._add_source(PiggyBackDataSource(self._hostname, self._ipaddress))
def _initialize_snmp_data_sources(self):