summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/server/xmlrpc.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/server/xmlrpc.py')
-rw-r--r--bitbake/lib/bb/server/xmlrpc.py59
1 files changed, 0 insertions, 59 deletions
diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py
index 0b51ebd20f..359d5adb67 100644
--- a/bitbake/lib/bb/server/xmlrpc.py
+++ b/bitbake/lib/bb/server/xmlrpc.py
@@ -272,59 +272,6 @@ class BitBakeUIEventServer(threading.Thread):
272 if evt: 272 if evt:
273 self.connection.event.sendpickle(pickle.dumps(evt)) 273 self.connection.event.sendpickle(pickle.dumps(evt))
274 274
275class BitBakeXMLRPCEventServerController(SimpleXMLRPCServer, threading.Thread):
276 def __init__(self, interface):
277 SimpleXMLRPCServer.__init__(self, interface, logRequests=False, allow_none=True)
278 threading.Thread.__init__(self)
279 self.register_function(self.registerEventHandler, "registerEventHandler")
280 self.register_function(self.unregisterEventHandler, "unregisterEventHandler")
281 self.register_function(self.terminateServer, "terminateServer")
282 #self.register_function(self.runCommand, "runCommand")
283 self.quit = False
284 self.clients = {}
285 self.client_ui_ids = {}
286 self.timeout = 1 # timeout for .handle_request()
287
288 def registerEventHandler(self, host, port):
289 """
290 Register a remote UI Event Handler
291 """
292 connection = xmlrpclib.ServerProxy("http://%s:%d/" % (host, port), allow_none=True)
293 client_hash = "%s:%d" % (host, port)
294 if self.clients.has_key(client_hash):
295 return None
296 client_ui_server = BitBakeUIEventServer(connection)
297 self.client_ui_ids[client_hash] = bb.event.register_UIHhandler(client_ui_server)
298 client_ui_server.start()
299 self.clients[client_hash] = client_ui_server
300 return client_hash
301
302 def unregisterEventHandler(self, client_hash):
303 """
304 Unregister a remote UI Event Handler
305 """
306 client_thread = self.clients[client_hash]
307 if client_thread:
308 bb.event.unregister_UIHhandler(self.clients_ui_ids[client_hash])
309 client_thread.terminateServer()
310 client_thread.join()
311 return True
312 else:
313 return False
314
315 def terminateServer(self):
316 self.quit = True
317
318 def runCommand(self, cmd):
319 return None
320
321 def run(self):
322 self.serve_forever()
323
324 def serve_forever(self):
325 while not self.quit:
326 self.handle_request()
327 self.server_close()
328 275
329class XMLRPCProxyServer(BaseImplServer): 276class XMLRPCProxyServer(BaseImplServer):
330 """ not a real working server, but a stub for a proxy server connection 277 """ not a real working server, but a stub for a proxy server connection
@@ -369,9 +316,6 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
369 316
370 317
371 def serve_forever(self): 318 def serve_forever(self):
372 # Create and run the event server controller in a separate thread
373 self.event_controller_thread = BitBakeXMLRPCEventServerController((self.host, self.port + 2))
374 self.event_controller_thread.start()
375 # Start the actual XMLRPC server 319 # Start the actual XMLRPC server
376 bb.cooker.server_main(self.cooker, self._serve_forever) 320 bb.cooker.server_main(self.cooker, self._serve_forever)
377 321
@@ -414,9 +358,6 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
414 retval = function(self, data, True) 358 retval = function(self, data, True)
415 except: 359 except:
416 pass 360 pass
417 # Terminate the event server
418 self.event_controller_thread.terminateServer()
419 self.event_controller_thread.join()
420 self.server_close() 361 self.server_close()
421 return 362 return
422 363