From 1c34ecee04ad676bd02c4a93b71f4d8ea90760a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20Wiesm=C3=BCller?= Date: Thu, 24 Jan 2019 12:41:46 +0100 Subject: [PATCH] add userAgent info to create and update --- .../src/k8s.io/apiserver/pkg/endpoints/handlers/create.go | 7 ++++++- .../src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go | 2 +- .../src/k8s.io/apiserver/pkg/endpoints/handlers/update.go | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go index 326387481bb..ab2ffdb7330 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go @@ -20,6 +20,7 @@ import ( "context" "fmt" "net/http" + "strings" "time" "k8s.io/apimachinery/pkg/api/errors" @@ -141,7 +142,7 @@ func createHandler(r rest.NamedCreater, scope RequestScope, admit admission.Inte return } - obj, err = scope.FieldManager.Update(liveObj, obj, "create") + obj, err = scope.FieldManager.Update(liveObj, obj, prefixFromUserAgent(req.UserAgent())) if err != nil { scope.err(fmt.Errorf("failed to update object managed fields: %v", err), w, req) return @@ -198,3 +199,7 @@ type namedCreaterAdapter struct { func (c *namedCreaterAdapter) Create(ctx context.Context, name string, obj runtime.Object, createValidatingAdmission rest.ValidateObjectFunc, options *metav1.CreateOptions) (runtime.Object, error) { return c.Creater.Create(ctx, obj, createValidatingAdmission, options) } + +func prefixFromUserAgent(u string) string { + return strings.Split(u, "/")[0] +} diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go index 669d59d8484..c7476162351 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go @@ -551,7 +551,7 @@ func (p *patcher) patchResource(ctx context.Context, scope RequestScope) (runtim } func (p *patcher) prefixFromUserAgent() string { - return strings.Split(p.userAgent, "/")[0] + return prefixFromUserAgent(p.userAgent) } // applyPatchToObject applies a strategic merge patch of to diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go index bb85cd945fb..2fb114c1b2a 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go @@ -124,7 +124,7 @@ func UpdateResource(r rest.Updater, scope RequestScope, admit admission.Interfac transformers := []rest.TransformFunc{} if scope.FieldManager != nil { transformers = append(transformers, func(_ context.Context, newObj, liveObj runtime.Object) (runtime.Object, error) { - if obj, err = scope.FieldManager.Update(liveObj, newObj, "update"); err != nil { + if obj, err = scope.FieldManager.Update(liveObj, newObj, prefixFromUserAgent(req.UserAgent())); err != nil { return nil, fmt.Errorf("failed to update object managed fields: %v", err) } return obj, nil