diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2010-01-21 23:49:17 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-01-21 23:49:17 +0000 |
commit | 5ebad0d500562a132067b423bb6711e8893f2859 (patch) | |
tree | 395567a09b82a0bf89331d32f927fbe77496ec79 /bitbake/lib/bb | |
parent | 5c62833766048b83c0d7ea9e77194b9ca6af7fb1 (diff) | |
download | poky-5ebad0d500562a132067b423bb6711e8893f2859.tar.gz |
knotty: Improve task failure message handling using the uihelper code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 10 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/knotty.py | 20 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/uihelper.py | 11 |
3 files changed, 31 insertions, 10 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 1f9907b9d5..3a438894b8 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -1042,11 +1042,11 @@ class RunQueue: | |||
1042 | try: | 1042 | try: |
1043 | while self.stats.active > 0: | 1043 | while self.stats.active > 0: |
1044 | bb.event.fire(runQueueExitWait(self.stats.active), self.cfgData) | 1044 | bb.event.fire(runQueueExitWait(self.stats.active), self.cfgData) |
1045 | bb.msg.note(1, bb.msg.domain.RunQueue, "Waiting for %s active tasks to finish" % self.stats.active) | 1045 | #bb.msg.note(1, bb.msg.domain.RunQueue, "Waiting for %s active tasks to finish" % self.stats.active) |
1046 | tasknum = 1 | 1046 | #tasknum = 1 |
1047 | for k, v in self.build_pids.iteritems(): | 1047 | #for k, v in self.build_pids.iteritems(): |
1048 | bb.msg.note(1, bb.msg.domain.RunQueue, "%s: %s (pid %s)" % (tasknum, self.get_user_idstring(v), k)) | 1048 | # bb.msg.note(1, bb.msg.domain.RunQueue, "%s: %s (pid %s)" % (tasknum, self.get_user_idstring(v), k)) |
1049 | tasknum = tasknum + 1 | 1049 | # tasknum = tasknum + 1 |
1050 | result = os.waitpid(-1, os.WNOHANG) | 1050 | result = os.waitpid(-1, os.WNOHANG) |
1051 | if result[0] is 0 and result[1] is 0: | 1051 | if result[0] is 0 and result[1] is 0: |
1052 | return | 1052 | return |
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index c69fd6ca64..7264c7916c 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py | |||
@@ -23,6 +23,9 @@ import os | |||
23 | import sys | 23 | import sys |
24 | import itertools | 24 | import itertools |
25 | import xmlrpclib | 25 | import xmlrpclib |
26 | from bb import ui | ||
27 | from bb.ui import uihelper | ||
28 | |||
26 | 29 | ||
27 | parsespin = itertools.cycle( r'|/-\\' ) | 30 | parsespin = itertools.cycle( r'|/-\\' ) |
28 | 31 | ||
@@ -32,6 +35,8 @@ def init(server, eventHandler): | |||
32 | includelogs = server.runCommand(["getVariable", "BBINCLUDELOGS"]) | 35 | includelogs = server.runCommand(["getVariable", "BBINCLUDELOGS"]) |
33 | loglines = server.runCommand(["getVariable", "BBINCLUDELOGS_LINES"]) | 36 | loglines = server.runCommand(["getVariable", "BBINCLUDELOGS_LINES"]) |
34 | 37 | ||
38 | helper = uihelper.BBUIHelper() | ||
39 | |||
35 | try: | 40 | try: |
36 | cmdline = server.runCommand(["getCmdLineAction"]) | 41 | cmdline = server.runCommand(["getCmdLineAction"]) |
37 | #print cmdline | 42 | #print cmdline |
@@ -53,6 +58,19 @@ def init(server, eventHandler): | |||
53 | if event is None: | 58 | if event is None: |
54 | continue | 59 | continue |
55 | #print event | 60 | #print event |
61 | helper.eventHandler(event) | ||
62 | if isinstance(event, bb.runqueue.runQueueExitWait): | ||
63 | if not shutdown: | ||
64 | shutdown = 1 | ||
65 | if shutdown and helper.needUpdate: | ||
66 | activetasks, failedtasks = helper.getTasks() | ||
67 | if activetasks: | ||
68 | print "Waiting for %s active tasks to finish:" % len(activetasks) | ||
69 | tasknum = 1 | ||
70 | for task in activetasks: | ||
71 | print "%s: %s (pid %s)" % (tasknum, activetasks[task]["title"], task) | ||
72 | tasknum = tasknum + 1 | ||
73 | |||
56 | if isinstance(event, bb.msg.MsgPlain): | 74 | if isinstance(event, bb.msg.MsgPlain): |
57 | print event._message | 75 | print event._message |
58 | continue | 76 | continue |
@@ -139,6 +157,8 @@ def init(server, eventHandler): | |||
139 | continue | 157 | continue |
140 | if isinstance(event, bb.runqueue.runQueueEvent): | 158 | if isinstance(event, bb.runqueue.runQueueEvent): |
141 | continue | 159 | continue |
160 | if isinstance(event, bb.runqueue.runQueueExitWait): | ||
161 | continue | ||
142 | if isinstance(event, bb.event.StampUpdate): | 162 | if isinstance(event, bb.event.StampUpdate): |
143 | continue | 163 | continue |
144 | if isinstance(event, bb.event.ConfigParsed): | 164 | if isinstance(event, bb.event.ConfigParsed): |
diff --git a/bitbake/lib/bb/ui/uihelper.py b/bitbake/lib/bb/ui/uihelper.py index 151ffc5854..698de03f0a 100644 --- a/bitbake/lib/bb/ui/uihelper.py +++ b/bitbake/lib/bb/ui/uihelper.py | |||
@@ -21,18 +21,18 @@ class BBUIHelper: | |||
21 | def __init__(self): | 21 | def __init__(self): |
22 | self.needUpdate = False | 22 | self.needUpdate = False |
23 | self.running_tasks = {} | 23 | self.running_tasks = {} |
24 | self.failed_tasks = {} | 24 | self.failed_tasks = [] |
25 | 25 | ||
26 | def eventHandler(self, event): | 26 | def eventHandler(self, event): |
27 | if isinstance(event, bb.build.TaskStarted): | 27 | if isinstance(event, bb.build.TaskStarted): |
28 | self.running_tasks["%s %s\n" % (event._package, event._task)] = "" | 28 | self.running_tasks[event.pid] = { 'title' : "%s %s" % (event._package, event._task) } |
29 | self.needUpdate = True | 29 | self.needUpdate = True |
30 | if isinstance(event, bb.build.TaskSucceeded): | 30 | if isinstance(event, bb.build.TaskSucceeded): |
31 | del self.running_tasks["%s %s\n" % (event._package, event._task)] | 31 | del self.running_tasks[event.pid] |
32 | self.needUpdate = True | 32 | self.needUpdate = True |
33 | if isinstance(event, bb.build.TaskFailed): | 33 | if isinstance(event, bb.build.TaskFailed): |
34 | del self.running_tasks["%s %s\n" % (event._package, event._task)] | 34 | del self.running_tasks[event.pid] |
35 | self.failed_tasks["%s %s\n" % (event._package, event._task)] = "" | 35 | self.failed_tasks.append( { 'title' : "%s %s" % (event._package, event._task)}) |
36 | self.needUpdate = True | 36 | self.needUpdate = True |
37 | 37 | ||
38 | # Add runqueue event handling | 38 | # Add runqueue event handling |
@@ -46,4 +46,5 @@ class BBUIHelper: | |||
46 | # a = 1 | 46 | # a = 1 |
47 | 47 | ||
48 | def getTasks(self): | 48 | def getTasks(self): |
49 | self.needUpdate = False | ||
49 | return (self.running_tasks, self.failed_tasks) | 50 | return (self.running_tasks, self.failed_tasks) |