Fix parsing of tasks with variable module names

Also adding an integration test for same.
pull/8365/head
James Cammarata 10 years ago
parent 189824dd76
commit 80df2135e9

@ -17,6 +17,7 @@
from ansible import errors
from ansible import utils
from ansible.module_utils.splitter import split_args
import os
import ansible.utils.template as template
import sys
@ -234,13 +235,13 @@ class Task(object):
self.notify = [ self.notify ]
# split the action line into a module name + arguments
tokens = self.action.split(None, 1)
tokens = split_args(self.action)
if len(tokens) < 1:
raise errors.AnsibleError("invalid/missing action in task. name: %s" % self.name)
self.module_name = tokens[0]
self.module_args = ''
if len(tokens) > 1:
self.module_args = tokens[1]
self.module_args = " ".join(tokens[1:])
import_tags = self.module_vars.get('tags',[])
if type(import_tags) in [int,float]:

@ -152,4 +152,15 @@
that:
- complex_param == "this is a param in a complex arg with double quotes"
- name: test variable module name
action: "{{ variable_module_name }} msg='this should be debugged'"
register: result
- debug: var=result
- name: assert the task with variable module name ran
assert:
that:
- result.invocation.module_name == "debug"
- result.msg == "this should be debugged"

@ -0,0 +1,2 @@
---
variable_module_name: debug
Loading…
Cancel
Save