You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by du...@apache.org on 2020/11/10 08:33:47 UTC
[brooklyn-server] 02/03: Better? Outputstream handling
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 <du...@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);
}
});
}