From: Alexandru DAMIAN Date: Wed, 18 Sep 2013 12:15:51 +0000 (+0100) Subject: bitbake: cooker, command: add a command to return global data X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3e094da513e1220319288806cb76ddf804772afd;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git bitbake: cooker, command: add a command to return global data Adding the 'getAllKeysWithFlags' read-only command that will return a dump of the global data state, together with specified flags for each key. The flag list is passed in as the first parameter to the command. This will be used by UI clients to get the build configuration. Signed-off-by: Alexandru DAMIAN Signed-off-by: Richard Purdie --- diff --git a/lib/bb/command.py b/lib/bb/command.py index f1abaf70d2d..21a6de0f62c 100644 --- a/lib/bb/command.py +++ b/lib/bb/command.py @@ -145,6 +145,15 @@ class CommandsSync: """ command.cooker.shutdown(True) + def getAllKeysWithFlags(self, command, params): + """ + Returns a dump of the global state. Call with + variable flags to be retrieved as params. + """ + flaglist = params[0] + return command.cooker.getAllKeysWithFlags(flaglist) + getAllKeysWithFlags.readonly = True + def getVariable(self, command, params): """ Read the value of a variable from data diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index fafa5189116..ff2af69069e 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -1154,6 +1154,21 @@ class BBCooker: self.configuration.server_register_idlecallback(buildTargetsIdle, rq) + + def getAllKeysWithFlags(self, flaglist): + dump = {} + for k in self.data.keys(): + try: + v = self.data.getVar(k, True) + if not k.startswith("__") and not isinstance(v, bb.data_smart.DataSmart): + dump[k] = { 'v' : v } + for d in flaglist: + dump[k][d] = self.data.getVarFlag(k, d) + except Exception as e: + print(e) + return dump + + def generateNewImage(self, image, base_image, package_queue, timestamp, description): ''' Create a new image with a "require"/"inherit" base_image statement