Handle set object retrieved from lookup plugin (#118)

api_groups is returned as "dict_keys()" which k8s lookip plugin does not handle.
Typecasting with list make it available to default callback plugin.
This commit is contained in:
Abhijeet Kasurde
2020-06-05 12:18:57 +05:30
committed by GitHub
parent c8ef0ae1ad
commit 18dfb687e6
2 changed files with 11 additions and 2 deletions

View File

@@ -185,6 +185,13 @@
metadata:
name: testing1
### https://github.com/ansible-collections/community.kubernetes/issues/111
- set_fact:
api_groups: "{{ lookup('k8s', cluster_info='api_groups') }}"
- debug:
var: api_groups
- name: Namespace should exist
k8s_info:
kind: Namespace

View File

@@ -194,12 +194,12 @@ RETURN = """
type: complex
"""
from ansible.errors import AnsibleError
from ansible.module_utils.common._collections_compat import KeysView
from ansible.plugins.lookup import LookupBase
from ansible_collections.community.kubernetes.plugins.module_utils.common import K8sAnsibleMixin
from ansible.errors import AnsibleError
try:
from openshift.dynamic import DynamicClient
@@ -253,6 +253,8 @@ class KubernetesLookup(K8sAnsibleMixin):
if cluster_info == 'version':
return [self.client.version]
if cluster_info == 'api_groups':
if isinstance(self.client.resources.api_groups, KeysView):
return [list(self.client.resources.api_groups)]
return [self.client.resources.api_groups]
self.kind = kwargs.get('kind')