From b0e43e87b132594bc370419085000b6d6c54cdc6 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Mon, 11 Apr 2016 16:43:05 -0300 Subject: Use a JSON list for docker log options. Previously we expected you to comma separate, but this wasn't really clear. Insted we will use an explicit JSON list going forward. The comma separated list will be supported for backwards compatability. --- roles/openshift_facts/library/openshift_facts.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'roles/openshift_facts/library') diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index f2d17293a..fe5fdd246 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -56,6 +56,13 @@ def migrate_docker_facts(facts): if 'node' in facts and 'portal_net' in facts['node']: facts['docker']['hosted_registry_insecure'] = True facts['docker']['hosted_registry_network'] = facts['node'].pop('portal_net') + + # log_options was originally meant to be a comma separated string, but + # we now prefer an actual list, with backward compatability: + if 'log_options' in facts['docker'] and \ + isinstance(facts['docker']['log_options'], basestring): + facts['docker']['log_options'] = facts['docker']['log_options'].split(",") + return facts # TODO: We should add a generic migration function that takes source and destination @@ -1852,6 +1859,10 @@ class OpenShiftFacts(object): if isinstance(val, basestring): val = [x.strip() for x in val.split(',')] new_local_facts['docker'][key] = list(set(val) - set([''])) + # Convert legacy log_options comma sep string to a list if present: + if 'log_options' in new_local_facts['docker'] and \ + isinstance(new_local_facts['docker']['log_options'], basestring): + new_local_facts['docker']['log_options'] = new_local_facts['docker']['log_options'].split(',') new_local_facts = self.remove_empty_facts(new_local_facts) @@ -1875,7 +1886,7 @@ class OpenShiftFacts(object): if isinstance(facts[fact], dict): facts[fact] = self.remove_empty_facts(facts[fact]) else: - if value == "" or value is None: + if value == "" or value == [""] or value is None: facts_to_remove.append(fact) for fact in facts_to_remove: del facts[fact] -- cgit v1.2.3