| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
So that, should a sandbox be missing a command such as `sh`, we cache
failures to build, ensure that each sandbox which checks for the command
raises SandboxCommandError instead of SandboxError.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|
|
|
|
|
|
|
|
| |
In order to properly support caching failures to build when a sandbox
is missing a command, we need to permit SandboxCommandError to take a
reason parameter. We default that to that which it previously forced
in order to reduce the need to add a reason code to every raise.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding the element full name and display key into all element related
messages removes the need to look up the plugintable via a plugin
unique_id just to retrieve the same values for logging and widget
frontend display. Relying on plugintable state is also incompatible
if the frontend will be running in a different process, as it will
exist in multiple states.
The element full name is now displayed instead of the unique_id,
such as in the debugging widget. It is also displayed in place of
'name' (i.e including any junction prepend) to be more informative.
|
|
|
|
|
|
|
|
|
| |
We need to ensure artifact files are available locally also for elements
that don't run any commands (e.g., compose elements). It's also not
necessary to fetch file blobs after every command. This moves file blob
fetching from SandboxRemote.process_job_output() (part of Sandbox.run())
to a separate fetch_missing_blobs() method, which is invoked by
Element._cache_artifact().
|
| |
|
| |
|
|
|
|
|
|
| |
All of the errors which subclass from BstError have their first
positional argument as message, LoadError should follow this
ordering for consistency.
|
|
|
|
|
| |
This makes the 'Node' API public, and available for use directly for
plugins.
|
| |
|
|
|
|
|
|
|
|
| |
This replaces the helper method by adding a 'get_provenance' on the node
directly
- Adapt all call sites
- Delay getting provenance wherever possible without major refactor
|
|
|
|
| |
- adapt all call sites to use the new API
|
|
|
|
|
|
|
| |
Using 'Node.from_dict({})' can replace new_empty_node, and the rest
is not needed anymore.
- Adapt all call sites
|
|
|
|
|
|
|
|
|
| |
Some call places do not need calls to 'node_sanitize' anymore, therefore
removing the call entirely.
Other still use it for convenience, but that doesn't seem the right way
to do it for consistency. Those places have been replaced by calls to
'Node.strip_node_info()'.
|
|
|
|
|
|
| |
- Implement __setitem__ on 'MappingNode'
- Implement __setitem__ on 'SequenceNode'
- Adapt all call sites to use the new calling way.
|
| |
|
|
|
|
|
|
|
|
| |
This allows to get a mapping node from another 'MappingNode',
replacing 'node_get(my_mapping, key, type=dict)'
Also changes all places where 'node_get' was called like that by
the new API.
|
|
|
|
|
|
|
| |
This will fix an issue where BuildStream currently throws an exception
when running on Linux without fuse.
Fixes #1081.
|
| |
|
|
|
|
|
|
| |
Instead of having methods in Context forward calls on to the Messenger,
have folks call the Messenger directly. Remove the forwarding methods in
Context.
|
| |
|
|
This was discussed in #1008.
Fixes #1009.
|