from __future__ import (absolute_import, division, print_function) from ansible.module_utils.six import string_types __metaclass__ = type def list_dict_str(value): if isinstance(value, (list, dict, string_types)): return value raise TypeError AUTH_PROXY_HEADERS_SPEC = dict( proxy_basic_auth=dict(type='str', no_log=True), basic_auth=dict(type='str', no_log=True), user_agent=dict(type='str') ) AUTH_ARG_SPEC = { 'kubeconfig': { 'type': 'raw', }, 'context': {}, 'host': {}, 'api_key': { 'no_log': True, }, 'username': {}, 'password': { 'no_log': True, }, 'validate_certs': { 'type': 'bool', 'aliases': ['verify_ssl'], }, 'ca_cert': { 'type': 'path', 'aliases': ['ssl_ca_cert'], }, 'client_cert': { 'type': 'path', 'aliases': ['cert_file'], }, 'client_key': { 'type': 'path', 'aliases': ['key_file'], }, 'proxy': { 'type': 'str', }, 'proxy_headers': { 'type': 'dict', 'options': AUTH_PROXY_HEADERS_SPEC }, 'persist_config': { 'type': 'bool', }, } WAIT_ARG_SPEC = dict( wait=dict(type='bool', default=False), wait_sleep=dict(type='int', default=5), wait_timeout=dict(type='int', default=120), wait_condition=dict( type='dict', default=None, options=dict( type=dict(), status=dict(default=True, choices=[True, False, "Unknown"]), reason=dict() ) ) ) # Map kubernetes-client parameters to ansible parameters AUTH_ARG_MAP = { 'kubeconfig': 'kubeconfig', 'context': 'context', 'host': 'host', 'api_key': 'api_key', 'username': 'username', 'password': 'password', 'verify_ssl': 'validate_certs', 'ssl_ca_cert': 'ca_cert', 'cert_file': 'client_cert', 'key_file': 'client_key', 'proxy': 'proxy', 'proxy_headers': 'proxy_headers', 'persist_config': 'persist_config', } NAME_ARG_SPEC = { 'kind': {}, 'name': {}, 'namespace': {}, 'api_version': { 'default': 'v1', 'aliases': ['api', 'version'], }, } COMMON_ARG_SPEC = { 'state': { 'default': 'present', 'choices': ['present', 'absent'], }, 'force': { 'type': 'bool', 'default': False, }, } RESOURCE_ARG_SPEC = { 'resource_definition': { 'type': list_dict_str, 'aliases': ['definition', 'inline'] }, 'src': { 'type': 'path', }, } ARG_ATTRIBUTES_BLACKLIST = ('property_path',) DELETE_OPTS_ARG_SPEC = { 'propagationPolicy': { 'choices': ['Foreground', 'Background', 'Orphan'], }, 'gracePeriodSeconds': { 'type': 'int', }, 'preconditions': { 'type': 'dict', 'options': { 'resourceVersion': { 'type': 'str', }, 'uid': { 'type': 'str', } } } }