Handle the pungi failures to ensure creation of log files

If the given directory is not a valid git directory, it raises RuntimeError.
This can be catched and raised as GitUrlResolveError, so compose can continue
to log the failure.

Jira: RHELCMP-6077

Signed-off-by: Ozan Unsal <ounsal@redhat.com>
This commit is contained in:
Ozan Unsal 2021-08-16 09:36:13 +02:00 committed by lsedlar
parent 66dacb21e0
commit 980c7ba8fb
2 changed files with 14 additions and 3 deletions

View File

@ -272,7 +272,7 @@ def main():
logger, opts.skip_phase + conf.get("skip_phases", []), opts.just_phase logger, opts.skip_phase + conf.get("skip_phases", []), opts.just_phase
): ):
sys.exit(1) sys.exit(1)
errors, warnings = pungi.checks.validate(conf) errors, warnings = pungi.checks.validate(conf, offline=True)
if not opts.quiet: if not opts.quiet:
# TODO: workaround for config files containing skip_phase = productimg # TODO: workaround for config files containing skip_phase = productimg
@ -328,6 +328,13 @@ def main():
logger=logger, logger=logger,
notifier=notifier, notifier=notifier,
) )
errors, warnings = pungi.checks.validate(conf, offline=False)
if errors:
for error in errors:
logger.error("Config validation failed with the error: %s" % error)
fail_to_start("Config validation failed", errors=errors)
sys.exit(1)
notifier.compose = compose notifier.compose = compose
COMPOSE = compose COMPOSE = compose
try: try:

View File

@ -288,8 +288,12 @@ def resolve_git_ref(repourl, ref):
if re.match(r"^[a-f0-9]{40}$", ref): if re.match(r"^[a-f0-9]{40}$", ref):
# This looks like a commit ID already. # This looks like a commit ID already.
return ref return ref
try:
_, output = git_ls_remote(repourl, ref) _, output = git_ls_remote(repourl, ref)
except RuntimeError as e:
raise GitUrlResolveError(
"ref does not exist in remote repo %s with the error %s" % (repourl, e)
)
lines = [] lines = []
for line in output.split("\n"): for line in output.split("\n"):