summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/web_infrastructure/ansible_tower/tower_credential_type.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/web_infrastructure/ansible_tower/tower_credential_type.py')
-rw-r--r--lib/ansible/modules/web_infrastructure/ansible_tower/tower_credential_type.py174
1 files changed, 0 insertions, 174 deletions
diff --git a/lib/ansible/modules/web_infrastructure/ansible_tower/tower_credential_type.py b/lib/ansible/modules/web_infrastructure/ansible_tower/tower_credential_type.py
deleted file mode 100644
index 831a35ad3f..0000000000
--- a/lib/ansible/modules/web_infrastructure/ansible_tower/tower_credential_type.py
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/usr/bin/python
-# coding: utf-8 -*-
-#
-# (c) 2018, Adrien Fleury <fleu42@gmail.com>
-# GNU General Public License v3.0+
-# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-from __future__ import absolute_import, division, print_function
-__metaclass__ = type
-
-
-ANSIBLE_METADATA = {'status': ['preview'],
- 'supported_by': 'community',
- 'metadata_version': '1.1'}
-
-
-DOCUMENTATION = '''
----
-module: tower_credential_type
-author: "Adrien Fleury (@fleu42)"
-version_added: "2.7"
-short_description: Create, update, or destroy custom Ansible Tower credential type.
-description:
- - Create, update, or destroy Ansible Tower credential type. See
- U(https://www.ansible.com/tower) for an overview.
-options:
- name:
- description:
- - The name of the credential type.
- required: True
- description:
- description:
- - The description of the credential type to give more detail about it.
- required: False
- kind:
- description:
- - >-
- The type of credential type being added. Note that only cloud and
- net can be used for creating credential types. Refer to the Ansible
- for more information.
- choices: [ 'ssh', 'vault', 'net', 'scm', 'cloud', 'insights' ]
- required: False
- inputs:
- description:
- - >-
- Enter inputs using either JSON or YAML syntax. Refer to the Ansible
- Tower documentation for example syntax.
- required: False
- injectors:
- description:
- - >-
- Enter injectors using either JSON or YAML syntax. Refer to the
- Ansible Tower documentation for example syntax.
- required: False
- state:
- description:
- - Desired state of the resource.
- required: False
- default: "present"
- choices: ["present", "absent"]
- validate_certs:
- description:
- - Tower option to avoid certificates check.
- required: False
- type: bool
- aliases: [ tower_verify_ssl ]
-extends_documentation_fragment: tower
-'''
-
-
-EXAMPLES = '''
-- tower_credential_type:
- name: Nexus
- description: Credentials type for Nexus
- kind: cloud
- inputs: "{{ lookup('file', 'tower_credential_inputs_nexus.json') }}"
- injectors: {'extra_vars': {'nexus_credential': 'test' }}
- state: present
- validate_certs: false
-
-- tower_credential_type:
- name: Nexus
- state: absent
-'''
-
-
-RETURN = ''' # '''
-
-
-from ansible.module_utils.ansible_tower import (
- TowerModule,
- tower_auth_config,
- tower_check_mode
-)
-
-try:
- import tower_cli
- import tower_cli.exceptions as exc
- from tower_cli.conf import settings
-except ImportError:
- pass
-
-
-KIND_CHOICES = {
- 'ssh': 'Machine',
- 'vault': 'Ansible Vault',
- 'net': 'Network',
- 'scm': 'Source Control',
- 'cloud': 'Lots of others',
- 'insights': 'Insights'
-}
-
-
-def main():
- argument_spec = dict(
- name=dict(required=True),
- description=dict(required=False),
- kind=dict(required=False, choices=KIND_CHOICES.keys()),
- inputs=dict(type='dict', required=False),
- injectors=dict(type='dict', required=False),
- state=dict(choices=['present', 'absent'], default='present'),
- )
-
- module = TowerModule(
- argument_spec=argument_spec,
- supports_check_mode=False
- )
-
- name = module.params.get('name')
- kind = module.params.get('kind')
- state = module.params.get('state')
-
- json_output = {'credential_type': name, 'state': state}
-
- tower_auth = tower_auth_config(module)
- with settings.runtime_values(**tower_auth):
- tower_check_mode(module)
- credential_type_res = tower_cli.get_resource('credential_type')
-
- params = {}
- params['name'] = name
- params['kind'] = kind
- params['managed_by_tower'] = False
-
- if module.params.get('description'):
- params['description'] = module.params.get('description')
-
- if module.params.get('inputs'):
- params['inputs'] = module.params.get('inputs')
-
- if module.params.get('injectors'):
- params['injectors'] = module.params.get('injectors')
-
- try:
- if state == 'present':
- params['create_on_missing'] = True
- result = credential_type_res.modify(**params)
- json_output['id'] = result['id']
- elif state == 'absent':
- params['fail_on_missing'] = False
- result = credential_type_res.delete(**params)
-
- except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
- module.fail_json(
- msg='Failed to update credential type: {0}'.format(excinfo),
- changed=False
- )
-
- json_output['changed'] = result['changed']
- module.exit_json(**json_output)
-
-
-if __name__ == '__main__':
- main()