Merge pull request 'feature/cache-flush-api-enhancement' (#7) from feature/cache-flush-api-enhancement into master
Reviewed-on: #7
This commit is contained in:
commit
5733d52e51
@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "artifactapi"
|
name = "artifactapi"
|
||||||
version = "2.0.4"
|
version = "2.0.5"
|
||||||
description = "Generic artifact caching system with support for various package managers"
|
description = "Generic artifact caching system with support for various package managers"
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
@ -44,7 +44,7 @@ dev = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[tool.bumpversion]
|
[tool.bumpversion]
|
||||||
current_version = "2.0.4"
|
current_version = "2.0.5"
|
||||||
commit = true
|
commit = true
|
||||||
tag = true
|
tag = true
|
||||||
message = "Bump version: {current_version} → {new_version}"
|
message = "Bump version: {current_version} → {new_version}"
|
||||||
|
|||||||
@ -116,7 +116,12 @@ def flush_cache(
|
|||||||
# Flush S3 objects if requested
|
# Flush S3 objects if requested
|
||||||
if cache_type in ["all", "files"]:
|
if cache_type in ["all", "files"]:
|
||||||
try:
|
try:
|
||||||
response = storage.client.list_objects_v2(Bucket=storage.bucket)
|
# Use prefix filtering for remote-specific deletion
|
||||||
|
list_params = {"Bucket": storage.bucket}
|
||||||
|
if remote:
|
||||||
|
list_params["Prefix"] = f"{remote}/"
|
||||||
|
|
||||||
|
response = storage.client.list_objects_v2(**list_params)
|
||||||
if 'Contents' in response:
|
if 'Contents' in response:
|
||||||
objects_to_delete = [obj['Key'] for obj in response['Contents']]
|
objects_to_delete = [obj['Key'] for obj in response['Contents']]
|
||||||
|
|
||||||
@ -128,8 +133,9 @@ def flush_cache(
|
|||||||
logger.warning(f"Failed to delete S3 object {key}: {e}")
|
logger.warning(f"Failed to delete S3 object {key}: {e}")
|
||||||
|
|
||||||
if objects_to_delete:
|
if objects_to_delete:
|
||||||
result["flushed"]["operations"].append(f"Deleted {len(objects_to_delete)} S3 objects")
|
scope = f" for remote '{remote}'" if remote else ""
|
||||||
logger.info(f"Cache flush: Deleted {len(objects_to_delete)} S3 objects")
|
result["flushed"]["operations"].append(f"Deleted {len(objects_to_delete)} S3 objects{scope}")
|
||||||
|
logger.info(f"Cache flush: Deleted {len(objects_to_delete)} S3 objects{scope}")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
result["flushed"]["operations"].append(f"S3 flush failed: {str(e)}")
|
result["flushed"]["operations"].append(f"S3 flush failed: {str(e)}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user