diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-04-16 15:45:06 +0100 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2022-06-16 06:39:49 -1000 |
commit | 144a1cfe8b60c677bb6ec66c242e064c7ba3ed88 (patch) | |
tree | d0309cdedf7907e6425d2d93f31db8c460622f29 | |
parent | 0784db7dd0fef6f0621ad8d74372f44e87fef950 (diff) | |
download | bitbake-contrib-144a1cfe8b60c677bb6ec66c242e064c7ba3ed88.tar.gz |
tinfoil/data_smart: Allow variable history emit() to function remotely
We can't access the emit() function of varhistory currently as the datastore parameter
isn't handled correctly, nor is the output stream. Add a custom wrapper for this
function which handles the two details correctly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ba0fa084ccd2b1ade96425d158fd31e49e42f286)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r-- | lib/bb/command.py | 12 | ||||
-rw-r--r-- | lib/bb/tinfoil.py | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/bb/command.py b/lib/bb/command.py index 98c945edb..b8429b277 100644 --- a/lib/bb/command.py +++ b/lib/bb/command.py @@ -20,6 +20,7 @@ Commands are queued in a CommandQueue from collections import OrderedDict, defaultdict +import io import bb.event import bb.cooker import bb.remotedata @@ -478,6 +479,17 @@ class CommandsSync: d = command.remotedatastores[dsindex].varhistory return getattr(d, method)(*args, **kwargs) + def dataStoreConnectorVarHistCmdEmit(self, command, params): + dsindex = params[0] + var = params[1] + oval = params[2] + val = params[3] + d = command.remotedatastores[params[4]] + + o = io.StringIO() + command.remotedatastores[dsindex].varhistory.emit(var, oval, val, o, d) + return o.getvalue() + def dataStoreConnectorIncHistCmd(self, command, params): dsindex = params[0] method = params[1] diff --git a/lib/bb/tinfoil.py b/lib/bb/tinfoil.py index 28f1e5623..8bec8cbaf 100644 --- a/lib/bb/tinfoil.py +++ b/lib/bb/tinfoil.py @@ -53,6 +53,10 @@ class TinfoilDataStoreConnectorVarHistory: def remoteCommand(self, cmd, *args, **kwargs): return self.tinfoil.run_command('dataStoreConnectorVarHistCmd', self.dsindex, cmd, args, kwargs) + def emit(self, var, oval, val, o, d): + ret = self.tinfoil.run_command('dataStoreConnectorVarHistCmdEmit', self.dsindex, var, oval, val, d.dsindex) + o.write(ret) + def __getattr__(self, name): if not hasattr(bb.data_smart.VariableHistory, name): raise AttributeError("VariableHistory has no such method %s" % name) |