* [PATCH] server/xmlrpc: Simlify featureset handling
@ 2014-03-28 17:06 Richard Purdie
0 siblings, 0 replies; only message in thread
From: Richard Purdie @ 2014-03-28 17:06 UTC (permalink / raw)
To: bitbake-devel
Rather than passing featureset around various places where the data doesn't
really belong, run a command at connection time to set the appropriate
features. This is similar to what the process server does.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py
index 46d074a..bf867b5 100644
--- a/bitbake/lib/bb/server/xmlrpc.py
+++ b/bitbake/lib/bb/server/xmlrpc.py
@@ -89,7 +89,7 @@ class BitBakeServerCommands():
self.server = server
self.has_client = False
- def registerEventHandler(self, host, port, featureset = []):
+ def registerEventHandler(self, host, port):
"""
Register a remote UI Event Handler
"""
@@ -99,13 +99,6 @@ class BitBakeServerCommands():
if (self.cooker.state in [bb.cooker.state.parsing, bb.cooker.state.running]):
return None
- original_featureset = list(self.cooker.featureset)
- for f in featureset:
- self.cooker.featureset.setFeature(f)
-
- if (original_featureset != list(self.cooker.featureset)):
- self.cooker.reset()
-
self.event_handle = bb.event.register_UIHhandler(s)
return self.event_handle
@@ -293,9 +286,15 @@ class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection):
return None
self.transport.set_connection_token(token)
- self.events = uievent.BBUIEventQueue(self.connection, self.clientinfo, self.featureset)
+ self.events = uievent.BBUIEventQueue(self.connection, self.clientinfo)
for event in bb.event.ui_queue:
self.events.queue_event(event)
+
+ _, error = self.connection.runCommand(["setFeatures", self.featureset])
+ if error:
+ logger.error("Unable to set the cooker to the correct featureset: %s" % error)
+ raise BaseException(error)
+
return self
def removeClient(self):
diff --git a/bitbake/lib/bb/ui/uievent.py b/bitbake/lib/bb/ui/uievent.py
index 2133b44..98658f6 100644
--- a/bitbake/lib/bb/ui/uievent.py
+++ b/bitbake/lib/bb/ui/uievent.py
@@ -28,7 +28,7 @@ import socket, threading, pickle
from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
class BBUIEventQueue:
- def __init__(self, BBServer, clientinfo=("localhost, 0"), featureset=[]):
+ def __init__(self, BBServer, clientinfo=("localhost, 0")):
self.eventQueue = []
self.eventQueueLock = threading.Lock()
@@ -44,7 +44,7 @@ class BBUIEventQueue:
server.register_function( self.send_event, "event.sendpickle" )
server.socket.settimeout(1)
- self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port, featureset)
+ self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port)
if (self.EventHandle == None):
bb.fatal("Could not register UI event handler")
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2014-03-28 17:06 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-28 17:06 [PATCH] server/xmlrpc: Simlify featureset handling Richard Purdie
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.