Skip to content

Commit 42f0a36

Browse files
committed
check for ResourceVersion conflict in separate if block
1 parent 8f48d76 commit 42f0a36

File tree

4 files changed

+8
-4
lines changed
  • pkg/registry/core/namespace/storage
  • staging/src/k8s.io
    • apiextensions-apiserver/pkg/registry/customresourcedefinition
    • apimachinery/pkg/apis/meta/v1
    • apiserver/pkg/registry/rest

4 files changed

+8
-4
lines changed

pkg/registry/core/namespace/storage/storage.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,14 +139,16 @@ func (r *REST) Delete(ctx context.Context, name string, options *metav1.DeleteOp
139139
}
140140
if options.Preconditions.UID == nil {
141141
options.Preconditions.UID = &namespace.UID
142-
options.Preconditions.ResourceVersion = &namespace.ResourceVersion
143142
} else if *options.Preconditions.UID != namespace.UID {
144143
err = apierrors.NewConflict(
145144
api.Resource("namespaces"),
146145
name,
147146
fmt.Errorf("Precondition failed: UID in precondition: %v, UID in object meta: %v", *options.Preconditions.UID, namespace.UID),
148147
)
149148
return nil, false, err
149+
}
150+
if options.Preconditions.ResourceVersion == nil {
151+
options.Preconditions.ResourceVersion = &namespace.ResourceVersion
150152
} else if *options.Preconditions.ResourceVersion != namespace.ResourceVersion {
151153
err = apierrors.NewConflict(
152154
api.Resource("namespaces"),

staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,16 @@ func (r *REST) Delete(ctx context.Context, name string, options *metav1.DeleteOp
8484
}
8585
if options.Preconditions.UID == nil {
8686
options.Preconditions.UID = &crd.UID
87-
options.Preconditions.ResourceVersion = &crd.ResourceVersion
8887
} else if *options.Preconditions.UID != crd.UID {
8988
err = apierrors.NewConflict(
9089
apiextensions.Resource("customresourcedefinitions"),
9190
name,
9291
fmt.Errorf("Precondition failed: UID in precondition: %v, UID in object meta: %v", *options.Preconditions.UID, crd.UID),
9392
)
9493
return nil, false, err
94+
}
95+
if options.Preconditions.ResourceVersion == nil {
96+
options.Preconditions.ResourceVersion = &crd.ResourceVersion
9597
} else if *options.Preconditions.ResourceVersion != crd.ResourceVersion {
9698
err = apierrors.NewConflict(
9799
apiextensions.Resource("customresourcedefinitions"),

staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/helpers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ func NewUIDPreconditions(uid string) *Preconditions {
228228
return &Preconditions{UID: &u}
229229
}
230230

231-
// NewPreconditionDeleteOptionsWithResourceVersion returns a DeleteOptions with a UID precondition set.
231+
// NewPreconditionDeleteOptionsWithResourceVersion returns a DeleteOptions with a ResourceVersion precondition set.
232232
func NewPreconditionDeleteOptionsWithResourceVersion(rv string) *DeleteOptions {
233233
p := Preconditions{ResourceVersion: &rv}
234234
return &DeleteOptions{Preconditions: &p}

staging/src/k8s.io/apiserver/pkg/registry/rest/delete.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func BeforeDelete(strategy RESTDeleteStrategy, ctx context.Context, obj runtime.
8282
return false, false, errors.NewConflict(schema.GroupResource{Group: gvk.Group, Resource: gvk.Kind}, objectMeta.GetName(), fmt.Errorf("the UID in the precondition (%s) does not match the UID in record (%s). The object might have been deleted and then recreated", *options.Preconditions.UID, objectMeta.GetUID()))
8383
}
8484
if options.Preconditions.ResourceVersion != nil && *options.Preconditions.ResourceVersion != objectMeta.GetResourceVersion() {
85-
return false, false, errors.NewConflict(schema.GroupResource{Group: gvk.Group, Resource: gvk.Kind}, objectMeta.GetName(), fmt.Errorf("the ResourceVersion in the precondition (%s) does not match the ResourceVersion in record (%s). The object might have been deleted and then recreated", *options.Preconditions.ResourceVersion, objectMeta.GetResourceVersion()))
85+
return false, false, errors.NewConflict(schema.GroupResource{Group: gvk.Group, Resource: gvk.Kind}, objectMeta.GetName(), fmt.Errorf("the ResourceVersion in the precondition (%s) does not match the ResourceVersion in record (%s). The object might have been modified", *options.Preconditions.ResourceVersion, objectMeta.GetResourceVersion()))
8686
}
8787
}
8888
gracefulStrategy, ok := strategy.(RESTGracefulDeleteStrategy)

0 commit comments

Comments
 (0)