fix: respect snapshot protection flag in S3 Ceph backend #75
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes a bug where protected backups were being deleted by the garbage collector due to incorrect tag handling.
Problem
.Protectedfield inSnapshotwas previously set usingobject.UserTags["protected"].ListObjects() with metadatadoes not return actual S3 object tags on many backends (e.g. Ceph) - see related issue - garbagecollector fails: object has no csum metadata flag set #64Protectedremained unset on Ceph S3, and protected backups were not respected or preserved.Fix
Snapshot.ReadTags()immediately after creating each snapshot entry inListSnapshots().protected=trueis present onindex.json.blob,.Protectedis now set correctly.Impact
To reproduce
Activate pmoxs3backuproxy on Ceph S3 backend and try to change backup protection status.

Before the fix - chaning protection status does not reflect
After the patch - chaing protection status does reflect