add ResourceVersion to DeleteOptions.Preconditions

This commit is contained in:
ajatprabha
2019-02-14 04:09:12 +05:30
parent 9cbccd3859
commit 8f48d76271
8 changed files with 76 additions and 4 deletions

View File

@@ -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(