From cccf7425aa0b952b771df037a512873aea53b02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrg=20Billeter?= Date: Thu, 20 Feb 2020 09:24:18 +0100 Subject: sandbox: Move log forwarding from SandboxREAPI to SandboxRemote SandboxBuildBoxRun doesn't require log forwarding as we use stdout and stderr of the buildbox-run process. --- src/buildstream/sandbox/_sandboxreapi.py | 9 --------- src/buildstream/sandbox/_sandboxremote.py | 10 ++++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/buildstream/sandbox/_sandboxreapi.py b/src/buildstream/sandbox/_sandboxreapi.py index ee7fc72ae..2f500cd51 100644 --- a/src/buildstream/sandbox/_sandboxreapi.py +++ b/src/buildstream/sandbox/_sandboxreapi.py @@ -39,8 +39,6 @@ class SandboxREAPI(Sandbox): return True def _run(self, command, flags, *, cwd, env): - stdout, stderr = self._get_output() - context = self._get_context() cascache = context.get_cascache() @@ -93,13 +91,6 @@ class SandboxREAPI(Sandbox): cwd, action_result.output_directories, action_result.output_files, failure=action_result.exit_code != 0 ) - if stdout: - if action_result.stdout_raw: - stdout.write(str(action_result.stdout_raw, "utf-8", errors="ignore")) - if stderr: - if action_result.stderr_raw: - stderr.write(str(action_result.stderr_raw, "utf-8", errors="ignore")) - # Non-zero exit code means a normal error during the build: # the remote execution system has worked correctly but the command failed. return action_result.exit_code diff --git a/src/buildstream/sandbox/_sandboxremote.py b/src/buildstream/sandbox/_sandboxremote.py index 5ec1c974b..fe7812ba5 100644 --- a/src/buildstream/sandbox/_sandboxremote.py +++ b/src/buildstream/sandbox/_sandboxremote.py @@ -298,6 +298,8 @@ class SandboxRemote(SandboxREAPI): ) def _execute_action(self, action, flags): + stdout, stderr = self._get_output() + context = self._get_context() project = self._get_project() cascache = context.get_cascache() @@ -375,6 +377,14 @@ class SandboxRemote(SandboxREAPI): # Now do a pull to ensure we have the full directory structure. cascache.pull_tree(casremote, tree_digest) + # Forward remote stdout and stderr + if stdout: + if action_result.stdout_raw: + stdout.write(str(action_result.stdout_raw, "utf-8", errors="ignore")) + if stderr: + if action_result.stderr_raw: + stderr.write(str(action_result.stderr_raw, "utf-8", errors="ignore")) + return action_result def _check_action_cache(self, action_digest): -- cgit v1.2.1