diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-06-07 18:13:04 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-06-12 17:48:52 +0100 |
commit | c761751e259bb8e940552a28794b45887b5a72d9 (patch) | |
tree | 0504eb972355270d1ad0b9074d61bab8c99f9f7b | |
parent | 860ec42b220b7ed3f3bbe52c3546bba66644eac8 (diff) | |
download | bitbake-c761751e259bb8e940552a28794b45887b5a72d9.tar.gz |
prserv: Adapt autostart to bitbake-worker
With the change to bitbake-worker we need to ensure the workers know
how to contact the PR service, the magic 0 port and singleton is
no longer enough.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-x | bin/bitbake-worker | 1 | ||||
-rw-r--r-- | lib/bb/cooker.py | 2 | ||||
-rw-r--r-- | lib/bb/runqueue.py | 1 | ||||
-rw-r--r-- | lib/prserv/serv.py | 11 |
4 files changed, 12 insertions, 3 deletions
diff --git a/bin/bitbake-worker b/bin/bitbake-worker index 8edf8dd65..6580078af 100755 --- a/bin/bitbake-worker +++ b/bin/bitbake-worker @@ -280,6 +280,7 @@ class BitbakeWorker(object): bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"] bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"] bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"] + self.data.setVar("PRSERV_HOST", self.workerdata["prhost"]) def handle_ping(self, _): workerlog_write("Handling ping\n") diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 77273dcb2..f375a6f58 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -1177,7 +1177,7 @@ class BBCooker: # necessary from the data store. #bb.utils.empty_environment() try: - prserv.serv.auto_start(self.data) + self.prhost = prserv.serv.auto_start(self.data) except prserv.serv.PRServiceConfigError: bb.event.fire(CookerExit(), self.event_data) return diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index 577f04a6c..bd4253868 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -831,6 +831,7 @@ class RunQueue: "logdefaultverbose" : bb.msg.loggerDefaultVerbose, "logdefaultverboselogs" : bb.msg.loggerVerboseLogs, "logdefaultdomain" : bb.msg.loggerDefaultDomains, + "prhost" : self.cooker.prhost, } worker.stdin.write("<cookerconfig>" + pickle.dumps(self.cooker.configuration) + "</cookerconfig>") diff --git a/lib/prserv/serv.py b/lib/prserv/serv.py index d7ab9ee0d..7f9331d13 100644 --- a/lib/prserv/serv.py +++ b/lib/prserv/serv.py @@ -207,6 +207,9 @@ class PRServerConnection(): def importone(self, version, pkgarch, checksum, value): return self.connection.importone(version, pkgarch, checksum, value) + def getinfo(self): + return self.host, self.port + def start_daemon(dbfile, host, port, logfile): pidfile = PIDPREFIX % (host, port) try: @@ -271,7 +274,7 @@ def auto_start(d): host_params = filter(None, (d.getVar('PRSERV_HOST', True) or '').split(':')) if not host_params: - return True + return None if len(host_params) != 2: logger.critical('\n'.join(['PRSERV_HOST: incorrect format', @@ -296,7 +299,11 @@ def auto_start(d): port = int(host_params[1]) try: - return PRServerConnection(host,port).ping() + connection = PRServerConnection(host,port) + connection.ping() + realhost, realport = connection.getinfo() + return str(realhost) + ":" + str(realport) + except Exception: logger.critical("PRservice %s:%d not available" % (host, port)) raise PRServiceConfigError |