Skip to content

Commit 137db0b

Browse files
committed
fix: report bytes_freed=0 when image_remove only untags a multi-tagged image
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
1 parent 3ea7f9d commit 137db0b

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

haproxy_agent.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1539,8 +1539,21 @@ async def docker_exapp_image_remove(request: web.Request):
15391539
try:
15401540
async with session.delete(delete_url) as resp:
15411541
if resp.status == 200:
1542-
LOGGER.info("Image '%s' removed (%d bytes freed).", image_ref, bytes_freed)
1543-
return web.json_response({"deleted": True, "bytes_freed": bytes_freed})
1542+
try:
1543+
ops = await resp.json()
1544+
except (json.JSONDecodeError, aiohttp.ContentTypeError):
1545+
ops = []
1546+
actually_deleted = isinstance(ops, list) and any(
1547+
isinstance(op, dict) and "Deleted" in op for op in ops
1548+
)
1549+
actual_bytes_freed = bytes_freed if actually_deleted else 0
1550+
LOGGER.info(
1551+
"Image '%s' removed (deleted=%s, bytes_freed=%d).",
1552+
image_ref,
1553+
actually_deleted,
1554+
actual_bytes_freed,
1555+
)
1556+
return web.json_response({"deleted": True, "bytes_freed": actual_bytes_freed})
15441557
if resp.status == 404:
15451558
LOGGER.info("Image '%s' already gone at delete time.", image_ref)
15461559
return web.json_response({"deleted": True, "bytes_freed": 0, "reason": "not_found"})

0 commit comments

Comments
 (0)