From ecd1805a72160259110a9be77bf5dd5e40d07dde Mon Sep 17 00:00:00 2001 From: Drew Erny Date: Fri, 15 Jul 2016 13:28:09 -0700 Subject: [PATCH] Added test for leader proxying Signed-off-by: Drew Erny Upstream-commit: d305aa48ddcd17244ca408c59a40e2ef2392f414 Component: engine --- .../integration-cli/docker_api_swarm_test.go | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/components/engine/integration-cli/docker_api_swarm_test.go b/components/engine/integration-cli/docker_api_swarm_test.go index aa305b6eca..1fd7703166 100644 --- a/components/engine/integration-cli/docker_api_swarm_test.go +++ b/components/engine/integration-cli/docker_api_swarm_test.go @@ -446,6 +446,31 @@ func (s *DockerSwarmSuite) TestApiSwarmServicesStateReporting(c *check.C) { } } +func (s *DockerSwarmSuite) TestApiSwarmLeaderProxy(c *check.C) { + // add three managers, one of these is leader + d1 := s.AddDaemon(c, true, true) + d2 := s.AddDaemon(c, true, true) + d3 := s.AddDaemon(c, true, true) + + // start a service by hitting each of the 3 managers + d1.createService(c, simpleTestService, func(s *swarm.Service) { + s.Spec.Name = "test1" + }) + d2.createService(c, simpleTestService, func(s *swarm.Service) { + s.Spec.Name = "test2" + }) + d3.createService(c, simpleTestService, func(s *swarm.Service) { + s.Spec.Name = "test3" + }) + + // 3 services should be started now, because the requests were proxied to leader + // query each node and make sure it returns 3 services + for _, d := range []*SwarmDaemon{d1, d2, d3} { + services := d.listServices(c) + c.Assert(services, checker.HasLen, 3) + } +} + func (s *DockerSwarmSuite) TestApiSwarmRaftQuorum(c *check.C) { testRequires(c, Network) d1 := s.AddDaemon(c, true, true)