summaryrefslogtreecommitdiffstats
path: root/roles/openshift_logging/library/openshift_logging_facts.py
diff options
context:
space:
mode:
authorEric Wolinetz <ewolinet@redhat.com>2017-10-25 20:45:34 -0500
committerEric Wolinetz <ewolinet@redhat.com>2018-01-02 11:16:04 -0600
commit8cb27ae800df71ee816852df56cd2c861a0f0a0a (patch)
tree9a3f000d6bb886296912df6de0ececdfe7783a53 /roles/openshift_logging/library/openshift_logging_facts.py
parent332764e4541d8c922f2589a533bb56b2a2419ac1 (diff)
downloadopenshift-8cb27ae800df71ee816852df56cd2c861a0f0a0a.tar.gz
openshift-8cb27ae800df71ee816852df56cd2c861a0f0a0a.tar.bz2
openshift-8cb27ae800df71ee816852df56cd2c861a0f0a0a.tar.xz
openshift-8cb27ae800df71ee816852df56cd2c861a0f0a0a.zip
Updating logging_facts to be able to pull values from config maps yaml files, use diffs to keep custom changes, white list certain settings when creating diffs
Diffstat (limited to 'roles/openshift_logging/library/openshift_logging_facts.py')
-rw-r--r--roles/openshift_logging/library/openshift_logging_facts.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/roles/openshift_logging/library/openshift_logging_facts.py b/roles/openshift_logging/library/openshift_logging_facts.py
index 98d0d1c4f..302a9b4c9 100644
--- a/roles/openshift_logging/library/openshift_logging_facts.py
+++ b/roles/openshift_logging/library/openshift_logging_facts.py
@@ -204,6 +204,14 @@ class OpenshiftLoggingFacts(OCBaseCommand):
if comp is not None:
self.add_facts_for(comp, "services", name, dict())
+ # pylint: disable=too-many-arguments
+ def facts_from_configmap(self, comp, kind, name, config_key, yaml_file=None):
+ '''Extracts facts in logging namespace from configmap'''
+ if yaml_file is not None:
+ config_facts = yaml.load(yaml_file)
+ self.facts[comp][kind][name][config_key] = config_facts
+ self.facts[comp][kind][name]["raw"] = yaml_file
+
def facts_for_configmaps(self, namespace):
''' Gathers facts for configmaps in logging namespace '''
self.default_keys_for("configmaps")
@@ -214,7 +222,10 @@ class OpenshiftLoggingFacts(OCBaseCommand):
name = item["metadata"]["name"]
comp = self.comp(name)
if comp is not None:
- self.add_facts_for(comp, "configmaps", name, item["data"])
+ self.add_facts_for(comp, "configmaps", name, dict(item["data"]))
+ if comp in ["elasticsearch", "elasticsearch_ops"]:
+ for config_key in item["data"]:
+ self.facts_from_configmap(comp, "configmaps", name, config_key, item["data"][config_key])
def facts_for_oauthclients(self, namespace):
''' Gathers facts for oauthclients used with logging '''