From 9e8ce9535d9ce46791304e4ea3d1694e09b9ae9f Mon Sep 17 00:00:00 2001 From: xuzhonghu Date: Fri, 27 Apr 2018 14:07:11 +0800 Subject: [PATCH] fix bug in dynamicResourceClient.UpdateStatus should encode --- staging/src/k8s.io/client-go/dynamic/simple.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/staging/src/k8s.io/client-go/dynamic/simple.go b/staging/src/k8s.io/client-go/dynamic/simple.go index 350a2865575..41e0360e0bf 100644 --- a/staging/src/k8s.io/client-go/dynamic/simple.go +++ b/staging/src/k8s.io/client-go/dynamic/simple.go @@ -158,8 +158,17 @@ func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured) (*u return nil, err } - result := c.client.client.Put().AbsPath(append(c.makeURLSegments(accessor.GetName()), "status")...).Body(obj).Do() - uncastObj, err := result.Get() + outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj) + if err != nil { + return nil, err + } + + result := c.client.client.Put().AbsPath(append(c.makeURLSegments(accessor.GetName()), "status")...).Body(outBytes).Do() + retBytes, err := result.Raw() + if err != nil { + return nil, err + } + uncastObj, err := runtime.Decode(unstructured.UnstructuredJSONScheme, retBytes) if err != nil { return nil, err } @@ -167,9 +176,6 @@ func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured) (*u } func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions) error { - if opts == nil { - opts = &metav1.DeleteOptions{} - } if opts == nil { opts = &metav1.DeleteOptions{} }