diff options
| -rw-r--r-- | filter_plugins/oo_filters.py | 21 | ||||
| -rw-r--r-- | playbooks/byo/openshift_facts.yml | 3 | ||||
| -rw-r--r-- | roles/openshift_builddefaults/tasks/main.yml | 5 | ||||
| -rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 103 | 
4 files changed, 8 insertions, 124 deletions
| diff --git a/filter_plugins/oo_filters.py b/filter_plugins/oo_filters.py index 45795d097..2cb30123e 100644 --- a/filter_plugins/oo_filters.py +++ b/filter_plugins/oo_filters.py @@ -690,26 +690,6 @@ def to_padded_yaml(data, level=0, indent=2, **kw):          raise errors.AnsibleFilterError('Failed to convert: %s' % my_e) -def oo_openshift_env(hostvars): -    ''' Return facts which begin with "openshift_" and translate -        legacy facts to their openshift_env counterparts. - -        Ex: hostvars = {'openshift_fact': 42, -                        'theyre_taking_the_hobbits_to': 'isengard'} -            returns  = {'openshift_fact': 42} -    ''' -    if not issubclass(type(hostvars), dict): -        raise errors.AnsibleFilterError("|failed expects hostvars is a dict") - -    facts = {} -    regex = re.compile('^openshift_.*') -    for key in hostvars: -        if regex.match(key): -            facts[key] = hostvars[key] - -    return facts - -  def oo_31_rpm_rename_conversion(rpms, openshift_version=None):      """ Filters a list of 3.0 rpms and return the corresponding 3.1 rpms          names with proper version (if provided) @@ -996,7 +976,6 @@ class FilterModule(object):              "oo_pretty_print_cluster": oo_pretty_print_cluster,              "oo_generate_secret": oo_generate_secret,              "oo_nodes_with_label": oo_nodes_with_label, -            "oo_openshift_env": oo_openshift_env,              "oo_31_rpm_rename_conversion": oo_31_rpm_rename_conversion,              "oo_pods_match_component": oo_pods_match_component,              "oo_get_hosts_from_hostvars": oo_get_hosts_from_hostvars, diff --git a/playbooks/byo/openshift_facts.yml b/playbooks/byo/openshift_facts.yml index 29e0ebe8d..322f527ae 100644 --- a/playbooks/byo/openshift_facts.yml +++ b/playbooks/byo/openshift_facts.yml @@ -6,8 +6,7 @@    roles:    - openshift_facts    tasks: -  - openshift_facts: -      openshift_env: "{{ hostvars[inventory_hostname] | oo_openshift_env }}" +  - openshift_facts: {}      register: result    - debug:        var: result diff --git a/roles/openshift_builddefaults/tasks/main.yml b/roles/openshift_builddefaults/tasks/main.yml index e0b51eee0..612b6522d 100644 --- a/roles/openshift_builddefaults/tasks/main.yml +++ b/roles/openshift_builddefaults/tasks/main.yml @@ -4,11 +4,6 @@      role: builddefaults      # TODO: add ability to define builddefaults env vars sort of like this      # may need to move the config generation to a filter however. -    # openshift_env: "{{ hostvars -    #                    | oo_merge_hostvars(vars, inventory_hostname) -    #                    | oo_openshift_env }}" -    # openshift_env_structures: -    # - 'openshift.builddefaults.env.*'      local_facts:        http_proxy: "{{ openshift_builddefaults_http_proxy | default(None) }}"        https_proxy: "{{ openshift_builddefaults_https_proxy | default(None) }}" diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index f57b59085..96305e899 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -1486,9 +1486,7 @@ class OpenShiftFacts(object):      # Disabling too-many-arguments, this should be cleaned up as a TODO item.      # pylint: disable=too-many-arguments,no-value-for-parameter      def __init__(self, role, filename, local_facts, -                 additive_facts_to_overwrite=None, -                 openshift_env=None, -                 openshift_env_structures=None): +                 additive_facts_to_overwrite=None):          self.changed = False          self.filename = filename          if role not in self.known_roles: @@ -1510,29 +1508,23 @@ class OpenShiftFacts(object):              self.system_facts = get_all_facts(module)['ansible_facts']  # noqa: F405          self.facts = self.generate_facts(local_facts, -                                         additive_facts_to_overwrite, -                                         openshift_env, -                                         openshift_env_structures) +                                         additive_facts_to_overwrite)      def generate_facts(self,                         local_facts, -                       additive_facts_to_overwrite, -                       openshift_env, -                       openshift_env_structures): +                       additive_facts_to_overwrite):          """ Generate facts              Args:                  local_facts (dict): local_facts for overriding generated defaults                  additive_facts_to_overwrite (list): additive facts to overwrite in jinja                                                      '.' notation ex: ['master.named_certificates'] -                openshift_env (dict): openshift_env facts for overriding generated defaults              Returns:                  dict: The generated facts          """ +          local_facts = self.init_local_facts(local_facts, -                                            additive_facts_to_overwrite, -                                            openshift_env, -                                            openshift_env_structures) +                                            additive_facts_to_overwrite)          roles = local_facts.keys()          if 'common' in local_facts and 'deployment_type' in local_facts['common']: @@ -1700,62 +1692,17 @@ class OpenShiftFacts(object):          )          return provider_facts -    @staticmethod -    def split_openshift_env_fact_keys(openshift_env_fact, openshift_env_structures): -        """ Split openshift_env facts based on openshift_env structures. - -            Args: -                openshift_env_fact (string): the openshift_env fact to split -                                             ex: 'openshift_cloudprovider_openstack_auth_url' -                openshift_env_structures (list): a list of structures to determine fact keys -                                                 ex: ['openshift.cloudprovider.openstack.*'] -            Returns: -                list: a list of keys that represent the fact -                      ex: ['openshift', 'cloudprovider', 'openstack', 'auth_url'] -        """ -        # By default, we'll split an openshift_env fact by underscores. -        fact_keys = openshift_env_fact.split('_') - -        # Determine if any of the provided variable structures match the fact. -        matching_structure = None -        if openshift_env_structures is not None: -            for structure in openshift_env_structures: -                if re.match(structure, openshift_env_fact): -                    matching_structure = structure -        # Fact didn't match any variable structures so return the default fact keys. -        if matching_structure is None: -            return fact_keys - -        final_keys = [] -        structure_keys = matching_structure.split('.') -        for structure_key in structure_keys: -            # Matched current key. Add to final keys. -            if structure_key == fact_keys[structure_keys.index(structure_key)]: -                final_keys.append(structure_key) -            # Wildcard means we will be taking everything from here to the end of the fact. -            elif structure_key == '*': -                final_keys.append('_'.join(fact_keys[structure_keys.index(structure_key):])) -            # Shouldn't have gotten here, return the fact keys. -            else: -                return fact_keys -        return final_keys -      # Disabling too-many-branches and too-many-locals.      # This should be cleaned up as a TODO item.      # pylint: disable=too-many-branches, too-many-locals      def init_local_facts(self, facts=None, -                         additive_facts_to_overwrite=None, -                         openshift_env=None, -                         openshift_env_structures=None): +                         additive_facts_to_overwrite=None):          """ Initialize the local facts              Args:                  facts (dict): local facts to set                  additive_facts_to_overwrite (list): additive facts to overwrite in jinja                                                      '.' notation ex: ['master.named_certificates'] -                openshift_env (dict): openshift env facts to set - -              Returns:                  dict: The result of merging the provided facts with existing                        local facts @@ -1767,36 +1714,6 @@ class OpenShiftFacts(object):          if facts is not None:              facts_to_set[self.role] = facts -        if openshift_env != {} and openshift_env is not None: -            for fact, value in iteritems(openshift_env): -                oo_env_facts = dict() -                current_level = oo_env_facts -                keys = self.split_openshift_env_fact_keys(fact, openshift_env_structures)[1:] - -                if len(keys) > 0 and keys[0] != self.role: -                    continue - -                # Build a dictionary from the split fact keys. -                # After this loop oo_env_facts is the resultant dictionary. -                # For example: -                # fact = "openshift_metrics_install_metrics" -                # value = 'true' -                # keys = ['metrics', 'install', 'metrics'] -                # result = {'metrics': {'install': {'metrics': 'true'}}} -                for i, _ in enumerate(keys): -                    # This is the last key. Set the value. -                    if i == (len(keys) - 1): -                        current_level[keys[i]] = value -                    # This is a key other than the last key. Set as -                    # dictionary and continue. -                    else: -                        current_level[keys[i]] = dict() -                        current_level = current_level[keys[i]] - -                facts_to_set = merge_facts(orig=facts_to_set, -                                           new=oo_env_facts, -                                           additive_facts_to_overwrite=[]) -          local_facts = get_local_facts_from_file(self.filename)          migrated_facts = migrate_local_facts(local_facts) @@ -1911,8 +1828,6 @@ def main():                        choices=OpenShiftFacts.known_roles),              local_facts=dict(default=None, type='dict', required=False),              additive_facts_to_overwrite=dict(default=[], type='list', required=False), -            openshift_env=dict(default={}, type='dict', required=False), -            openshift_env_structures=dict(default=[], type='list', required=False)          ),          supports_check_mode=True,          add_file_common_args=True, @@ -1928,17 +1843,13 @@ def main():      role = module.params['role']  # noqa: F405      local_facts = module.params['local_facts']  # noqa: F405      additive_facts_to_overwrite = module.params['additive_facts_to_overwrite']  # noqa: F405 -    openshift_env = module.params['openshift_env']  # noqa: F405 -    openshift_env_structures = module.params['openshift_env_structures']  # noqa: F405      fact_file = '/etc/ansible/facts.d/openshift.fact'      openshift_facts = OpenShiftFacts(role,                                       fact_file,                                       local_facts, -                                     additive_facts_to_overwrite, -                                     openshift_env, -                                     openshift_env_structures) +                                     additive_facts_to_overwrite)      file_params = module.params.copy()  # noqa: F405      file_params['path'] = fact_file | 
