Skip to content

Commit

Permalink
Merge branch 'master' into sche-redirect11
Browse files Browse the repository at this point in the history
  • Loading branch information
ti-chi-bot[bot] committed Nov 23, 2023
2 parents b777d28 + 9902be8 commit f1115f6
Show file tree
Hide file tree
Showing 24 changed files with 94 additions and 86 deletions.
30 changes: 15 additions & 15 deletions client/http/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ func (c *client) GetRegionByID(ctx context.Context, regionID uint64) (*RegionInf
var region RegionInfo
err := c.requestWithRetry(ctx,
"GetRegionByID", RegionByID(regionID),
http.MethodGet, nil, &region)
http.MethodGet, http.NoBody, &region)
if err != nil {
return nil, err
}
Expand All @@ -288,7 +288,7 @@ func (c *client) GetRegionByKey(ctx context.Context, key []byte) (*RegionInfo, e
var region RegionInfo
err := c.requestWithRetry(ctx,
"GetRegionByKey", RegionByKey(key),
http.MethodGet, nil, &region)
http.MethodGet, http.NoBody, &region)
if err != nil {
return nil, err
}
Expand All @@ -300,7 +300,7 @@ func (c *client) GetRegions(ctx context.Context) (*RegionsInfo, error) {
var regions RegionsInfo
err := c.requestWithRetry(ctx,
"GetRegions", Regions,
http.MethodGet, nil, &regions)
http.MethodGet, http.NoBody, &regions)
if err != nil {
return nil, err
}
Expand All @@ -312,7 +312,7 @@ func (c *client) GetRegionsByKeyRange(ctx context.Context, startKey, endKey []by
var regions RegionsInfo
err := c.requestWithRetry(ctx,
"GetRegionsByKeyRange", RegionsByKey(startKey, endKey, limit),
http.MethodGet, nil, &regions)
http.MethodGet, http.NoBody, &regions)
if err != nil {
return nil, err
}
Expand All @@ -324,7 +324,7 @@ func (c *client) GetRegionsByStoreID(ctx context.Context, storeID uint64) (*Regi
var regions RegionsInfo
err := c.requestWithRetry(ctx,
"GetRegionsByStoreID", RegionsByStoreID(storeID),
http.MethodGet, nil, &regions)
http.MethodGet, http.NoBody, &regions)
if err != nil {
return nil, err
}
Expand All @@ -336,7 +336,7 @@ func (c *client) GetHotReadRegions(ctx context.Context) (*StoreHotPeersInfos, er
var hotReadRegions StoreHotPeersInfos
err := c.requestWithRetry(ctx,
"GetHotReadRegions", HotRead,
http.MethodGet, nil, &hotReadRegions)
http.MethodGet, http.NoBody, &hotReadRegions)
if err != nil {
return nil, err
}
Expand All @@ -348,7 +348,7 @@ func (c *client) GetHotWriteRegions(ctx context.Context) (*StoreHotPeersInfos, e
var hotWriteRegions StoreHotPeersInfos
err := c.requestWithRetry(ctx,
"GetHotWriteRegions", HotWrite,
http.MethodGet, nil, &hotWriteRegions)
http.MethodGet, http.NoBody, &hotWriteRegions)
if err != nil {
return nil, err
}
Expand All @@ -360,7 +360,7 @@ func (c *client) GetRegionStatusByKeyRange(ctx context.Context, startKey, endKey
var regionStats RegionStats
err := c.requestWithRetry(ctx,
"GetRegionStatusByKeyRange", RegionStatsByKeyRange(startKey, endKey),
http.MethodGet, nil, &regionStats,
http.MethodGet, http.NoBody, &regionStats,
)
if err != nil {
return nil, err
Expand All @@ -373,7 +373,7 @@ func (c *client) GetStores(ctx context.Context) (*StoresInfo, error) {
var stores StoresInfo
err := c.requestWithRetry(ctx,
"GetStores", Stores,
http.MethodGet, nil, &stores)
http.MethodGet, http.NoBody, &stores)
if err != nil {
return nil, err
}
Expand All @@ -385,7 +385,7 @@ func (c *client) GetAllPlacementRuleBundles(ctx context.Context) ([]*GroupBundle
var bundles []*GroupBundle
err := c.requestWithRetry(ctx,
"GetPlacementRuleBundle", PlacementRuleBundle,
http.MethodGet, nil, &bundles)
http.MethodGet, http.NoBody, &bundles)
if err != nil {
return nil, err
}
Expand All @@ -397,7 +397,7 @@ func (c *client) GetPlacementRuleBundleByGroup(ctx context.Context, group string
var bundle GroupBundle
err := c.requestWithRetry(ctx,
"GetPlacementRuleBundleByGroup", PlacementRuleBundleByGroup(group),
http.MethodGet, nil, &bundle)
http.MethodGet, http.NoBody, &bundle)
if err != nil {
return nil, err
}
Expand All @@ -409,7 +409,7 @@ func (c *client) GetPlacementRulesByGroup(ctx context.Context, group string) ([]
var rules []*Rule
err := c.requestWithRetry(ctx,
"GetPlacementRulesByGroup", PlacementRulesByGroup(group),
http.MethodGet, nil, &rules)
http.MethodGet, http.NoBody, &rules)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -443,15 +443,15 @@ func (c *client) SetPlacementRuleBundles(ctx context.Context, bundles []*GroupBu
func (c *client) DeletePlacementRule(ctx context.Context, group, id string) error {
return c.requestWithRetry(ctx,
"DeletePlacementRule", PlacementRuleByGroupAndID(group, id),
http.MethodDelete, nil, nil)
http.MethodDelete, http.NoBody, nil)
}

// GetAllRegionLabelRules gets all region label rules.
func (c *client) GetAllRegionLabelRules(ctx context.Context) ([]*LabelRule, error) {
var labelRules []*LabelRule
err := c.requestWithRetry(ctx,
"GetAllRegionLabelRules", RegionLabelRules,
http.MethodGet, nil, &labelRules)
http.MethodGet, http.NoBody, &labelRules)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -533,7 +533,7 @@ func (c *client) GetMinResolvedTSByStoresIDs(ctx context.Context, storeIDs []uin
}{}
err := c.requestWithRetry(ctx,
"GetMinResolvedTSByStoresIDs", uri,
http.MethodGet, nil, &resp)
http.MethodGet, http.NoBody, &resp)
if err != nil {
return 0, nil, err
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/audit/audit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func TestPrometheusHistogramBackend(t *testing.T) {
defer ts.Close()

backend := NewPrometheusHistogramBackend(serviceAuditHistogramTest, true)
req, _ := http.NewRequest(http.MethodGet, "http://127.0.0.1:2379/test?test=test", nil)
req, _ := http.NewRequest(http.MethodGet, "http://127.0.0.1:2379/test?test=test", http.NoBody)
info := requestutil.GetRequestInfo(req)
info.ServiceLabel = "test"
info.Component = "user1"
Expand All @@ -79,7 +79,7 @@ func TestPrometheusHistogramBackend(t *testing.T) {

// For test, sleep time needs longer than the push interval
time.Sleep(time.Second)
req, _ = http.NewRequest(http.MethodGet, ts.URL, nil)
req, _ = http.NewRequest(http.MethodGet, ts.URL, http.NoBody)
resp, err := http.DefaultClient.Do(req)
re.NoError(err)
defer resp.Body.Close()
Expand Down
10 changes: 5 additions & 5 deletions pkg/dashboard/adapter/redirector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,17 +70,17 @@ func (suite *redirectorTestSuite) TestReverseProxy() {

suite.redirector.SetAddress(suite.tempServer.URL)
// Test normal forwarding
req, err := http.NewRequest(http.MethodGet, redirectorServer.URL, nil)
req, err := http.NewRequest(http.MethodGet, redirectorServer.URL, http.NoBody)
suite.NoError(err)
checkHTTPRequest(suite.Require(), suite.noRedirectHTTPClient, req, http.StatusOK, suite.tempText)
// Test the requests that are forwarded by others
req, err = http.NewRequest(http.MethodGet, redirectorServer.URL, nil)
req, err = http.NewRequest(http.MethodGet, redirectorServer.URL, http.NoBody)
suite.NoError(err)
req.Header.Set(proxyHeader, "other")
checkHTTPRequest(suite.Require(), suite.noRedirectHTTPClient, req, http.StatusOK, suite.tempText)
// Test LoopDetected
suite.redirector.SetAddress(redirectorServer.URL)
req, err = http.NewRequest(http.MethodGet, redirectorServer.URL, nil)
req, err = http.NewRequest(http.MethodGet, redirectorServer.URL, http.NoBody)
suite.NoError(err)
checkHTTPRequest(suite.Require(), suite.noRedirectHTTPClient, req, http.StatusLoopDetected, "")
}
Expand All @@ -90,11 +90,11 @@ func (suite *redirectorTestSuite) TestTemporaryRedirect() {
defer redirectorServer.Close()
suite.redirector.SetAddress(suite.tempServer.URL)
// Test TemporaryRedirect
req, err := http.NewRequest(http.MethodGet, redirectorServer.URL, nil)
req, err := http.NewRequest(http.MethodGet, redirectorServer.URL, http.NoBody)
suite.NoError(err)
checkHTTPRequest(suite.Require(), suite.noRedirectHTTPClient, req, http.StatusTemporaryRedirect, "")
// Test Response
req, err = http.NewRequest(http.MethodGet, redirectorServer.URL, nil)
req, err = http.NewRequest(http.MethodGet, redirectorServer.URL, http.NoBody)
suite.NoError(err)
checkHTTPRequest(suite.Require(), http.DefaultClient, req, http.StatusOK, suite.tempText)
}
Expand Down
5 changes: 5 additions & 0 deletions pkg/schedule/checker/rule_checker.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,11 @@ func (c *RuleChecker) CheckWithFit(region *core.RegionInfo, fit *placement.Regio
return
}

// the placement rule is disabled
if fit == nil {
return
}

// If the fit is calculated by FitRegion, which means we get a new fit result, thus we should
// invalid the cache if it exists
c.ruleManager.InvalidCache(region.GetID())
Expand Down
2 changes: 1 addition & 1 deletion pkg/utils/apiutil/apiutil.go
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ func PostJSONIgnoreResp(client *http.Client, url string, data []byte) error {

// DoDelete is used to send delete request and return http response code.
func DoDelete(client *http.Client, url string) (*http.Response, error) {
req, err := http.NewRequest(http.MethodDelete, url, nil)
req, err := http.NewRequest(http.MethodDelete, url, http.NoBody)
if err != nil {
return nil, err
}
Expand Down
3 changes: 1 addition & 2 deletions pkg/utils/apiutil/serverapi/middleware.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,7 @@ func (h *redirector) matchMicroServiceRedirectRules(r *http.Request) (bool, stri
func (h *redirector) ServeHTTP(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
redirectToMicroService, targetAddr := h.matchMicroServiceRedirectRules(r)
allowFollowerHandle := len(r.Header.Get(apiutil.PDAllowFollowerHandleHeader)) > 0
isLeader := h.s.GetMember().IsLeader()
if !h.s.IsClosed() && (allowFollowerHandle || isLeader) && !redirectToMicroService {
if !h.s.IsClosed() && (allowFollowerHandle || h.s.GetMember().IsLeader()) && !redirectToMicroService {
next(w, r)
return
}
Expand Down
2 changes: 1 addition & 1 deletion server/api/admin.go
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ func (h *adminHandler) DeleteRegionCacheInSchedulingServer(id ...uint64) error {
idStr = strconv.FormatUint(id[0], 10)
}
url := fmt.Sprintf("%s/scheduling/api/v1/admin/cache/regions/%s", addr, idStr)
req, err := http.NewRequest(http.MethodDelete, url, nil)
req, err := http.NewRequest(http.MethodDelete, url, http.NoBody)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions server/api/admin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func (suite *adminTestSuite) TestDropRegion() {

// After drop region from cache, lower version is accepted.
url := fmt.Sprintf("%s/admin/cache/region/%d", suite.urlPrefix, region.GetID())
req, err := http.NewRequest(http.MethodDelete, url, nil)
req, err := http.NewRequest(http.MethodDelete, url, http.NoBody)
suite.NoError(err)
res, err := testDialClient.Do(req)
suite.NoError(err)
Expand Down Expand Up @@ -147,7 +147,7 @@ func (suite *adminTestSuite) TestDropRegions() {

// After drop all regions from cache, lower version is accepted.
url := fmt.Sprintf("%s/admin/cache/regions", suite.urlPrefix)
req, err := http.NewRequest(http.MethodDelete, url, nil)
req, err := http.NewRequest(http.MethodDelete, url, http.NoBody)
suite.NoError(err)
res, err := testDialClient.Do(req)
suite.NoError(err)
Expand Down
2 changes: 1 addition & 1 deletion server/api/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,7 @@ func (h *confHandler) GetSchedulingServerConfig() (*config.Config, error) {
return nil, errs.ErrNotFoundSchedulingAddr.FastGenByArgs()
}
url := fmt.Sprintf("%s/scheduling/api/v1/config", addr)
req, err := http.NewRequest(http.MethodGet, url, nil)
req, err := http.NewRequest(http.MethodGet, url, http.NoBody)
if err != nil {
return nil, err
}
Expand Down
3 changes: 1 addition & 2 deletions server/api/region_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
package api

import (
"bytes"
"context"
"encoding/hex"
"encoding/json"
Expand Down Expand Up @@ -385,7 +384,7 @@ func TestRegionsWithKillRequest(t *testing.T) {
}

ctx, cancel := context.WithCancel(context.Background())
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, bytes.NewBuffer(nil))
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, http.NoBody)
re.NoError(err)
respCh := make(chan *http.Response)
go func() {
Expand Down
2 changes: 1 addition & 1 deletion server/api/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ func (suite *adminTestSuite) TestCleanPath() {
// handled by router
response := httptest.NewRecorder()
r, _, _ := NewHandler(context.Background(), suite.svr)
request, err := http.NewRequest(http.MethodGet, url, nil)
request, err := http.NewRequest(http.MethodGet, url, http.NoBody)
re.NoError(err)
r.ServeHTTP(response, request)
// handled by `cleanPath` which is in `mux.ServeHTTP`
Expand Down
2 changes: 1 addition & 1 deletion server/api/store_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ func TestStoreTestSuite(t *testing.T) {
}

func (suite *storeTestSuite) requestStatusBody(client *http.Client, method string, url string) int {
req, err := http.NewRequest(method, url, nil)
req, err := http.NewRequest(method, url, http.NoBody)
suite.NoError(err)
resp, err := client.Do(req)
suite.NoError(err)
Expand Down
5 changes: 2 additions & 3 deletions server/cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
package cluster

import (
"bytes"
"context"
"encoding/json"
"fmt"
Expand Down Expand Up @@ -590,7 +589,7 @@ func (c *RaftCluster) fetchStoreConfigFromTiKV(ctx context.Context, statusAddres
url = fmt.Sprintf("%s://%s/config", "http", statusAddress)
}
ctx, cancel := context.WithTimeout(ctx, clientTimeout)
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, bytes.NewBuffer(nil))
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, http.NoBody)
if err != nil {
cancel()
return nil, fmt.Errorf("failed to create store config http request: %w", err)
Expand Down Expand Up @@ -2475,7 +2474,7 @@ func CheckHealth(client *http.Client, members []*pdpb.Member) map[uint64]*pdpb.M
for _, member := range members {
for _, cURL := range member.ClientUrls {
ctx, cancel := context.WithTimeout(context.Background(), clientTimeout)
req, err := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("%s%s", cURL, healthURL), nil)
req, err := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("%s%s", cURL, healthURL), http.NoBody)
if err != nil {
log.Error("failed to new request", errs.ZapError(errs.ErrNewHTTPRequest, err))
cancel()
Expand Down
8 changes: 4 additions & 4 deletions server/cluster/cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3140,7 +3140,7 @@ func TestPersistScheduler(t *testing.T) {
// option have 6 items because the default scheduler do not remove.
re.Len(newOpt.GetSchedulers(), defaultCount+3)
re.NoError(newOpt.Persist(storage))
tc.RaftCluster.opt = newOpt
tc.RaftCluster.SetScheduleConfig(newOpt.GetScheduleConfig())

co = schedule.NewCoordinator(ctx, tc.RaftCluster, hbStreams)
co.Run()
Expand All @@ -3153,7 +3153,7 @@ func TestPersistScheduler(t *testing.T) {
_, newOpt, err = newTestScheduleConfig()
re.NoError(err)
re.NoError(newOpt.Reload(storage))
tc.RaftCluster.opt = newOpt
tc.RaftCluster.SetScheduleConfig(newOpt.GetScheduleConfig())
co = schedule.NewCoordinator(ctx, tc.RaftCluster, hbStreams)
co.Run()
controller = co.GetSchedulersController()
Expand All @@ -3180,7 +3180,7 @@ func TestPersistScheduler(t *testing.T) {
_, newOpt, err = newTestScheduleConfig()
re.NoError(err)
re.NoError(newOpt.Reload(co.GetCluster().GetStorage()))
tc.RaftCluster.opt = newOpt
tc.RaftCluster.SetScheduleConfig(newOpt.GetScheduleConfig())
co = schedule.NewCoordinator(ctx, tc.RaftCluster, hbStreams)

co.Run()
Expand Down Expand Up @@ -3239,7 +3239,7 @@ func TestRemoveScheduler(t *testing.T) {
_, newOpt, err := newTestScheduleConfig()
re.NoError(err)
re.NoError(newOpt.Reload(tc.storage))
tc.RaftCluster.opt = newOpt
tc.RaftCluster.SetScheduleConfig(newOpt.GetScheduleConfig())
co = schedule.NewCoordinator(ctx, tc.RaftCluster, hbStreams)
co.Run()
re.Empty(controller.GetSchedulerNames())
Expand Down
6 changes: 3 additions & 3 deletions server/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ func (suite *leaderServerTestSuite) TestSourceIpForHeaderForwarded() {
err = svr.Run()
suite.NoError(err)

req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("%s/pd/apis/mock/v1/hello", svr.GetAddr()), nil)
req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("%s/pd/apis/mock/v1/hello", svr.GetAddr()), http.NoBody)
suite.NoError(err)
req.Header.Add(apiutil.XForwardedForHeader, "127.0.0.2")
resp, err := http.DefaultClient.Do(req)
Expand Down Expand Up @@ -248,7 +248,7 @@ func (suite *leaderServerTestSuite) TestSourceIpForHeaderXReal() {
err = svr.Run()
suite.NoError(err)

req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("%s/pd/apis/mock/v1/hello", svr.GetAddr()), nil)
req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("%s/pd/apis/mock/v1/hello", svr.GetAddr()), http.NoBody)
suite.NoError(err)
req.Header.Add(apiutil.XRealIPHeader, "127.0.0.2")
resp, err := http.DefaultClient.Do(req)
Expand Down Expand Up @@ -278,7 +278,7 @@ func (suite *leaderServerTestSuite) TestSourceIpForHeaderBoth() {
err = svr.Run()
suite.NoError(err)

req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("%s/pd/apis/mock/v1/hello", svr.GetAddr()), nil)
req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("%s/pd/apis/mock/v1/hello", svr.GetAddr()), http.NoBody)
suite.NoError(err)
req.Header.Add(apiutil.XForwardedForHeader, "127.0.0.2")
req.Header.Add(apiutil.XRealIPHeader, "127.0.0.3")
Expand Down
2 changes: 1 addition & 1 deletion tests/integrations/mcs/keyspace/tso_keyspace_group_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ func (suite *keyspaceGroupTestSuite) tryCreateKeyspaceGroup(request *handlers.Cr
}

func (suite *keyspaceGroupTestSuite) tryGetKeyspaceGroup(id uint32) (*endpoint.KeyspaceGroup, int) {
httpReq, err := http.NewRequest(http.MethodGet, suite.server.GetAddr()+keyspaceGroupsPrefix+fmt.Sprintf("/%d", id), nil)
httpReq, err := http.NewRequest(http.MethodGet, suite.server.GetAddr()+keyspaceGroupsPrefix+fmt.Sprintf("/%d", id), http.NoBody)
suite.NoError(err)
resp, err := suite.dialClient.Do(httpReq)
suite.NoError(err)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1006,7 +1006,7 @@ func (suite *resourceManagerClientTestSuite) TestBasicResourceGroupCURD() {

// Delete all resource groups
for _, g := range groups {
req, err := http.NewRequest(http.MethodDelete, getAddr(i+1)+"/resource-manager/api/v1/config/group/"+g.Name, nil)
req, err := http.NewRequest(http.MethodDelete, getAddr(i+1)+"/resource-manager/api/v1/config/group/"+g.Name, http.NoBody)
re.NoError(err)
resp, err := http.DefaultClient.Do(req)
re.NoError(err)
Expand Down

0 comments on commit f1115f6

Please sign in to comment.