diff --git a/go.mod b/go.mod index bdea6674086..9e8128f4604 100644 --- a/go.mod +++ b/go.mod @@ -40,6 +40,7 @@ require ( github.com/sirupsen/logrus v1.4.2 github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 + github.com/stretchr/testify v1.7.0 github.com/swaggo/http-swagger v0.0.0-20200308142732-58ac5e232fba github.com/swaggo/swag v1.6.6-0.20200529100950-7c765ddd0476 github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965 diff --git a/server/schedule/operator/builder.go b/server/schedule/operator/builder.go index ec749c818ff..85c892a787e 100644 --- a/server/schedule/operator/builder.go +++ b/server/schedule/operator/builder.go @@ -29,11 +29,13 @@ import ( ) // Builder is used to create operators. Usage: -// op, err := NewBuilder(desc, cluster, region). -// RemovePeer(store1). -// AddPeer(peer1). -// SetLeader(store2). -// Build(kind) +// +// op, err := NewBuilder(desc, cluster, region). +// RemovePeer(store1). +// AddPeer(peer1). +// SetLeader(store2). +// Build(kind) +// // The generated Operator will choose the most appropriate execution order // according to various constraints. type Builder struct { @@ -129,13 +131,8 @@ func NewBuilder(desc string, cluster opt.Cluster, region *core.RegionInfo, opts // placement rules var rules []*placement.Rule -<<<<<<< HEAD - if err == nil && cluster.GetOpts().IsPlacementRulesEnabled() { + if err == nil && !b.skipPlacementRulesCheck && cluster.GetOpts().IsPlacementRulesEnabled() { fit := cluster.GetRuleManager().FitRegion(cluster, region) -======= - if err == nil && !b.skipPlacementRulesCheck && b.GetOpts().IsPlacementRulesEnabled() { - fit := b.GetRuleManager().FitRegion(b.GetBasicCluster(), region) ->>>>>>> d8620c975 (operator: allows to skip placement rules checks (#5458)) for _, rf := range fit.RuleFits { rules = append(rules, rf.Rule) } diff --git a/server/schedule/operator/create_operator.go b/server/schedule/operator/create_operator.go index 3cbfe316a12..b1810f593eb 100644 --- a/server/schedule/operator/create_operator.go +++ b/server/schedule/operator/create_operator.go @@ -66,13 +66,8 @@ func CreateTransferLeaderOperator(desc string, cluster opt.Cluster, region *core } // CreateForceTransferLeaderOperator creates an operator that transfers the leader from a source store to a target store forcible. -<<<<<<< HEAD func CreateForceTransferLeaderOperator(desc string, cluster opt.Cluster, region *core.RegionInfo, sourceStoreID uint64, targetStoreID uint64, kind OpKind) (*Operator, error) { - return NewBuilder(desc, cluster, region, SkipOriginJointStateCheck). -======= -func CreateForceTransferLeaderOperator(desc string, ci ClusterInformer, region *core.RegionInfo, sourceStoreID uint64, targetStoreID uint64, kind OpKind) (*Operator, error) { - return NewBuilder(desc, ci, region, SkipOriginJointStateCheck, SkipPlacementRulesCheck). ->>>>>>> d8620c975 (operator: allows to skip placement rules checks (#5458)) + return NewBuilder(desc, cluster, region, SkipOriginJointStateCheck, SkipPlacementRulesCheck). SetLeader(targetStoreID). EnableForceTargetLeader(). Build(kind) @@ -223,13 +218,8 @@ func CreateScatterRegionOperator(desc string, cluster opt.Cluster, origin *core. } // CreateLeaveJointStateOperator creates an operator that let region leave joint state. -<<<<<<< HEAD func CreateLeaveJointStateOperator(desc string, cluster opt.Cluster, origin *core.RegionInfo) (*Operator, error) { - b := NewBuilder(desc, cluster, origin, SkipOriginJointStateCheck) -======= -func CreateLeaveJointStateOperator(desc string, ci ClusterInformer, origin *core.RegionInfo) (*Operator, error) { - b := NewBuilder(desc, ci, origin, SkipOriginJointStateCheck, SkipPlacementRulesCheck) ->>>>>>> d8620c975 (operator: allows to skip placement rules checks (#5458)) + b := NewBuilder(desc, cluster, origin, SkipOriginJointStateCheck, SkipPlacementRulesCheck) if b.err == nil && !core.IsInJointState(origin.GetPeers()...) { b.err = errors.Errorf("cannot build leave joint state operator for region which is not in joint state") diff --git a/server/schedule/operator/create_operator_test.go b/server/schedule/operator/create_operator_test.go index 845a4fffd43..a74fdefa19f 100644 --- a/server/schedule/operator/create_operator_test.go +++ b/server/schedule/operator/create_operator_test.go @@ -16,27 +16,21 @@ package operator import ( "context" -<<<<<<< HEAD - "strings" -======= "encoding/hex" + "strings" "testing" ->>>>>>> d8620c975 (operator: allows to skip placement rules checks (#5458)) . "github.com/pingcap/check" "github.com/pingcap/errors" "github.com/pingcap/kvproto/pkg/metapb" "github.com/pingcap/kvproto/pkg/pdpb" -<<<<<<< HEAD -======= - "github.com/stretchr/testify/require" - "github.com/stretchr/testify/suite" ->>>>>>> d8620c975 (operator: allows to skip placement rules checks (#5458)) "github.com/tikv/pd/pkg/mock/mockcluster" "github.com/tikv/pd/server/config" "github.com/tikv/pd/server/core" "github.com/tikv/pd/server/schedule/placement" "github.com/tikv/pd/server/versioninfo" + + "github.com/stretchr/testify/require" ) var _ = Suite(&testCreateOperatorSuite{})