diff options
Diffstat (limited to 'lib/ansible/modules/web_infrastructure/ansible_tower/tower_host.py')
-rw-r--r-- | lib/ansible/modules/web_infrastructure/ansible_tower/tower_host.py | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/lib/ansible/modules/web_infrastructure/ansible_tower/tower_host.py b/lib/ansible/modules/web_infrastructure/ansible_tower/tower_host.py deleted file mode 100644 index 6fd411a636..0000000000 --- a/lib/ansible/modules/web_infrastructure/ansible_tower/tower_host.py +++ /dev/null @@ -1,131 +0,0 @@ -#!/usr/bin/python -# coding: utf-8 -*- - -# (c) 2017, Wayne Witzel III <wayne@riotousliving.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 = {'metadata_version': '1.1', - 'status': ['preview'], - 'supported_by': 'community'} - - -DOCUMENTATION = ''' ---- -module: tower_host -version_added: "2.3" -author: "Wayne Witzel III (@wwitzel3)" -short_description: create, update, or destroy Ansible Tower host. -description: - - Create, update, or destroy Ansible Tower hosts. See - U(https://www.ansible.com/tower) for an overview. -options: - name: - description: - - The name to use for the host. - required: True - description: - description: - - The description to use for the host. - inventory: - description: - - Inventory the host should be made a member of. - required: True - enabled: - description: - - If the host should be enabled. - type: bool - default: 'yes' - variables: - description: - - Variables to use for the host. Use C(@) for a file. - state: - description: - - Desired state of the resource. - choices: ["present", "absent"] - default: "present" -extends_documentation_fragment: tower -''' - - -EXAMPLES = ''' -- name: Add tower host - tower_host: - name: localhost - description: "Local Host Group" - inventory: "Local Inventory" - state: present - tower_config_file: "~/tower_cli.cfg" - variables: - example_var: 123 -''' - - -import os - -from ansible.module_utils.ansible_tower import TowerModule, tower_auth_config, tower_check_mode, HAS_TOWER_CLI - -try: - import tower_cli - import tower_cli.exceptions as exc - - from tower_cli.conf import settings -except ImportError: - pass - - -def main(): - argument_spec = dict( - name=dict(required=True), - description=dict(), - inventory=dict(required=True), - enabled=dict(type='bool', default=True), - variables=dict(), - state=dict(choices=['present', 'absent'], default='present'), - ) - module = TowerModule(argument_spec=argument_spec, supports_check_mode=True) - - name = module.params.get('name') - description = module.params.get('description') - inventory = module.params.get('inventory') - enabled = module.params.get('enabled') - state = module.params.get('state') - - variables = module.params.get('variables') - if variables: - if variables.startswith('@'): - filename = os.path.expanduser(variables[1:]) - with open(filename, 'r') as f: - variables = f.read() - - json_output = {'host': name, 'state': state} - - tower_auth = tower_auth_config(module) - with settings.runtime_values(**tower_auth): - tower_check_mode(module) - host = tower_cli.get_resource('host') - - try: - inv_res = tower_cli.get_resource('inventory') - inv = inv_res.get(name=inventory) - - if state == 'present': - result = host.modify(name=name, inventory=inv['id'], enabled=enabled, - variables=variables, description=description, create_on_missing=True) - json_output['id'] = result['id'] - elif state == 'absent': - result = host.delete(name=name, inventory=inv['id']) - except (exc.NotFound) as excinfo: - module.fail_json(msg='Failed to update host, inventory not found: {0}'.format(excinfo), changed=False) - except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo: - module.fail_json(msg='Failed to update host: {0}'.format(excinfo), changed=False) - - json_output['changed'] = result['changed'] - module.exit_json(**json_output) - - -if __name__ == '__main__': - main() |