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