mirror of https://github.com/docker/docs.git
fix panics in etcd and zookeeper + add tests
Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
parent
29bbf0fb27
commit
ecb47032bd
|
|
@ -1,7 +1,7 @@
|
||||||
package consul
|
package consul
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"fmt"
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
@ -25,7 +25,7 @@ func init() {
|
||||||
func (s *ConsulDiscoveryService) Initialize(uris string, heartbeat int) error {
|
func (s *ConsulDiscoveryService) Initialize(uris string, heartbeat int) error {
|
||||||
parts := strings.SplitN(uris, "/", 2)
|
parts := strings.SplitN(uris, "/", 2)
|
||||||
if len(parts) < 2 {
|
if len(parts) < 2 {
|
||||||
return errors.New("missing consul prefix")
|
return fmt.Errorf("invalid format %q, missing <path>", uris)
|
||||||
}
|
}
|
||||||
addr := parts[0]
|
addr := parts[0]
|
||||||
path := parts[1]
|
path := parts[1]
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,13 @@ import (
|
||||||
|
|
||||||
func TestInitialize(t *testing.T) {
|
func TestInitialize(t *testing.T) {
|
||||||
discovery := &ConsulDiscoveryService{}
|
discovery := &ConsulDiscoveryService{}
|
||||||
discovery.Initialize("127.0.0.1:8500/path", 0)
|
|
||||||
|
assert.Equal(t, discovery.Initialize("127.0.0.1", 0).Error(), "invalid format \"127.0.0.1\", missing <path>")
|
||||||
|
|
||||||
|
assert.Error(t, discovery.Initialize("127.0.0.1/path", 0))
|
||||||
assert.Equal(t, discovery.prefix, "path/")
|
assert.Equal(t, discovery.prefix, "path/")
|
||||||
|
|
||||||
|
assert.Error(t, discovery.Initialize("127.0.0.1,127.0.0.2,127.0.0.3/path", 0))
|
||||||
|
assert.Equal(t, discovery.prefix, "path/")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package etcd
|
package etcd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
|
@ -27,6 +28,11 @@ func (s *EtcdDiscoveryService) Initialize(uris string, heartbeat int) error {
|
||||||
ips = strings.Split(parts[0], ",")
|
ips = strings.Split(parts[0], ",")
|
||||||
machines []string
|
machines []string
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if len(parts) != 2 {
|
||||||
|
return fmt.Errorf("invalid format %q, missing <path>", uris)
|
||||||
|
}
|
||||||
|
|
||||||
for _, ip := range ips {
|
for _, ip := range ips {
|
||||||
machines = append(machines, "http://"+ip)
|
machines = append(machines, "http://"+ip)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ import (
|
||||||
|
|
||||||
func TestInitialize(t *testing.T) {
|
func TestInitialize(t *testing.T) {
|
||||||
discovery := &EtcdDiscoveryService{}
|
discovery := &EtcdDiscoveryService{}
|
||||||
|
|
||||||
|
assert.Equal(t, discovery.Initialize("127.0.0.1", 0).Error(), "invalid format \"127.0.0.1\", missing <path>")
|
||||||
|
|
||||||
assert.Error(t, discovery.Initialize("127.0.0.1/path", 0))
|
assert.Error(t, discovery.Initialize("127.0.0.1/path", 0))
|
||||||
assert.Equal(t, discovery.path, "/path/")
|
assert.Equal(t, discovery.path, "/path/")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package zookeeper
|
package zookeeper
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
@ -28,6 +29,10 @@ func (s *ZkDiscoveryService) Initialize(uris string, heartbeat int) error {
|
||||||
ips = strings.Split(parts[0], ",")
|
ips = strings.Split(parts[0], ",")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if len(parts) != 2 {
|
||||||
|
return fmt.Errorf("invalid format %q, missing <path>", uris)
|
||||||
|
}
|
||||||
|
|
||||||
conn, _, err := zk.Connect(ips, time.Second)
|
conn, _, err := zk.Connect(ips, time.Second)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@ import (
|
||||||
|
|
||||||
func TestInitialize(t *testing.T) {
|
func TestInitialize(t *testing.T) {
|
||||||
service := &ZkDiscoveryService{}
|
service := &ZkDiscoveryService{}
|
||||||
|
|
||||||
|
assert.Equal(t, service.Initialize("127.0.0.1", 0).Error(), "invalid format \"127.0.0.1\", missing <path>")
|
||||||
|
|
||||||
assert.Error(t, service.Initialize("127.0.0.1/path", 0))
|
assert.Error(t, service.Initialize("127.0.0.1/path", 0))
|
||||||
assert.Equal(t, service.path, "/path")
|
assert.Equal(t, service.path, "/path")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue