From a98f698fe9f38310024013e58475e6d1447ee154 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Tue, 9 Aug 2011 18:27:51 -0700 Subject: bb/command|cooker: refactor the reparseFiles logic Turn the reparseFiles logic into a command to reset the cooker's state machine and a noop which triggers a cache rebuild. The resetCooker command resets the cookers state machine such that a cache update will be triggered by any async command which requires the cache. The reparseFiles command remains as a noop async command that has the needcache property set to True so that when called it ensures the cache is built. Patch from Richard with the addition of removing the force parameter from the updateCache method. CC: Richard Purdie Signed-off-by: Joshua Lock --- lib/bb/command.py | 7 +++++++ lib/bb/cooker.py | 9 ++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/bb/command.py b/lib/bb/command.py index 893a6d907..41796f629 100644 --- a/lib/bb/command.py +++ b/lib/bb/command.py @@ -172,6 +172,13 @@ class CommandsSync: value = params[1] bb.data.setVar(varname, value, command.cooker.configuration.data) + def resetCooker(self, command, params): + """ + Reset the cooker to its initial state, thus forcing a reparse for + any async command that has the needcache property set to True + """ + command.cooker.reset() + class CommandsAsync: """ diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 47a6edd4e..197875054 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -1097,8 +1097,8 @@ class BBCooker: self.server_registration_cb(buildTargetsIdle, rq) - def updateCache(self, force=False): - if self.state == state.running and not force: + def updateCache(self): + if self.state == state.running: return if self.state in (state.shutdown, state.stop): @@ -1283,8 +1283,11 @@ class BBCooker: self.state = state.stop def reparseFiles(self): + return + + def reset(self): + self.state = state.initial self.loadConfigurationData() - self.updateCache(force=True) def server_main(cooker, func, *args): cooker.pre_serve() -- cgit 1.2.3-korg