diff options
author | Jordan Borean <jborean93@gmail.com> | 2019-02-06 12:05:15 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-06 12:05:15 +1000 |
commit | 146a89b612b3908d897526e08eedce42cd5d5499 (patch) | |
tree | beadf237fe07594d783a90247d987d702457ec30 /lib/ansible | |
parent | 6654c7aeea70a12fb848073ca3b0c377cf79e3d1 (diff) | |
download | ansible-146a89b612b3908d897526e08eedce42cd5d5499.tar.gz |
psrp - do not display bootstrap wrapper for eachach task (#51779)
Diffstat (limited to 'lib/ansible')
-rw-r--r-- | lib/ansible/plugins/connection/psrp.py | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/lib/ansible/plugins/connection/psrp.py b/lib/ansible/plugins/connection/psrp.py index c40a4c0700..eac990c300 100644 --- a/lib/ansible/plugins/connection/psrp.py +++ b/lib/ansible/plugins/connection/psrp.py @@ -293,31 +293,32 @@ class Connection(ConnectionBase): super(Connection, self).exec_command(cmd, in_data=in_data, sudoable=sudoable) - if cmd == "-" and not in_data.startswith(b"#!"): - # The powershell plugin sets cmd to '-' when we are executing a - # PowerShell script with in_data being the script to execute. - script = in_data - in_data = None - display.vvv("PSRP: EXEC (via pipeline wrapper)", - host=self._psrp_host) - elif cmd == "-": - # ANSIBALLZ wrapper, we need to get the interpreter and execute - # that as the script - note this won't work as basic.py relies - # on packages not available on Windows, once fixed we can enable - # this path - interpreter = to_native(in_data.splitlines()[0][2:]) - # script = "$input | &'%s' -" % interpreter - # in_data = to_text(in_data) - raise AnsibleError("cannot run the interpreter '%s' on the psrp " - "connection plugin" % interpreter) - elif cmd.startswith(" ".join(_common_args) + " -EncodedCommand"): + if cmd.startswith(" ".join(_common_args) + " -EncodedCommand"): # This is a PowerShell script encoded by the shell plugin, we will # decode the script and execute it in the runspace instead of # starting a new interpreter to save on time b_command = base64.b64decode(cmd.split(" ")[-1]) script = to_text(b_command, 'utf-16-le') in_data = to_text(in_data, errors="surrogate_or_strict", nonstring="passthru") - display.vvv("PSRP: EXEC %s" % script, host=self._psrp_host) + + if in_data and in_data.startswith(u"#!"): + # ANSIBALLZ wrapper, we need to get the interpreter and execute + # that as the script - note this won't work as basic.py relies + # on packages not available on Windows, once fixed we can enable + # this path + interpreter = to_native(in_data.splitlines()[0][2:]) + # script = "$input | &'%s' -" % interpreter + # in_data = to_text(in_data) + raise AnsibleError("cannot run the interpreter '%s' on the psrp " + "connection plugin" % interpreter) + + # call build_module_command to get the bootstrap wrapper text + bootstrap_wrapper = self._shell.build_module_command('', '', '') + if bootstrap_wrapper == cmd: + # Do not display to the user each invocation of the bootstrap wrapper + display.vvv("PSRP: EXEC (via pipeline wrapper)") + else: + display.vvv("PSRP: EXEC %s" % script, host=self._psrp_host) else: # in other cases we want to execute the cmd as the script script = cmd |