Patchwork [1/1] Image Creator: Make bitbake servertype configurable

login
register
mail settings
Submitter Liping Ke
Date April 27, 2011, 7:53 a.m.
Message ID <62bdbb0395a252561a1b9779633b29403b049304.1303890720.git.liping.ke@intel.com>
Download mbox | patch
Permalink /patch/2999/
State New, archived
Headers show

Comments

Liping Ke - April 27, 2011, 7:53 a.m.
From: Liping Ke <liping.ke@intel.com>

add -t options for configuring bitbake server (xmlrpc, none)

Signed-off-by: Liping Ke <liping.ke@intel.com>
---
 bitbake/bin/bitbake |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)
Joshua Lock - April 27, 2011, 6:20 p.m.
On Wed, 2011-04-27 at 15:53 +0800, Liping Ke wrote:
> From: Liping Ke <liping.ke@intel.com>
> 
> add -t options for configuring bitbake server (xmlrpc, none)
> 
> Signed-off-by: Liping Ke <liping.ke@intel.com>
> ---
>  bitbake/bin/bitbake |   18 +++++++++++++-----
>  1 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake
> index 6d05289..9e8d9a1 100755
> --- a/bitbake/bin/bitbake
> +++ b/bitbake/bin/bitbake
> @@ -39,8 +39,6 @@ import bb.msg
>  from bb import cooker
>  from bb import ui
>  from bb import server
> -from bb.server import none
> -#from bb.server import xmlrpc
>  
>  __version__ = "1.11.0"
>  logger = logging.getLogger("BitBake")
> @@ -71,7 +69,7 @@ def get_ui(config):
>          return getattr(module, interface).main
>      except AttributeError:
>          sys.exit("FATAL: Invalid user interface '%s' specified.\n"
> -                 "Valid interfaces: depexp, goggle, ncurses, knotty [default]." % interface)
> +                 "Valid interfaces: depexp, goggle, ncurses, hob, knotty [default]." % interface)
>  
> 
>  # Display bitbake/OE warnings via the BitBake.Warnings logger, ignoring others"""
> @@ -161,6 +159,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 user, none 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)
>  
> @@ -175,8 +176,15 @@ Default BBFILES are the .bb files in the current directory.""")
>      loghandler = event.LogHandler()
>      logger.addHandler(loghandler)
>  
> -    #server = bb.server.xmlrpc
> -    server = bb.server.none
> +    # 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 = 'none'
> +
> +    module = __import__("bb.server", fromlist = [server_type])
> +    server = getattr(module, server_type)

What if the module import fails? You'll note that the similar code to
allow selection of the UI with a switch is wrapped in a try/except.
Can we do the same here?

Thanks,
Joshua

Patch

diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake
index 6d05289..9e8d9a1 100755
--- a/bitbake/bin/bitbake
+++ b/bitbake/bin/bitbake
@@ -39,8 +39,6 @@  import bb.msg
 from bb import cooker
 from bb import ui
 from bb import server
-from bb.server import none
-#from bb.server import xmlrpc
 
 __version__ = "1.11.0"
 logger = logging.getLogger("BitBake")
@@ -71,7 +69,7 @@  def get_ui(config):
         return getattr(module, interface).main
     except AttributeError:
         sys.exit("FATAL: Invalid user interface '%s' specified.\n"
-                 "Valid interfaces: depexp, goggle, ncurses, knotty [default]." % interface)
+                 "Valid interfaces: depexp, goggle, ncurses, hob, knotty [default]." % interface)
 
 
 # Display bitbake/OE warnings via the BitBake.Warnings logger, ignoring others"""
@@ -161,6 +159,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 user, none 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)
 
@@ -175,8 +176,15 @@  Default BBFILES are the .bb files in the current directory.""")
     loghandler = event.LogHandler()
     logger.addHandler(loghandler)
 
-    #server = bb.server.xmlrpc
-    server = bb.server.none
+    # 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 = 'none'
+
+    module = __import__("bb.server", fromlist = [server_type])
+    server = getattr(module, server_type)
 
     # Save a logfile for cooker into the current working directory. When the
     # server is daemonized this logfile will be truncated.