This is an automated email from the ASF dual-hosted git repository. duncangrant pushed a commit to branch fix-collect-winrm-streams in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 7e6fd0cbd84cc73d634c44d7f843b48a8098a7ff Author: Duncan Grant <[email protected]> AuthorDate: Tue Feb 9 15:54:35 2021 +0000 Pass newly created streams to winrm --- .../ssh/internal/AbstractSshExecTaskFactory.java | 4 +++- .../util/core/task/system/ProcessTaskWrapper.java | 24 +++++++++++----------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/AbstractSshExecTaskFactory.java b/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/AbstractSshExecTaskFactory.java index 776f7a7..a2e5b93 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/AbstractSshExecTaskFactory.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/AbstractSshExecTaskFactory.java @@ -71,12 +71,14 @@ public abstract class AbstractSshExecTaskFactory<T extends AbstractProcessTaskFa richStreamProvider = getRichStreamProvider(tb); if (richStreamProvider==null) { super.initStreams(tb); + } else { + super.initStreams(richStreamProvider); } } @Override protected ByteArrayOutputStream stderrForReading() { - if (richStreamProvider!=null) return richStreamProvider.stderrForReading; + if (richStreamProvider!=null) return richStreamProvider.stderrForReading; return super.stderrForReading(); } diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/system/ProcessTaskWrapper.java b/core/src/main/java/org/apache/brooklyn/util/core/task/system/ProcessTaskWrapper.java index eef70c1..03ca591 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/task/system/ProcessTaskWrapper.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/task/system/ProcessTaskWrapper.java @@ -24,7 +24,6 @@ import java.util.concurrent.Callable; import org.apache.brooklyn.api.mgmt.Task; import org.apache.brooklyn.api.mgmt.TaskWrapper; -import org.apache.brooklyn.core.mgmt.BrooklynTaskTags; import org.apache.brooklyn.util.core.config.ConfigBag; import org.apache.brooklyn.util.core.internal.ssh.ShellTool; import org.apache.brooklyn.util.core.task.TaskBuilder; @@ -33,7 +32,6 @@ import org.apache.brooklyn.util.core.task.ssh.internal.AbstractSshExecTaskFactor import org.apache.brooklyn.util.core.task.system.internal.AbstractProcessTaskFactory; import org.apache.brooklyn.util.stream.Streams; import org.apache.brooklyn.util.text.Strings; -import org.apache.commons.lang3.tuple.Pair; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,10 +47,9 @@ public abstract class ProcessTaskWrapper<RET> extends ProcessTaskStub implements private final Task<RET> task; // execution details - private ByteArrayOutputStream stdout; - private ByteArrayOutputStream stderr; protected Integer exitCode = null; - + private Std2x2StreamProvider streamProvider; + @SuppressWarnings("unchecked") protected ProcessTaskWrapper(AbstractProcessTaskFactory<?,RET> constructor) { super(constructor); @@ -62,16 +59,18 @@ public abstract class ProcessTaskWrapper<RET> extends ProcessTaskStub implements } protected void initStreams(TaskBuilder<Object> tb) { - Std2x2StreamProvider r = Std2x2StreamProvider.newDefault(tb); - stdout = r.stdoutForReading; - stderr = r.stdoutForReading; + streamProvider = Std2x2StreamProvider.newDefault(tb); } - protected ByteArrayOutputStream stdoutForReading() { return stdout; } - protected OutputStream stdoutForWriting() { return stdout; } + protected void initStreams(Std2x2StreamProvider r) { + streamProvider = r; + } - protected ByteArrayOutputStream stderrForReading() { return stderr; } - protected OutputStream stderrForWriting() { return stderr; } + protected ByteArrayOutputStream stdoutForReading() { return streamProvider.stdoutForReading; } + protected OutputStream stdoutForWriting() { return streamProvider.stdoutForWriting; } + + protected ByteArrayOutputStream stderrForReading() { return streamProvider.stderrForReading; } + protected OutputStream stderrForWriting() { return streamProvider.stderrForWriting; } @Override public Task<RET> asTask() { @@ -107,6 +106,7 @@ public abstract class ProcessTaskWrapper<RET> extends ProcessTaskStub implements return stderrForReading().toString(); } + protected class ProcessTaskInternalJob implements Callable<Object> { @Override public Object call() throws Exception {
