mirror of
https://github.com/docker/docs.git
synced 2026-03-30 07:48:52 +07:00
@@ -59,26 +59,15 @@ func (s *ConsulDiscoveryService) Fetch() ([]*discovery.Entry, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return s.createEntries(pairs)
|
||||
}
|
||||
|
||||
func (s *ConsulDiscoveryService) createEntries(pairs consul.KVPairs) ([]*discovery.Entry, error) {
|
||||
entries := []*discovery.Entry{}
|
||||
if pairs == nil {
|
||||
return entries, nil
|
||||
}
|
||||
|
||||
addrs := []string{}
|
||||
for _, pair := range pairs {
|
||||
if pair.Key == s.prefix {
|
||||
continue
|
||||
}
|
||||
entry, err := discovery.NewEntry(string(pair.Value))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
entries = append(entries, entry)
|
||||
addrs = append(addrs, string(pair.Value))
|
||||
}
|
||||
return entries, nil
|
||||
|
||||
return discovery.CreateEntries(addrs)
|
||||
}
|
||||
|
||||
func (s *ConsulDiscoveryService) Watch(callback discovery.WatchCallback) {
|
||||
|
||||
@@ -3,8 +3,6 @@ package consul
|
||||
import (
|
||||
"testing"
|
||||
|
||||
consul "github.com/armon/consul-api"
|
||||
"github.com/docker/swarm/discovery"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@@ -20,20 +18,3 @@ func TestInitialize(t *testing.T) {
|
||||
assert.Equal(t, discovery.prefix, "path/")
|
||||
|
||||
}
|
||||
|
||||
func TestCreateEntries(t *testing.T) {
|
||||
service := &ConsulDiscoveryService{prefix: "prefix"}
|
||||
|
||||
entries, err := service.createEntries(nil)
|
||||
assert.Equal(t, entries, []*discovery.Entry{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
entries, err = service.createEntries(consul.KVPairs{&consul.KVPair{Value: []byte("127.0.0.1:2375")}, &consul.KVPair{Value: []byte("127.0.0.2:2375")}})
|
||||
assert.Equal(t, len(entries), 2)
|
||||
assert.Equal(t, entries[0].String(), "127.0.0.1:2375")
|
||||
assert.Equal(t, entries[1].String(), "127.0.0.2:2375")
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = service.createEntries(consul.KVPairs{&consul.KVPair{Value: []byte("127.0.0.1")}, &consul.KVPair{Value: []byte("127.0.0.2")}})
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
@@ -76,3 +76,19 @@ func New(rawurl string, heartbeat int) (DiscoveryService, error) {
|
||||
|
||||
return nil, ErrNotSupported
|
||||
}
|
||||
|
||||
func CreateEntries(addrs []string) ([]*Entry, error) {
|
||||
entries := []*Entry{}
|
||||
if addrs == nil {
|
||||
return entries, nil
|
||||
}
|
||||
|
||||
for _, addr := range addrs {
|
||||
entry, err := NewEntry(addr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
entries = append(entries, entry)
|
||||
}
|
||||
return entries, nil
|
||||
}
|
||||
|
||||
@@ -37,3 +37,17 @@ func TestParse(t *testing.T) {
|
||||
assert.Equal(t, scheme, "nodes")
|
||||
assert.Equal(t, uri, "")
|
||||
}
|
||||
|
||||
func TestCreateEntries(t *testing.T) {
|
||||
entries, err := CreateEntries(nil)
|
||||
assert.Equal(t, entries, []*Entry{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
entries, err = CreateEntries([]string{"127.0.0.1:2375", "127.0.0.2:2375"})
|
||||
assert.Equal(t, entries[0].String(), "127.0.0.1:2375")
|
||||
assert.Equal(t, entries[1].String(), "127.0.0.2:2375")
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = CreateEntries([]string{"127.0.0.1", "127.0.0.2"})
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
@@ -57,24 +57,11 @@ func (s *EtcdDiscoveryService) Fetch() ([]*discovery.Entry, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return s.createEntries(resp.Node.Nodes)
|
||||
}
|
||||
|
||||
func (s *EtcdDiscoveryService) createEntries(nodes etcd.Nodes) ([]*discovery.Entry, error) {
|
||||
entries := []*discovery.Entry{}
|
||||
if nodes == nil {
|
||||
return entries, nil
|
||||
addrs := []string{}
|
||||
for _, n := range resp.Node.Nodes {
|
||||
addrs = append(addrs, n.Value)
|
||||
}
|
||||
|
||||
for _, n := range nodes {
|
||||
entry, err := discovery.NewEntry(n.Value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
entries = append(entries, entry)
|
||||
}
|
||||
return entries, nil
|
||||
|
||||
return discovery.CreateEntries(addrs)
|
||||
}
|
||||
|
||||
func (s *EtcdDiscoveryService) Watch(callback discovery.WatchCallback) {
|
||||
|
||||
@@ -3,8 +3,6 @@ package etcd
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/coreos/go-etcd/etcd"
|
||||
"github.com/docker/swarm/discovery"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@@ -19,19 +17,3 @@ func TestInitialize(t *testing.T) {
|
||||
assert.Error(t, discovery.Initialize("127.0.0.1,127.0.0.2,127.0.0.3/path", 0))
|
||||
assert.Equal(t, discovery.path, "/path/")
|
||||
}
|
||||
|
||||
func TestCreateEntries(t *testing.T) {
|
||||
service := &EtcdDiscoveryService{}
|
||||
|
||||
entries, err := service.createEntries(nil)
|
||||
assert.Equal(t, entries, []*discovery.Entry{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
entries, err = service.createEntries(etcd.Nodes{&etcd.Node{Value: "127.0.0.1:2375"}, &etcd.Node{Value: "127.0.0.2:2375"}})
|
||||
assert.Equal(t, entries[0].String(), "127.0.0.1:2375")
|
||||
assert.Equal(t, entries[1].String(), "127.0.0.2:2375")
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = service.createEntries(etcd.Nodes{&etcd.Node{Value: "127.0.0.1"}, &etcd.Node{Value: "127.0.0.2"}})
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
@@ -29,18 +29,7 @@ func (s *FileDiscoveryService) Fetch() ([]*discovery.Entry, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var entries []*discovery.Entry
|
||||
|
||||
for _, line := range strings.Split(string(data), "\n") {
|
||||
if line != "" {
|
||||
entry, err := discovery.NewEntry(line)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
entries = append(entries, entry)
|
||||
}
|
||||
}
|
||||
return entries, nil
|
||||
return discovery.CreateEntries(strings.Split(string(data), "\n"))
|
||||
}
|
||||
|
||||
func (s *FileDiscoveryService) Watch(callback discovery.WatchCallback) {
|
||||
|
||||
@@ -62,16 +62,7 @@ func (s *TokenDiscoveryService) Fetch() ([]*discovery.Entry, error) {
|
||||
return nil, fmt.Errorf("Failed to fetch entries, Discovery service returned %d HTTP status code", resp.StatusCode)
|
||||
}
|
||||
|
||||
var entries []*discovery.Entry
|
||||
for _, addr := range addrs {
|
||||
entry, err := discovery.NewEntry(addr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
entries = append(entries, entry)
|
||||
}
|
||||
|
||||
return entries, nil
|
||||
return discovery.CreateEntries(addrs)
|
||||
}
|
||||
|
||||
func (s *TokenDiscoveryService) Watch(callback discovery.WatchCallback) {
|
||||
|
||||
@@ -79,23 +79,7 @@ func (s *ZkDiscoveryService) Fetch() ([]*discovery.Entry, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return s.createEntries(addrs)
|
||||
}
|
||||
|
||||
func (s *ZkDiscoveryService) createEntries(addrs []string) ([]*discovery.Entry, error) {
|
||||
entries := []*discovery.Entry{}
|
||||
if addrs == nil {
|
||||
return entries, nil
|
||||
}
|
||||
|
||||
for _, addr := range addrs {
|
||||
entry, err := discovery.NewEntry(addr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
entries = append(entries, entry)
|
||||
}
|
||||
return entries, nil
|
||||
return discovery.CreateEntries(addrs)
|
||||
}
|
||||
|
||||
func (s *ZkDiscoveryService) Watch(callback discovery.WatchCallback) {
|
||||
@@ -105,7 +89,7 @@ func (s *ZkDiscoveryService) Watch(callback discovery.WatchCallback) {
|
||||
log.WithField("name", "zk").Debug("Discovery watch aborted")
|
||||
return
|
||||
}
|
||||
entries, err := s.createEntries(addrs)
|
||||
entries, err := discovery.CreateEntries(addrs)
|
||||
if err == nil {
|
||||
callback(entries)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package zookeeper
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/docker/swarm/discovery"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@@ -21,19 +20,3 @@ func TestInitialize(t *testing.T) {
|
||||
assert.Error(t, service.Initialize("127.0.0.1,127.0.0.2,127.0.0.3/path/sub1/sub2", 0))
|
||||
assert.Equal(t, service.fullpath(), "/path/sub1/sub2")
|
||||
}
|
||||
|
||||
func TestCreateEntries(t *testing.T) {
|
||||
service := &ZkDiscoveryService{}
|
||||
|
||||
entries, err := service.createEntries(nil)
|
||||
assert.Equal(t, entries, []*discovery.Entry{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
entries, err = service.createEntries([]string{"127.0.0.1:2375", "127.0.0.2:2375"})
|
||||
assert.Equal(t, entries[0].String(), "127.0.0.1:2375")
|
||||
assert.Equal(t, entries[1].String(), "127.0.0.2:2375")
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = service.createEntries([]string{"127.0.0.1", "127.0.0.2"})
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user