diff options
author | Eric Mountain <eric.mountain@amadeus.com> | 2017-02-07 16:13:07 +0100 |
---|---|---|
committer | Eric Mountain <eric.mountain@amadeus.com> | 2017-03-07 10:17:24 +0100 |
commit | 0aa1803603fb998c92c85577b216790b0e1ff7d1 (patch) | |
tree | 0e215f04189bf5841e5d73b0b9919d10d2792263 /roles | |
parent | f017f5afc88e65ce57751c6e6ac99cb9094eb716 (diff) | |
download | openshift-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).
Diffstat (limited to 'roles')
-rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 9 |
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): |