Skip to content

Commit f4aae68

Browse files
n3rdc4ptnCopilot
andauthored
fix: update DeletionEvent to retrieve MCPUsage before updating deleti… (#2)
* fix: update DeletionEvent to retrieve MCPUsage before updating deletion timestamp * Update internal/usage/tracking.go Co-authored-by: Copilot <[email protected]> * fix: streamline DeletionEvent to update MCPDeletedAt with retry logic --------- Co-authored-by: Copilot <[email protected]>
1 parent 76c2c7c commit f4aae68

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v0.0.13-dev
1+
v0.0.14

internal/usage/tracking.go

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -168,21 +168,27 @@ func (u *UsageTracker) DeletionEvent(ctx context.Context, project string, worksp
168168
return fmt.Errorf("error getting object key: %w", err)
169169
}
170170

171-
var mcpUsage = v1.MCPUsage{
172-
ObjectMeta: metav1.ObjectMeta{
173-
Name: objectKey.Name,
174-
Namespace: objectKey.Namespace,
175-
},
176-
Spec: v1.MCPUsageSpec{
177-
MCPDeletedAt: metav1.NewTime(time.Now().UTC()),
178-
},
179-
}
180-
err = u.client.Patch(ctx, &mcpUsage, client.Merge)
181-
if k8serrors.IsNotFound(err) {
171+
deletedAt := metav1.NewTime(time.Now().UTC())
172+
err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
173+
var mcpUsage v1.MCPUsage
174+
// Re-fetch the latest version to avoid update conflicts
175+
err := u.client.Get(ctx, objectKey, &mcpUsage)
176+
if err != nil {
177+
return fmt.Errorf("error getting MCPUsage resource during retry: %w", err)
178+
}
179+
mcpUsage.Spec.MCPDeletedAt = deletedAt
180+
err = u.client.Update(ctx, &mcpUsage)
181+
if err != nil {
182+
if k8serrors.IsConflict(err) {
183+
return err // trigger retry
184+
}
185+
return fmt.Errorf("error when setting deletion timestamp on MCPUsage element: %w", err)
186+
}
182187
return nil
183-
}
188+
})
189+
184190
if err != nil {
185-
return fmt.Errorf("error when setting deletion timestamp on MCPUsage element: %w", err)
191+
return err
186192
}
187193

188194
return nil

0 commit comments

Comments
 (0)