fixed doas from getting stuck when needing passwords

Also adjusted test to match new doas become output
fixes #13449
pull/13451/head
Brian Coca 9 years ago
parent 3974b13a5a
commit 0533e0bc96

@ -481,7 +481,7 @@ class PlayContext(Base):
if self.become_user: if self.become_user:
flags += ' -u %s ' % self.become_user flags += ' -u %s ' % self.become_user
becomecmd = '%s %s echo %s && %s %s env ANSIBLE=true %s' % (exe, flags, success_key, exe, flags, cmd) becomecmd = '%s %s %s -c %s' % (exe, flags, executable, success_cmd)
else: else:
raise AnsibleError("Privilege escalation method not found: %s" % self.become_method) raise AnsibleError("Privilege escalation method not found: %s" % self.become_method)

@ -161,7 +161,7 @@ class TestPlayContext(unittest.TestCase):
play_context.become_method = 'doas' play_context.become_method = 'doas'
cmd = play_context.make_become_cmd(cmd=default_cmd, executable="/bin/bash") cmd = play_context.make_become_cmd(cmd=default_cmd, executable="/bin/bash")
self.assertEqual(cmd, """%s -c '%s %s echo %s && %s %s env ANSIBLE=true %s'""" % (default_exe, doas_exe, doas_flags, play_context.success_key, doas_exe, doas_flags, default_cmd)) self.assertEqual(cmd, """%s -c '%s %s %s -c '"'"'echo %s; %s'"'"''""" % (default_exe, doas_exe, doas_flags, default_exe, play_context.success_key, default_cmd))
play_context.become_method = 'bad' play_context.become_method = 'bad'
self.assertRaises(AnsibleError, play_context.make_become_cmd, cmd=default_cmd, executable="/bin/bash") self.assertRaises(AnsibleError, play_context.make_become_cmd, cmd=default_cmd, executable="/bin/bash")

Loading…
Cancel
Save