// 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 }