summaryrefslogtreecommitdiff
path: root/lib/ansible
diff options
context:
space:
mode:
authorJordan Borean <jborean93@gmail.com>2019-02-06 12:05:15 +1000
committerGitHub <noreply@github.com>2019-02-06 12:05:15 +1000
commit146a89b612b3908d897526e08eedce42cd5d5499 (patch)
treebeadf237fe07594d783a90247d987d702457ec30 /lib/ansible
parent6654c7aeea70a12fb848073ca3b0c377cf79e3d1 (diff)
downloadansible-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.py39
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