diff --git a/components/engine/api/server/router/swarm/cluster_routes.go b/components/engine/api/server/router/swarm/cluster_routes.go index fc33d27746..b04d066191 100644 --- a/components/engine/api/server/router/swarm/cluster_routes.go +++ b/components/engine/api/server/router/swarm/cluster_routes.go @@ -7,6 +7,7 @@ import ( "strconv" "github.com/Sirupsen/logrus" + "github.com/docker/docker/api/errors" "github.com/docker/docker/api/server/httputils" basictypes "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" @@ -319,18 +320,18 @@ func (sr *swarmRouter) getSecret(ctx context.Context, w http.ResponseWriter, r * func (sr *swarmRouter) updateSecret(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { var secret types.SecretSpec if err := json.NewDecoder(r.Body).Decode(&secret); err != nil { - return err + return errors.NewBadRequestError(err) } rawVersion := r.URL.Query().Get("version") version, err := strconv.ParseUint(rawVersion, 10, 64) if err != nil { - return fmt.Errorf("Invalid secret version '%s': %s", rawVersion, err.Error()) + return errors.NewBadRequestError(fmt.Errorf("invalid secret version")) } id := vars["id"] if err := sr.backend.UpdateSecret(id, version, secret); err != nil { - return fmt.Errorf("Error updating secret: %s", err) + return errors.NewErrorWithStatusCode(err, http.StatusInternalServerError) } return nil