summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/tinfoil.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/tinfoil.py')
-rw-r--r--bitbake/lib/bb/tinfoil.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py
index 8c9b6b8ca5..8bec8cbaf6 100644
--- a/bitbake/lib/bb/tinfoil.py
+++ b/bitbake/lib/bb/tinfoil.py
@@ -53,6 +53,10 @@ class TinfoilDataStoreConnectorVarHistory:
53 def remoteCommand(self, cmd, *args, **kwargs): 53 def remoteCommand(self, cmd, *args, **kwargs):
54 return self.tinfoil.run_command('dataStoreConnectorVarHistCmd', self.dsindex, cmd, args, kwargs) 54 return self.tinfoil.run_command('dataStoreConnectorVarHistCmd', self.dsindex, cmd, args, kwargs)
55 55
56 def emit(self, var, oval, val, o, d):
57 ret = self.tinfoil.run_command('dataStoreConnectorVarHistCmdEmit', self.dsindex, var, oval, val, d.dsindex)
58 o.write(ret)
59
56 def __getattr__(self, name): 60 def __getattr__(self, name):
57 if not hasattr(bb.data_smart.VariableHistory, name): 61 if not hasattr(bb.data_smart.VariableHistory, name):
58 raise AttributeError("VariableHistory has no such method %s" % name) 62 raise AttributeError("VariableHistory has no such method %s" % name)
@@ -448,7 +452,7 @@ class Tinfoil:
448 self.run_actions(config_params) 452 self.run_actions(config_params)
449 self.recipes_parsed = True 453 self.recipes_parsed = True
450 454
451 def run_command(self, command, *params): 455 def run_command(self, command, *params, handle_events=True):
452 """ 456 """
453 Run a command on the server (as implemented in bb.command). 457 Run a command on the server (as implemented in bb.command).
454 Note that there are two types of command - synchronous and 458 Note that there are two types of command - synchronous and
@@ -465,7 +469,16 @@ class Tinfoil:
465 commandline = [command] 469 commandline = [command]
466 if params: 470 if params:
467 commandline.extend(params) 471 commandline.extend(params)
468 result = self.server_connection.connection.runCommand(commandline) 472 try:
473 result = self.server_connection.connection.runCommand(commandline)
474 finally:
475 while handle_events:
476 event = self.wait_event()
477 if not event:
478 break
479 if isinstance(event, logging.LogRecord):
480 if event.taskpid == 0 or event.levelno > logging.INFO:
481 self.logger.handle(event)
469 if result[1]: 482 if result[1]:
470 raise TinfoilCommandFailed(result[1]) 483 raise TinfoilCommandFailed(result[1])
471 return result[0] 484 return result[0]