From 7201a6ffad68d158d30e5f5896c54cbfe3deaded Mon Sep 17 00:00:00 2001
From: Michael DeHaan <michael@ansibleworks.com>
Date: Wed, 30 Oct 2013 20:35:33 -0400
Subject: [PATCH] Evaluate the conditional for each item for modules that
 normally try to group with_items results like yum and apt.

---
 lib/ansible/runner/__init__.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py
index d7ea202175d..c61452839ab 100644
--- a/lib/ansible/runner/__init__.py
+++ b/lib/ansible/runner/__init__.py
@@ -459,7 +459,12 @@ class Runner(object):
 
             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
-                inject['item'] = ",".join(items)
+                use_these_items = []
+                for x in items:
+                    inject['item'] = x
+                    if not self.conditional or utils.check_conditional(self.conditional, self.basedir, inject, fail_on_undefined=self.error_on_undefined_vars):
+                        use_these_items.append(item)
+                inject['item'] = ",".join(use_these_items)
                 items = None
 
         # logic to replace complex args if possible