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 | |
| 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).
| -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): | 
