summaryrefslogtreecommitdiffstats
path: root/bitbake-dev/lib/bb/ui
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake-dev/lib/bb/ui')
-rw-r--r--bitbake-dev/lib/bb/ui/crumbs/runningbuild.py28
-rw-r--r--bitbake-dev/lib/bb/ui/depexp.py20
-rw-r--r--bitbake-dev/lib/bb/ui/knotty.py66
-rw-r--r--bitbake-dev/lib/bb/ui/ncurses.py44
-rw-r--r--bitbake-dev/lib/bb/ui/uievent.py24
-rw-r--r--bitbake-dev/lib/bb/ui/uihelper.py22
6 files changed, 101 insertions, 103 deletions
diff --git a/bitbake-dev/lib/bb/ui/crumbs/runningbuild.py b/bitbake-dev/lib/bb/ui/crumbs/runningbuild.py
index 34f65d2396..401559255b 100644
--- a/bitbake-dev/lib/bb/ui/crumbs/runningbuild.py
+++ b/bitbake-dev/lib/bb/ui/crumbs/runningbuild.py
@@ -61,36 +61,36 @@ class RunningBuild (gobject.GObject):
61 # If we have a pid attached to this message/event try and get the 61 # If we have a pid attached to this message/event try and get the
62 # (package, task) pair for it. If we get that then get the parent iter 62 # (package, task) pair for it. If we get that then get the parent iter
63 # for the message. 63 # for the message.
64 if event[1].has_key ('pid'): 64 if hassattr(event, 'pid'):
65 pid = event[1]['pid'] 65 pid = event.pid
66 if self.pids_to_task.has_key(pid): 66 if self.pids_to_task.has_key(pid):
67 (package, task) = self.pids_to_task[pid] 67 (package, task) = self.pids_to_task[pid]
68 parent = self.tasks_to_iter[(package, task)] 68 parent = self.tasks_to_iter[(package, task)]
69 69
70 if event[0].startswith('bb.msg.Msg'): 70 if isinstance(event, bb.msg.Msg):
71 # Set a pretty icon for the message based on it's type. 71 # Set a pretty icon for the message based on it's type.
72 if (event[0].startswith ('bb.msg.MsgWarn')): 72 if isinstance(event, bb.msg.MsgWarn):
73 icon = "dialog-warning" 73 icon = "dialog-warning"
74 elif (event[0].startswith ('bb.msg.MsgErr')): 74 elif isinstance(event, bb.msg.MsgErr):
75 icon = "dialog-error" 75 icon = "dialog-error"
76 else: 76 else:
77 icon = None 77 icon = None
78 78
79 # Ignore the "Running task i of n .." messages 79 # Ignore the "Running task i of n .." messages
80 if (event[1]['_message'].startswith ("Running task")): 80 if (event._message.startswith ("Running task")):
81 return 81 return
82 82
83 # Add the message to the tree either at the top level if parent is 83 # Add the message to the tree either at the top level if parent is
84 # None otherwise as a descendent of a task. 84 # None otherwise as a descendent of a task.
85 self.model.append (parent, 85 self.model.append (parent,
86 (event[0].split()[-1], # e.g. MsgWarn, MsgError 86 (event.__name__.split()[-1], # e.g. MsgWarn, MsgError
87 package, 87 package,
88 task, 88 task,
89 event[1]['_message'], 89 event._message,
90 icon, 90 icon,
91 False)) 91 False))
92 elif event[0].startswith('bb.build.TaskStarted'): 92 elif isinstance(event, bb.build.TaskStarted):
93 (package, task) = (event[1]['_package'], event[1]['_task']) 93 (package, task) = (event._package, event._task)
94 94
95 # Save out this PID. 95 # Save out this PID.
96 self.pids_to_task[pid] = (package,task) 96 self.pids_to_task[pid] = (package,task)
@@ -128,9 +128,9 @@ class RunningBuild (gobject.GObject):
128 # Mark this task as active. 128 # Mark this task as active.
129 self.model.set(i, self.model.COL_ICON, "gtk-execute") 129 self.model.set(i, self.model.COL_ICON, "gtk-execute")
130 130
131 elif event[0].startswith('bb.build.Task'): 131 elif isinstance(event, bb.build.Task):
132 132
133 if event[0].startswith('bb.build.TaskFailed'): 133 if isinstance(event, bb.build.TaskFailed):
134 # Mark the task as failed 134 # Mark the task as failed
135 i = self.tasks_to_iter[(package, task)] 135 i = self.tasks_to_iter[(package, task)]
136 self.model.set(i, self.model.COL_ICON, "dialog-error") 136 self.model.set(i, self.model.COL_ICON, "dialog-error")
@@ -153,8 +153,8 @@ class RunningBuild (gobject.GObject):
153 del self.tasks_to_iter[(package, task)] 153 del self.tasks_to_iter[(package, task)]
154 del self.pids_to_task[pid] 154 del self.pids_to_task[pid]
155 155
156 elif event[0].startswith('bb.event.BuildCompleted'): 156 elif isinstance(event, bb.event.BuildCompleted):
157 failures = int (event[1]['_failures']) 157 failures = int (event._failures)
158 158
159 # Emit the appropriate signal depending on the number of failures 159 # Emit the appropriate signal depending on the number of failures
160 if (failures > 1): 160 if (failures > 1):
diff --git a/bitbake-dev/lib/bb/ui/depexp.py b/bitbake-dev/lib/bb/ui/depexp.py
index 0c559c7976..cfa5b6564e 100644
--- a/bitbake-dev/lib/bb/ui/depexp.py
+++ b/bitbake-dev/lib/bb/ui/depexp.py
@@ -229,12 +229,12 @@ def init(server, eventHandler):
229 229
230 if event is None: 230 if event is None:
231 continue 231 continue
232 if event[0].startswith('bb.event.ParseProgress'): 232 if isinstance(event, bb.event.ParseProgress):
233 x = event[1]['sofar'] 233 x = event.sofar
234 y = event[1]['total'] 234 y = event.total
235 if x == y: 235 if x == y:
236 print("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors." 236 print("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors."
237 % ( event[1]['cached'], event[1]['parsed'], event[1]['skipped'], event[1]['masked'], event[1]['errors'])) 237 % ( event.cached, event.parsed, event.skipped, event.masked, event.errors))
238 pbar.hide() 238 pbar.hide()
239 gtk.gdk.threads_enter() 239 gtk.gdk.threads_enter()
240 pbar.progress.set_fraction(float(x)/float(y)) 240 pbar.progress.set_fraction(float(x)/float(y))
@@ -242,17 +242,17 @@ def init(server, eventHandler):
242 gtk.gdk.threads_leave() 242 gtk.gdk.threads_leave()
243 continue 243 continue
244 244
245 if event[0] == "bb.event.DepTreeGenerated": 245 if isinstance(event, bb.event.DepTreeGenerated):
246 gtk.gdk.threads_enter() 246 gtk.gdk.threads_enter()
247 parse(event[1]['_depgraph'], dep.pkg_model, dep.depends_model) 247 parse(event._depgraph, dep.pkg_model, dep.depends_model)
248 gtk.gdk.threads_leave() 248 gtk.gdk.threads_leave()
249 249
250 if event[0] == 'bb.command.CookerCommandCompleted': 250 if isinstance(event, bb.command.CookerCommandCompleted):
251 continue 251 continue
252 if event[0] == 'bb.command.CookerCommandFailed': 252 if isinstance(event, bb.command.CookerCommandFailed):
253 print "Command execution failed: %s" % event[1]['error'] 253 print "Command execution failed: %s" % event.error
254 break 254 break
255 if event[0] == 'bb.cooker.CookerExit': 255 if isinstance(event, bb.cooker.CookerExit):
256 break 256 break
257 257
258 continue 258 continue
diff --git a/bitbake-dev/lib/bb/ui/knotty.py b/bitbake-dev/lib/bb/ui/knotty.py
index 8a2afeeb6d..6baed836a1 100644
--- a/bitbake-dev/lib/bb/ui/knotty.py
+++ b/bitbake-dev/lib/bb/ui/knotty.py
@@ -53,29 +53,29 @@ def init(server, eventHandler):
53 if event is None: 53 if event is None:
54 continue 54 continue
55 #print event 55 #print event
56 if event[0].startswith('bb.msg.MsgPlain'): 56 if isinstance(event, bb.msg.MsgPlain):
57 print event[1]['_message'] 57 print event._message
58 continue 58 continue
59 if event[0].startswith('bb.msg.MsgDebug'): 59 if isinstance(event, bb.msg.MsgDebug):
60 print 'DEBUG: ' + event[1]['_message'] 60 print 'DEBUG: ' + event._message
61 continue 61 continue
62 if event[0].startswith('bb.msg.MsgNote'): 62 if isinstance(event, bb.msg.MsgNote):
63 print 'NOTE: ' + event[1]['_message'] 63 print 'NOTE: ' + event._message
64 continue 64 continue
65 if event[0].startswith('bb.msg.MsgWarn'): 65 if isinstance(event, bb.msg.MsgWarn):
66 print 'WARNING: ' + event[1]['_message'] 66 print 'WARNING: ' + event._message
67 continue 67 continue
68 if event[0].startswith('bb.msg.MsgError'): 68 if isinstance(event, bb.msg.MsgError):
69 return_value = 1 69 return_value = 1
70 print 'ERROR: ' + event[1]['_message'] 70 print 'ERROR: ' + event._message
71 continue 71 continue
72 if event[0].startswith('bb.msg.MsgFatal'): 72 if isinstance(event, bb.msg.MsgFatal):
73 return_value = 1 73 return_value = 1
74 print 'FATAL: ' + event[1]['_message'] 74 print 'FATAL: ' + event._message
75 break 75 break
76 if event[0].startswith('bb.build.TaskFailed'): 76 if isinstance(event, bb.build.TaskFailed):
77 return_value = 1 77 return_value = 1
78 logfile = event[1]['logfile'] 78 logfile = event.logfile
79 if logfile: 79 if logfile:
80 print "ERROR: Logfile of failure stored in %s." % logfile 80 print "ERROR: Logfile of failure stored in %s." % logfile
81 if 1 or includelogs: 81 if 1 or includelogs:
@@ -97,12 +97,12 @@ def init(server, eventHandler):
97 if lines: 97 if lines:
98 for line in lines: 98 for line in lines:
99 print line 99 print line
100 if event[0].startswith('bb.build.Task'): 100 if isinstance(event, bb.build.TaskBase):
101 print "NOTE: %s" % event[1]['_message'] 101 print "NOTE: %s" % event._message
102 continue 102 continue
103 if event[0].startswith('bb.event.ParseProgress'): 103 if isinstance(event, bb.event.ParseProgress):
104 x = event[1]['sofar'] 104 x = event.sofar
105 y = event[1]['total'] 105 y = event.total
106 if os.isatty(sys.stdout.fileno()): 106 if os.isatty(sys.stdout.fileno()):
107 sys.stdout.write("\rNOTE: Handling BitBake files: %s (%04d/%04d) [%2d %%]" % ( parsespin.next(), x, y, x*100/y ) ) 107 sys.stdout.write("\rNOTE: Handling BitBake files: %s (%04d/%04d) [%2d %%]" % ( parsespin.next(), x, y, x*100/y ) )
108 sys.stdout.flush() 108 sys.stdout.flush()
@@ -115,35 +115,35 @@ def init(server, eventHandler):
115 sys.stdout.flush() 115 sys.stdout.flush()
116 if x == y: 116 if x == y:
117 print("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors." 117 print("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors."
118 % ( event[1]['cached'], event[1]['parsed'], event[1]['skipped'], event[1]['masked'], event[1]['errors'])) 118 % ( event.cached, event.parsed, event.skipped, event.masked, event.errors))
119 continue 119 continue
120 120
121 if event[0] == 'bb.command.CookerCommandCompleted': 121 if isinstance(event, bb.command.CookerCommandCompleted):
122 break 122 break
123 if event[0] == 'bb.command.CookerCommandSetExitCode': 123 if isinstance(event, bb.command.CookerCommandSetExitCode):
124 return_value = event[1]['exitcode'] 124 return_value = event.exitcode
125 continue 125 continue
126 if event[0] == 'bb.command.CookerCommandFailed': 126 if isinstance(event, bb.command.CookerCommandFailed):
127 return_value = 1 127 return_value = 1
128 print "Command execution failed: %s" % event[1]['error'] 128 print "Command execution failed: %s" % event.error
129 break 129 break
130 if event[0] == 'bb.cooker.CookerExit': 130 if isinstance(event, bb.cooker.CookerExit):
131 break 131 break
132 132
133 # ignore 133 # ignore
134 if event[0].startswith('bb.event.BuildStarted'): 134 if isinstance(event, bb.event.BuildStarted):
135 continue 135 continue
136 if event[0].startswith('bb.event.BuildCompleted'): 136 if isinstance(event, bb.event.BuildCompleted):
137 continue 137 continue
138 if event[0].startswith('bb.event.MultipleProviders'): 138 if isinstance(event, bb.event.MultipleProviders):
139 continue 139 continue
140 if event[0].startswith('bb.runqueue.runQueue'): 140 if isinstance(event, bb.runqueue.runQueueEvent):
141 continue 141 continue
142 if event[0].startswith('bb.event.StampUpdate'): 142 if isinstance(event, bb.event.StampUpdate):
143 continue 143 continue
144 if event[0].startswith('bb.event.ConfigParsed'): 144 if isinstance(event, bb.event.ConfigParsed):
145 continue 145 continue
146 if event[0].startswith('bb.event.RecipeParsed'): 146 if isinstance(event, bb.event.RecipeParsed):
147 continue 147 continue
148 print "Unknown Event: %s" % event 148 print "Unknown Event: %s" % event
149 149
diff --git a/bitbake-dev/lib/bb/ui/ncurses.py b/bitbake-dev/lib/bb/ui/ncurses.py
index 2cd7e8e6e7..14310dc124 100644
--- a/bitbake-dev/lib/bb/ui/ncurses.py
+++ b/bitbake-dev/lib/bb/ui/ncurses.py
@@ -246,29 +246,29 @@ class NCursesUI:
246 continue 246 continue
247 helper.eventHandler(event) 247 helper.eventHandler(event)
248 #mw.appendText("%s\n" % event[0]) 248 #mw.appendText("%s\n" % event[0])
249 if event[0].startswith('bb.build.Task'): 249 if isinstance(event, bb.build.Task):
250 mw.appendText("NOTE: %s\n" % event[1]['_message']) 250 mw.appendText("NOTE: %s\n" % event._message)
251 if event[0].startswith('bb.msg.MsgDebug'): 251 if isinstance(event, bb.msg.MsgDebug):
252 mw.appendText('DEBUG: ' + event[1]['_message'] + '\n') 252 mw.appendText('DEBUG: ' + event._message + '\n')
253 if event[0].startswith('bb.msg.MsgNote'): 253 if isinstance(event, bb.msg.MsgNote):
254 mw.appendText('NOTE: ' + event[1]['_message'] + '\n') 254 mw.appendText('NOTE: ' + event._message + '\n')
255 if event[0].startswith('bb.msg.MsgWarn'): 255 if isinstance(event, bb.msg.MsgWarn):
256 mw.appendText('WARNING: ' + event[1]['_message'] + '\n') 256 mw.appendText('WARNING: ' + event._message + '\n')
257 if event[0].startswith('bb.msg.MsgError'): 257 if isinstance(event, bb.msg.MsgError):
258 mw.appendText('ERROR: ' + event[1]['_message'] + '\n') 258 mw.appendText('ERROR: ' + event._message + '\n')
259 if event[0].startswith('bb.msg.MsgFatal'): 259 if isinstance(event, bb.msg.MsgFatal):
260 mw.appendText('FATAL: ' + event[1]['_message'] + '\n') 260 mw.appendText('FATAL: ' + event._message + '\n')
261 if event[0].startswith('bb.event.ParseProgress'): 261 if isinstance(event, bb.event.ParseProgress):
262 x = event[1]['sofar'] 262 x = event.sofar
263 y = event[1]['total'] 263 y = event.total
264 if x == y: 264 if x == y:
265 mw.setStatus("Idle") 265 mw.setStatus("Idle")
266 mw.appendText("Parsing finished. %d cached, %d parsed, %d skipped, %d masked." 266 mw.appendText("Parsing finished. %d cached, %d parsed, %d skipped, %d masked."
267 % ( event[1]['cached'], event[1]['parsed'], event[1]['skipped'], event[1]['masked'] )) 267 % ( event.cached, event.parsed, event.skipped, event.masked ))
268 else: 268 else:
269 mw.setStatus("Parsing: %s (%04d/%04d) [%2d %%]" % ( parsespin.next(), x, y, x*100/y ) ) 269 mw.setStatus("Parsing: %s (%04d/%04d) [%2d %%]" % ( parsespin.next(), x, y, x*100/y ) )
270# if event[0].startswith('bb.build.TaskFailed'): 270# if isinstance(event, bb.build.TaskFailed):
271# if event[1]['logfile']: 271# if event.logfile:
272# if data.getVar("BBINCLUDELOGS", d): 272# if data.getVar("BBINCLUDELOGS", d):
273# bb.msg.error(bb.msg.domain.Build, "log data follows (%s)" % logfile) 273# bb.msg.error(bb.msg.domain.Build, "log data follows (%s)" % logfile)
274# number_of_lines = data.getVar("BBINCLUDELOGS_LINES", d) 274# number_of_lines = data.getVar("BBINCLUDELOGS_LINES", d)
@@ -286,13 +286,13 @@ class NCursesUI:
286# else: 286# else:
287# bb.msg.error(bb.msg.domain.Build, "see log in %s" % logfile) 287# bb.msg.error(bb.msg.domain.Build, "see log in %s" % logfile)
288 288
289 if event[0] == 'bb.command.CookerCommandCompleted': 289 if isinstance(event, bb.command.CookerCommandCompleted):
290 exitflag = True 290 exitflag = True
291 if event[0] == 'bb.command.CookerCommandFailed': 291 if isinstance(event, bb.command.CookerCommandFailed):
292 mw.appendText("Command execution failed: %s" % event[1]['error']) 292 mw.appendText("Command execution failed: %s" % event.error)
293 time.sleep(2) 293 time.sleep(2)
294 exitflag = True 294 exitflag = True
295 if event[0] == 'bb.cooker.CookerExit': 295 if isinstance(event, bb.cooker.CookerExit):
296 exitflag = True 296 exitflag = True
297 297
298 if helper.needUpdate: 298 if helper.needUpdate:
diff --git a/bitbake-dev/lib/bb/ui/uievent.py b/bitbake-dev/lib/bb/ui/uievent.py
index 23fdd0f961..36302f4da7 100644
--- a/bitbake-dev/lib/bb/ui/uievent.py
+++ b/bitbake-dev/lib/bb/ui/uievent.py
@@ -24,7 +24,7 @@ server and queue them for the UI to process. This process must be used to avoid
24client/server deadlocks. 24client/server deadlocks.
25""" 25"""
26 26
27import socket, threading 27import socket, threading, pickle
28from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler 28from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
29 29
30class BBUIEventQueue: 30class BBUIEventQueue:
@@ -37,8 +37,8 @@ class BBUIEventQueue:
37 self.BBServer = BBServer 37 self.BBServer = BBServer
38 38
39 self.t = threading.Thread() 39 self.t = threading.Thread()
40 self.t.setDaemon(True) 40 self.t.setDaemon(True)
41 self.t.run = self.startCallbackHandler 41 self.t.run = self.startCallbackHandler
42 self.t.start() 42 self.t.start()
43 43
44 def getEvent(self): 44 def getEvent(self):
@@ -55,7 +55,6 @@ class BBUIEventQueue:
55 self.eventQueueNotify.clear() 55 self.eventQueueNotify.clear()
56 56
57 self.eventQueueLock.release() 57 self.eventQueueLock.release()
58
59 return item 58 return item
60 59
61 def waitEvent(self, delay): 60 def waitEvent(self, delay):
@@ -63,16 +62,15 @@ class BBUIEventQueue:
63 return self.getEvent() 62 return self.getEvent()
64 63
65 def queue_event(self, event): 64 def queue_event(self, event):
66
67 self.eventQueueLock.acquire() 65 self.eventQueueLock.acquire()
68 self.eventQueue.append(event) 66 self.eventQueue.append(pickle.loads(event))
69 self.eventQueueNotify.set() 67 self.eventQueueNotify.set()
70 self.eventQueueLock.release() 68 self.eventQueueLock.release()
71 69
72 def startCallbackHandler(self): 70 def startCallbackHandler(self):
73 71
74 server = UIXMLRPCServer() 72 server = UIXMLRPCServer()
75 self.host, self.port = server.socket.getsockname() 73 self.host, self.port = server.socket.getsockname()
76 74
77 server.register_function( self.system_quit, "event.quit" ) 75 server.register_function( self.system_quit, "event.quit" )
78 server.register_function( self.queue_event, "event.send" ) 76 server.register_function( self.queue_event, "event.send" )
@@ -85,7 +83,7 @@ class BBUIEventQueue:
85 server.handle_request() 83 server.handle_request()
86 server.server_close() 84 server.server_close()
87 85
88 def system_quit( self ): 86 def system_quit( self ):
89 """ 87 """
90 Shut down the callback thread 88 Shut down the callback thread
91 """ 89 """
@@ -97,11 +95,11 @@ class BBUIEventQueue:
97 95
98class UIXMLRPCServer (SimpleXMLRPCServer): 96class UIXMLRPCServer (SimpleXMLRPCServer):
99 97
100 def __init__( self, interface = ("localhost", 0) ): 98 def __init__( self, interface = ("localhost", 0) ):
101 self.quit = False 99 self.quit = False
102 SimpleXMLRPCServer.__init__( self, 100 SimpleXMLRPCServer.__init__( self,
103 interface, 101 interface,
104 requestHandler=SimpleXMLRPCRequestHandler, 102 requestHandler=SimpleXMLRPCRequestHandler,
105 logRequests=False, allow_none=True) 103 logRequests=False, allow_none=True)
106 104
107 def get_request(self): 105 def get_request(self):
@@ -123,5 +121,5 @@ class UIXMLRPCServer (SimpleXMLRPCServer):
123 if request is None: 121 if request is None:
124 return 122 return
125 SimpleXMLRPCServer.process_request(self, request, client_address) 123 SimpleXMLRPCServer.process_request(self, request, client_address)
126 124
127 125
diff --git a/bitbake-dev/lib/bb/ui/uihelper.py b/bitbake-dev/lib/bb/ui/uihelper.py
index 246844c9d2..151ffc5854 100644
--- a/bitbake-dev/lib/bb/ui/uihelper.py
+++ b/bitbake-dev/lib/bb/ui/uihelper.py
@@ -24,25 +24,25 @@ class BBUIHelper:
24 self.failed_tasks = {} 24 self.failed_tasks = {}
25 25
26 def eventHandler(self, event): 26 def eventHandler(self, event):
27 if event[0].startswith('bb.build.TaskStarted'): 27 if isinstance(event, bb.build.TaskStarted):
28 self.running_tasks["%s %s\n" % (event[1]['_package'], event[1]['_task'])] = "" 28 self.running_tasks["%s %s\n" % (event._package, event._task)] = ""
29 self.needUpdate = True 29 self.needUpdate = True
30 if event[0].startswith('bb.build.TaskSucceeded'): 30 if isinstance(event, bb.build.TaskSucceeded):
31 del self.running_tasks["%s %s\n" % (event[1]['_package'], event[1]['_task'])] 31 del self.running_tasks["%s %s\n" % (event._package, event._task)]
32 self.needUpdate = True 32 self.needUpdate = True
33 if event[0].startswith('bb.build.TaskFailed'): 33 if isinstance(event, bb.build.TaskFailed):
34 del self.running_tasks["%s %s\n" % (event[1]['_package'], event[1]['_task'])] 34 del self.running_tasks["%s %s\n" % (event._package, event._task)]
35 self.failed_tasks["%s %s\n" % (event[1]['_package'], event[1]['_task'])] = "" 35 self.failed_tasks["%s %s\n" % (event._package, event._task)] = ""
36 self.needUpdate = True 36 self.needUpdate = True
37 37
38 # Add runqueue event handling 38 # Add runqueue event handling
39 #if event[0].startswith('bb.runqueue.runQueueTaskCompleted'): 39 #if isinstance(event, bb.runqueue.runQueueTaskCompleted):
40 # a = 1 40 # a = 1
41 #if event[0].startswith('bb.runqueue.runQueueTaskStarted'): 41 #if isinstance(event, bb.runqueue.runQueueTaskStarted):
42 # a = 1 42 # a = 1
43 #if event[0].startswith('bb.runqueue.runQueueTaskFailed'): 43 #if isinstance(event, bb.runqueue.runQueueTaskFailed):
44 # a = 1 44 # a = 1
45 #if event[0].startswith('bb.runqueue.runQueueExitWait'): 45 #if isinstance(event, bb.runqueue.runQueueExitWait):
46 # a = 1 46 # a = 1
47 47
48 def getTasks(self): 48 def getTasks(self):