summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_launch.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_launch.py')
-rw-r--r--lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_launch.py159
1 files changed, 0 insertions, 159 deletions
diff --git a/lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_launch.py b/lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_launch.py
deleted file mode 100644
index dbae9e9399..0000000000
--- a/lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_launch.py
+++ /dev/null
@@ -1,159 +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_job_launch
-author: "Wayne Witzel III (@wwitzel3)"
-version_added: "2.3"
-short_description: Launch an Ansible Job.
-description:
- - Launch an Ansible Tower jobs. See
- U(https://www.ansible.com/tower) for an overview.
-options:
- job_template:
- description:
- - Name of the job template to use.
- required: True
- job_explanation:
- description:
- - Job explanation field.
- job_type:
- description:
- - Job_type to use for the job, only used if prompt for job_type is set.
- choices: ["run", "check", "scan"]
- inventory:
- description:
- - Inventory to use for the job, only used if prompt for inventory is set.
- credential:
- description:
- - Credential to use for job, only used if prompt for credential is set.
- extra_vars:
- description:
- - Extra_vars to use for the job_template. Prepend C(@) if a file.
- limit:
- description:
- - Limit to use for the I(job_template).
- tags:
- description:
- - Specific tags to use for from playbook.
- use_job_endpoint:
- description:
- - Disable launching jobs from job template.
- type: bool
- default: 'no'
-extends_documentation_fragment: tower
-'''
-
-EXAMPLES = '''
-# Launch a job template
-- name: Launch a job
- tower_job_launch:
- job_template: "My Job Template"
- register: job
-
-- name: Wait for job max 120s
- tower_job_wait:
- job_id: "{{ job.id }}"
- timeout: 120
-
-# Launch job template with inventory and credential for prompt on launch
-- name: Launch a job with inventory and credential
- tower_job_launch:
- job_template: "My Job Template"
- inventory: "My Inventory"
- credential: "My Credential"
- register: job
-- name: Wait for job max 120s
- tower_job_wait:
- job_id: "{{ job.id }}"
- timeout: 120
-'''
-
-RETURN = '''
-id:
- description: job id of the newly launched job
- returned: success
- type: int
- sample: 86
-status:
- description: status of newly launched job
- returned: success
- type: str
- sample: pending
-'''
-
-
-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(
- job_template=dict(required=True, type='str'),
- job_type=dict(choices=['run', 'check', 'scan']),
- inventory=dict(type='str', default=None),
- credential=dict(type='str', default=None),
- limit=dict(),
- tags=dict(type='list'),
- extra_vars=dict(type='list'),
- )
-
- module = TowerModule(
- argument_spec,
- supports_check_mode=True
- )
-
- json_output = {}
- tags = module.params.get('tags')
-
- tower_auth = tower_auth_config(module)
- with settings.runtime_values(**tower_auth):
- tower_check_mode(module)
- try:
- params = module.params.copy()
- if isinstance(tags, list):
- params['tags'] = ','.join(tags)
- job = tower_cli.get_resource('job')
-
- lookup_fields = ('job_template', 'inventory', 'credential')
- for field in lookup_fields:
- try:
- name = params.pop(field)
- if name:
- result = tower_cli.get_resource(field).get(name=name)
- params[field] = result['id']
- except exc.NotFound as excinfo:
- module.fail_json(msg='Unable to launch job, {0}/{1} was not found: {2}'.format(field, name, excinfo), changed=False)
-
- result = job.launch(no_input=True, **params)
- json_output['id'] = result['id']
- json_output['status'] = result['status']
- except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
- module.fail_json(msg='Unable to launch job: {0}'.format(excinfo), changed=False)
-
- json_output['changed'] = result['changed']
- module.exit_json(**json_output)
-
-
-if __name__ == '__main__':
- main()