// Join joins a current daemon with existing cluster. func (d *SwarmDaemon) Join(remoteAddr, secret, cahash string, manager bool) error { req := swarm.JoinRequest{ ListenAddr: d.listenAddr, RemoteAddrs: []string{remoteAddr}, Manager: manager, CACertHash: cahash, } if secret != "" { req.Secret = secret } status, out, err := d.SockRequest("POST", "/swarm/join", req) if status != http.StatusOK { return fmt.Errorf("joining swarm: invalid statuscode %v, %q", status, out) } if err != nil { return fmt.Errorf("joining swarm: %v", err) } info, err := d.info() if err != nil { return err } d.Info = info return nil }
// Join joins a daemon to an existing cluster. func (d *SwarmDaemon) Join(req swarm.JoinRequest) error { if req.ListenAddr == "" { req.ListenAddr = d.listenAddr } status, out, err := d.SockRequest("POST", "/swarm/join", req) if status != http.StatusOK { return fmt.Errorf("joining swarm: invalid statuscode %v, %q", status, out) } if err != nil { return fmt.Errorf("joining swarm: %v", err) } info, err := d.info() if err != nil { return err } d.Info = info return nil }