This is an automated email from the ASF dual-hosted git repository. duncangrant pushed a commit to branch winrmtaskfactory in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 1d152cfb2c045cef76b17e9ca76eac787de7e780 Author: Duncan Grant <duncan.gr...@cloudsoft.io> AuthorDate: Mon Nov 9 09:54:09 2020 +0000 Better? Outputstream handling --- .../apache/brooklyn/location/winrm/WinRmMachineLocation.java | 10 ++++++---- .../brooklyn/util/core/internal/winrm/winrm4j/Winrm4jTool.java | 6 +++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/software/winrm/src/main/java/org/apache/brooklyn/location/winrm/WinRmMachineLocation.java b/software/winrm/src/main/java/org/apache/brooklyn/location/winrm/WinRmMachineLocation.java index 88d29a0..1198697 100644 --- a/software/winrm/src/main/java/org/apache/brooklyn/location/winrm/WinRmMachineLocation.java +++ b/software/winrm/src/main/java/org/apache/brooklyn/location/winrm/WinRmMachineLocation.java @@ -556,10 +556,12 @@ public class WinRmMachineLocation extends AbstractMachineLocation implements Mac sgsO.setLogPrefix("[curl @ "+getAddress()+":stdout] ").start(); sgsE.setLogPrefix("[curl @ "+getAddress()+":stderr] ").start(); Map<String, ?> winrmProps = MutableMap.<String, Object>builder().putAll(props).put("out", outO).put("err", outE).build(); - int result = execScript(winrmProps,"",ImmutableList.of( - "$WebClient = New-Object System.Net.WebClient", - "$WebClient.DownloadFile(" + url + "," + destPath + ")" - )); +// int result = execScript(winrmProps,"",ImmutableList.of( +// "$WebClient = New-Object System.Net.WebClient", +// "$WebClient.DownloadFile(" + url + "," + destPath + ")" +// )); + + int result = 1; if (result != 0) { LOG.debug("installing {} to {} on {}, curl failed, attempting local fetch and copy", new Object[] { url, destPath, this }); diff --git a/software/winrm/src/main/java/org/apache/brooklyn/util/core/internal/winrm/winrm4j/Winrm4jTool.java b/software/winrm/src/main/java/org/apache/brooklyn/util/core/internal/winrm/winrm4j/Winrm4jTool.java index 332b008..784e7d1 100644 --- a/software/winrm/src/main/java/org/apache/brooklyn/util/core/internal/winrm/winrm4j/Winrm4jTool.java +++ b/software/winrm/src/main/java/org/apache/brooklyn/util/core/internal/winrm/winrm4j/Winrm4jTool.java @@ -141,7 +141,11 @@ public class Winrm4jTool implements org.apache.brooklyn.util.core.internal.winrm public org.apache.brooklyn.util.core.internal.winrm.WinRmToolResponse executePs(final List<String> commands) { return exec(new Function<io.cloudsoft.winrm4j.winrm.WinRmTool, io.cloudsoft.winrm4j.winrm.WinRmToolResponse>() { @Override public WinRmToolResponse apply(io.cloudsoft.winrm4j.winrm.WinRmTool tool) { - return tool.executePs(commands); + OutputStream outputStream = bag.get(ShellTool.PROP_OUT_STREAM); + OutputStream errorStream = bag.get(ShellTool.PROP_ERR_STREAM); + Writer out = outputStream != null ? new OutputStreamWriter(outputStream): new StringWriter(); + Writer err = errorStream != null ? new OutputStreamWriter(errorStream): new StringWriter(); + return tool.executePs(commands, out, err); } }); }