From b772485d97168722c241aca13906ab016b332cdd Mon Sep 17 00:00:00 2001 From: Will Thames Date: Fri, 12 Oct 2018 19:11:48 +1000 Subject: [PATCH] Ensure that k8s_facts always returns resources key (#46733) Fix bug returning `items` key if NotFound exception is hit --- lib/ansible/module_utils/k8s/common.py | 2 +- .../k8s/playbooks/roles/k8s/tasks/main.yml | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/ansible/module_utils/k8s/common.py b/lib/ansible/module_utils/k8s/common.py index 9d8f81f6bbb..e371c6d51f1 100644 --- a/lib/ansible/module_utils/k8s/common.py +++ b/lib/ansible/module_utils/k8s/common.py @@ -189,7 +189,7 @@ class K8sAnsibleMixin(object): label_selector=','.join(label_selectors), field_selector=','.join(field_selectors)).to_dict() except openshift.dynamic.exceptions.NotFoundError: - return dict(items=[]) + return dict(resources=[]) if 'items' in result: return dict(resources=result['items']) diff --git a/test/integration/targets/k8s/playbooks/roles/k8s/tasks/main.yml b/test/integration/targets/k8s/playbooks/roles/k8s/tasks/main.yml index beb66b423bd..13ef50fdc4b 100644 --- a/test/integration/targets/k8s/playbooks/roles/k8s/tasks/main.yml +++ b/test/integration/targets/k8s/playbooks/roles/k8s/tasks/main.yml @@ -15,6 +15,19 @@ debug: var: output + - name: k8s_facts works with empty resources + k8s_facts: + kind: Deployment + namespace: testing + api_version: extensions/v1beta1 + register: k8s_facts + + - name: assert that k8s_facts is in correct format + assert: + that: + - "'resources' in k8s_facts" + - not k8s_facts.resources + - name: Create a service k8s: state: present @@ -85,7 +98,7 @@ k8s: state: present inline: &deployment - apiVersion: apps/v1beta1 + apiVersion: extensions/v1beta1 kind: Deployment metadata: name: elastic