Skip to content

Commit 4ec9e14

Browse files
authored
*: enable bodyclose linter (tikv#4437)
* enable bodyclose linter ref tikv#4322 Signed-off-by: Ryan Leung <[email protected]> * address the comment Signed-off-by: Ryan Leung <[email protected]>
1 parent 2246ef6 commit 4ec9e14

14 files changed

+48
-40
lines changed

.golangci.yml

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ linters:
1010
- whitespace
1111
- makezero
1212
- gosec
13+
- bodyclose
1314
disable:
1415
- errcheck
1516
linters-settings:

server/api/admin_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ func (s *testAdminSuite) TestDropRegion(c *C) {
7575

7676
// After drop region from cache, lower version is accepted.
7777
url := fmt.Sprintf("%s/admin/cache/region/%d", s.urlPrefix, region.GetID())
78-
req, err := http.NewRequest("DELETE", url, nil)
78+
req, err := http.NewRequest(http.MethodDelete, url, nil)
7979
c.Assert(err, IsNil)
8080
res, err := testDialClient.Do(req)
8181
c.Assert(err, IsNil)

server/api/component_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ func (s *testComponentSuite) TestComponent(c *C) {
101101

102102
// unregister address
103103
addr3 := fmt.Sprintf("%s/component/c1/127.0.0.1:1", urlPrefix)
104-
res, err := doDelete(testDialClient, addr3)
104+
statusCode, err := doDelete(testDialClient, addr3)
105105
c.Assert(err, IsNil)
106-
c.Assert(res.StatusCode, Equals, 200)
106+
c.Assert(statusCode, Equals, 200)
107107

108108
expected3 := map[string][]string{
109109
"c1": {"127.0.0.1:2"},
@@ -116,9 +116,9 @@ func (s *testComponentSuite) TestComponent(c *C) {
116116
c.Assert(output, DeepEquals, expected3)
117117

118118
addr4 := fmt.Sprintf("%s/component/c1/127.0.0.1:2", urlPrefix)
119-
res, err = doDelete(testDialClient, addr4)
119+
statusCode, err = doDelete(testDialClient, addr4)
120120
c.Assert(err, IsNil)
121-
c.Assert(res.StatusCode, Equals, 200)
121+
c.Assert(statusCode, Equals, 200)
122122
expected4 := map[string][]string{
123123
"c2": {"127.0.0.1:3"},
124124
"c3": {"example.com"},

server/api/member_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func changeLeaderPeerUrls(c *C, leader *pdpb.Member, id uint64, urls []string) {
142142
data := map[string][]string{"peerURLs": urls}
143143
postData, err := json.Marshal(data)
144144
c.Assert(err, IsNil)
145-
req, err := http.NewRequest("PUT", fmt.Sprintf("%s/v2/members/%s", leader.GetClientUrls()[0], fmt.Sprintf("%x", id)), bytes.NewBuffer(postData))
145+
req, err := http.NewRequest(http.MethodPut, fmt.Sprintf("%s/v2/members/%s", leader.GetClientUrls()[0], fmt.Sprintf("%x", id)), bytes.NewBuffer(postData))
146146
c.Assert(err, IsNil)
147147
req.Header.Set("Content-Type", "application/json")
148148
resp, err := testDialClient.Do(req)

server/api/rule_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -521,9 +521,9 @@ func (s *testRuleSuite) TestDelete(c *C) {
521521
url := fmt.Sprintf("%s/rule/%s/%s", s.urlPrefix, testcase.groupID, testcase.id)
522522
// clear suspect keyRanges to prevent test case from others
523523
s.svr.GetRaftCluster().ClearSuspectKeyRanges()
524-
resp, err := doDelete(testDialClient, url)
524+
statusCode, err := doDelete(testDialClient, url)
525525
c.Assert(err, IsNil)
526-
c.Assert(resp.StatusCode, Equals, http.StatusOK)
526+
c.Assert(statusCode, Equals, http.StatusOK)
527527
if len(testcase.popKeyRange) > 0 {
528528
popKeyRangeMap := map[string]struct{}{}
529529
for i := 0; i < len(testcase.popKeyRange)/2; i++ {

server/api/scheduler.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -301,12 +301,12 @@ func (h *schedulerHandler) redirectSchedulerDelete(w http.ResponseWriter, name,
301301
args := strings.Split(name, "-")
302302
args = args[len(args)-1:]
303303
url := fmt.Sprintf("%s/%s/%s/delete/%s", h.GetAddr(), schedulerConfigPrefix, schedulerName, args[0])
304-
resp, err := doDelete(h.svr.GetHTTPClient(), url)
304+
statusCode, err := doDelete(h.svr.GetHTTPClient(), url)
305305
if err != nil {
306-
h.r.JSON(w, resp.StatusCode, err.Error())
306+
h.r.JSON(w, statusCode, err.Error())
307307
return
308308
}
309-
h.r.JSON(w, resp.StatusCode, nil)
309+
h.r.JSON(w, statusCode, nil)
310310
}
311311

312312
// FIXME: details of input json body params

server/api/scheduler_test.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,20 @@ func (s *testScheduleSuite) TestOriginAPI(c *C) {
9191
c.Assert(resp1["store-id-ranges"], HasLen, 1)
9292
deleteURL = fmt.Sprintf("%s/%s", s.urlPrefix, "evict-leader-scheduler-2")
9393
c.Assert(failpoint.Enable("github.com/tikv/pd/server/config/persistFail", "return(true)"), IsNil)
94-
res, err := doDelete(testDialClient, deleteURL)
94+
statusCode, err := doDelete(testDialClient, deleteURL)
9595
c.Assert(err, IsNil)
96-
c.Assert(res.StatusCode, Equals, 500)
96+
c.Assert(statusCode, Equals, 500)
9797
c.Assert(rc.GetSchedulers(), HasLen, 1)
9898
c.Assert(failpoint.Disable("github.com/tikv/pd/server/config/persistFail"), IsNil)
99-
res, err = doDelete(testDialClient, deleteURL)
99+
statusCode, err = doDelete(testDialClient, deleteURL)
100100
c.Assert(err, IsNil)
101-
c.Assert(res.StatusCode, Equals, 200)
101+
c.Assert(statusCode, Equals, 200)
102102
c.Assert(rc.GetSchedulers(), HasLen, 0)
103103
resp2 := make(map[string]interface{})
104104
c.Assert(readJSON(testDialClient, listURL, &resp2), NotNil)
105105

106-
r, _ := doDelete(testDialClient, deleteURL)
107-
c.Assert(r.StatusCode, Equals, 404)
106+
statusCode, _ = doDelete(testDialClient, deleteURL)
107+
c.Assert(statusCode, Equals, 404)
108108
}
109109

110110
func (s *testScheduleSuite) TestAPI(c *C) {
@@ -196,9 +196,9 @@ func (s *testScheduleSuite) TestAPI(c *C) {
196196
c.Assert(readJSON(testDialClient, listURL, &resp), IsNil)
197197
delete(exceptMap, "2")
198198
c.Assert(resp["store-id-ranges"], DeepEquals, exceptMap)
199-
res, err := doDelete(testDialClient, deleteURL)
199+
statusCode, err := doDelete(testDialClient, deleteURL)
200200
c.Assert(err, IsNil)
201-
c.Assert(res.StatusCode, Equals, 404)
201+
c.Assert(statusCode, Equals, 404)
202202
},
203203
},
204204
{
@@ -260,9 +260,9 @@ func (s *testScheduleSuite) TestAPI(c *C) {
260260
c.Assert(readJSON(testDialClient, listURL, &resp), IsNil)
261261
delete(exceptMap, "2")
262262
c.Assert(resp["store-id-ranges"], DeepEquals, exceptMap)
263-
res, err := doDelete(testDialClient, deleteURL)
263+
statusCode, err := doDelete(testDialClient, deleteURL)
264264
c.Assert(err, IsNil)
265-
c.Assert(res.StatusCode, Equals, 404)
265+
c.Assert(statusCode, Equals, 404)
266266
},
267267
},
268268
}

server/api/service_gc_safepoint_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,15 @@ func (s *testServiceGCSafepointSuite) TestRegionStats(c *C) {
8181

8282
res, err := testDialClient.Get(sspURL)
8383
c.Assert(err, IsNil)
84+
defer res.Body.Close()
8485
listResp := &listServiceGCSafepoint{}
8586
err = apiutil.ReadJSON(res.Body, listResp)
8687
c.Assert(err, IsNil)
8788
c.Assert(listResp, DeepEquals, list)
8889

89-
res, err = doDelete(testDialClient, sspURL+"/a")
90+
statusCode, err := doDelete(testDialClient, sspURL+"/a")
9091
c.Assert(err, IsNil)
91-
c.Assert(res.StatusCode, Equals, http.StatusOK)
92+
c.Assert(statusCode, Equals, http.StatusOK)
9293

9394
left, err := storage.GetAllServiceGCSafePoints()
9495
c.Assert(err, IsNil)

server/api/store_test.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,11 @@ func (s *testStoreSuite) TestStoreInfoGet(c *C) {
202202
c.Assert(info.Store.DeployPath, Equals, "/home/test")
203203
c.Assert(info.Store.LastHeartbeat, Equals, timeStamp)
204204

205-
resp, _ := testDialClient.Get(url)
206-
b, _ := io.ReadAll(resp.Body)
205+
resp, err := testDialClient.Get(url)
206+
c.Assert(err, IsNil)
207+
defer resp.Body.Close()
208+
b, err := io.ReadAll(resp.Body)
209+
c.Assert(err, IsNil)
207210
str := string(b)
208211
c.Assert(strings.Contains(str, "\"state\""), Equals, false)
209212
s.cleanup()

server/api/util.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func readJSON(client *http.Client, url string, data interface{}) error {
6464
}
6565

6666
func readJSONWithBody(client *http.Client, url string, body []byte, data interface{}) error {
67-
req, err := http.NewRequest("GET", url, bytes.NewBuffer(body))
67+
req, err := http.NewRequest(http.MethodGet, url, bytes.NewBuffer(body))
6868
if err != nil {
6969
return err
7070
}
@@ -91,7 +91,7 @@ func extractJSON(resp *http.Response, data interface{}) error {
9191
}
9292

9393
func postJSON(client *http.Client, url string, data []byte, checkOpts ...func([]byte, int)) error {
94-
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
94+
req, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(data))
9595
if err != nil {
9696
return err
9797
}
@@ -100,15 +100,15 @@ func postJSON(client *http.Client, url string, data []byte, checkOpts ...func([]
100100
}
101101

102102
func getJSON(client *http.Client, url string, data []byte, checkOpts ...func([]byte, int)) error {
103-
req, err := http.NewRequest("GET", url, bytes.NewBuffer(data))
103+
req, err := http.NewRequest(http.MethodGet, url, bytes.NewBuffer(data))
104104
if err != nil {
105105
return err
106106
}
107107
return doJSON(client, req, checkOpts...)
108108
}
109109

110110
func patchJSON(client *http.Client, url string, body []byte) error {
111-
req, err := http.NewRequest("PATCH", url, bytes.NewBuffer(body))
111+
req, err := http.NewRequest(http.MethodPatch, url, bytes.NewBuffer(body))
112112
if err != nil {
113113
return err
114114
}
@@ -127,17 +127,17 @@ func patchJSON(client *http.Client, url string, body []byte) error {
127127
return nil
128128
}
129129

130-
func doDelete(client *http.Client, url string) (*http.Response, error) {
131-
req, err := http.NewRequest("DELETE", url, nil)
130+
func doDelete(client *http.Client, url string) (int, error) {
131+
req, err := http.NewRequest(http.MethodDelete, url, nil)
132132
if err != nil {
133-
return nil, err
133+
return http.StatusBadRequest, err
134134
}
135135
res, err := client.Do(req)
136136
if err != nil {
137-
return nil, err
137+
return 0, err
138138
}
139-
res.Body.Close()
140-
return res, nil
139+
defer res.Body.Close()
140+
return res.StatusCode, nil
141141
}
142142

143143
func parseKey(name string, input map[string]interface{}) ([]byte, string, error) {

server/cluster/cluster.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1826,7 +1826,7 @@ func CheckHealth(client *http.Client, members []*pdpb.Member) map[uint64]*pdpb.M
18261826
for _, member := range members {
18271827
for _, cURL := range member.ClientUrls {
18281828
ctx, cancel := context.WithTimeout(context.Background(), clientTimeout)
1829-
req, err := http.NewRequestWithContext(ctx, "GET", fmt.Sprintf("%s%s", cURL, healthURL), nil)
1829+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("%s%s", cURL, healthURL), nil)
18301830
if err != nil {
18311831
log.Error("failed to new request", errs.ZapError(errs.ErrNewHTTPRequest, err))
18321832
cancel()

server/server.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1390,7 +1390,7 @@ func (s *Server) replicateFileToMember(ctx context.Context, member *pdpb.Member,
13901390
return errs.ErrClientURLEmpty.FastGenByArgs()
13911391
}
13921392
url := clientUrls[0] + filepath.Join("/pd/api/v1/admin/persist-file", name)
1393-
req, _ := http.NewRequestWithContext(ctx, "POST", url, bytes.NewBuffer(data))
1393+
req, _ := http.NewRequestWithContext(ctx, http.MethodPost, url, bytes.NewBuffer(data))
13941394
req.Header.Set("PD-Allow-follower-handle", "true")
13951395
res, err := s.httpClient.Do(req)
13961396
if err != nil {

tests/server/api/api_test.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ func (s *serverTestSuite) TestReconnect(c *C) {
7070
if name != leader {
7171
res, e := http.Get(s.GetConfig().AdvertiseClientUrls + "/pd/api/v1/version")
7272
c.Assert(e, IsNil)
73+
res.Body.Close()
7374
c.Assert(res.StatusCode, Equals, http.StatusOK)
7475
}
7576
}
@@ -86,6 +87,7 @@ func (s *serverTestSuite) TestReconnect(c *C) {
8687
testutil.WaitUntil(c, func(c *C) bool {
8788
res, e := http.Get(s.GetConfig().AdvertiseClientUrls + "/pd/api/v1/version")
8889
c.Assert(e, IsNil)
90+
defer res.Body.Close()
8991
return res.StatusCode == http.StatusOK
9092
})
9193
}
@@ -101,6 +103,7 @@ func (s *serverTestSuite) TestReconnect(c *C) {
101103
testutil.WaitUntil(c, func(c *C) bool {
102104
res, err := http.Get(s.GetConfig().AdvertiseClientUrls + "/pd/api/v1/version")
103105
c.Assert(err, IsNil)
106+
defer res.Body.Close()
104107
return res.StatusCode == http.StatusServiceUnavailable
105108
})
106109
}
@@ -159,7 +162,7 @@ func (s *testRedirectorSuite) TestAllowFollowerHandle(c *C) {
159162
}
160163

161164
addr := follower.GetAddr() + "/pd/api/v1/version"
162-
request, err := http.NewRequest("GET", addr, nil)
165+
request, err := http.NewRequest(http.MethodGet, addr, nil)
163166
c.Assert(err, IsNil)
164167
request.Header.Add(serverapi.AllowFollowerHandle, "true")
165168
resp, err := dialClient.Do(request)
@@ -184,7 +187,7 @@ func (s *testRedirectorSuite) TestNotLeader(c *C) {
184187

185188
addr := follower.GetAddr() + "/pd/api/v1/version"
186189
// Request to follower without redirectorHeader is OK.
187-
request, err := http.NewRequest("GET", addr, nil)
190+
request, err := http.NewRequest(http.MethodGet, addr, nil)
188191
c.Assert(err, IsNil)
189192
resp, err := dialClient.Do(request)
190193
c.Assert(err, IsNil)

tests/server/member/member_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func (s *memberTestSuite) TestMemberDelete(c *C) {
113113
c.Log(time.Now(), "try to delete:", t.path)
114114
testutil.WaitUntil(c, func(c *C) bool {
115115
addr := leader.GetConfig().ClientUrls + "/pd/api/v1/members/" + t.path
116-
req, err := http.NewRequest("DELETE", addr, nil)
116+
req, err := http.NewRequest(http.MethodDelete, addr, nil)
117117
c.Assert(err, IsNil)
118118
res, err := httpClient.Do(req)
119119
c.Assert(err, IsNil)

0 commit comments

Comments
 (0)