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:
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user