func (s *DockerServer) nodeUpdate(w http.ResponseWriter, r *http.Request) { s.swarmMut.Lock() defer s.swarmMut.Unlock() if s.swarm == nil { w.WriteHeader(http.StatusNotAcceptable) return } id := mux.Vars(r)["id"] var n *swarm.Node for i := range s.nodes { if s.nodes[i].ID == id { n = &s.nodes[i] break } } if n == nil { w.WriteHeader(http.StatusNotFound) return } var spec swarm.NodeSpec err := json.NewDecoder(r.Body).Decode(&spec) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } n.Spec = spec err = s.runNodeOperation(s.swarmServer.URL(), nodeOperation{ Op: "update", Node: *n, }) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } }