|
@@ -38,7 +38,7 @@ func (s *DockerSwarmSuite) TestApiSwarmInit(c *check.C) {
|
|
|
c.Assert(info.ControlAvailable, checker.Equals, false)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateInactive)
|
|
|
|
|
|
- c.Assert(d2.Join(d1.listenAddr, "", "", false), checker.IsNil)
|
|
|
+ c.Assert(d2.Join(swarm.JoinRequest{RemoteAddrs: []string{d1.listenAddr}}), checker.IsNil)
|
|
|
|
|
|
info, err = d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
@@ -76,10 +76,19 @@ func (s *DockerSwarmSuite) TestApiSwarmManualAcceptanceSecret(c *check.C) {
|
|
|
|
|
|
func (s *DockerSwarmSuite) testAPISwarmManualAcceptance(c *check.C, secret string) {
|
|
|
d1 := s.AddDaemon(c, false, false)
|
|
|
- c.Assert(d1.Init(map[string]bool{}, secret), checker.IsNil)
|
|
|
+ c.Assert(d1.Init(swarm.InitRequest{
|
|
|
+ Spec: swarm.Spec{
|
|
|
+ AcceptancePolicy: swarm.AcceptancePolicy{
|
|
|
+ Policies: []swarm.Policy{
|
|
|
+ {Role: swarm.NodeRoleWorker, Secret: &secret},
|
|
|
+ {Role: swarm.NodeRoleManager, Secret: &secret},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }), checker.IsNil)
|
|
|
|
|
|
d2 := s.AddDaemon(c, false, false)
|
|
|
- err := d2.Join(d1.listenAddr, "", "", false)
|
|
|
+ err := d2.Join(swarm.JoinRequest{RemoteAddrs: []string{d1.listenAddr}})
|
|
|
c.Assert(err, checker.NotNil)
|
|
|
if secret == "" {
|
|
|
c.Assert(err.Error(), checker.Contains, "needs to be accepted")
|
|
@@ -97,7 +106,7 @@ func (s *DockerSwarmSuite) testAPISwarmManualAcceptance(c *check.C, secret strin
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateInactive)
|
|
|
}
|
|
|
d3 := s.AddDaemon(c, false, false)
|
|
|
- c.Assert(d3.Join(d1.listenAddr, secret, "", false), checker.NotNil)
|
|
|
+ c.Assert(d3.Join(swarm.JoinRequest{Secret: secret, RemoteAddrs: []string{d1.listenAddr}}), checker.NotNil)
|
|
|
info, err := d3.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStatePending)
|
|
@@ -120,26 +129,34 @@ func (s *DockerSwarmSuite) testAPISwarmManualAcceptance(c *check.C, secret strin
|
|
|
|
|
|
func (s *DockerSwarmSuite) TestApiSwarmSecretAcceptance(c *check.C) {
|
|
|
d1 := s.AddDaemon(c, false, false)
|
|
|
- aa := make(map[string]bool)
|
|
|
- aa["worker"] = true
|
|
|
- c.Assert(d1.Init(aa, "foobar"), checker.IsNil)
|
|
|
+ secret := "foobar"
|
|
|
+ c.Assert(d1.Init(swarm.InitRequest{
|
|
|
+ Spec: swarm.Spec{
|
|
|
+ AcceptancePolicy: swarm.AcceptancePolicy{
|
|
|
+ Policies: []swarm.Policy{
|
|
|
+ {Role: swarm.NodeRoleWorker, Autoaccept: true, Secret: &secret},
|
|
|
+ {Role: swarm.NodeRoleManager, Secret: &secret},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }), checker.IsNil)
|
|
|
|
|
|
d2 := s.AddDaemon(c, false, false)
|
|
|
- err := d2.Join(d1.listenAddr, "", "", false)
|
|
|
+ err := d2.Join(swarm.JoinRequest{RemoteAddrs: []string{d1.listenAddr}})
|
|
|
c.Assert(err, checker.NotNil)
|
|
|
c.Assert(err.Error(), checker.Contains, "secret token is necessary")
|
|
|
info, err := d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateInactive)
|
|
|
|
|
|
- err = d2.Join(d1.listenAddr, "foobaz", "", false)
|
|
|
+ err = d2.Join(swarm.JoinRequest{Secret: "foobaz", RemoteAddrs: []string{d1.listenAddr}})
|
|
|
c.Assert(err, checker.NotNil)
|
|
|
c.Assert(err.Error(), checker.Contains, "secret token is necessary")
|
|
|
info, err = d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateInactive)
|
|
|
|
|
|
- c.Assert(d2.Join(d1.listenAddr, "foobar", "", false), checker.IsNil)
|
|
|
+ c.Assert(d2.Join(swarm.JoinRequest{Secret: "foobar", RemoteAddrs: []string{d1.listenAddr}}), checker.IsNil)
|
|
|
info, err = d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateActive)
|
|
@@ -156,14 +173,14 @@ func (s *DockerSwarmSuite) TestApiSwarmSecretAcceptance(c *check.C) {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- err = d2.Join(d1.listenAddr, "foobar", "", false)
|
|
|
+ err = d2.Join(swarm.JoinRequest{Secret: "foobar", RemoteAddrs: []string{d1.listenAddr}})
|
|
|
c.Assert(err, checker.NotNil)
|
|
|
c.Assert(err.Error(), checker.Contains, "secret token is necessary")
|
|
|
info, err = d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateInactive)
|
|
|
|
|
|
- c.Assert(d2.Join(d1.listenAddr, "foobaz", "", false), checker.IsNil)
|
|
|
+ c.Assert(d2.Join(swarm.JoinRequest{Secret: "foobaz", RemoteAddrs: []string{d1.listenAddr}}), checker.IsNil)
|
|
|
info, err = d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateActive)
|
|
@@ -182,14 +199,14 @@ func (s *DockerSwarmSuite) TestApiSwarmSecretAcceptance(c *check.C) {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- err = d2.Join(d1.listenAddr, "", "", false)
|
|
|
+ err = d2.Join(swarm.JoinRequest{RemoteAddrs: []string{d1.listenAddr}})
|
|
|
c.Assert(err, checker.NotNil)
|
|
|
c.Assert(err.Error(), checker.Contains, "secret token is necessary")
|
|
|
info, err = d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateInactive)
|
|
|
|
|
|
- c.Assert(d2.Join(d1.listenAddr, "foobaz", "", false), checker.IsNil)
|
|
|
+ c.Assert(d2.Join(swarm.JoinRequest{Secret: "foobaz", RemoteAddrs: []string{d1.listenAddr}}), checker.IsNil)
|
|
|
info, err = d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateActive)
|
|
@@ -206,7 +223,7 @@ func (s *DockerSwarmSuite) TestApiSwarmSecretAcceptance(c *check.C) {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- c.Assert(d2.Join(d1.listenAddr, "", "", false), checker.IsNil)
|
|
|
+ c.Assert(d2.Join(swarm.JoinRequest{RemoteAddrs: []string{d1.listenAddr}}), checker.IsNil)
|
|
|
info, err = d2.info()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
c.Assert(info.LocalNodeState, checker.Equals, swarm.LocalNodeStateActive)
|
|
@@ -220,17 +237,26 @@ func (s *DockerSwarmSuite) TestApiSwarmSecretAcceptance(c *check.C) {
|
|
|
func (s *DockerSwarmSuite) TestApiSwarmCAHash(c *check.C) {
|
|
|
d1 := s.AddDaemon(c, true, true)
|
|
|
d2 := s.AddDaemon(c, false, false)
|
|
|
- err := d2.Join(d1.listenAddr, "", "foobar", false)
|
|
|
+ err := d2.Join(swarm.JoinRequest{CACertHash: "foobar", RemoteAddrs: []string{d1.listenAddr}})
|
|
|
c.Assert(err, checker.NotNil)
|
|
|
c.Assert(err.Error(), checker.Contains, "invalid checksum digest format")
|
|
|
|
|
|
c.Assert(len(d1.CACertHash), checker.GreaterThan, 0)
|
|
|
- c.Assert(d2.Join(d1.listenAddr, "", d1.CACertHash, false), checker.IsNil)
|
|
|
+ c.Assert(d2.Join(swarm.JoinRequest{CACertHash: d1.CACertHash, RemoteAddrs: []string{d1.listenAddr}}), checker.IsNil)
|
|
|
}
|
|
|
|
|
|
func (s *DockerSwarmSuite) TestApiSwarmPromoteDemote(c *check.C) {
|
|
|
d1 := s.AddDaemon(c, false, false)
|
|
|
- c.Assert(d1.Init(map[string]bool{"worker": true}, ""), checker.IsNil)
|
|
|
+ c.Assert(d1.Init(swarm.InitRequest{
|
|
|
+ Spec: swarm.Spec{
|
|
|
+ AcceptancePolicy: swarm.AcceptancePolicy{
|
|
|
+ Policies: []swarm.Policy{
|
|
|
+ {Role: swarm.NodeRoleWorker, Autoaccept: true},
|
|
|
+ {Role: swarm.NodeRoleManager},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }), checker.IsNil)
|
|
|
d2 := s.AddDaemon(c, true, false)
|
|
|
|
|
|
info, err := d2.info()
|
|
@@ -561,7 +587,9 @@ func (s *DockerSwarmSuite) TestApiSwarmLeaveOnPendingJoin(c *check.C) {
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
id = strings.TrimSpace(id)
|
|
|
|
|
|
- go d2.Join("nosuchhost:1234", "", "", false) // will block on pending state
|
|
|
+ go d2.Join(swarm.JoinRequest{
|
|
|
+ RemoteAddrs: []string{"nosuchhost:1234"},
|
|
|
+ }) // will block on pending state
|
|
|
|
|
|
for i := 0; ; i++ {
|
|
|
info, err := d2.info()
|
|
@@ -587,7 +615,9 @@ func (s *DockerSwarmSuite) TestApiSwarmLeaveOnPendingJoin(c *check.C) {
|
|
|
// #23705
|
|
|
func (s *DockerSwarmSuite) TestApiSwarmRestoreOnPendingJoin(c *check.C) {
|
|
|
d := s.AddDaemon(c, false, false)
|
|
|
- go d.Join("nosuchhost:1234", "", "", false) // will block on pending state
|
|
|
+ go d.Join(swarm.JoinRequest{
|
|
|
+ RemoteAddrs: []string{"nosuchhost:1234"},
|
|
|
+ }) // will block on pending state
|
|
|
|
|
|
for i := 0; ; i++ {
|
|
|
info, err := d.info()
|