From 280660b8a7deb7f5471c8bf8df8dd253d58d945b Mon Sep 17 00:00:00 2001
From: ron1 <wmdc1987@aol.com>
Date: Sat, 19 Jan 2013 08:40:32 -0500
Subject: [PATCH] Support sudo alternatives that offer sudo-compatible
 interfaces

---
 lib/ansible/constants.py      | 1 +
 lib/ansible/utils/__init__.py | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/ansible/constants.py b/lib/ansible/constants.py
index 6d63b5b53a2..236c5c2b9f0 100644
--- a/lib/ansible/constants.py
+++ b/lib/ansible/constants.py
@@ -91,6 +91,7 @@ DEFAULT_SCP_IF_SSH        = get_config(p, 'ssh_connection', 'scp_if_ssh',
 DEFAULT_MANAGED_STR       = get_config(p, DEFAULTS, 'ansible_managed',  None,           'Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host}')
 DEFAULT_SYSLOG_FACILITY   = get_config(p, DEFAULTS, 'syslog_facility',  'ANSIBLE_SYSLOG_FACILITY', 'LOG_USER')
 DEFAULT_KEEP_REMOTE_FILES = get_config(p, DEFAULTS, 'keep_remote_files', 'ANSIBLE_KEEP_REMOTE_FILES', '0')
+DEFAULT_SUDO_EXE          = get_config(p, DEFAULTS, 'sudo_exe', 'ANSIBLE_SUDO_EXE', 'sudo')
 
 DEFAULT_ACTION_PLUGIN_PATH     = shell_expand_path(get_config(p, DEFAULTS, 'action_plugins',     None, '/usr/share/ansible_plugins/action_plugins'))
 DEFAULT_CALLBACK_PLUGIN_PATH   = shell_expand_path(get_config(p, DEFAULTS, 'callback_plugins',   None, '/usr/share/ansible_plugins/callback_plugins'))
diff --git a/lib/ansible/utils/__init__.py b/lib/ansible/utils/__init__.py
index 31289f2c210..496febefb3d 100644
--- a/lib/ansible/utils/__init__.py
+++ b/lib/ansible/utils/__init__.py
@@ -569,6 +569,6 @@ def make_sudo_cmd(sudo_user, executable, cmd):
     # the -p option.
     randbits = ''.join(chr(random.randint(ord('a'), ord('z'))) for x in xrange(32))
     prompt = '[sudo via ansible, key=%s] password: ' % randbits
-    sudocmd = 'sudo -k && sudo -S -p "%s" -i -u %s %s -c %s' % (
-        prompt, sudo_user, executable or '$SHELL', pipes.quote(cmd))
+    sudocmd = '%s -k && %s -S -p "%s" -i -u %s %s -c %s' % (
+        C.DEFAULT_SUDO_EXE, C.DEFAULT_SUDO_EXE, prompt, sudo_user, executable or '$SHELL', pipes.quote(cmd))
     return ('/bin/sh -c ' + pipes.quote(sudocmd), prompt)