From 592ca23a93579bbb64c44e62e32bf94cf1e9b767 Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Wed, 6 Jan 2016 16:07:04 -0800 Subject: [PATCH] add GetLeader and IsLeader to the leaderelection client --- pkg/client/leaderelection/leaderelection.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkg/client/leaderelection/leaderelection.go b/pkg/client/leaderelection/leaderelection.go index d7031fb8514..4ca7feca98d 100644 --- a/pkg/client/leaderelection/leaderelection.go +++ b/pkg/client/leaderelection/leaderelection.go @@ -166,6 +166,17 @@ func (le *LeaderElector) Run() { close(stop) } +// GetLeader returns the identity of the last observed leader or returns the empty string if +// no leader has yet been observed. +func (le *LeaderElector) GetLeader() string { + return le.observedRecord.HolderIdentity +} + +// IsLeader returns true if the last observed leader was this client else returns false. +func (le *LeaderElector) IsLeader() bool { + return le.observedRecord.HolderIdentity == le.config.Identity +} + // acquire loops calling tryAcquireOrRenew and returns immediately when tryAcquireOrRenew succeeds. func (le *LeaderElector) acquire() { stop := make(chan struct{})