diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-03-28 17:06:43 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-03-30 10:10:37 +0100 |
commit | fc49a6f00fc1ae3430ab3eb9615472efff0a7fce (patch) | |
tree | 974ebece6994013163d06bef990b9565e142b1ed | |
parent | adba3edca22b46235bbeb02bbff1eeaa09bdeedf (diff) | |
download | ast2050-yocto-poky-fc49a6f00fc1ae3430ab3eb9615472efff0a7fce.zip ast2050-yocto-poky-fc49a6f00fc1ae3430ab3eb9615472efff0a7fce.tar.gz |
bitbake: server/xmlrpc: Simlify featureset handling
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.
(Bitbake rev: c3b5cc5691291c74dd315c4439c80e0e4b2b5c1d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/server/xmlrpc.py | 17 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/uievent.py | 4 |
2 files changed, 10 insertions, 11 deletions
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") |