From f4929786387f795f31488f41f0038a1524947770 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Mon, 20 Jun 2016 16:36:13 -0700 Subject: [PATCH] Add test for force-new-cluster Signed-off-by: Tonis Tiigi (cherry picked from commit 1acb8ef82572c52994b1ff00fe5c86aac53be4b8) --- integration-cli/docker_api_swarm_test.go | 35 +++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/integration-cli/docker_api_swarm_test.go b/integration-cli/docker_api_swarm_test.go index 107930bfb3..7b8d0431ff 100644 --- a/integration-cli/docker_api_swarm_test.go +++ b/integration-cli/docker_api_swarm_test.go @@ -295,7 +295,7 @@ func (s *DockerSwarmSuite) TestApiSwarmPromoteDemote(c *check.C) { break } if i > 100 { - c.Errorf("node did not turn into manager") + c.Errorf("node did not turn into worker") } else { break } @@ -710,6 +710,39 @@ func (s *DockerSwarmSuite) TestApiSwarmInvalidAddress(c *check.C) { c.Assert(status, checker.Equals, http.StatusInternalServerError) } +func (s *DockerSwarmSuite) TestApiSwarmForceNewCluster(c *check.C) { + d1 := s.AddDaemon(c, true, true) + d2 := s.AddDaemon(c, true, true) + + instances := 2 + id := d1.createService(c, simpleTestService, setInstances(instances)) + waitAndAssert(c, defaultReconciliationTimeout, reducedCheck(sumAsIntegers, d1.checkActiveContainerCount, d2.checkActiveContainerCount), checker.Equals, instances) + + c.Assert(d2.Stop(), checker.IsNil) + + time.Sleep(5 * time.Second) + + c.Assert(d1.Init(swarm.InitRequest{ + ForceNewCluster: true, + Spec: swarm.Spec{ + AcceptancePolicy: autoAcceptPolicy, + }, + }), checker.IsNil) + + waitAndAssert(c, defaultReconciliationTimeout, d1.checkActiveContainerCount, checker.Equals, instances) + + d3 := s.AddDaemon(c, true, true) + info, err := d3.info() + c.Assert(err, checker.IsNil) + c.Assert(info.ControlAvailable, checker.Equals, true) + c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateActive) + + instances = 4 + d3.updateService(c, d3.getService(c, id), setInstances(instances)) + + waitAndAssert(c, defaultReconciliationTimeout, reducedCheck(sumAsIntegers, d1.checkActiveContainerCount, d3.checkActiveContainerCount), checker.Equals, instances) +} + func simpleTestService(s *swarm.Service) { var ureplicas uint64 ureplicas = 1