From 2c09f465e171c001121953b0aadfadf6c866de95 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 28 Aug 2015 10:00:35 -0700 Subject: [PATCH] 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 --- openqa_trigger/openqa_trigger.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/openqa_trigger/openqa_trigger.py b/openqa_trigger/openqa_trigger.py index 3e5cb0a..3079e99 100755 --- a/openqa_trigger/openqa_trigger.py +++ b/openqa_trigger/openqa_trigger.py @@ -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)