mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-11-02 14:51:58 +00:00
add ResourceVersion to DeleteOptions.Preconditions
This commit is contained in:
@@ -139,6 +139,7 @@ func (r *REST) Delete(ctx context.Context, name string, options *metav1.DeleteOp
|
||||
}
|
||||
if options.Preconditions.UID == nil {
|
||||
options.Preconditions.UID = &namespace.UID
|
||||
options.Preconditions.ResourceVersion = &namespace.ResourceVersion
|
||||
} else if *options.Preconditions.UID != namespace.UID {
|
||||
err = apierrors.NewConflict(
|
||||
api.Resource("namespaces"),
|
||||
@@ -146,6 +147,13 @@ func (r *REST) Delete(ctx context.Context, name string, options *metav1.DeleteOp
|
||||
fmt.Errorf("Precondition failed: UID in precondition: %v, UID in object meta: %v", *options.Preconditions.UID, namespace.UID),
|
||||
)
|
||||
return nil, false, err
|
||||
} else if *options.Preconditions.ResourceVersion != namespace.ResourceVersion {
|
||||
err = apierrors.NewConflict(
|
||||
api.Resource("namespaces"),
|
||||
name,
|
||||
fmt.Errorf("Precondition failed: ResourceVersion in precondition: %v, ResourceVersion in object meta: %v", *options.Preconditions.ResourceVersion, namespace.ResourceVersion),
|
||||
)
|
||||
return nil, false, err
|
||||
}
|
||||
|
||||
// upon first request to delete, we switch the phase to start namespace termination
|
||||
@@ -156,7 +164,7 @@ func (r *REST) Delete(ctx context.Context, name string, options *metav1.DeleteOp
|
||||
return nil, false, err
|
||||
}
|
||||
|
||||
preconditions := storage.Preconditions{UID: options.Preconditions.UID}
|
||||
preconditions := storage.Preconditions{UID: options.Preconditions.UID, ResourceVersion: options.Preconditions.ResourceVersion}
|
||||
|
||||
out := r.store.NewFunc()
|
||||
err = r.store.Storage.GuaranteedUpdate(
|
||||
|
||||
Reference in New Issue
Block a user