1
0
mirror of https://github.com/go-micro/go-micro.git synced 2025-11-23 21:44:41 +02:00

fix k8s api memory leak (#2166)

This commit is contained in:
Tt yo
2021-05-11 15:58:19 +08:00
committed by GitHub
parent 8c9c7a5927
commit 32cb1b435b
2 changed files with 15 additions and 11 deletions

View File

@@ -59,7 +59,10 @@ func (r *Response) Into(data interface{}) error {
} }
func (r *Response) Close() error { func (r *Response) Close() error {
return r.res.Body.Close() if r.res != nil {
return r.res.Body.Close()
}
return nil
} }
func newResponse(res *http.Response, err error) *Response { func newResponse(res *http.Response, err error) *Response {

View File

@@ -64,15 +64,15 @@ func (c *client) Create(r *Resource, opts ...CreateOption) error {
if err := renderTemplate(r.Kind, b, r.Value); err != nil { if err := renderTemplate(r.Kind, b, r.Value); err != nil {
return err return err
} }
resp := api.NewRequest(c.opts).
return api.NewRequest(c.opts).
Post(). Post().
SetHeader("Content-Type", "application/yaml"). SetHeader("Content-Type", "application/yaml").
Namespace(options.Namespace). Namespace(options.Namespace).
Resource(r.Kind). Resource(r.Kind).
Body(b). Body(b).
Do(). Do()
Error() resp.Close()
return resp.Error()
} }
var ( var (
@@ -160,8 +160,9 @@ func (c *client) Update(r *Resource, opts ...UpdateOption) error {
default: default:
return errors.New("unsupported resource") return errors.New("unsupported resource")
} }
resp := req.Do()
return req.Do().Error() resp.Close()
return resp.Error()
} }
// Delete removes API object // Delete removes API object
@@ -172,14 +173,14 @@ func (c *client) Delete(r *Resource, opts ...DeleteOption) error {
for _, o := range opts { for _, o := range opts {
o(&options) o(&options)
} }
resp := api.NewRequest(c.opts).
return api.NewRequest(c.opts).
Delete(). Delete().
Resource(r.Kind). Resource(r.Kind).
Name(r.Name). Name(r.Name).
Namespace(options.Namespace). Namespace(options.Namespace).
Do(). Do()
Error() resp.Close()
return resp.Error()
} }
// List lists API objects and stores the result in r // List lists API objects and stores the result in r