Patchwork [bitbake-devel] bitbake/cookerdata: Explicitly specify cooker configuration options

login
register
mail settings
Submitter Richard Purdie
Date May 20, 2013, 10:01 p.m.
Message ID <1369087308.11013.2.camel@ted>
Download mbox | patch
Permalink /patch/50183/
State New
Headers show

Comments

Richard Purdie - May 20, 2013, 10:01 p.m.
As the code stands today its hard to know which configuration variables
are used by which parts of the system. Some are used by the UIs, some
by bin/bitbake itself, some by cooker.

This patch changes the configuration to just contain the variables cooker
uses, and changes bin/bitbake to access the variables it needs directly
which hopefully lets us start to untangle this mess.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---

Patch

diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake
index c87e5b3..ac35b94 100755
--- a/bitbake/bin/bitbake
+++ b/bitbake/bin/bitbake
@@ -193,8 +193,8 @@  def main():
 
     # Server type can be xmlrpc, process or none currently, if nothing is specified,
     # the default server is process
-    if configuration.servertype:
-        server_type = configuration.servertype
+    if configParams.servertype:
+        server_type = configParams.servertype
     else:
         server_type = 'process'
 
@@ -205,13 +205,13 @@  def main():
         sys.exit("FATAL: Invalid server type '%s' specified.\n"
                  "Valid interfaces: xmlrpc, process [default], none." % servertype)
 
-    if configuration.server_only:
-        if configuration.servertype != "xmlrpc":
+    if configParams.server_only:
+        if configParams.servertype != "xmlrpc":
             sys.exit("FATAL: If '--server-only' is defined, we must set the servertype as 'xmlrpc'.\n")
-        if not configuration.bind:
+        if not configParams.bind:
             sys.exit("FATAL: The '--server-only' option requires a name/address to bind to with the -B option.\n")
 
-    if configuration.bind and configuration.servertype != "xmlrpc":
+    if configParams.bind and configParams.servertype != "xmlrpc":
         sys.exit("FATAL: If '-B' or '--bind' is defined, we must set the servertype as 'xmlrpc'.\n")
 
     if "BBDEBUG" in os.environ:
@@ -219,7 +219,7 @@  def main():
         if level > configuration.debug:
             configuration.debug = level
 
-    bb.msg.init_msgconfig(configuration.verbose, configuration.debug,
+    bb.msg.init_msgconfig(configParams.verbose, configuration.debug,
                          configuration.debug_domains)
 
     # Ensure logging messages get sent to the UI as events
@@ -230,8 +230,8 @@  def main():
     cleanedvars = bb.utils.clean_environment()
 
     server = server.BitBakeServer()
-    if configuration.bind:
-        server.initServer((configuration.bind, 0))
+    if configParams.bind:
+        server.initServer((configParams.bind, 0))
     else:
         server.initServer()
 
@@ -262,7 +262,7 @@  def main():
 
     logger.removeHandler(handler)
 
-    if not configuration.server_only:
+    if not configParams.server_only:
         # Setup a connection to the server (cooker)
         server_connection = server.establishConnection()
 
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py
index 0b436b3..70e22b4 100644
--- a/bitbake/lib/bb/cookerdata.py
+++ b/bitbake/lib/bb/cookerdata.py
@@ -117,11 +117,20 @@  class CookerConfiguration(object):
         self.postfile = []
         self.debug = 0
         self.cmd = None
+        self.abort = True
+        self.force = False
+        self.ui = None
+        self.profile = False
+        self.nosetscene = False
+        self.invalidate_stamp = False
+        self.dump_signatures = False
+        self.dry_run = False
 
     def setConfigParameters(self, parameters):
         self.params = parameters
-        for key, val in parameters.options.__dict__.items():
-            setattr(self, key, val)
+        for key in self.__dict__.keys():
+            if key in parameters.options.__dict__:
+                setattr(self, key, parameters.options.__dict__[key])
 
     def setServerRegIdleCallback(self, srcb):
         self.server_register_idlecallback = srcb