win_become: move error handling to Ansible outside of shell (#31227)
* win_become: move error handling to Ansible outside of shell * trimmed the output so double newlines don't get set * added test for non-zero exit code * missed issue URL on test * changed exit to SetShouldExit
This commit is contained in:
parent
34878926ca
commit
e61c2799ff
2 changed files with 7 additions and 10 deletions
|
@ -801,15 +801,8 @@ Function Run($payload) {
|
|||
# FUTURE: decode CLIXML stderr output (and other streams?)
|
||||
|
||||
$rc = [Ansible.Shell.NativeProcessUtil]::GetProcessExitCode($pi.hProcess)
|
||||
|
||||
If ($rc -eq 0) {
|
||||
$str_stdout
|
||||
$str_stderr
|
||||
}
|
||||
Else {
|
||||
Throw "failed, rc was $rc, stderr was $str_stderr, stdout was $str_stdout"
|
||||
}
|
||||
|
||||
[Console]::Out.WriteLine($str_stdout.Trim())
|
||||
[Console]::Error.WriteLine($str_stderr.Trim())
|
||||
}
|
||||
Catch {
|
||||
$excep = $_
|
||||
|
@ -818,7 +811,7 @@ Function Run($payload) {
|
|||
Finally {
|
||||
Remove-Item $temp -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
$host.SetShouldExit($rc)
|
||||
}
|
||||
|
||||
''' # end become_wrapper
|
||||
|
|
|
@ -70,6 +70,10 @@
|
|||
assert:
|
||||
that:
|
||||
- whoami_out.stdout_lines[0].endswith(become_test_username)
|
||||
|
||||
- name: test with module that will return non-zero exit code (https://github.com/ansible/ansible/issues/30468)
|
||||
vars: *become_vars
|
||||
setup:
|
||||
|
||||
# FUTURE: test raw + script become behavior once they're running under the exec wrapper again
|
||||
# FUTURE: add standalone playbook tests to include password prompting and play become keywords
|
||||
|
|
Loading…
Reference in a new issue