Fixes #4665 and #4666 If task is conditional do not flatten items list for packaging modules

This commit is contained in:
James Tanner 2013-10-25 13:46:41 -04:00
parent 9b1fe455c6
commit 1f6edf7d76

View file

@ -442,10 +442,12 @@ class Runner(object):
if type(items) != list: if type(items) != list:
raise errors.AnsibleError("lookup plugins have to return a list: %r" % items) raise errors.AnsibleError("lookup plugins have to return a list: %r" % items)
# hack for apt, yum, and pkgng so that with_items maps back into a single module call
if len(items) and utils.is_list_of_strings(items) and self.module_name in [ 'apt', 'yum', 'pkgng' ]: if len(items) and utils.is_list_of_strings(items) and self.module_name in [ 'apt', 'yum', 'pkgng' ]:
# hack for apt, yum, and pkgng so that with_items maps back into a single module call # only join the item/package names if this task is not conditional
inject['item'] = ",".join(items) if not self.conditional:
items = None inject['item'] = ",".join(items)
items = None
# logic to replace complex args if possible # logic to replace complex args if possible
complex_args = self.complex_args complex_args = self.complex_args