diff options
Diffstat (limited to 'roles/lib_utils')
| -rw-r--r-- | roles/lib_utils/filter_plugins/oo_filters.py | 14 | ||||
| -rw-r--r-- | roles/lib_utils/filter_plugins/openshift_aws_filters.py | 16 | ||||
| -rw-r--r-- | roles/lib_utils/library/docker_creds.py | 4 | 
3 files changed, 32 insertions, 2 deletions
| diff --git a/roles/lib_utils/filter_plugins/oo_filters.py b/roles/lib_utils/filter_plugins/oo_filters.py index 9f73510c4..ef996fefe 100644 --- a/roles/lib_utils/filter_plugins/oo_filters.py +++ b/roles/lib_utils/filter_plugins/oo_filters.py @@ -4,6 +4,7 @@  """  Custom filters for use in openshift-ansible  """ +import json  import os  import pdb  import random @@ -586,6 +587,18 @@ that result to this filter plugin.      return secret_name +def lib_utils_oo_l_of_d_to_csv(input_list): +    """Map a list of dictionaries, input_list, into a csv string +    of json values. + +    Example input: +    [{'var1': 'val1', 'var2': 'val2'}, {'var1': 'val3', 'var2': 'val4'}] +    Example output: +    u'{"var1": "val1", "var2": "val2"},{"var1": "val3", "var2": "val4"}' +    """ +    return ','.join(json.dumps(x) for x in input_list) + +  def map_from_pairs(source, delim="="):      ''' Returns a dict given the source and delim delimited '''      if source == '': @@ -623,5 +636,6 @@ class FilterModule(object):              "lib_utils_oo_contains_rule": lib_utils_oo_contains_rule,              "lib_utils_oo_selector_to_string_list": lib_utils_oo_selector_to_string_list,              "lib_utils_oo_filter_sa_secrets": lib_utils_oo_filter_sa_secrets, +            "lib_utils_oo_l_of_d_to_csv": lib_utils_oo_l_of_d_to_csv,              "map_from_pairs": map_from_pairs          } diff --git a/roles/lib_utils/filter_plugins/openshift_aws_filters.py b/roles/lib_utils/filter_plugins/openshift_aws_filters.py index dfcb11da3..f16048056 100644 --- a/roles/lib_utils/filter_plugins/openshift_aws_filters.py +++ b/roles/lib_utils/filter_plugins/openshift_aws_filters.py @@ -67,8 +67,24 @@ class FilterModule(object):          return tags +    @staticmethod +    def get_default_az(subnets): +        ''' From a list of subnets/AZs in a specific region (from the VPC +            structure), return the AZ that has the key/value +            'default_az=True.' ''' + +        for subnet in subnets: +            if subnet.get('default_az'): +                return subnet['az'] + +        # if there was none marked with default_az=True, just return the first +        # one. (this does mean we could possible return an item that has +        # default_az=False set +        return subnets[0]['az'] +      def filters(self):          ''' returns a mapping of filters to methods '''          return {'build_instance_tags': self.build_instance_tags, +                'get_default_az': self.get_default_az,                  'scale_groups_match_capacity': self.scale_groups_match_capacity,                  'scale_groups_serial': self.scale_groups_serial} diff --git a/roles/lib_utils/library/docker_creds.py b/roles/lib_utils/library/docker_creds.py index d4674845e..b94c0b779 100644 --- a/roles/lib_utils/library/docker_creds.py +++ b/roles/lib_utils/library/docker_creds.py @@ -135,7 +135,7 @@ def update_config(docker_config, registry, username, password):          docker_config['auths'][registry] = {}      # base64 encode our username:password string -    encoded_data = base64.b64encode('{}:{}'.format(username, password)) +    encoded_data = base64.b64encode('{}:{}'.format(username, password).encode())      # check if the same value is already present for idempotency.      if 'auth' in docker_config['auths'][registry]: @@ -151,7 +151,7 @@ def write_config(module, docker_config, dest):      conf_file_path = os.path.join(dest, 'config.json')      try:          with open(conf_file_path, 'w') as conf_file: -            json.dump(docker_config, conf_file, indent=8) +            json.dump(docker_config.decode(), conf_file, indent=8)      except IOError as ioerror:          result = {'failed': True,                    'changed': False, | 
