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>
This commit is contained in:
Kevin Carter 2020-05-15 12:53:23 -05:00
parent ecce177c03
commit f745822049
No known key found for this signature in database
GPG Key ID: CE94BD890A47B20A
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
)