Hob: Cleanup for hobeventhandler.py

(Bitbake rev: 8bd6d8bb5e5ca0ca0ea2e2d31ffdc6df1aca16a2)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Dongxiao Xu 2012-03-23 14:30:43 +08:00 committed by Richard Purdie
parent 09b16096f6
commit a18a724769
3 changed files with 34 additions and 47 deletions

View File

@ -409,7 +409,7 @@ class Builder(gtk.Window):
self.parameters.all_layers = layers self.parameters.all_layers = layers
def handler_command_succeeded_cb(self, handler, initcmd): def handler_command_succeeded_cb(self, handler, initcmd):
if initcmd == self.handler.LAYERS_REFRESH: if initcmd == self.handler.GENERATE_CONFIGURATION:
self.image_configuration_page.switch_machine_combo() self.image_configuration_page.switch_machine_combo()
elif initcmd in [self.handler.GENERATE_RECIPES, elif initcmd in [self.handler.GENERATE_RECIPES,
self.handler.GENERATE_PACKAGES, self.handler.GENERATE_PACKAGES,

View File

@ -62,8 +62,8 @@ class HobHandler(gobject.GObject):
(gobject.TYPE_PYOBJECT,)), (gobject.TYPE_PYOBJECT,)),
} }
(CFG_AVAIL_LAYERS, CFG_PATH_LAYERS, CFG_FILES_DISTRO, CFG_FILES_MACH, CFG_FILES_SDKMACH, FILES_MATCH_CLASS, PARSE_CONFIG, GENERATE_TGTS, GENERATE_PACKAGEINFO, BUILD_TARGET_RECIPES, BUILD_TARGET_IMAGE, CMD_END) = range(12) (GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO) = range(5)
(LAYERS_REFRESH, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO) = range(5) (SUB_PATH_LAYERS, SUB_FILES_DISTRO, SUB_FILES_MACH, SUB_FILES_SDKMACH, SUB_MATCH_CLASS, SUB_PARSE_CONFIG, SUB_GNERATE_TGTS, SUB_GENERATE_PKGINFO, SUB_BUILD_RECIPES, SUB_BUILD_IMAGE) = range(10)
def __init__(self, server, recipe_model, package_model): def __init__(self, server, recipe_model, package_model):
super(HobHandler, self).__init__() super(HobHandler, self).__init__()
@ -84,21 +84,6 @@ class HobHandler(gobject.GObject):
self.error_msg = "" self.error_msg = ""
self.initcmd = None self.initcmd = None
def kick(self):
import xmlrpclib
try:
# kick the while thing off
self.commands_async.append(self.CFG_PATH_LAYERS)
self.commands_async.append(self.CFG_FILES_DISTRO)
self.commands_async.append(self.CFG_FILES_MACH)
self.commands_async.append(self.CFG_FILES_SDKMACH)
self.commands_async.append(self.FILES_MATCH_CLASS)
self.run_next_command()
return True
except xmlrpclib.Fault as x:
print("XMLRPC Fault getting commandline:\n %s" % x)
return False
def set_busy(self): def set_busy(self):
if not self.generating: if not self.generating:
self.emit("generating-data") self.emit("generating-data")
@ -122,30 +107,28 @@ class HobHandler(gobject.GObject):
self.emit("command-succeeded", self.initcmd) self.emit("command-succeeded", self.initcmd)
return return
if next_command == self.CFG_AVAIL_LAYERS: if next_command == self.SUB_PATH_LAYERS:
self.server.runCommand(["findCoreBaseFiles", "layers", "conf/layer.conf"])
elif next_command == self.CFG_PATH_LAYERS:
self.server.runCommand(["findConfigFilePath", "bblayers.conf"]) self.server.runCommand(["findConfigFilePath", "bblayers.conf"])
elif next_command == self.CFG_FILES_DISTRO: elif next_command == self.SUB_FILES_DISTRO:
self.server.runCommand(["findConfigFiles", "DISTRO"]) self.server.runCommand(["findConfigFiles", "DISTRO"])
elif next_command == self.CFG_FILES_MACH: elif next_command == self.SUB_FILES_MACH:
self.server.runCommand(["findConfigFiles", "MACHINE"]) self.server.runCommand(["findConfigFiles", "MACHINE"])
elif next_command == self.CFG_FILES_SDKMACH: elif next_command == self.SUB_FILES_SDKMACH:
self.server.runCommand(["findConfigFiles", "MACHINE-SDK"]) self.server.runCommand(["findConfigFiles", "MACHINE-SDK"])
elif next_command == self.FILES_MATCH_CLASS: elif next_command == self.SUB_MATCH_CLASS:
self.server.runCommand(["findFilesMatchingInDir", "rootfs_", "classes"]) self.server.runCommand(["findFilesMatchingInDir", "rootfs_", "classes"])
elif next_command == self.PARSE_CONFIG: elif next_command == self.SUB_PARSE_CONFIG:
self.server.runCommand(["parseConfigurationFiles", "", ""]) self.server.runCommand(["parseConfigurationFiles", "", ""])
elif next_command == self.GENERATE_TGTS: elif next_command == self.SUB_GNERATE_TGTS:
self.server.runCommand(["generateTargetsTree", "classes/image.bbclass", []]) self.server.runCommand(["generateTargetsTree", "classes/image.bbclass", []])
elif next_command == self.GENERATE_PACKAGEINFO: elif next_command == self.SUB_GENERATE_PKGINFO:
self.server.runCommand(["triggerEvent", "bb.event.RequestPackageInfo()"]) self.server.runCommand(["triggerEvent", "bb.event.RequestPackageInfo()"])
elif next_command == self.BUILD_TARGET_RECIPES: elif next_command == self.SUB_BUILD_RECIPES:
self.clear_busy() self.clear_busy()
self.building = True self.building = True
self.server.runCommand(["buildTargets", self.recipe_queue, "build"]) self.server.runCommand(["buildTargets", self.recipe_queue, "build"])
self.recipe_queue = [] self.recipe_queue = []
elif next_command == self.BUILD_TARGET_IMAGE: elif next_command == self.SUB_BUILD_IMAGE:
self.clear_busy() self.clear_busy()
self.building = True self.building = True
targets = ["hob-image"] targets = ["hob-image"]
@ -264,14 +247,10 @@ class HobHandler(gobject.GObject):
self.server.runCommand(["initCooker"]) self.server.runCommand(["initCooker"])
def refresh_layers(self, bblayers): def refresh_layers(self, bblayers):
self.server.runCommand(["initCooker"]) self.init_cooker()
self.server.runCommand(["setVariable", "BBLAYERS", " ".join(bblayers)]) self.set_bblayers(bblayers)
self.commands_async.append(self.PARSE_CONFIG) self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.CFG_FILES_DISTRO) self.generate_configuration()
self.commands_async.append(self.CFG_FILES_MACH)
self.commands_async.append(self.CFG_FILES_SDKMACH)
self.commands_async.append(self.FILES_MATCH_CLASS)
self.run_next_command(self.LAYERS_REFRESH)
def set_extra_inherit(self, bbclass): def set_extra_inherit(self, bbclass):
inherits = self.server.runCommand(["getVariable", "INHERIT"]) or "" inherits = self.server.runCommand(["getVariable", "INHERIT"]) or ""
@ -330,27 +309,35 @@ class HobHandler(gobject.GObject):
self.server.runCommand(["setVariable", key, value]) self.server.runCommand(["setVariable", key, value])
def request_package_info_async(self): def request_package_info_async(self):
self.commands_async.append(self.GENERATE_PACKAGEINFO) self.commands_async.append(self.SUB_GENERATE_PKGINFO)
self.run_next_command(self.POPULATE_PACKAGEINFO) self.run_next_command(self.POPULATE_PACKAGEINFO)
def generate_configuration(self):
self.commands_async.append(self.SUB_PATH_LAYERS)
self.commands_async.append(self.SUB_FILES_DISTRO)
self.commands_async.append(self.SUB_FILES_MACH)
self.commands_async.append(self.SUB_FILES_SDKMACH)
self.commands_async.append(self.SUB_MATCH_CLASS)
self.run_next_command(self.GENERATE_CONFIGURATION)
def generate_recipes(self): def generate_recipes(self):
self.commands_async.append(self.PARSE_CONFIG) self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.GENERATE_TGTS) self.commands_async.append(self.SUB_GNERATE_TGTS)
self.run_next_command(self.GENERATE_RECIPES) self.run_next_command(self.GENERATE_RECIPES)
def generate_packages(self, tgts): def generate_packages(self, tgts):
targets = [] targets = []
targets.extend(tgts) targets.extend(tgts)
self.recipe_queue = targets self.recipe_queue = targets
self.commands_async.append(self.PARSE_CONFIG) self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.BUILD_TARGET_RECIPES) self.commands_async.append(self.SUB_BUILD_RECIPES)
self.run_next_command(self.GENERATE_PACKAGES) self.run_next_command(self.GENERATE_PACKAGES)
def generate_image(self, tgts, toolchain_build=False): def generate_image(self, tgts, toolchain_build=False):
self.package_queue = tgts self.package_queue = tgts
self.toolchain_build = toolchain_build self.toolchain_build = toolchain_build
self.commands_async.append(self.PARSE_CONFIG) self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.BUILD_TARGET_IMAGE) self.commands_async.append(self.SUB_BUILD_IMAGE)
self.run_next_command(self.GENERATE_IMAGE) self.run_next_command(self.GENERATE_IMAGE)
def build_failed_async(self): def build_failed_async(self):

View File

@ -56,10 +56,10 @@ def main (server = None, eventHandler = None):
package_model = PackageListModel() package_model = PackageListModel()
hobHandler = HobHandler(server, recipe_model, package_model) hobHandler = HobHandler(server, recipe_model, package_model)
if hobHandler.kick() == False:
return 1
builder = Builder(hobHandler, recipe_model, package_model) builder = Builder(hobHandler, recipe_model, package_model)
hobHandler.generate_configuration()
# This timeout function regularly probes the event queue to find out if we # This timeout function regularly probes the event queue to find out if we
# have any messages waiting for us. # have any messages waiting for us.
gobject.timeout_add(10, event_handle_idle_func, eventHandler, hobHandler) gobject.timeout_add(10, event_handle_idle_func, eventHandler, hobHandler)