Checking for localized versions of the su password prompt

Fixes #8681
This commit is contained in:
James Cammarata
2014-08-21 13:09:32 -05:00
parent 0286c31e85
commit d01188033f
5 changed files with 72 additions and 15 deletions

View File

@@ -225,7 +225,6 @@ class Connection(object):
shcmd, prompt, success_key = utils.make_sudo_cmd(sudo_user, executable, cmd)
elif self.runner.su or su:
shcmd, prompt, success_key = utils.make_su_cmd(su_user, executable, cmd)
prompt_re = re.compile(prompt)
vvv("EXEC %s" % shcmd, host=self.host)
sudo_output = ''
@@ -240,7 +239,7 @@ class Connection(object):
if success_key in sudo_output or \
(self.runner.sudo_pass and sudo_output.endswith(prompt)) or \
(self.runner.su_pass and prompt_re.match(sudo_output)):
(self.runner.su_pass and utils.su_prompts.check_su_prompt(sudo_output)):
break
chunk = chan.recv(bufsize)

View File

@@ -275,7 +275,6 @@ class Connection(object):
if su and su_user:
sudocmd, prompt, success_key = utils.make_su_cmd(su_user, executable, cmd)
prompt_re = re.compile(prompt)
ssh_cmd.append(sudocmd)
elif not self.runner.sudo or not sudoable:
prompt = None
@@ -319,7 +318,7 @@ class Connection(object):
while True:
if success_key in sudo_output or \
(self.runner.sudo_pass and sudo_output.endswith(prompt)) or \
(self.runner.su_pass and prompt_re.match(sudo_output)):
(self.runner.su_pass and utils.su_prompts.check_su_prompt(sudo_output)):
break
rfd, wfd, efd = select.select([p.stdout, p.stderr], [],