This adds methods to the local artifact cache to inspect its contents
and delete artifacts by cache key.
Policy for deletion is left to the gc plugin.
Staging areas of failed builds are removed first from --tempdir, and
then removes all extracted chunks if there is still not enough space.
Artifacts are removed from the cache, oldest first, until there are
no longer any chunks older than --cachedir-artifact-max-age.
It will finish deleting when there is enough space.
I have tested this with a tmpfs, a script to generate random artifacts,
and touch. A proper black-box test would be difficult to implement, and
would require root, or user namespace support.
Richard Maw (5):
util: split out space unify logic
lac_tests: set cache key
LAC: implement contents listing and removal by key
lac_tests: Cover list and delete
plugins: `morph gc` command via plugin
morphlib/localartifactcache.py | 28 ++++++++
morphlib/localartifactcache_tests.py | 36 +++++++++-
morphlib/plugins/gc_plugin.py | 121 ++++++++++++++++++++++++++++++++++
morphlib/util.py | 25 +++++--
without-test-modules | 1 +
5 files changed, 204 insertions(+), 7 deletions(-)
create mode 100644 morphlib/plugins/gc_plugin.py
This patch adds gstreamer-plugins-base to the Qt4, Qt5 and Enlightenment strata
-bash-4.2# morph branch help
ERROR: morph branch needs name of branch as parameter
-bash-4.2# morph edit help
ERROR: morph edit must either get a system and a stratum or a system, a
stratum and a chunk as arguments
Why doesn't morph just give usage messages in the same format as 'morph
help' gives you?
Usage: morph [options] branch REPO NEW [OLD]
Usage: morph [options] edit SYSTEM STRATUM [CHUNK]
This is entirely corrections, where we may want to also change the scope
of the README.
Richard Maw (8):
re-brand ourselves as an appliance Linux solution
Update build instructions
Rewrite morphologies in YAML
List more build systems.
Remove disk-size field from manual.
Augment instructions for running morph's tests
Update build environment description
README | 188 +++++++++++++++++++++++++++++-----------------------------------
1 file changed, 85 insertions(+), 103 deletions(-)
Add a wrapper function around app.runcmd() to temporarily turn off the
Don't write 'git config' messages to the console in verbose mode from
We discussed this patch earlier on IRC:
Richard Maw: "might I also suggest that instead of wrapping a function
and changing the global settings, add a parameter to runcmd that is
checked before the self.status is printed"
Richard Dale: "i thought about that, but i thought the way i've done it
is less intrusive"