@@ -641,85 +641,29 @@ func (oc *OperatorController) SendScheduleCommand(region *core.RegionInfo, step
641641 // The newly added peer is pending.
642642 return
643643 }
644- cmd = & pdpb.RegionHeartbeatResponse {
645- ChangePeer : & pdpb.ChangePeer {
646- ChangeType : eraftpb .ConfChangeType_AddNode ,
647- Peer : & metapb.Peer {
648- Id : st .PeerID ,
649- StoreId : st .ToStore ,
650- Role : metapb .PeerRole_Voter ,
651- },
652- },
653- }
644+ cmd = addNode (st .PeerID , st .ToStore )
654645 case operator.AddLightPeer :
655646 if region .GetStorePeer (st .ToStore ) != nil {
656647 // The newly added peer is pending.
657648 return
658649 }
659- cmd = & pdpb.RegionHeartbeatResponse {
660- ChangePeer : & pdpb.ChangePeer {
661- ChangeType : eraftpb .ConfChangeType_AddNode ,
662- Peer : & metapb.Peer {
663- Id : st .PeerID ,
664- StoreId : st .ToStore ,
665- Role : metapb .PeerRole_Voter ,
666- },
667- },
668- }
650+ cmd = addNode (st .PeerID , st .ToStore )
669651 case operator.AddLearner :
670652 if region .GetStorePeer (st .ToStore ) != nil {
671653 // The newly added peer is pending.
672654 return
673655 }
674- cmd = & pdpb.RegionHeartbeatResponse {
675- ChangePeer : & pdpb.ChangePeer {
676- ChangeType : eraftpb .ConfChangeType_AddLearnerNode ,
677- Peer : & metapb.Peer {
678- Id : st .PeerID ,
679- StoreId : st .ToStore ,
680- Role : metapb .PeerRole_Learner ,
681- },
682- },
683- }
656+ cmd = addLearnerNode (st .PeerID , st .ToStore )
684657 case operator.AddLightLearner :
685658 if region .GetStorePeer (st .ToStore ) != nil {
686659 // The newly added peer is pending.
687660 return
688661 }
689- cmd = & pdpb.RegionHeartbeatResponse {
690- ChangePeer : & pdpb.ChangePeer {
691- ChangeType : eraftpb .ConfChangeType_AddLearnerNode ,
692- Peer : & metapb.Peer {
693- Id : st .PeerID ,
694- StoreId : st .ToStore ,
695- Role : metapb .PeerRole_Learner ,
696- },
697- },
698- }
662+ cmd = addLearnerNode (st .PeerID , st .ToStore )
699663 case operator.PromoteLearner :
700- cmd = & pdpb.RegionHeartbeatResponse {
701- ChangePeer : & pdpb.ChangePeer {
702- // reuse AddNode type
703- ChangeType : eraftpb .ConfChangeType_AddNode ,
704- Peer : & metapb.Peer {
705- Id : st .PeerID ,
706- StoreId : st .ToStore ,
707- Role : metapb .PeerRole_Voter ,
708- },
709- },
710- }
664+ cmd = addNode (st .PeerID , st .ToStore )
711665 case operator.DemoteFollower :
712- cmd = & pdpb.RegionHeartbeatResponse {
713- ChangePeer : & pdpb.ChangePeer {
714- // reuse AddLearnerNode type
715- ChangeType : eraftpb .ConfChangeType_AddLearnerNode ,
716- Peer : & metapb.Peer {
717- Id : st .PeerID ,
718- StoreId : st .ToStore ,
719- Role : metapb .PeerRole_Learner ,
720- },
721- },
722- }
666+ cmd = addLearnerNode (st .PeerID , st .ToStore )
723667 case operator.RemovePeer :
724668 cmd = & pdpb.RegionHeartbeatResponse {
725669 ChangePeer : & pdpb.ChangePeer {
@@ -758,6 +702,32 @@ func (oc *OperatorController) SendScheduleCommand(region *core.RegionInfo, step
758702 oc .hbStreams .SendMsg (region , cmd )
759703}
760704
705+ func addNode (id , storeID uint64 ) * pdpb.RegionHeartbeatResponse {
706+ return & pdpb.RegionHeartbeatResponse {
707+ ChangePeer : & pdpb.ChangePeer {
708+ ChangeType : eraftpb .ConfChangeType_AddNode ,
709+ Peer : & metapb.Peer {
710+ Id : id ,
711+ StoreId : storeID ,
712+ Role : metapb .PeerRole_Voter ,
713+ },
714+ },
715+ }
716+ }
717+
718+ func addLearnerNode (id , storeID uint64 ) * pdpb.RegionHeartbeatResponse {
719+ return & pdpb.RegionHeartbeatResponse {
720+ ChangePeer : & pdpb.ChangePeer {
721+ ChangeType : eraftpb .ConfChangeType_AddLearnerNode ,
722+ Peer : & metapb.Peer {
723+ Id : id ,
724+ StoreId : storeID ,
725+ Role : metapb .PeerRole_Learner ,
726+ },
727+ },
728+ }
729+ }
730+
761731func (oc * OperatorController ) pushHistory (op * operator.Operator ) {
762732 oc .Lock ()
763733 defer oc .Unlock ()
0 commit comments