Skip to content

Commit

Permalink
address comment
Browse files Browse the repository at this point in the history
Signed-off-by: husharp <jinhao.hu@pingcap.com>
  • Loading branch information
HuSharp committed Dec 11, 2023
1 parent 3051f25 commit 6293951
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 15 deletions.
6 changes: 3 additions & 3 deletions client/http/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ const (
Stores = "/pd/api/v1/stores"
StatsRegion = "/pd/api/v1/stats/region"
MembersPrefix = "/pd/api/v1/members"
LeaderPrefix = "/pd/api/v1/leader"
TransferLeader = "/pd/api/v1/leader/transfer"
leaderPrefix = "/pd/api/v1/leader"
transferLeader = "/pd/api/v1/leader/transfer"
// Config
Config = "/pd/api/v1/config"
ClusterVersion = "/pd/api/v1/config/cluster-version"
Expand Down Expand Up @@ -134,7 +134,7 @@ func LabelByStoreID(storeID int64) string {

// TransferLeaderByID returns the path of PD HTTP API to transfer leader by ID.
func TransferLeaderByID(leaderID string) string {
return fmt.Sprintf("%s/%s", TransferLeader, leaderID)
return fmt.Sprintf("%s/%s", transferLeader, leaderID)
}

// ConfigWithTTLSeconds returns the config API with the TTL seconds parameter.
Expand Down
14 changes: 7 additions & 7 deletions client/http/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -468,16 +468,16 @@ func (c *client) GetRegionStatusByKeyRange(ctx context.Context, keyRange *KeyRan

// SetStoreLabels sets the labels of a store.
func (c *client) SetStoreLabels(ctx context.Context, storeID int64, storeLabels map[string]string) error {
jsonBody, err := json.Marshal(storeLabels)
jsonInput, err := json.Marshal(storeLabels)
if err != nil {
return errors.Trace(err)
}
return c.requestWithRetry(ctx, "SetStoreLabel", LabelByStoreID(storeID),
http.MethodPost, bytes.NewBuffer(jsonBody), nil)
http.MethodPost, bytes.NewBuffer(jsonInput), nil)
}

func (c *client) GetMembers(ctx context.Context) (*MembersInfo, error) {
members := MembersInfo{}
var members MembersInfo
err := c.requestWithRetry(ctx,
"GetMembers", MembersPrefix,
http.MethodGet, http.NoBody, &members)
Expand All @@ -490,7 +490,7 @@ func (c *client) GetMembers(ctx context.Context) (*MembersInfo, error) {
// GetLeader gets the leader of PD cluster.
func (c *client) GetLeader(context.Context) (*pdpb.Member, error) {
var leader pdpb.Member
err := c.requestWithRetry(context.Background(), "GetLeader", LeaderPrefix,
err := c.requestWithRetry(context.Background(), "GetLeader", leaderPrefix,
http.MethodGet, http.NoBody, &leader)
if err != nil {
return nil, err
Expand Down Expand Up @@ -719,9 +719,9 @@ func (c *client) GetSchedulers(ctx context.Context) ([]string, error) {
return schedulers, nil
}

// CreateScheduler adds a scheduler to PD cluster.
// CreateScheduler creates a scheduler to PD cluster.
func (c *client) CreateScheduler(ctx context.Context, name string, storeID uint64) error {
data, err := json.Marshal(map[string]interface{}{
inputJSON, err := json.Marshal(map[string]interface{}{
"name": name,
"store_id": storeID,
})
Expand All @@ -730,7 +730,7 @@ func (c *client) CreateScheduler(ctx context.Context, name string, storeID uint6
}
return c.requestWithRetry(ctx,
"CreateScheduler", Schedulers,
http.MethodPost, bytes.NewBuffer(data), nil)
http.MethodPost, bytes.NewBuffer(inputJSON), nil)
}

// AccelerateSchedule accelerates the scheduling of the regions within the given key range.
Expand Down
2 changes: 1 addition & 1 deletion pkg/schedule/handler/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -808,7 +808,7 @@ func (h *Handler) GetSchedulerByStatus(status string, needTS bool) (interface{},
switch status {
case "paused":
pausedSchedulers := make([]string, 0, len(schedulers))
pausedPeriods := []schedulerPausedPeriod{}
var pausedPeriods []schedulerPausedPeriod
for _, scheduler := range schedulers {
paused, err := sc.IsSchedulerPaused(scheduler)
if err != nil {
Expand Down
22 changes: 18 additions & 4 deletions tests/integrations/client/http_client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"testing"
"time"

"github.com/pingcap/failpoint"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
pd "github.com/tikv/pd/client/http"
Expand All @@ -47,6 +48,7 @@ func TestHTTPClientTestSuite(t *testing.T) {

func (suite *httpClientTestSuite) SetupSuite() {
re := suite.Require()
re.NoError(failpoint.Enable("github.com/tikv/pd/pkg/schedule/changeCoordinatorTicker", `return(true)`))
var err error
suite.ctx, suite.cancelFunc = context.WithCancel(context.Background())
suite.cluster, err = tests.NewTestCluster(suite.ctx, 2)
Expand All @@ -58,13 +60,21 @@ func (suite *httpClientTestSuite) SetupSuite() {
leaderServer := suite.cluster.GetLeaderServer()
err = leaderServer.BootstrapCluster()
re.NoError(err)
rc := leaderServer.GetServer().GetRaftCluster()
re.NotNil(rc)
for _, region := range []*core.RegionInfo{
core.NewTestRegionInfo(10, 1, []byte("a1"), []byte("a2")),
core.NewTestRegionInfo(11, 1, []byte("a2"), []byte("a3")),
core.NewTestRegionInfo(10, 1, []byte("a1"), []byte("a2"), core.SetSource(core.Heartbeat)),
core.NewTestRegionInfo(11, 1, []byte("a2"), []byte("a3"), core.SetSource(core.Heartbeat)),
core.NewTestRegionInfo(12, 1, []byte("a3"), []byte("a4"), core.SetSource(core.Heartbeat)),
} {
err := leaderServer.GetRaftCluster().HandleRegionHeartbeat(region)
re.NoError(err)
}
time.Sleep(50 * time.Millisecond)
re.Equal(3, rc.GetStore(1).GetLeaderCount())
time.Sleep(time.Second)
re.True(leaderServer.GetRaftCluster().IsPrepared())

var (
testServers = suite.cluster.GetServers()
endpoints = make([]string, 0, len(testServers))
Expand All @@ -76,6 +86,8 @@ func (suite *httpClientTestSuite) SetupSuite() {
}

func (suite *httpClientTestSuite) TearDownSuite() {
re := suite.Require()
re.NoError(failpoint.Disable("github.com/tikv/pd/pkg/schedule/changeCoordinatorTicker"))
suite.cancelFunc()
suite.client.Close()
suite.cluster.Destroy()
Expand Down Expand Up @@ -389,13 +401,15 @@ func (suite *httpClientTestSuite) TestSchedulers() {
re := suite.Require()
schedulers, err := suite.client.GetSchedulers(suite.ctx)
re.NoError(err)
re.Len(schedulers, 0)
// default schedulers is 5
re.Len(schedulers, 5)

err = suite.client.CreateScheduler(suite.ctx, "evict-leader-scheduler", 1)
re.NoError(err)
schedulers, err = suite.client.GetSchedulers(suite.ctx)
re.NoError(err)
re.Len(schedulers, 1)
// default schedulers is 5
re.Len(schedulers, 6)
}

func (suite *httpClientTestSuite) TestSetStoreLabels() {
Expand Down

0 comments on commit 6293951

Please sign in to comment.