From 2ff1db24a25188d56a556c4444e56170c15d2fd2 Mon Sep 17 00:00:00 2001 From: Tim Vaillancourt Date: Sat, 25 May 2019 15:22:14 +0200 Subject: [PATCH] Add .Master(), .Slaves() and .CkQuorum() funcs for Sentinel --- sentinel.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/sentinel.go b/sentinel.go index 016aa76..328f474 100644 --- a/sentinel.go +++ b/sentinel.go @@ -195,6 +195,30 @@ func (c *SentinelClient) Master(name string) *StringStringMapCmd { return cmd } +// Masters shows a list of monitored masters and their state. +func (c *SentinelClient) Masters() *SliceCmd { + cmd := NewSliceCmd("sentinel", "masters") + c.Process(cmd) + return cmd +} + +// Slaves shows a list of slaves for the specified master and their state. +func (c *SentinelClient) Slaves(name string) *SliceCmd { + cmd := NewSliceCmd("sentinel", "slaves", name) + c.Process(cmd) + return cmd +} + +// CkQuorum checks if the current Sentinel configuration is able to reach the +// quorum needed to failover a master, and the majority needed to authorize the +// failover. This command should be used in monitoring systems to check if a +// Sentinel deployment is ok. +func (c *SentinelClient) CkQuorum(name string) *StringCmd { + cmd := NewStringCmd("sentinel", "ckquorum", name) + c.Process(cmd) + return cmd +} + type sentinelFailover struct { sentinelAddrs []string