Description of problem: bkr job-watch crashes if you tell it to watch a recipe (e.g. R:123) or a task (e.g. T:123). Version-Release number of selected component (if applicable): 0.15 How reproducible: always Steps to Reproduce: 1. Run bkr job-watch R:123 or bkr job-watch T:123 Actual results: Watching tasks (this may be safely interrupted)... Traceback (most recent call last): File "/usr/bin/bkr", line 9, in <module> load_entry_point('bkr.client==0.15.2', 'console_scripts', 'bkr')() File "/usr/lib/python2.6/site-packages/bkr/client/main.py", line 58, in main return cmd.run(*cmd_args, **cmd_opts.__dict__) File "/usr/lib/python2.6/site-packages/bkr/client/commands/cmd_job_watch.py", line 87, in run sys.exit(watch_tasks(self.hub, args)) File "/usr/lib/python2.6/site-packages/bkr/client/task_watcher.py", line 37, in watch_tasks changed |= watcher.update(task) File "/usr/lib/python2.6/site-packages/bkr/client/task_watcher.py", line 108, in update print "%s: %s" % (task, task.display_state(task.task_info)) File "/usr/lib/python2.6/site-packages/bkr/client/task_watcher.py", line 142, in display_state return "%s (%s)" % (task_info["state_label"], worker["name"]) KeyError: 'name' Expected results: Should watch the given recipe or task. Additional info: Watching a job or recipeset works correctly.
Discussing this with Dan, it appears that this broke quite some time ago, and nobody noticed because it tends to be used to watch entire jobs, not their individual components.
This was actually a regression in Beaker 0.14.4 due to the fix for bug 1032653. http://git.beaker-project.org/cgit/beaker/commit/?id=c9eb0409 The fix should have been return None for 'worker' rather than {}.
On Gerrit: http://gerrit.beaker-project.org/3093
This bug fix has been applied to the release-0.16 branch, however we have elected not to do another maintenance release of the 0.16.x series. This fix will be included in 0.17.0 instead.
Beaker 0.17.0 has been released.