You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by no...@apache.org on 2020/12/29 12:42:14 UTC
[buildstream] 07/08: cli.py: Ensure that both 'weak' and 'strong'
artifacts are deleted
This is an automated email from the ASF dual-hosted git repository.
not-in-ldap pushed a commit to branch jennis/new_artifact_subcommands
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 0bdb5c111340713e88c97dc5ba29bca63bb502a3
Author: James Ennis <ja...@codethink.com>
AuthorDate: Fri Jan 11 17:24:07 2019 +0000
cli.py: Ensure that both 'weak' and 'strong' artifacts are deleted
---
buildstream/_frontend/cli.py | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/buildstream/_frontend/cli.py b/buildstream/_frontend/cli.py
index 828ea0a..6002547 100644
--- a/buildstream/_frontend/cli.py
+++ b/buildstream/_frontend/cli.py
@@ -7,6 +7,7 @@ from tempfile import TemporaryDirectory
import click
from .. import _yaml
+from ..types import _KeyStrength
from .._exceptions import BstError, LoadError, AppError
from .._versions import BST_FORMAT_VERSION
from .complete import main_bashcomplete, complete_path, CompleteUnhandled
@@ -1105,18 +1106,20 @@ def artifact_delete(app, artifacts):
if elements:
elements = app.stream.load_selection(elements, selection=PipelineSelection.NONE)
for element in elements:
- cache_key = element._get_cache_key()
- ref = cache.get_artifact_fullname(element, cache_key)
- if cache.contains(element, cache_key):
- cache.remove(ref, defer_prune=True)
- click.echo("Removed {}.".format(ref))
- else:
- # If the ref is not present when we try to delete it, we should
- # not fail but just continue to delete. The pruning will take care
- # of any unreachable objects.
- click.echo("WARNING: {}, not found in local cache - no delete required"
- .format(ref), err=True)
- continue
+ cache_keys = set([element._get_cache_key(),
+ element._get_cache_key(strength=_KeyStrength.WEAK)])
+ for cache_key in cache_keys:
+ ref = cache.get_artifact_fullname(element, cache_key)
+ if cache.contains(element, cache_key):
+ cache.remove(ref, defer_prune=True)
+ click.echo("Removed {}.".format(ref))
+ else:
+ # If the ref is not present when we try to delete it, we should
+ # not fail but just continue to delete. The pruning will take care
+ # of any unreachable objects.
+ click.echo("WARNING: {}, not found in local cache - no delete required"
+ .format(ref), err=True)
+ continue
if artifacts:
for ref in artifacts: