- for i := 0; i < len(redisSlaves); i += 2 {
- if redisSlaves[i].(string) == "ip" {
- state.Fields.Ip = redisSlaves[i+1].(string)
- } else if redisSlaves[i].(string) == "port" {
- state.Fields.Port = redisSlaves[i+1].(string)
- } else if redisSlaves[i].(string) == "flags" {
- state.Fields.Flags = redisSlaves[i+1].(string)
- } else if redisSlaves[i].(string) == "role-reported" {
- state.Fields.Role = redisSlaves[i+1].(string)
- } else if redisSlaves[i].(string) == "master-link-status" {
- state.Fields.MasterLinkStatus = redisSlaves[i+1].(string)
+ for i := 0; i < len(redisReplicas); i += 2 {
+ if redisReplicas[i].(string) == "ip" {
+ state.Fields.Ip = redisReplicas[i+1].(string)
+ } else if redisReplicas[i].(string) == "port" {
+ state.Fields.Port = redisReplicas[i+1].(string)
+ } else if redisReplicas[i].(string) == "flags" {
+ state.Fields.Flags = redisReplicas[i+1].(string)
+ } else if redisReplicas[i].(string) == "role-reported" {
+ state.Fields.Role = redisReplicas[i+1].(string)
+ } else if redisReplicas[i].(string) == "master-link-status" {
+ state.Fields.PrimaryLinkStatus = redisReplicas[i+1].(string)
+ }
+ }
+ return state
+}
+
+func (s *Sentinel) getSentinelsState() (*SentinelsDbState, error) {
+ states := new(SentinelsDbState)
+ states.States = make([]*SentinelDbState, 0)
+
+ redisVal, redisErr := s.Sentinels(s.Cfg.masterName).Result()
+ if redisErr == nil {
+ for _, redisSentinel := range redisVal {
+ sentinelState := readSentinelState(redisSentinel.([]interface{}))
+ states.States = append(states.States, sentinelState)
+ }
+ }
+ states.Err = redisErr
+ return states, redisErr
+}
+
+func readSentinelState(redisSentinels []interface{}) *SentinelDbState {
+ state := new(SentinelDbState)
+ for i := 0; i < len(redisSentinels); i += 2 {
+ if redisSentinels[i].(string) == "ip" {
+ state.Fields.Ip = redisSentinels[i+1].(string)
+ } else if redisSentinels[i].(string) == "port" {
+ state.Fields.Port = redisSentinels[i+1].(string)
+ } else if redisSentinels[i].(string) == "flags" {
+ state.Fields.Flags = redisSentinels[i+1].(string)