From 4f671ae85e62d0b413f913b1289100ae7cc45972 Mon Sep 17 00:00:00 2001 From: Wonjun Kim Date: Wed, 29 Jun 2016 02:23:35 +0900 Subject: [PATCH 1/2] Fix check code for --cluster-store and --cluster-advertise in config_unix.go Signed-off-by: Wonjun Kim --- daemon/config_unix.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daemon/config_unix.go b/daemon/config_unix.go index e02ad7ff7a..deaf8c6732 100644 --- a/daemon/config_unix.go +++ b/daemon/config_unix.go @@ -123,7 +123,7 @@ func (config *Config) GetAllRuntimes() map[string]types.Runtime { } func (config *Config) isSwarmCompatible() error { - if config.IsValueSet("cluster-store") || config.IsValueSet("cluster-advertise") { + if config.ClusterStore != "" || config.ClusterAdvertise != "" { return fmt.Errorf("--cluster-store and --cluster-advertise daemon configurations are incompatible with swarm mode") } if config.LiveRestore { From d71789828f5c8d2e0f5757f1c003325c4b8a871d Mon Sep 17 00:00:00 2001 From: Wonjun Kim Date: Wed, 29 Jun 2016 06:20:52 +0900 Subject: [PATCH 2/2] Add integration tests for swarm incompatible Signed-off-by: Wonjun Kim --- integration-cli/docker_cli_swarm_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/integration-cli/docker_cli_swarm_test.go b/integration-cli/docker_cli_swarm_test.go index 62e8d7ee2a..7ac5657d66 100644 --- a/integration-cli/docker_cli_swarm_test.go +++ b/integration-cli/docker_cli_swarm_test.go @@ -4,6 +4,7 @@ package main import ( "encoding/json" + "io/ioutil" "time" "github.com/docker/docker/pkg/integration/checker" @@ -134,3 +135,26 @@ func (s *DockerSwarmSuite) TestSwarmInitIPv6(c *check.C) { c.Assert(err, checker.IsNil, check.Commentf("out: %v", out)) c.Assert(out, checker.Contains, "Swarm: active") } + +func (s *DockerSwarmSuite) TestSwarmIncompatibleDaemon(c *check.C) { + // init swarm mode and stop a daemon + d := s.AddDaemon(c, true, true) + info, err := d.info() + c.Assert(err, checker.IsNil) + c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateActive) + c.Assert(d.Stop(), checker.IsNil) + + // start a daemon with --cluster-store and --cluster-advertise + err = d.Start("--cluster-store=consul://consuladdr:consulport/some/path", "--cluster-advertise=1.1.1.1:2375") + c.Assert(err, checker.NotNil) + content, _ := ioutil.ReadFile(d.logFile.Name()) + c.Assert(string(content), checker.Contains, "--cluster-store and --cluster-advertise daemon configurations are incompatible with swarm mode") + + // start a daemon with --live-restore + err = d.Start("--live-restore") + c.Assert(err, checker.NotNil) + content, _ = ioutil.ReadFile(d.logFile.Name()) + c.Assert(string(content), checker.Contains, "--live-restore daemon configuration is incompatible with swarm mode") + // restart for teardown + c.Assert(d.Start(), checker.IsNil) +}