Introducing temporary errors. Refactored reestablish connection code to use NewClient.

Added reestablish connection test to end to end tests.
This commit is contained in:
Renan DelValle 2018-01-12 17:37:06 -08:00
parent 1c426dd363
commit c7087c1150
No known key found for this signature in database
GPG key ID: C240AD6D6F443EC9
5 changed files with 126 additions and 82 deletions

4
zk.go
View file

@ -48,7 +48,7 @@ func LeaderFromZK(cluster Cluster) (string, error) {
//TODO (rdelvalle): When enabling debugging, change logger here
c, _, err := zk.Connect(endpoints, time.Second*10, func(c *zk.Conn) { c.SetLogger(NoopLogger{}) })
if err != nil {
return false, errors.Wrap(err, "Failed to connect to Zookeeper at "+cluster.ZK)
return false, NewTemporaryError(errors.Wrap(err, "Failed to connect to Zookeeper at "+cluster.ZK))
}
defer c.Close()
@ -73,7 +73,7 @@ func LeaderFromZK(cluster Cluster) (string, error) {
err = json.Unmarshal([]byte(data), serviceInst)
if err != nil {
return false, errors.Wrap(err, "Unable to unmarshall contents of leader")
return false, NewTemporaryError(errors.Wrap(err, "Unable to unmarshall contents of leader"))
}
// Should only be one endpoint