diff --git a/checkbox-ng/checkbox_ng/launcher/controller.py b/checkbox-ng/checkbox_ng/launcher/controller.py index 5a2f51841a..0d141d9f7c 100644 --- a/checkbox-ng/checkbox_ng/launcher/controller.py +++ b/checkbox-ng/checkbox_ng/launcher/controller.py @@ -109,6 +109,9 @@ def red_text(text, end="\n"): def black_text(text, end="\n"): print(SimpleUI.C.BLACK(text), end=end, file=sys.stdout) + def yellow_text(text, end="\n"): + print(SimpleUI.C.YELLOW(text), end=end, file=sys.stderr) + def horiz_line(): print(SimpleUI.C.WHITE("-" * 80)) @@ -902,9 +905,17 @@ def wait_for_job(self, dont_finish=False, suppress_output=False): self.finish_job() break - def finish_job(self, result=None): + def finish_job(self, result=None, job_state=None): _logger.info("controller: Finishing job with a result: %s", result) job_result = self.sa.finish_job(result) + if ( + job_state + and result + and result.outcome == IJobResult.OUTCOME_NOT_SUPPORTED + ): + print(_("Job cannot be started because:")) + for inhibitor in job_state.readiness_inhibitor_list: + SimpleUI.yellow_text(" - {}".format(inhibitor)) SimpleUI.horiz_line() print(_("Outcome") + ": " + SimpleUI.C.result(job_result)) @@ -1097,7 +1108,8 @@ def _run_interactable_jobs(self, jobs_repr, total_num=0): break else: self.finish_job( - interaction.extra._builder.get_result() + interaction.extra._builder.get_result(), + job_state, ) next_job = True break