Enhancing --cluster-advertise to support <interface-name>
--cluster-advertise daemon option is enahanced to support <interface-name> in addition to <ip-address> in order to amke it automation friendly using docker-machine. Signed-off-by: Madhu Venugopal <madhu@docker.com> Upstream-commit: 3e7db73b99498d037b43eb59972a6360cfbc971b Component: engine
This commit is contained in:
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
|
||||
"github.com/docker/docker/pkg/integration/checker"
|
||||
"github.com/docker/docker/utils"
|
||||
@ -42,11 +43,57 @@ func (s *DockerSuite) TestInfoDiscoveryBackend(c *check.C) {
|
||||
|
||||
d := NewDaemon(c)
|
||||
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
||||
err := d.Start(fmt.Sprintf("--cluster-store=%s", discoveryBackend), "--cluster-advertise=foo")
|
||||
discoveryAdvertise := "1.1.1.1:2375"
|
||||
err := d.Start(fmt.Sprintf("--cluster-store=%s", discoveryBackend), fmt.Sprintf("--cluster-advertise=%s", discoveryAdvertise))
|
||||
c.Assert(err, checker.IsNil)
|
||||
defer d.Stop()
|
||||
|
||||
out, err := d.Cmd("info")
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(out, checker.Contains, fmt.Sprintf("Cluster store: %s\n", discoveryBackend))
|
||||
c.Assert(out, checker.Contains, fmt.Sprintf("Cluster advertise: %s\n", discoveryAdvertise))
|
||||
}
|
||||
|
||||
// TestInfoDiscoveryInvalidAdvertise verifies that a daemon run with
|
||||
// an invalid `--cluster-advertise` configuration
|
||||
func (s *DockerSuite) TestInfoDiscoveryInvalidAdvertise(c *check.C) {
|
||||
testRequires(c, SameHostDaemon)
|
||||
|
||||
d := NewDaemon(c)
|
||||
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
||||
|
||||
// --cluster-advertise with an invalid string is an error
|
||||
err := d.Start(fmt.Sprintf("--cluster-store=%s", discoveryBackend), "--cluster-advertise=invalid")
|
||||
c.Assert(err, checker.Not(checker.IsNil))
|
||||
|
||||
// --cluster-advertise without --cluster-store is also an error
|
||||
err = d.Start("--cluster-advertise=1.1.1.1:2375")
|
||||
c.Assert(err, checker.Not(checker.IsNil))
|
||||
}
|
||||
|
||||
// TestInfoDiscoveryAdvertiseInterfaceName verifies that a daemon run with `--cluster-advertise`
|
||||
// configured with interface name properly show the advertise ip-address in info output.
|
||||
func (s *DockerSuite) TestInfoDiscoveryAdvertiseInterfaceName(c *check.C) {
|
||||
testRequires(c, SameHostDaemon)
|
||||
|
||||
d := NewDaemon(c)
|
||||
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
||||
discoveryAdvertise := "eth0"
|
||||
|
||||
err := d.Start(fmt.Sprintf("--cluster-store=%s", discoveryBackend), fmt.Sprintf("--cluster-advertise=%s:2375", discoveryAdvertise))
|
||||
c.Assert(err, checker.IsNil)
|
||||
defer d.Stop()
|
||||
|
||||
iface, err := net.InterfaceByName(discoveryAdvertise)
|
||||
c.Assert(err, checker.IsNil)
|
||||
addrs, err := iface.Addrs()
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(len(addrs), checker.GreaterThan, 0)
|
||||
ip, _, err := net.ParseCIDR(addrs[0].String())
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
out, err := d.Cmd("info")
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(out, checker.Contains, fmt.Sprintf("Cluster store: %s\n", discoveryBackend))
|
||||
c.Assert(out, checker.Contains, fmt.Sprintf("Cluster advertise: %s:2375\n", ip.String()))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user