bitbake: 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. (Bitbake rev: c761751e259bb8e940552a28794b45887b5a72d9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
efb877bcdb
commit
5ebd9bfff1
|
@ -280,6 +280,7 @@ class BitbakeWorker(object):
|
||||||
bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"]
|
bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"]
|
||||||
bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"]
|
bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"]
|
||||||
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
|
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
|
||||||
|
self.data.setVar("PRSERV_HOST", self.workerdata["prhost"])
|
||||||
|
|
||||||
def handle_ping(self, _):
|
def handle_ping(self, _):
|
||||||
workerlog_write("Handling ping\n")
|
workerlog_write("Handling ping\n")
|
||||||
|
|
|
@ -1177,7 +1177,7 @@ class BBCooker:
|
||||||
# necessary from the data store.
|
# necessary from the data store.
|
||||||
#bb.utils.empty_environment()
|
#bb.utils.empty_environment()
|
||||||
try:
|
try:
|
||||||
prserv.serv.auto_start(self.data)
|
self.prhost = prserv.serv.auto_start(self.data)
|
||||||
except prserv.serv.PRServiceConfigError:
|
except prserv.serv.PRServiceConfigError:
|
||||||
bb.event.fire(CookerExit(), self.event_data)
|
bb.event.fire(CookerExit(), self.event_data)
|
||||||
return
|
return
|
||||||
|
|
|
@ -831,6 +831,7 @@ class RunQueue:
|
||||||
"logdefaultverbose" : bb.msg.loggerDefaultVerbose,
|
"logdefaultverbose" : bb.msg.loggerDefaultVerbose,
|
||||||
"logdefaultverboselogs" : bb.msg.loggerVerboseLogs,
|
"logdefaultverboselogs" : bb.msg.loggerVerboseLogs,
|
||||||
"logdefaultdomain" : bb.msg.loggerDefaultDomains,
|
"logdefaultdomain" : bb.msg.loggerDefaultDomains,
|
||||||
|
"prhost" : self.cooker.prhost,
|
||||||
}
|
}
|
||||||
|
|
||||||
worker.stdin.write("<cookerconfig>" + pickle.dumps(self.cooker.configuration) + "</cookerconfig>")
|
worker.stdin.write("<cookerconfig>" + pickle.dumps(self.cooker.configuration) + "</cookerconfig>")
|
||||||
|
|
|
@ -207,6 +207,9 @@ class PRServerConnection():
|
||||||
def importone(self, version, pkgarch, checksum, value):
|
def importone(self, version, pkgarch, checksum, value):
|
||||||
return self.connection.importone(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):
|
def start_daemon(dbfile, host, port, logfile):
|
||||||
pidfile = PIDPREFIX % (host, port)
|
pidfile = PIDPREFIX % (host, port)
|
||||||
try:
|
try:
|
||||||
|
@ -271,7 +274,7 @@ def auto_start(d):
|
||||||
|
|
||||||
host_params = filter(None, (d.getVar('PRSERV_HOST', True) or '').split(':'))
|
host_params = filter(None, (d.getVar('PRSERV_HOST', True) or '').split(':'))
|
||||||
if not host_params:
|
if not host_params:
|
||||||
return True
|
return None
|
||||||
|
|
||||||
if len(host_params) != 2:
|
if len(host_params) != 2:
|
||||||
logger.critical('\n'.join(['PRSERV_HOST: incorrect format',
|
logger.critical('\n'.join(['PRSERV_HOST: incorrect format',
|
||||||
|
@ -296,7 +299,11 @@ def auto_start(d):
|
||||||
port = int(host_params[1])
|
port = int(host_params[1])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return PRServerConnection(host,port).ping()
|
connection = PRServerConnection(host,port)
|
||||||
|
connection.ping()
|
||||||
|
realhost, realport = connection.getinfo()
|
||||||
|
return str(realhost) + ":" + str(realport)
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.critical("PRservice %s:%d not available" % (host, port))
|
logger.critical("PRservice %s:%d not available" % (host, port))
|
||||||
raise PRServiceConfigError
|
raise PRServiceConfigError
|
||||||
|
|
Loading…
Reference in New Issue