prserv: Adapt autostart to bitbake-worker
PATCH 1/1 prserv: Adapt autostart to bitbake-worker
Signed-off-by Richard Purdie <[email protected]>
---
bitbake/bin/bitbake-worker +1 -0
@@ -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")
bitbake/lib/bb/cooker.py +1 -1
@@ -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
bitbake/lib/bb/runqueue.py +1 -0
@@ -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>")
bitbake/lib/prserv/serv.py +9 -2
@@ -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