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
1=== modified file 'debian/changelog'
2--- debian/changelog 2011-10-18 09:47:45 +0000
3+++ debian/changelog 2011-10-18 10:59:23 +0000
4@@ -1,5 +1,8 @@
5 checkbox (0.13) precise; urgency=low
6
7+ [Brendan Donegan]
8+ * Show details of unmet job requirements (LP: #855852)
9+
10 [Marc Tardif]
11 * Generate a submission.xml file that contains all device and attachment
12 information, suitable for offline processing and submission.
13
14=== modified file 'plugins/resource_info.py'
15--- plugins/resource_info.py 2011-09-23 07:36:00 +0000
16+++ plugins/resource_info.py 2011-10-18 10:59:23 +0000
17@@ -34,9 +34,15 @@
18 def prompt_job(self, interface, job):
19 mask = []
20 values = []
21+ failed_requirements = []
22+
23 for require in job.get("requires", []):
24 new_values = self.resources.eval(require)
25 mask.append(bool(new_values))
26+
27+ if not bool(new_values):
28+ failed_requirements.append(require)
29+
30 if new_values is not None:
31 values.extend(new_values)
32
33@@ -45,7 +51,14 @@
34
35 else:
36 job["status"] = UNSUPPORTED
37- job["data"] = "Job requirements not met."
38+
39+ data = "Job requirement%s not met:" % (
40+ 's' if len(failed_requirements) > 1 else '')
41+
42+ for failed_require in failed_requirements:
43+ data = data + " '" + failed_require + "'"
44+
45+ job["data"] = data
46 self._manager.reactor.stop()
47
48 def report_resource(self, resource):

Subscribers

People subscribed via source and target branches