Browse code

Added test for leader proxying

Signed-off-by: Drew Erny <drew.erny@docker.com>

Drew Erny authored on 2016/07/16 05:28:09
Showing 1 changed files
... ...
@@ -446,6 +446,31 @@ func (s *DockerSwarmSuite) TestApiSwarmServicesStateReporting(c *check.C) {
446 446
 	}
447 447
 }
448 448
 
449
+func (s *DockerSwarmSuite) TestApiSwarmLeaderProxy(c *check.C) {
450
+	// add three managers, one of these is leader
451
+	d1 := s.AddDaemon(c, true, true)
452
+	d2 := s.AddDaemon(c, true, true)
453
+	d3 := s.AddDaemon(c, true, true)
454
+
455
+	// start a service by hitting each of the 3 managers
456
+	d1.createService(c, simpleTestService, func(s *swarm.Service) {
457
+		s.Spec.Name = "test1"
458
+	})
459
+	d2.createService(c, simpleTestService, func(s *swarm.Service) {
460
+		s.Spec.Name = "test2"
461
+	})
462
+	d3.createService(c, simpleTestService, func(s *swarm.Service) {
463
+		s.Spec.Name = "test3"
464
+	})
465
+
466
+	// 3 services should be started now, because the requests were proxied to leader
467
+	// query each node and make sure it returns 3 services
468
+	for _, d := range []*SwarmDaemon{d1, d2, d3} {
469
+		services := d.listServices(c)
470
+		c.Assert(services, checker.HasLen, 3)
471
+	}
472
+}
473
+
449 474
 func (s *DockerSwarmSuite) TestApiSwarmRaftQuorum(c *check.C) {
450 475
 	testRequires(c, Network)
451 476
 	d1 := s.AddDaemon(c, true, true)