From e8a95a1dac8fbb3b509ab92142f25d6f857ad11b Mon Sep 17 00:00:00 2001 From: beeankha Date: Tue, 14 Jan 2020 16:28:16 -0500 Subject: [PATCH] Fail the task if extra_vars is set on launch but ask_extra_vars is not set to True on the Job Template --- awx_collection/plugins/modules/tower_job_launch.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/awx_collection/plugins/modules/tower_job_launch.py b/awx_collection/plugins/modules/tower_job_launch.py index 65566cb316..ac25c5caeb 100644 --- a/awx_collection/plugins/modules/tower_job_launch.py +++ b/awx_collection/plugins/modules/tower_job_launch.py @@ -122,9 +122,17 @@ def update_fields(module, p): params = p.copy() params_update = {} + job_template = params.get('job_template') extra_vars = params.get('extra_vars') + try: + ask_extra_vars = tower_cli.get_resource('job_template').get(name=job_template)['ask_variables_on_launch'] + except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo: + module.fail_json(msg='Failed to get ask_extra_vars parameter, job template not found: {0}'.format(excinfo), changed=False) - if extra_vars: + if extra_vars and ask_extra_vars is not True: + module.fail_json(msg="extra_vars is set on launch but the Job Template does not have ask_extra_vars set to True.") + + elif extra_vars: params_update['extra_vars'] = [json.dumps(extra_vars)] params.update(params_update)