Merge lp:~brendan-donegan/checkbox/which_requirements into lp:checkbox

Proposed by Brendan Donegan
Status: Merged
Merged at revision: 1112
Proposed branch: lp:~brendan-donegan/checkbox/which_requirements
Merge into: lp:checkbox
Diff against target: 48 lines (+17/-1)
2 files modified
debian/changelog (+3/-0)
plugins/resource_info.py (+14/-1)
To merge this branch: bzr merge lp:~brendan-donegan/checkbox/which_requirements
Reviewer Review Type Date Requested Status
Daniel Manrique (community) Approve
Review via email: mp+79667@code.launchpad.net

Description of the change

This branch shows which requirements failed if a job doesn't run because of not meeting them. This helps greatly in debugging and is just useful info to have.

To post a comment you must log in.
1091. By Brendan Donegan

Merged from trunk.

Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

This ones been sitting around for a while. Would be nice if someone could have a look at merging it.

Revision history for this message
Daniel Manrique (roadmr) wrote :

This had already been marged, so approving and merging to trunk again.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2011-10-18 09:47:45 +0000
+++ debian/changelog 2011-10-18 10:59:23 +0000
@@ -1,5 +1,8 @@
1checkbox (0.13) precise; urgency=low1checkbox (0.13) precise; urgency=low
22
3 [Brendan Donegan]
4 * Show details of unmet job requirements (LP: #855852)
5
3 [Marc Tardif]6 [Marc Tardif]
4 * Generate a submission.xml file that contains all device and attachment7 * Generate a submission.xml file that contains all device and attachment
5 information, suitable for offline processing and submission.8 information, suitable for offline processing and submission.
69
=== modified file 'plugins/resource_info.py'
--- plugins/resource_info.py 2011-09-23 07:36:00 +0000
+++ plugins/resource_info.py 2011-10-18 10:59:23 +0000
@@ -34,9 +34,15 @@
34 def prompt_job(self, interface, job):34 def prompt_job(self, interface, job):
35 mask = []35 mask = []
36 values = []36 values = []
37 failed_requirements = []
38
37 for require in job.get("requires", []):39 for require in job.get("requires", []):
38 new_values = self.resources.eval(require)40 new_values = self.resources.eval(require)
39 mask.append(bool(new_values))41 mask.append(bool(new_values))
42
43 if not bool(new_values):
44 failed_requirements.append(require)
45
40 if new_values is not None:46 if new_values is not None:
41 values.extend(new_values)47 values.extend(new_values)
4248
@@ -45,7 +51,14 @@
4551
46 else:52 else:
47 job["status"] = UNSUPPORTED53 job["status"] = UNSUPPORTED
48 job["data"] = "Job requirements not met."54
55 data = "Job requirement%s not met:" % (
56 's' if len(failed_requirements) > 1 else '')
57
58 for failed_require in failed_requirements:
59 data = data + " '" + failed_require + "'"
60
61 job["data"] = data
49 self._manager.reactor.stop()62 self._manager.reactor.stop()
5063
51 def report_resource(self, resource):64 def report_resource(self, resource):

Subscribers

People subscribed via source and target branches