diff --git a/lib/ansible/executor/task_executor.py b/lib/ansible/executor/task_executor.py index 8de8f7027a..ddd557f999 100644 --- a/lib/ansible/executor/task_executor.py +++ b/lib/ansible/executor/task_executor.py @@ -48,6 +48,10 @@ class TaskExecutor: class. ''' + # Modules that we optimize by squashing loop items into a single call to + # the module + SQUASH_ACTIONS = frozenset(('apt', 'yum', 'pkgng', 'zypper', 'dnf')) + def __init__(self, host, task, job_vars, connection_info, new_stdin, loader, shared_loader_obj): self._host = host self._task = task @@ -176,7 +180,7 @@ class TaskExecutor: (typically package management modules). ''' - if len(items) > 0 and self._task.action in ('apt', 'yum', 'pkgng', 'zypper'): + if len(items) > 0 and self._task.action in self.SQUASH_ACTIONS: final_items = [] for item in items: variables['item'] = item