Ensure that k8s_facts always returns resources key (#46733) (#47253)

* Ensure that k8s_facts always returns resources key (#46733)

Fix bug returning `items` key if NotFound exception is hit

(cherry picked from commit b772485d97)

* Add changelog for k8s_facts fix
This commit is contained in:
Will Thames 2018-10-23 14:05:31 +10:00 committed by Toshio Kuratomi
parent 1a4604361f
commit bac6f99608
3 changed files with 18 additions and 2 deletions

View file

@ -0,0 +1,3 @@
---
bugfixes:
- k8s_facts now returns a resources key in all situations

View file

@ -204,7 +204,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'])

View file

@ -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