Signed-off-by: Drew Erny <drew.erny@docker.com>
| ... | ... |
@@ -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) |