Enhance error messages when building containers

This change will improve our error messaging when building containers by
returning all exceptions when there's an issue. This will allow us to
grok all known within a single log  and handle errors based on the RC
information.

Change-Id: I855ad2ec3ae27f2c18d53f1d17e4c7041e2258a3
Signed-off-by: Kevin Carter <kecarter@redhat.com>
(cherry picked from commit f745822049)
This commit is contained in:
Kevin Carter 2020-05-15 12:53:23 -05:00 committed by Emilien Macchi
parent d60c5db663
commit 835c27cac1
2 changed files with 15 additions and 4 deletions

View File

@ -205,12 +205,23 @@ class BuildahBuilder(base.BaseBuilder):
# failed a SystemError will be raised using the
# exception information. If any job was loaded
# but not executed a SystemError will be raised.
exceptions = list()
for job in done:
if job._exception:
raise SystemError("%(container)s raised %(exception)s" %
{'container': future_to_build[job],
'exception': job._exception})
exceptions.append(
"\nException information: {exception}".format(
exception=job._exception
)
)
else:
if exceptions:
raise RuntimeError(
'\nThe following errors were detected during '
'container build(s):\n{exceptions}'.format(
exceptions='\n'.join(exceptions)
)
)
if not_done:
error_msg = ('The following jobs were '
'incomplete: {}'.format(

View File

@ -185,7 +185,7 @@ class TestBuildahBuilder(base.TestCase):
mock_submit.side_effect = R_FAILED_LIST
_b = bb(WORK_DIR, DEPS)
self.assertRaises(
SystemError,
RuntimeError,
_b.build_all,
deps=BUILD_ALL_LIST_CONTAINERS
)