unistore: fix delete and db closed in kv store (#107918)

* fix delete and db closed

* fix tests
This commit is contained in:
Georges Chaudy
2025-07-10 11:34:36 +02:00
committed by GitHub
parent befc947fee
commit b6dd08da2f
6 changed files with 66 additions and 6 deletions
+27 -3
View File
@@ -1106,7 +1106,7 @@ func writeEvent(ctx context.Context, store resource.StorageBackend, name string,
}
meta.SetFolder(options.Folder)
return store.WriteEvent(ctx, resource.WriteEvent{
event := resource.WriteEvent{
Type: action,
Value: options.Value,
GUID: uuid.New().String(),
@@ -1116,8 +1116,32 @@ func writeEvent(ctx context.Context, store resource.StorageBackend, name string,
Resource: options.Resource,
Name: name,
},
Object: meta,
})
}
switch action {
case resourcepb.WatchEvent_DELETED:
event.ObjectOld = meta
obj, err := utils.MetaAccessor(res)
if err != nil {
return 0, err
}
now := metav1.Now()
obj.SetDeletionTimestamp(&now)
obj.SetUpdatedTimestamp(&now.Time)
obj.SetManagedFields(nil)
obj.SetFinalizers(nil)
obj.SetGeneration(utils.DeletedGeneration)
obj.SetAnnotation(utils.AnnoKeyKubectlLastAppliedConfig, "") // clears it
event.Object = obj
case resourcepb.WatchEvent_ADDED:
event.Object = meta
case resourcepb.WatchEvent_MODIFIED:
event.Object = meta //
event.ObjectOld = meta
default:
panic(fmt.Sprintf("invalid action: %s", action))
}
return store.WriteEvent(ctx, event)
}
func newServer(t *testing.T, b resource.StorageBackend) resource.ResourceServer {
@@ -11,7 +11,6 @@ import (
)
func TestBadgerKVStorageBackend(t *testing.T) {
t.Skip("failing with 'panic: DB Closed'")
RunStorageBackendTest(t, func(ctx context.Context) resource.StorageBackend {
opts := badger.DefaultOptions("").WithInMemory(true).WithLogger(nil)
db, err := badger.Open(opts)