From 3135cea2cce02bc8c6796e97f4579d538f357f74 Mon Sep 17 00:00:00 2001 From: ajatprabha Date: Fri, 15 Feb 2019 12:30:34 +0530 Subject: [PATCH] add ResourceVersion check to Preconditions#Check --- staging/src/k8s.io/apiserver/pkg/storage/interfaces.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/interfaces.go b/staging/src/k8s.io/apiserver/pkg/storage/interfaces.go index 93b3f5deb8c..cff425f3abf 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/interfaces.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/interfaces.go @@ -128,8 +128,14 @@ func (p *Preconditions) Check(key string, obj runtime.Object) error { objMeta.GetUID()) return NewInvalidObjError(key, err) } + if p.ResourceVersion != nil && *p.ResourceVersion != objMeta.GetResourceVersion() { + err := fmt.Sprintf( + "Precondition failed: ResourceVersion in precondition: %v, ResourceVersion in object meta: %v", + *p.ResourceVersion, + objMeta.GetResourceVersion()) + return NewInvalidObjError(key, err) + } return nil - } // Interface offers a common interface for object marshaling/unmarshaling operations and