From patchwork Wed Jan 11 03:03:24 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel,5/8] bitbake: add -B option to bind with interface Date: Wed, 11 Jan 2012 03:03:24 -0000 From: Dongxiao Xu X-Patchwork-Id: 19025 Message-Id: <2b70816adeae4c278747d52654f3184f5e5a15a3.1326249301.git.dongxiao.xu@intel.com> To: bitbake-devel@lists.openembedded.org When start bitbake as a server only process, we need to assign certain interface to it. Signed-off-by: Dongxiao Xu --- bin/bitbake | 15 ++++++++++----- lib/bb/server/xmlrpc.py | 6 +++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/bin/bitbake b/bin/bitbake index c2e6822..6e661ce 100755 --- a/bin/bitbake +++ b/bin/bitbake @@ -168,6 +168,8 @@ Default BBFILES are the .bb files in the current directory.""") parser.add_option("", "--server-only", help = "Run bitbake without UI, the frontend can connect with bitbake server itself", action = "store_true", dest = "server_only", default = False) + parser.add_option("-B", "--bind", help = "The name/address for the bitbake server to bind to", + action = "store", dest = "bind", default = False) options, args = parser.parse_args(sys.argv) configuration = BBConfiguration(options) @@ -189,9 +191,6 @@ Default BBFILES are the .bb files in the current directory.""") sys.exit("FATAL: Invalid server type '%s' specified.\n" "Valid interfaces: xmlrpc, process [default], none." % servertype) - if configuration.server_only and configuration.servertype != "xmlrpc": - sys.exit("FATAL: If '--server-only' is defined, we must set the servertype as 'xmlrpc'.\n") - # 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") @@ -211,9 +210,15 @@ Default BBFILES are the .bb files in the current directory.""") # of the UIs (e.g. for DISPLAY, etc.) bb.utils.clean_environment() - server = server.BitBakeServer() + if configuration.server_only: + if configuration.servertype != "xmlrpc": + sys.exit("FATAL: If '--server-only' is defined, we must set the servertype as 'xmlrpc'.\n") + server = server.BitBakeServer() + server.initServer((configuration.bind, 0)) + else: + server = server.BitBakeServer() + server.initServer() - server.initServer() idle = server.getServerIdleCB() cooker = bb.cooker.BBCooker(configuration, idle, initialenv) diff --git a/lib/bb/server/xmlrpc.py b/lib/bb/server/xmlrpc.py index b5980c6..c53cee4 100644 --- a/lib/bb/server/xmlrpc.py +++ b/lib/bb/server/xmlrpc.py @@ -163,7 +163,7 @@ class BitBakeXMLRPCServer(SimpleXMLRPCServer): # remove this when you're done with debugging # allow_reuse_address = True - def __init__(self, interface = ("localhost", 0)): + def __init__(self, interface): """ Constructor """ @@ -267,8 +267,8 @@ class BitBakeServerConnection(): pass class BitBakeServer(object): - def initServer(self): - self.server = BitBakeXMLRPCServer() + def initServer(self, interface = ("localhost", 0)): + self.server = BitBakeXMLRPCServer(interface) def addcooker(self, cooker): self.cooker = cooker