summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/server/xmlrpc.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-18 22:15:17 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-21 08:41:11 +0100
commit577b75086eaf4ae2201933f7b9ac32f6239867c6 (patch)
tree66486353161365955936a20338642c8f50dc15e8 /bitbake/lib/bb/server/xmlrpc.py
parentdd71707d5a5a420a4406ce88164ac2a32cc04956 (diff)
downloadpoky-577b75086eaf4ae2201933f7b9ac32f6239867c6.tar.gz
bitbake: server: Remove base classes and inline code
In preparation for rewriting this code, expand the relatively useless base classes into the code itself. (Bitbake rev: a1c6151420d86bac658c08ae714647062edd6ef2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/server/xmlrpc.py')
-rw-r--r--bitbake/lib/bb/server/xmlrpc.py60
1 files changed, 52 insertions, 8 deletions
diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py
index 1a475e04ba..6874765136 100644
--- a/bitbake/lib/bb/server/xmlrpc.py
+++ b/bitbake/lib/bb/server/xmlrpc.py
@@ -49,7 +49,6 @@ from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
49import bb 49import bb
50from bb import daemonize 50from bb import daemonize
51from bb.ui import uievent 51from bb.ui import uievent
52from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer
53 52
54DEBUG = False 53DEBUG = False
55 54
@@ -193,15 +192,25 @@ class BitBakeXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
193 self.wfile.write(bytes(response, 'utf-8')) 192 self.wfile.write(bytes(response, 'utf-8'))
194 193
195 194
196class XMLRPCProxyServer(BaseImplServer): 195class XMLRPCProxyServer(object):
197 """ not a real working server, but a stub for a proxy server connection 196 """ not a real working server, but a stub for a proxy server connection
198 197
199 """ 198 """
200 def __init__(self, host, port, use_builtin_types=True): 199 def __init__(self, host, port, use_builtin_types=True):
201 self.host = host 200 self.host = host
202 self.port = port 201 self.port = port
202 self._idlefuns = {}
203 203
204class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer): 204 def addcooker(self, cooker):
205 self.cooker = cooker
206
207 def register_idle_function(self, function, data):
208 """Register a function to be called while the server is idle"""
209 assert hasattr(function, '__call__')
210 self._idlefuns[function] = data
211
212
213class XMLRPCServer(SimpleXMLRPCServer):
205 # remove this when you're done with debugging 214 # remove this when you're done with debugging
206 # allow_reuse_address = True 215 # allow_reuse_address = True
207 216
@@ -209,7 +218,7 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
209 """ 218 """
210 Constructor 219 Constructor
211 """ 220 """
212 BaseImplServer.__init__(self) 221 self._idlefuns = {}
213 self.single_use = single_use 222 self.single_use = single_use
214 # Use auto port configuration 223 # Use auto port configuration
215 if (interface[1] == -1): 224 if (interface[1] == -1):
@@ -231,7 +240,7 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
231 self.next_heartbeat = time.time() 240 self.next_heartbeat = time.time()
232 241
233 def addcooker(self, cooker): 242 def addcooker(self, cooker):
234 BaseImplServer.addcooker(self, cooker) 243 self.cooker = cooker
235 self.commands.cooker = cooker 244 self.commands.cooker = cooker
236 245
237 def autoregister_all_functions(self, context, prefix): 246 def autoregister_all_functions(self, context, prefix):
@@ -335,7 +344,13 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
335 def set_connection_token(self, token): 344 def set_connection_token(self, token):
336 self.connection_token = token 345 self.connection_token = token
337 346
338class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection): 347 def register_idle_function(self, function, data):
348 """Register a function to be called while the server is idle"""
349 assert hasattr(function, '__call__')
350 self._idlefuns[function] = data
351
352
353class BitBakeXMLRPCServerConnection(object):
339 def __init__(self, serverImpl, clientinfo=("localhost", 0), observer_only = False, featureset = None): 354 def __init__(self, serverImpl, clientinfo=("localhost", 0), observer_only = False, featureset = None):
340 self.connection, self.transport = _create_server(serverImpl.host, serverImpl.port) 355 self.connection, self.transport = _create_server(serverImpl.host, serverImpl.port)
341 self.clientinfo = clientinfo 356 self.clientinfo = clientinfo
@@ -388,7 +403,7 @@ class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection):
388 except: 403 except:
389 pass 404 pass
390 405
391class BitBakeServer(BitBakeBaseServer): 406class BitBakeServer(object):
392 def initServer(self, interface = ("localhost", 0), 407 def initServer(self, interface = ("localhost", 0),
393 single_use = False, idle_timeout=0): 408 single_use = False, idle_timeout=0):
394 self.interface = interface 409 self.interface = interface
@@ -405,7 +420,20 @@ class BitBakeServer(BitBakeBaseServer):
405 def set_connection_token(self, token): 420 def set_connection_token(self, token):
406 self.connection.transport.set_connection_token(token) 421 self.connection.transport.set_connection_token(token)
407 422
408class BitBakeXMLRPCClient(BitBakeBaseServer): 423 def addcooker(self, cooker):
424 self.cooker = cooker
425 self.serverImpl.addcooker(cooker)
426
427 def getServerIdleCB(self):
428 return self.serverImpl.register_idle_function
429
430 def saveConnectionDetails(self):
431 return
432
433 def endSession(self):
434 self.connection.terminate()
435
436class BitBakeXMLRPCClient(object):
409 437
410 def __init__(self, observer_only = False, token = None): 438 def __init__(self, observer_only = False, token = None):
411 self.token = token 439 self.token = token
@@ -446,3 +474,19 @@ class BitBakeXMLRPCClient(BitBakeBaseServer):
446 474
447 def endSession(self): 475 def endSession(self):
448 self.connection.removeClient() 476 self.connection.removeClient()
477
478 def initServer(self):
479 self.serverImpl = None
480 self.connection = None
481 return
482
483 def addcooker(self, cooker):
484 self.cooker = cooker
485 self.serverImpl.addcooker(cooker)
486
487 def getServerIdleCB(self):
488 return self.serverImpl.register_idle_function
489
490 def detach(self):
491 return
492