1package consts 2 3type ReplicationState uint32 4 5const ( 6 _ ReplicationState = iota 7 OldReplicationPrimary 8 OldReplicationSecondary 9 OldReplicationBootstrapping 10 // Don't add anything here. Adding anything to this Old block would cause 11 // the rest of the values to change below. This was done originally to 12 // ensure no overlap between old and new values. 13 14 ReplicationUnknown ReplicationState = 0 15 ReplicationPerformancePrimary ReplicationState = 1 << iota 16 ReplicationPerformanceSecondary 17 OldSplitReplicationBootstrapping 18 ReplicationDRPrimary 19 ReplicationDRSecondary 20 ReplicationPerformanceBootstrapping 21 ReplicationDRBootstrapping 22 ReplicationPerformanceDisabled 23 ReplicationDRDisabled 24) 25 26func (r ReplicationState) string() string { 27 switch r { 28 case ReplicationPerformanceSecondary: 29 return "secondary" 30 case ReplicationPerformancePrimary: 31 return "primary" 32 case ReplicationPerformanceBootstrapping: 33 return "bootstrapping" 34 case ReplicationPerformanceDisabled: 35 return "disabled" 36 case ReplicationDRPrimary: 37 return "primary" 38 case ReplicationDRSecondary: 39 return "secondary" 40 case ReplicationDRBootstrapping: 41 return "bootstrapping" 42 case ReplicationDRDisabled: 43 return "disabled" 44 } 45 46 return "unknown" 47} 48 49func (r ReplicationState) GetDRString() string { 50 switch { 51 case r.HasState(ReplicationDRBootstrapping): 52 return ReplicationDRBootstrapping.string() 53 case r.HasState(ReplicationDRPrimary): 54 return ReplicationDRPrimary.string() 55 case r.HasState(ReplicationDRSecondary): 56 return ReplicationDRSecondary.string() 57 case r.HasState(ReplicationDRDisabled): 58 return ReplicationDRDisabled.string() 59 default: 60 return "unknown" 61 } 62} 63 64func (r ReplicationState) GetPerformanceString() string { 65 switch { 66 case r.HasState(ReplicationPerformanceBootstrapping): 67 return ReplicationPerformanceBootstrapping.string() 68 case r.HasState(ReplicationPerformancePrimary): 69 return ReplicationPerformancePrimary.string() 70 case r.HasState(ReplicationPerformanceSecondary): 71 return ReplicationPerformanceSecondary.string() 72 case r.HasState(ReplicationPerformanceDisabled): 73 return ReplicationPerformanceDisabled.string() 74 default: 75 return "unknown" 76 } 77} 78 79func (r ReplicationState) HasState(flag ReplicationState) bool { return r&flag != 0 } 80func (r *ReplicationState) AddState(flag ReplicationState) { *r |= flag } 81func (r *ReplicationState) ClearState(flag ReplicationState) { *r &= ^flag } 82func (r *ReplicationState) ToggleState(flag ReplicationState) { *r ^= flag } 83