diff --git a/pkg/schedule/checker/merge_checker.go b/pkg/schedule/checker/merge_checker.go index 84595a9d13b..839ec74ca2a 100644 --- a/pkg/schedule/checker/merge_checker.go +++ b/pkg/schedule/checker/merge_checker.go @@ -94,7 +94,7 @@ func NewMergeChecker(ctx context.Context, cluster sche.CheckerCluster, conf conf // GetType return MergeChecker's type func (*MergeChecker) GetType() string { - return config.MergeCheckerName.String() + return config.MergeCheckerName.Type() } // RecordRegionSplit put the recently split region into cache. MergeChecker diff --git a/pkg/schedule/checker/replica_checker.go b/pkg/schedule/checker/replica_checker.go index 5998511e94a..c54caa73e0d 100644 --- a/pkg/schedule/checker/replica_checker.go +++ b/pkg/schedule/checker/replica_checker.go @@ -75,7 +75,7 @@ func NewReplicaChecker(cluster sche.CheckerCluster, conf config.CheckerConfigPro // GetType return ReplicaChecker's type func (*ReplicaChecker) GetType() string { - return config.ReplicaCheckerName.String() + return config.ReplicaCheckerName.Type() } // Check verifies a region's replicas, creating an operator.Operator if need. diff --git a/pkg/schedule/checker/rule_checker.go b/pkg/schedule/checker/rule_checker.go index 79f0a99a39a..2f471892973 100644 --- a/pkg/schedule/checker/rule_checker.go +++ b/pkg/schedule/checker/rule_checker.go @@ -107,7 +107,7 @@ func NewRuleChecker(ctx context.Context, cluster sche.CheckerCluster, ruleManage // GetType returns RuleChecker's Type func (*RuleChecker) GetType() string { - return config.RuleCheckerName.String() + return config.RuleCheckerName.Type() } // Check checks if the region matches placement rules and returns Operator to @@ -403,7 +403,7 @@ func (c *RuleChecker) allowLeader(fit *placement.RegionFit, peer *metapb.Peer) b if s == nil { return false } - stateFilter := &filter.StoreStateFilter{ActionScope: "rule_checker", TransferLeader: true} + stateFilter := &filter.StoreStateFilter{ActionScope: c.name.Type(), TransferLeader: true} if !stateFilter.Target(c.cluster.GetCheckerConfig(), s).IsOK() { return false } diff --git a/pkg/schedule/checker/split_checker.go b/pkg/schedule/checker/split_checker.go index 869fea5d76c..6023fb3bc5e 100644 --- a/pkg/schedule/checker/split_checker.go +++ b/pkg/schedule/checker/split_checker.go @@ -51,7 +51,7 @@ func NewSplitChecker(cluster sche.CheckerCluster, ruleManager *placement.RuleMan // GetType returns the checker type. func (*SplitChecker) GetType() string { - return config.SplitCheckerName.String() + return config.SplitCheckerName.Type() } // Check checks whether the region need to split and returns Operator to fix. diff --git a/pkg/schedule/config/name.go b/pkg/schedule/config/name.go index c08f97eb598..16ee99bd3b6 100644 --- a/pkg/schedule/config/name.go +++ b/pkg/schedule/config/name.go @@ -16,8 +16,15 @@ package config type CheckerSchedulerName string -func (c CheckerSchedulerName) String() string { - return string(c) +func (n CheckerSchedulerName) String() string { + return string(n) +} + +func (n CheckerSchedulerName) Type() string { + if t, ok := name2Type[n]; ok { + return t + } + return n.String() } const ( @@ -34,3 +41,12 @@ const ( // SplitCheckerName is the name for split checker. SplitCheckerName CheckerSchedulerName = "split_checker" ) + +var name2Type = map[CheckerSchedulerName]string{ + JointStateCheckerName: "joint-state-checker", + LearnerCheckerName: "learner-checker", + MergeCheckerName: "merge-checker", + ReplicaCheckerName: "replica-checker", + RuleCheckerName: "rule-checker", + SplitCheckerName: "split-checker", +}