From d65f45f0b2c50e119271e2d7eaeecb0dd9b918ce Mon Sep 17 00:00:00 2001 From: David Golden Date: Fri, 14 Jun 2013 09:55:38 -0400 Subject: [PATCH] Expand sudo_user after variable merging Previous commit c3659741 expanded sudo_user during task construction, but this is too early as it does not pick up variables set during the play. This commit moves sudo_user expansion to the runner after variables have been merged. --- lib/ansible/playbook/task.py | 2 +- lib/ansible/runner/__init__.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/ansible/playbook/task.py b/lib/ansible/playbook/task.py index c6d260cda4..ac9972fc59 100644 --- a/lib/ansible/playbook/task.py +++ b/lib/ansible/playbook/task.py @@ -115,7 +115,7 @@ class Task(object): self.args = ds.get('args', {}) if self.sudo: - self.sudo_user = template.template(play.basedir, ds.get('sudo_user', play.sudo_user), module_vars) + self.sudo_user = ds.get('sudo_user', play.sudo_user) self.sudo_pass = ds.get('sudo_pass', play.playbook.sudo_pass) else: self.sudo_user = None diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index 9ee9e54a12..94c886e6aa 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -386,6 +386,10 @@ class Runner(object): if self.inventory.basedir() is not None: inject['inventory_dir'] = self.inventory.basedir() + # late processing of parameterized sudo_user + if self.sudo_user is not None: + self.sudo_user = template.template(self.basedir, self.sudo_user, inject) + # allow with_foo to work in playbooks... items = None items_plugin = self.module_vars.get('items_lookup_plugin', None)