// Adds a machine to the cluster. func (ps *PeerServer) addMachineHttpHandler(w http.ResponseWriter, req *http.Request) { c := &JoinCommandV2{} if err := uhttp.DecodeJsonRequest(req, c); err != nil { w.WriteHeader(http.StatusInternalServerError) return } log.Debugf("Receive Join Request (v2) from %s", c.Name) if err := ps.server.Dispatch(c, w, req); err != nil { if etcdErr, ok := err.(*etcdErr.Error); ok { log.Debug("Return error: ", (*etcdErr).Error()) etcdErr.Write(w) } else { http.Error(w, err.Error(), http.StatusInternalServerError) } } }
// Response to the join request func (ps *PeerServer) JoinHttpHandler(w http.ResponseWriter, req *http.Request) { command := &JoinCommand{} err := uhttp.DecodeJsonRequest(req, command) if err != nil { w.WriteHeader(http.StatusInternalServerError) return } log.Debugf("Receive Join Request from %s", command.Name) err = ps.server.Dispatch(command, w, req) // Return status. if err != nil { if etcdErr, ok := err.(*etcdErr.Error); ok { log.Debug("Return error: ", (*etcdErr).Error()) etcdErr.Write(w) } else { http.Error(w, err.Error(), http.StatusInternalServerError) } } }