CLI commands should exit-fail if no jobs scheduled

Summary:
Have the backing functions always raise TriggerExceptions if
no jobs could be scheduled, and have the CLI command functions
just quit (with exit code 1) immediately when this happens.
I don't see any value to logging the errors and continuing to
run, nothing useful is going to happen with no jobs.

This allows us to have the 'current' cronjob run the compose
report: we just have it do:

openqa_trigger.py current && check-compose

then it won't generate a compose report every time it runs, but
only when the current compose changed and some jobs ran.

Test Plan:
Well, just make sure things quit or run as intended,
I guess.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D541
This commit is contained in:
Adam Williamson 2015-08-28 10:00:35 -07:00
parent 0396d70de0
commit 2c09f465e1

View File

@ -119,17 +119,17 @@ def jobs_from_current(wiki, client):
jobs = []
try:
jobs = jobs_from_fedfind(currev.ff_release, client, runarches)
logging.info("planned jobs: %s", ' '.join(str(j) for j in jobs))
if not runarches:
raise TriggerException("Skipped all arches, nothing to do.")
# write info about latest versions
f = open(PERSISTENT, "w")
f.write(json.dumps(json_parsed))
f.close()
logging.debug("written info about newest version")
except TriggerException as e:
logging.error("cannot run jobs: %s", e)
jobs = jobs_from_fedfind(currev.ff_release, client, runarches)
logging.info("planned jobs: %s", ' '.join(str(j) for j in jobs))
# write info about latest versions
f = open(PERSISTENT, "w")
f.write(json.dumps(json_parsed))
f.close()
logging.debug("written info about newest version")
return jobs
@ -210,7 +210,11 @@ def run_current(args, client, wiki):
not already done it.
"""
logging.info("running on current release")
jobs = jobs_from_current(wiki, client)
try:
jobs = jobs_from_current(wiki, client)
except TriggerException as e:
logging.debug("No jobs run: %s", e)
sys.exit(1)
# wait for jobs to finish and display results
if jobs:
logging.info("waiting for jobs: %s", ' '.join(str(j) for j in jobs))
@ -260,7 +264,8 @@ def run_compose(args, client, wiki=None):
else:
jobs = jobs_from_fedfind(ff_release, client)
except TriggerException as e:
logging.error("cannot run jobs: %s", e)
logging.debug("No jobs run: %s", e)
sys.exit(1)
logging.info("planned jobs: %s", ' '.join(str(j) for j in jobs))
if args.submit_results:
report_results(jobs, client)