aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2014-06-11 10:19:03 +0100
committerAlexandru DAMIAN <alexandru.damian@intel.com>2014-06-12 14:38:28 +0100
commitdb5390940c0afbcdc9fbcf1225761968ae51d4a7 (patch)
tree42813af2f140c44d91777c04cef5c7fc1c4a2fa6 /bin
parent272a4bba0804bb6b5e0d498d3453321b5ed1dc76 (diff)
downloadbitbake-db5390940c0afbcdc9fbcf1225761968ae51d4a7.tar.gz
xmlrpc: add support for token reusing
We add support to specify a connection token in the command line and in the environment variable BBTOKEN. When a client registers to a bitbake server, that client will have exclusive access to the server. The client is identified by a server-supplied token. If a client terminates, we cannot reconnect to the server as the token is lost. This patch adds the capability to specify the connection token in the command line for xmlrpc clients. This allows us to have bitbake work as an already-authenticated client with the server and resume sending commands to a server. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/bitbake8
1 files changed, 7 insertions, 1 deletions
diff --git a/bin/bitbake b/bin/bitbake
index f120baccf..b3acbe1bd 100755
--- a/bin/bitbake
+++ b/bin/bitbake
@@ -169,6 +169,9 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
parser.add_option("-t", "--servertype", help = "Choose which server to use, process or xmlrpc.",
action = "store", dest = "servertype")
+ parser.add_option("", "--token", help = "Specify the connection token to be used when connecting to a remote server.",
+ action = "store", dest = "xmlrpctoken")
+
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)
@@ -200,6 +203,9 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
options.servertype = "xmlrpc"
options.remote_server = os.environ["BBSERVER"]
+ if "BBTOKEN" in os.environ:
+ options.xmlrpctoken = os.environ["BBTOKEN"]
+
# if BBSERVER says to autodetect, let's do that
if options.remote_server:
[host, port] = options.remote_server.split(":", 2)
@@ -332,7 +338,7 @@ def main():
bb.event.ui_queue = []
else:
# we start a stub server that is actually a XMLRPClient that connects to a real server
- server = servermodule.BitBakeXMLRPCClient(configParams.observe_only)
+ server = servermodule.BitBakeXMLRPCClient(configParams.observe_only, configParams.xmlrpctoken)
server.saveConnectionDetails(configParams.remote_server)