bitbake: tinfoil: When sending commands we need to process events

The server may be displaying useful information for the user through log
messages so we should display anything that has been sent. Its either this
or expecting every UI to implement this code around every command call
which isn't good API.

[YOCTO #14054]

(Bitbake rev: f20da5247dea524e837c5b6fdeccc79cbafedf90)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 64ae9d7e2fad804dd9e12706c6d76b4b22f9586b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-10-09 17:40:44 +01:00
parent b409a428c1
commit 1db38c5a18

View File

@@ -465,7 +465,16 @@ class Tinfoil:
commandline = [command]
if params:
commandline.extend(params)
result = self.server_connection.connection.runCommand(commandline)
try:
result = self.server_connection.connection.runCommand(commandline)
finally:
while True:
event = self.wait_event()
if not event:
break
if isinstance(event, logging.LogRecord):
if event.taskpid == 0 or event.levelno > logging.INFO:
self.logger.handle(event)
if result[1]:
raise TinfoilCommandFailed(result[1])
return result[0]