From c82f06258ce5b3ccebf8f239b0aca859e5c9ae4b Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Wed, 8 Aug 2012 20:43:01 -0400 Subject: [PATCH] Only run yum,apt through the with_items loop if there is a list of items. Just a cosmetic fix on return values for the most part. --- CHANGELOG.md | 1 + lib/ansible/runner/__init__.py | 2 +- library/yum | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c546d8e3b84..51f87970392 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ Ansible Changes By Release * YAML syntax errors detected and show where the problem is * better changed=True/False detection in user module on older Linux distros * when using paramiko and SFTP is not accessible, do not traceback, but return a nice human readable msg +* nicer errors from modules when arguments are not key=value 0.6 "Cabo" -- August 6, 2012 diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index 2a5503ed315..51989af1e23 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -488,7 +488,7 @@ class Runner(object): if type(items) != list: raise errors.AnsibleError("with_items only takes a list: %s" % items) - if self.module_name in [ 'apt', 'yum' ]: + if len(items) and self.module_name in [ 'apt', 'yum' ]: # hack for apt and soon yum, with_items maps back into a single module call inject['item'] = ",".join(items) items = [] diff --git a/library/yum b/library/yum index 728d12aaf50..a36b2a81ae2 100755 --- a/library/yum +++ b/library/yum @@ -112,7 +112,6 @@ def list_stuff(conf_file, stuff): if conf_file and os.path.exists(conf_file): repoq = '%s -c %s --plugins --quiet -q ' % (repoquery,conf_file) - if stuff == 'installed': return [ pkg_to_dict(p) for p in is_installed(repoq, '-a', qf=qf) if p.strip() ] elif stuff == 'updates':