summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Mountain <eric.mountain@amadeus.com>2017-02-07 16:13:07 +0100
committerEric Mountain <eric.mountain@amadeus.com>2017-03-07 10:17:24 +0100
commit0aa1803603fb998c92c85577b216790b0e1ff7d1 (patch)
tree0e215f04189bf5841e5d73b0b9919d10d2792263
parentf017f5afc88e65ce57751c6e6ac99cb9094eb716 (diff)
downloadopenshift-0aa1803603fb998c92c85577b216790b0e1ff7d1.tar.gz
openshift-0aa1803603fb998c92c85577b216790b0e1ff7d1.tar.bz2
openshift-0aa1803603fb998c92c85577b216790b0e1ff7d1.tar.xz
openshift-0aa1803603fb998c92c85577b216790b0e1ff7d1.zip
Preserve order of Docker registries
List of additional/blocked/insecure Docker registries was being converted to a set, thereby dropping the original order. Fixed to preserve order of the registries (this allows prioritising registries).
-rwxr-xr-xroles/openshift_facts/library/openshift_facts.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py
index 75b55c369..8ea900e21 100755
--- a/roles/openshift_facts/library/openshift_facts.py
+++ b/roles/openshift_facts/library/openshift_facts.py
@@ -2319,14 +2319,19 @@ class OpenShiftFacts(object):
protected_facts_to_overwrite)
if 'docker' in new_local_facts:
- # remove duplicate and empty strings from registry lists
+ # remove duplicate and empty strings from registry lists, preserving order
for cat in ['additional', 'blocked', 'insecure']:
key = '{0}_registries'.format(cat)
if key in new_local_facts['docker']:
val = new_local_facts['docker'][key]
if isinstance(val, string_types):
val = [x.strip() for x in val.split(',')]
- new_local_facts['docker'][key] = list(set(val) - set(['']))
+ seen = set()
+ new_local_facts['docker'][key] = list()
+ for registry in val:
+ if registry not in seen and registry != '':
+ seen.add(registry)
+ new_local_facts['docker'][key].append(registry)
# 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'], string_types):