func addUnits(w http.ResponseWriter, r *http.Request, t auth.Token) error { n, err := numberOfUnits(r) if err != nil { return err } processName := r.FormValue("process") appName := r.URL.Query().Get(":app") u, err := t.User() if err != nil { return err } rec.Log(u.Email, "add-units", "app="+appName, fmt.Sprintf("units=%d", n)) app, err := getAppFromContext(appName, u, r) if err != nil { return err } w.Header().Set("Content-Type", "application/json") keepAliveWriter := tsuruIo.NewKeepAliveWriter(w, 30*time.Second, "") defer keepAliveWriter.Stop() writer := &tsuruIo.SimpleJsonMessageEncoderWriter{Encoder: json.NewEncoder(keepAliveWriter)} err = app.AddUnits(n, processName, writer) if err != nil { writer.Encode(tsuruIo.SimpleJsonMessage{Error: err.Error()}) return nil } return nil }
func addUnits(w http.ResponseWriter, r *http.Request, t *auth.Token) error { n, err := numberOfUnits(r) if err != nil { return err } appName := r.URL.Query().Get(":app") u, err := t.User() if err != nil { return err } rec.Log(u.Email, "add-units", "app="+appName, fmt.Sprintf("units=%d", n)) app, err := getApp(appName, u) if err != nil { return err } err = app.AddUnits(n) if _, ok := err.(*quota.QuotaExceededError); ok { return &errors.HTTP{ Code: http.StatusForbidden, Message: err.Error(), } } return err }