summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py')
-rw-r--r--lib/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py130
1 files changed, 0 insertions, 130 deletions
diff --git a/lib/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py b/lib/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py
deleted file mode 100644
index c709ab7c8a..0000000000
--- a/lib/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py
+++ /dev/null
@@ -1,130 +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_inventory
-version_added: "2.3"
-author: "Wayne Witzel III (@wwitzel3)"
-short_description: create, update, or destroy Ansible Tower inventory.
-description:
- - Create, update, or destroy Ansible Tower inventories. See
- U(https://www.ansible.com/tower) for an overview.
-options:
- name:
- description:
- - The name to use for the inventory.
- required: True
- description:
- description:
- - The description to use for the inventory.
- organization:
- description:
- - Organization the inventory belongs to.
- required: True
- variables:
- description:
- - Inventory variables. Use C(@) to get from file.
- kind:
- description:
- - The kind field. Cannot be modified after created.
- default: ""
- choices: ["", "smart"]
- version_added: "2.7"
- host_filter:
- description:
- - The host_filter field. Only useful when C(kind=smart).
- version_added: "2.7"
- state:
- description:
- - Desired state of the resource.
- default: "present"
- choices: ["present", "absent"]
-extends_documentation_fragment: tower
-'''
-
-
-EXAMPLES = '''
-- name: Add tower inventory
- tower_inventory:
- name: "Foo Inventory"
- description: "Our Foo Cloud Servers"
- organization: "Bar Org"
- state: present
- tower_config_file: "~/tower_cli.cfg"
-'''
-
-
-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
-
-
-def main():
- argument_spec = dict(
- name=dict(required=True),
- description=dict(),
- organization=dict(required=True),
- variables=dict(),
- kind=dict(choices=['', 'smart'], default=''),
- host_filter=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')
- organization = module.params.get('organization')
- variables = module.params.get('variables')
- state = module.params.get('state')
- kind = module.params.get('kind')
- host_filter = module.params.get('host_filter')
-
- json_output = {'inventory': name, 'state': state}
-
- tower_auth = tower_auth_config(module)
- with settings.runtime_values(**tower_auth):
- tower_check_mode(module)
- inventory = tower_cli.get_resource('inventory')
-
- try:
- org_res = tower_cli.get_resource('organization')
- org = org_res.get(name=organization)
-
- if state == 'present':
- result = inventory.modify(name=name, organization=org['id'], variables=variables,
- description=description, kind=kind, host_filter=host_filter,
- create_on_missing=True)
- json_output['id'] = result['id']
- elif state == 'absent':
- result = inventory.delete(name=name, organization=org['id'])
- except (exc.NotFound) as excinfo:
- module.fail_json(msg='Failed to update inventory, organization not found: {0}'.format(excinfo), changed=False)
- except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
- module.fail_json(msg='Failed to update inventory: {0}'.format(excinfo), changed=False)
-
- json_output['changed'] = result['changed']
- module.exit_json(**json_output)
-
-
-if __name__ == '__main__':
- main()