From 0e72ef06188ffcaaf68647ad0b991fcf7f0f6884 Mon Sep 17 00:00:00 2001
From: Tristan Van Berkom <tristan.vanberkom@codethink.co.uk>
Date: Wed, 16 Jan 2019 15:09:41 -0500
Subject: [PATCH] sandbox/sandbox.py: Display failed commands in the detail
 string

We should only display commands in detail strings, not in the
message texts.
---
 buildstream/_exceptions.py     | 4 ++--
 buildstream/sandbox/sandbox.py | 9 +++++----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/buildstream/_exceptions.py b/buildstream/_exceptions.py
index ea5ea62f28..6d8ea6d38a 100644
--- a/buildstream/_exceptions.py
+++ b/buildstream/_exceptions.py
@@ -262,8 +262,8 @@ class PlatformError(BstError):
 # Raised when errors are encountered by the sandbox implementation
 #
 class SandboxError(BstError):
-    def __init__(self, message, reason=None):
-        super().__init__(message, domain=ErrorDomain.SANDBOX, reason=reason)
+    def __init__(self, message, detail=None, reason=None):
+        super().__init__(message, detail=detail, domain=ErrorDomain.SANDBOX, reason=reason)
 
 
 # ArtifactError
diff --git a/buildstream/sandbox/sandbox.py b/buildstream/sandbox/sandbox.py
index 4a1e810080..cb6f433144 100644
--- a/buildstream/sandbox/sandbox.py
+++ b/buildstream/sandbox/sandbox.py
@@ -86,10 +86,11 @@ class SandboxCommandError(SandboxError):
 
     Args:
        message (str): The error message to report to the user
+       detail (str): The detailed error string
        collect (str): An optional directory containing partial install contents
     """
-    def __init__(self, message, *, collect=None):
-        super().__init__(message, reason='command-failed')
+    def __init__(self, message, *, detail=None, collect=None):
+        super().__init__(message, detail=detail, reason='command-failed')
 
         self.collect = collect
 
@@ -599,8 +600,8 @@ class _SandboxBatch():
         if exitcode != 0:
             cmdline = ' '.join(shlex.quote(cmd) for cmd in command.command)
             label = command.label or cmdline
-            raise SandboxCommandError("Command '{}' failed with exitcode {}".format(label, exitcode),
-                                      collect=self.collect)
+            raise SandboxCommandError("Command failed with exitcode {}".format(exitcode),
+                                      detail=label, collect=self.collect)
 
     def execute_call(self, call):
         call.callback()
-- 
GitLab