[bitbake-devel] [PATCH 02/10] bitbake: Make bitbake server type configurable.

Joshua Lock josh at linux.intel.com
Fri Jul 1 06:02:48 UTC 2011


From: Liping Ke <liping.ke at intel.com>

Add -t options in bitbake for configuring server type.

Signed-off-by: Liping Ke <liping.ke at intel.com>
Signed-off-by: Joshua Lock <josh at linux.intel.com>
---
 bin/bitbake |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/bin/bitbake b/bin/bitbake
index 5835ffc..d577e05 100755
--- a/bin/bitbake
+++ b/bin/bitbake
@@ -39,15 +39,11 @@ import bb.msg
 from bb import cooker
 from bb import ui
 from bb import server
-#from bb.server import none
-from bb.server import process
-#from bb.server import xmlrpc
 
 __version__ = "1.13.2"
 logger = logging.getLogger("BitBake")
 
 
-
 class BBConfiguration(object):
     """
     Manages build options and configurations for one run
@@ -160,6 +156,9 @@ Default BBFILES are the .bb files in the current directory.""")
     parser.add_option("-u", "--ui", help = "userinterface to use",
                action = "store", dest = "ui")
 
+    parser.add_option("-t", "--servertype", help = "Choose which server to use, none, process or xmlrpc",
+               action = "store", dest = "servertype")
+
     parser.add_option("", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not",
                action = "store_true", dest = "revisions_changed", default = False)
 
@@ -170,6 +169,20 @@ Default BBFILES are the .bb files in the current directory.""")
 
     ui_main = get_ui(configuration)
 
+    # Server type could be xmlrpc or none currently, if nothing is specified,
+    # default server would be none
+    if configuration.servertype:
+        server_type = configuration.servertype
+    else:
+        server_type = 'process'
+
+    try:
+        module = __import__("bb.server", fromlist = [server_type])
+        server = getattr(module, server_type)
+    except AttributeError:
+        sys.exit("FATAL: Invalid server type '%s' specified.\n"
+                 "Valid interfaces: xmlrpc, process, none [default]." % servertype)
+
     # Save a logfile for cooker into the current working directory. When the
     # server is daemonized this logfile will be truncated.
     cooker_logfile = os.path.join(os.getcwd(), "cooker.log")
@@ -186,9 +199,7 @@ Default BBFILES are the .bb files in the current directory.""")
     # of the UIs (e.g. for DISPLAY, etc.)
     bb.utils.clean_environment()
 
-    #server = bb.server.none.BitBakeServer()    
-    server = bb.server.process.BitBakeServer()
-    #server = bb.server.xmlrpc.BitBakeServer()
+    server = server.BitBakeServer()
 
     server.initServer()
     idle = server.getServerIdleCB()
-- 
1.7.5.4





More information about the bitbake-devel mailing list