@@ -16,18 +16,10 @@ import (
16
16
//
17
17
func Failover (slaves []* Server ) ([]* Server , error ) {
18
18
// First check slaves use gtid or not
19
- gtidMode , err := slaves [ 0 ]. GTIDUsed ( )
19
+ gtidMode , err := CheckGTIDMode ( slaves )
20
20
if err != nil {
21
21
return nil , err
22
22
}
23
- for i := 1 ; i < len (slaves ); i ++ {
24
- mode , err := slaves [i ].GTIDUsed ()
25
- if err != nil {
26
- return nil , err
27
- } else if gtidMode != mode {
28
- return nil , fmt .Errorf ("%s use GTID %s, but %s use GTID %s" , slaves [0 ].Addr , gtidMode , slaves [i ].Addr , mode )
29
- }
30
- }
31
23
32
24
var h Handler
33
25
@@ -63,3 +55,21 @@ func Failover(slaves []*Server) ([]*Server, error) {
63
55
64
56
return slaves , nil
65
57
}
58
+
59
+ // Check slaves have same GTID used or not
60
+ func CheckGTIDMode (slaves []* Server ) (string , error ) {
61
+ gtidMode , err := slaves [0 ].GTIDMode ()
62
+ if err != nil {
63
+ return GTIDModeOff , err
64
+ }
65
+ for i := 1 ; i < len (slaves ); i ++ {
66
+ mode , err := slaves [i ].GTIDMode ()
67
+ if err != nil {
68
+ return GTIDModeOff , err
69
+ } else if gtidMode != mode {
70
+ return GTIDModeOff , fmt .Errorf ("%s use GTID %s, but %s use GTID %s" , slaves [0 ].Addr , gtidMode , slaves [i ].Addr , mode )
71
+ }
72
+ }
73
+
74
+ return gtidMode , nil
75
+ }
0 commit comments