fix(snapshot): Include metadata column in pending_versions SELECT query

CRITICAL BUG FOUND:
- Snapshot created successfully (metadata exists in database)
- But reject_all_pending_changes() was not fetching metadata column
- Line 4151: SELECT id, version_name FROM config_versions (missing metadata!)
- Result: KeyError: 'metadata' during reject rollback

Fix:
- Added 'metadata' to SELECT query
- Line 4151: SELECT id, version_name, metadata FROM config_versions

Impact:
- Rollback will now work (metadata accessible)
- entity_snapshot will be parsed correctly
- Entities will be restored to old values on reject

Log evidence:
- SNAPSHOT: Created successfully 
- REJECT ROLLBACK ERROR: KeyError 'metadata' 
- Root cause: Missing column in SELECT query
This commit is contained in:
taylanbakircioglu
2025-11-13 21:11:04 +03:00
parent f9ca700352
commit 285698ccfd
+2 -2
View File
@@ -4200,9 +4200,9 @@ async def reject_all_pending_changes(cluster_id: int, authorization: str = Heade
await close_database_connection(conn)
raise HTTPException(status_code=404, detail=f"Cluster {cluster_id} not found")
# Get all pending config versions for this cluster
# Get all pending config versions for this cluster (CRITICAL: Include metadata for rollback!)
pending_versions = await conn.fetch("""
SELECT id, version_name FROM config_versions
SELECT id, version_name, metadata FROM config_versions
WHERE cluster_id = $1 AND status = 'PENDING'
""", cluster_id)