mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-15 02:57:04 +02:00
62 lines
1.6 KiB
Go
62 lines
1.6 KiB
Go
package consts
|
|
|
|
type ReplicationState uint32
|
|
|
|
const (
|
|
_ ReplicationState = iota
|
|
OldReplicationPrimary
|
|
OldReplicationSecondary
|
|
OldReplicationBootstrapping
|
|
|
|
ReplicationDisabled ReplicationState = 0
|
|
ReplicationPerformancePrimary ReplicationState = 1 << iota
|
|
ReplicationPerformanceSecondary
|
|
ReplicationBootstrapping
|
|
ReplicationDRPrimary
|
|
ReplicationDRSecondary
|
|
)
|
|
|
|
func (r ReplicationState) String() string {
|
|
switch r {
|
|
case ReplicationPerformanceSecondary:
|
|
return "perf-secondary"
|
|
case ReplicationPerformancePrimary:
|
|
return "perf-primary"
|
|
case ReplicationBootstrapping:
|
|
return "bootstrapping"
|
|
case ReplicationDRPrimary:
|
|
return "dr-primary"
|
|
case ReplicationDRSecondary:
|
|
return "dr-secondary"
|
|
}
|
|
|
|
return "disabled"
|
|
}
|
|
|
|
func (r ReplicationState) GetDRString() string {
|
|
switch {
|
|
case r.HasState(ReplicationDRPrimary):
|
|
return ReplicationDRPrimary.String()
|
|
case r.HasState(ReplicationDRSecondary):
|
|
return ReplicationDRSecondary.String()
|
|
default:
|
|
return ReplicationDisabled.String()
|
|
}
|
|
}
|
|
|
|
func (r ReplicationState) GetPerformanceString() string {
|
|
switch {
|
|
case r.HasState(ReplicationPerformancePrimary):
|
|
return ReplicationPerformancePrimary.String()
|
|
case r.HasState(ReplicationPerformanceSecondary):
|
|
return ReplicationPerformanceSecondary.String()
|
|
default:
|
|
return ReplicationDisabled.String()
|
|
}
|
|
}
|
|
|
|
func (r ReplicationState) HasState(flag ReplicationState) bool { return r&flag != 0 }
|
|
func (r *ReplicationState) AddState(flag ReplicationState) { *r |= flag }
|
|
func (r *ReplicationState) ClearState(flag ReplicationState) { *r &= ^flag }
|
|
func (r *ReplicationState) ToggleState(flag ReplicationState) { *r ^= flag }
|