diff --git a/server/api/label_test.go b/server/api/label_test.go index 9acddae8436..c44d46b4ed1 100644 --- a/server/api/label_test.go +++ b/server/api/label_test.go @@ -21,7 +21,14 @@ import ( . "github.com/pingcap/check" "github.com/pingcap/kvproto/pkg/metapb" "github.com/pingcap/kvproto/pkg/pdpb" +<<<<<<< HEAD tu "github.com/tikv/pd/pkg/testutil" +======= + "github.com/stretchr/testify/suite" + "github.com/tikv/pd/pkg/core" + "github.com/tikv/pd/pkg/response" + tu "github.com/tikv/pd/pkg/utils/testutil" +>>>>>>> c8ad186c3 (server: skip the engine key when match store label (#8486)) "github.com/tikv/pd/server" "github.com/tikv/pd/server/config" ) @@ -264,12 +271,37 @@ func (s *testStrictlyLabelsStoreSuite) TestStoreMatch(c *C) { valid: false, expectError: "key matching the label was not found", }, + { + store: &metapb.Store{ + Id: 3, + Address: "tiflash1", + State: metapb.StoreState_Up, + Labels: []*metapb.StoreLabel{ + { + Key: "zone", + Value: "us-west-1", + }, + { + Key: "disk", + Value: "ssd", + }, + { + Key: core.EngineKey, + Value: core.EngineTiFlash, + }, + }, + Version: "3.0.0", + }, + valid: true, + expectError: "placement rules is disabled", + }, } for _, t := range cases { resp, err := s.grpcSvr.PutStore(context.Background(), &pdpb.PutStoreRequest{ Header: &pdpb.RequestHeader{ClusterId: s.svr.ClusterID()}, Store: &metapb.Store{ +<<<<<<< HEAD Id: t.store.Id, Address: fmt.Sprintf("tikv%d", t.store.Id), State: t.store.State, @@ -279,6 +311,22 @@ func (s *testStrictlyLabelsStoreSuite) TestStoreMatch(c *C) { }) if t.valid { c.Assert(err, IsNil) +======= + Id: testCase.store.Id, + Address: testCase.store.Address, + State: testCase.store.State, + Labels: testCase.store.Labels, + Version: testCase.store.Version, + }, + }) + if testCase.store.Address == "tiflash1" { + re.Contains(resp.GetHeader().GetError().String(), testCase.expectError) + continue + } + if testCase.valid { + re.NoError(err) + re.Nil(resp.GetHeader().GetError()) +>>>>>>> c8ad186c3 (server: skip the engine key when match store label (#8486)) } else { c.Assert(resp.GetHeader().GetError(), NotNil) } @@ -290,11 +338,19 @@ func (s *testStrictlyLabelsStoreSuite) TestStoreMatch(c *C) { resp, err := s.grpcSvr.PutStore(context.Background(), &pdpb.PutStoreRequest{ Header: &pdpb.RequestHeader{ClusterId: s.svr.ClusterID()}, Store: &metapb.Store{ +<<<<<<< HEAD Id: t.store.Id, Address: fmt.Sprintf("tikv%d", t.store.Id), State: t.store.State, Labels: t.store.Labels, Version: t.store.Version, +======= + Id: testCase.store.Id, + Address: testCase.store.Address, + State: testCase.store.State, + Labels: testCase.store.Labels, + Version: testCase.store.Version, +>>>>>>> c8ad186c3 (server: skip the engine key when match store label (#8486)) }, }) if t.valid { diff --git a/server/cluster/cluster.go b/server/cluster/cluster.go index efc6be2ae81..a97d4408536 100644 --- a/server/cluster/cluster.go +++ b/server/cluster/cluster.go @@ -1130,6 +1130,9 @@ func (c *RaftCluster) checkStoreLabels(s *core.StoreInfo) error { } for _, label := range s.GetLabels() { key := label.GetKey() + if key == core.EngineKey { + continue + } if _, ok := keysSet[key]; !ok { log.Warn("not found the key match with the store label", zap.Stringer("store", s.GetMeta()),