From be00d3399795278ac799fab848918d5bd64a2c46 Mon Sep 17 00:00:00 2001 From: Andrew Butcher Date: Mon, 18 Apr 2016 18:03:33 -0400 Subject: Fix router selector fact migration and match multiple selectors when counting nodes. --- roles/openshift_facts/library/openshift_facts.py | 1 + roles/openshift_hosted/tasks/router.yml | 1 + roles/openshift_hosted_facts/tasks/main.yml | 6 ++++++ roles/openshift_master_facts/tasks/main.yml | 1 - 4 files changed, 8 insertions(+), 1 deletion(-) (limited to 'roles') diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 3bdad1175..f0f3e3861 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -95,6 +95,7 @@ def migrate_local_facts(facts): migrated_facts = migrate_docker_facts(migrated_facts) migrated_facts = migrate_common_facts(migrated_facts) migrated_facts = migrate_node_facts(migrated_facts) + migrated_facts = migrate_hosted_facts(migrated_facts) return migrated_facts def migrate_hosted_facts(facts): diff --git a/roles/openshift_hosted/tasks/router.yml b/roles/openshift_hosted/tasks/router.yml index 6a36f74b2..4ccbf4430 100644 --- a/roles/openshift_hosted/tasks/router.yml +++ b/roles/openshift_hosted/tasks/router.yml @@ -32,6 +32,7 @@ {{ openshift.common.client_binary }} --api-version='v1' -o json get nodes -n default --config={{ openshift.common.config_base }}/master/admin.kubeconfig register: openshift_hosted_router_nodes_json + changed_when: false when: openshift.hosted.router.replicas | default(None) == None - name: Collect nodes matching router selector diff --git a/roles/openshift_hosted_facts/tasks/main.yml b/roles/openshift_hosted_facts/tasks/main.yml index f595e1e81..b77318085 100644 --- a/roles/openshift_hosted_facts/tasks/main.yml +++ b/roles/openshift_hosted_facts/tasks/main.yml @@ -1,4 +1,10 @@ --- +- name: Set legacy hosted facts + openshift_facts: + role: hosted + openshift_env: + openshift_hosted_router_selector: "{{ openshift_router_selector | default(None) }}" + - name: Set hosted facts openshift_facts: role: hosted diff --git a/roles/openshift_master_facts/tasks/main.yml b/roles/openshift_master_facts/tasks/main.yml index e3be12182..a020fdb41 100644 --- a/roles/openshift_master_facts/tasks/main.yml +++ b/roles/openshift_master_facts/tasks/main.yml @@ -54,7 +54,6 @@ mcs_allocator_range: "{{ osm_mcs_allocator_range | default(None) }}" mcs_labels_per_project: "{{ osm_mcs_labels_per_project | default(None) }}" uid_allocator_range: "{{ osm_uid_allocator_range | default(None) }}" - router_selector: "{{ openshift_router_selector | default(None) }}" registry_selector: "{{ openshift_registry_selector | default(None) }}" api_server_args: "{{ osm_api_server_args | default(None) }}" controller_args: "{{ osm_controller_args | default(None) }}" -- cgit v1.2.3 From 7247fb26ada1973d895b5831005250cf494b6d93 Mon Sep 17 00:00:00 2001 From: Andrew Butcher Date: Tue, 19 Apr 2016 13:12:04 -0400 Subject: Remove empty facts from nested dictionaries. --- roles/openshift_facts/library/openshift_facts.py | 26 ++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'roles') diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index f0f3e3861..681521f51 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -1837,14 +1837,7 @@ class OpenShiftFacts(object): val = [x.strip() for x in val.split(',')] new_local_facts['docker'][key] = list(set(val) - set([''])) - for facts in new_local_facts.values(): - keys_to_delete = [] - if isinstance(facts, dict): - for fact, value in facts.iteritems(): - if value == "" or value is None: - keys_to_delete.append(fact) - for key in keys_to_delete: - del facts[key] + new_local_facts = self.remove_empty_facts(new_local_facts) if new_local_facts != local_facts: self.validate_local_facts(new_local_facts) @@ -1855,6 +1848,23 @@ class OpenShiftFacts(object): self.changed = changed return new_local_facts + def remove_empty_facts(self, facts=None): + """ Remove empty facts + + Args: + facts (dict): facts to clean + """ + facts_to_remove = [] + for fact, value in facts.iteritems(): + if isinstance(facts[fact], dict): + facts[fact] = self.remove_empty_facts(facts[fact]) + else: + if value == "" or value is None: + facts_to_remove.append(fact) + for fact in facts_to_remove: + del facts[fact] + return facts + def validate_local_facts(self, facts=None): """ Validate local facts -- cgit v1.2.3 From bfa45e45ed906c4a83ce985ad5f4375fde950178 Mon Sep 17 00:00:00 2001 From: Andrew Butcher Date: Tue, 19 Apr 2016 16:53:30 -0400 Subject: Translate legacy facts within the oo_openshift_env filter. --- roles/openshift_hosted_facts/tasks/main.yml | 6 ------ 1 file changed, 6 deletions(-) (limited to 'roles') diff --git a/roles/openshift_hosted_facts/tasks/main.yml b/roles/openshift_hosted_facts/tasks/main.yml index b77318085..f595e1e81 100644 --- a/roles/openshift_hosted_facts/tasks/main.yml +++ b/roles/openshift_hosted_facts/tasks/main.yml @@ -1,10 +1,4 @@ --- -- name: Set legacy hosted facts - openshift_facts: - role: hosted - openshift_env: - openshift_hosted_router_selector: "{{ openshift_router_selector | default(None) }}" - - name: Set hosted facts openshift_facts: role: hosted -- cgit v1.2.3