aboutsummaryrefslogtreecommitdiff
path: root/go/topology/topology.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/topology/topology.go')
-rw-r--r--go/topology/topology.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/go/topology/topology.go b/go/topology/topology.go
index d5af60cd8..6c5bde304 100644
--- a/go/topology/topology.go
+++ b/go/topology/topology.go
@@ -52,21 +52,26 @@ func NewTopology(id string, confFile string, seq sequence.Sequencer, volumeSizeL
}
func (t *Topology) IsLeader() bool {
- return t.RaftServer == nil || t.Leader() == t.RaftServer.Name()
+ if leader, e := t.Leader(); e == nil {
+ return leader == t.RaftServer.Name()
+ }
+ return false
}
-func (t *Topology) Leader() string {
+func (t *Topology) Leader() (string, error) {
l := ""
if t.RaftServer != nil {
l = t.RaftServer.Leader()
+ } else {
+ return "", errors.New("Raft Server not ready yet!")
}
if l == "" {
// We are a single node cluster, we are the leader
- return t.RaftServer.Name()
+ return t.RaftServer.Name(), errors.New("Raft Server not initialized!")
}
- return l
+ return l, nil
}
func (t *Topology) loadConfiguration(configurationFile string) error {