fix 'doas' become_method support, previously committed patch not submitted to devel branch (#37511) (#40896)

* fix become_method 'doas' support by properly specifying becomecmd

a repatch of https://github.com/ansible/ansible/pull/13451/ which was never committed to 'devel' branch.

* fix play_context test for become_method doas to match new becomecmd

(cherry picked from commit be3670f528)
pull/40917/head
Brian Coca 7 years ago committed by ansibot
parent f7f8d2b133
commit 5a77aceae5

@ -0,0 +1,2 @@
- bugfix:
- fix doas construction for become https://github.com/ansible/ansible/pull/37511

@ -544,7 +544,7 @@ class PlayContext(Base):
flags += ' -u %s ' % self.become_user flags += ' -u %s ' % self.become_user
# FIXME: make shell independent # FIXME: make shell independent
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)
elif self.become_method == 'dzdo': elif self.become_method == 'dzdo':

@ -153,8 +153,7 @@ def test_play_context_make_become_cmd(parser):
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")
assert (cmd == """%s %s echo %s && %s %s env ANSIBLE=true %s""" % (doas_exe, doas_flags, play_context. assert (cmd == """%s %s %s -c 'echo %s; %s'""" % (doas_exe, doas_flags, default_exe, play_context.success_key, default_cmd))
success_key, doas_exe, doas_flags, default_cmd))
play_context.become_method = 'ksu' play_context.become_method = 'ksu'
cmd = play_context.make_become_cmd(cmd=default_cmd, executable="/bin/bash") cmd = play_context.make_become_cmd(cmd=default_cmd, executable="/bin/bash")

Loading…
Cancel
Save