From db7d3c4eb4777fdcdaa13eb7a2033056d0a115cc Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Tue, 14 Jun 2016 17:03:46 -0700 Subject: [PATCH] Update drain test With the rolling update there can be a possibility that the container count matches the update has completely finished yet. The actual bug for the flakiness was fixed with the swarmkit update. Signed-off-by: Tonis Tiigi Upstream-commit: b38408fd0287a5d6eda4f8083b83806faf5d5cbd Component: engine --- .../integration-cli/docker_api_swarm_test.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/components/engine/integration-cli/docker_api_swarm_test.go b/components/engine/integration-cli/docker_api_swarm_test.go index 71465dda77..9b6ba6c685 100644 --- a/components/engine/integration-cli/docker_api_swarm_test.go +++ b/components/engine/integration-cli/docker_api_swarm_test.go @@ -432,14 +432,13 @@ func (s *DockerSwarmSuite) TestApiSwarmNodeDrainPause(c *check.C) { n.Spec.Availability = swarm.NodeAvailabilityActive }) - // change environment variable, resulting balanced rescheduling - d1.updateService(c, d1.getService(c, id), func(s *swarm.Service) { - s.Spec.TaskTemplate.ContainerSpec.Env = []string{"FOO=BAR"} - s.Spec.UpdateConfig = &swarm.UpdateConfig{ - Parallelism: 2, - Delay: 250 * time.Millisecond, - } - }) + instances = 1 + d1.updateService(c, d1.getService(c, id), setInstances(instances)) + + waitAndAssert(c, defaultReconciliationTimeout*2, reducedCheck(sumAsIntegers, d1.checkActiveContainerCount, d2.checkActiveContainerCount), checker.Equals, instances) + + instances = 8 + d1.updateService(c, d1.getService(c, id), setInstances(instances)) // drained node first so we don't get any old containers waitAndAssert(c, defaultReconciliationTimeout, d2.checkActiveContainerCount, checker.GreaterThan, 0) @@ -453,8 +452,6 @@ func (s *DockerSwarmSuite) TestApiSwarmNodeDrainPause(c *check.C) { n.Spec.Availability = swarm.NodeAvailabilityPause }) - c.Skip("known flakiness with scaling up from this state") - instances = 14 d1.updateService(c, d1.getService(c, id), setInstances(instances))