mirror of
https://github.com/ansible/awx.git
synced 2026-03-13 15:09:32 -02:30
Fix extra_vars bug in ansible.controller.ad_hoc_command (#14585)
* convert to valid type for serializer * check that extra_vars are in request * remove doubled line * add integration test for change * move change to the ad_hoc_command module Signed-off-by: jessicamack <jmack@redhat.com> * fix imports Signed-off-by: jessicamack <jmack@redhat.com> --------- Signed-off-by: jessicamack <jmack@redhat.com>
This commit is contained in:
@@ -118,6 +118,7 @@ status:
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
from ..module_utils.controller_api import ControllerAPIModule
|
from ..module_utils.controller_api import ControllerAPIModule
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@@ -161,7 +162,11 @@ def main():
|
|||||||
}
|
}
|
||||||
for arg in ['job_type', 'limit', 'forks', 'verbosity', 'extra_vars', 'become_enabled', 'diff_mode']:
|
for arg in ['job_type', 'limit', 'forks', 'verbosity', 'extra_vars', 'become_enabled', 'diff_mode']:
|
||||||
if module.params.get(arg):
|
if module.params.get(arg):
|
||||||
post_data[arg] = module.params.get(arg)
|
# extra_var can receive a dict or a string, if a dict covert it to a string
|
||||||
|
if arg == 'extra_vars' and type(module.params.get(arg)) is not str:
|
||||||
|
post_data[arg] = json.dumps(module.params.get(arg))
|
||||||
|
else:
|
||||||
|
post_data[arg] = module.params.get(arg)
|
||||||
|
|
||||||
# Attempt to look up the related items the user specified (these will fail the module if not found)
|
# Attempt to look up the related items the user specified (these will fail the module if not found)
|
||||||
post_data['inventory'] = module.resolve_name_to_id('inventories', inventory)
|
post_data['inventory'] = module.resolve_name_to_id('inventories', inventory)
|
||||||
|
|||||||
@@ -72,6 +72,21 @@
|
|||||||
- "result is changed"
|
- "result is changed"
|
||||||
- "result.status == 'successful'"
|
- "result.status == 'successful'"
|
||||||
|
|
||||||
|
- name: Launch an Ad Hoc Command with extra_vars
|
||||||
|
ad_hoc_command:
|
||||||
|
inventory: "Demo Inventory"
|
||||||
|
credential: "{{ ssh_cred_name }}"
|
||||||
|
module_name: "ping"
|
||||||
|
extra_vars:
|
||||||
|
var1: "test var"
|
||||||
|
wait: true
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "result is changed"
|
||||||
|
- "result.status == 'successful'"
|
||||||
|
|
||||||
- name: Launch an Ad Hoc Command with Execution Environment specified
|
- name: Launch an Ad Hoc Command with Execution Environment specified
|
||||||
ad_hoc_command:
|
ad_hoc_command:
|
||||||
inventory: "Demo Inventory"
|
inventory: "Demo Inventory"
|
||||||
|
|||||||
Reference in New Issue
Block a user