(feature) Require review before incomplete cleanup
Require incomplete snapshots to be marked reviewed before the cleanup action can delete them, and show review state in the retention plan UI. Keep cleanup confirmation counts scoped to reviewed incomplete snapshots and add coverage for blocked, reviewed, and deletion flows.
This commit is contained in:
@@ -933,6 +933,8 @@ def host_retention_plan(request, host: str):
|
||||
scheduled_prune_limit = schedule.prune_max_delete if schedule and schedule.prune else None
|
||||
delete_count = len(plan["delete"])
|
||||
incomplete_count = len(plan["incomplete"])
|
||||
incomplete_reviewed_count = int(plan.get("incomplete_reviewed_count") or 0)
|
||||
incomplete_unreviewed_count = int(plan.get("incomplete_unreviewed_count") or 0)
|
||||
context = {
|
||||
"host": host_config,
|
||||
"kind": kind,
|
||||
@@ -941,6 +943,8 @@ def host_retention_plan(request, host: str):
|
||||
"schedule": schedule,
|
||||
"scheduled_prune_limit": scheduled_prune_limit,
|
||||
"scheduled_prune_exceeded": scheduled_prune_limit is not None and delete_count > scheduled_prune_limit,
|
||||
"incomplete_reviewed_count": incomplete_reviewed_count,
|
||||
"incomplete_unreviewed_count": incomplete_unreviewed_count,
|
||||
"apply_form": RetentionApplyForm(
|
||||
host_name=host_config.host,
|
||||
expected_delete_count=delete_count,
|
||||
@@ -953,10 +957,10 @@ def host_retention_plan(request, host: str):
|
||||
),
|
||||
"incomplete_cleanup_form": IncompleteCleanupForm(
|
||||
host_name=host_config.host,
|
||||
expected_delete_count=incomplete_count,
|
||||
expected_delete_count=incomplete_reviewed_count,
|
||||
initial={
|
||||
"max_delete": incomplete_count,
|
||||
"confirm_delete_count": incomplete_count,
|
||||
"max_delete": incomplete_reviewed_count,
|
||||
"confirm_delete_count": incomplete_reviewed_count,
|
||||
},
|
||||
),
|
||||
}
|
||||
@@ -1027,7 +1031,7 @@ def cleanup_host_incomplete_snapshots(request, host: str):
|
||||
messages.error(request, str(exc))
|
||||
return redirect("host_retention_plan", host=host_config.host)
|
||||
|
||||
incomplete_count = len(plan.get("incomplete") or [])
|
||||
incomplete_count = int(plan.get("incomplete_reviewed_count") or 0)
|
||||
form = IncompleteCleanupForm(
|
||||
request.POST,
|
||||
host_name=host_config.host,
|
||||
|
||||
Reference in New Issue
Block a user