// ForceDestroy destroys an app with force. // // Destroying an app is a process composed of four steps: // // 1. Destroy the bucket and S3 credentials (if bucket-support is // enabled). // 2. Destroy the app unit using juju // 3. Unbind all service instances from the app // 4. Remove the app from the database func ForceDestroy(app *App) error { gUrl := repository.GitServerUri() (&gandalf.Client{Endpoint: gUrl}).RemoveRepository(app.Name) useS3, _ := config.GetBool("bucket-support") if useS3 { destroyBucket(app) } if len(app.Units) > 0 { Provisioner.Destroy(app) app.unbind() } token := app.Env["TSURU_APP_TOKEN"].Value auth.DeleteToken(token) conn, err := db.Conn() if err != nil { return err } defer conn.Close() return conn.Apps().Remove(bson.M{"name": app.Name}) }
// Delete deletes an app. // // Delete an app is a process composed of four steps: // // 1. Destroy the bucket and S3 credentials (if bucket-support is // enabled). // 2. Destroy the app unit using juju // 3. Unbind all service instances from the app // 4. Remove the app from the database func Delete(app *App) error { gURL := repository.ServerURL() (&gandalf.Client{Endpoint: gURL}).RemoveRepository(app.Name) useS3, _ := config.GetBool("bucket-support") if useS3 { destroyBucket(app) } if len(app.Units) > 0 { Provisioner.Destroy(app) app.unbind() } token := app.Env["TSURU_APP_TOKEN"].Value auth.DeleteToken(token) if owner, err := auth.GetUserByEmail(app.Owner); err == nil { auth.ReleaseApp(owner) } conn, err := db.Conn() if err != nil { return err } defer conn.Close() return conn.Apps().Remove(bson.M{"name": app.Name}) }
func logout(w http.ResponseWriter, r *http.Request, t *auth.Token) error { auth.DeleteToken(t.Token) return nil }
envVars = append(envVars, bind.EnvVar{ Name: fmt.Sprintf("TSURU_S3_%s", name), Value: value, InstanceName: s3InstanceName, }) } } err = app.setEnvsToApp(envVars, false, true) if err != nil { return nil, err } return ctx.Previous, nil }, Backward: func(ctx action.BWContext) { app := ctx.Params[0].(*App) auth.DeleteToken(app.Env["TSURU_APP_TOKEN"].Value) if app.Get() == nil { s3Env := app.InstanceEnv(s3InstanceName) vars := make([]string, len(s3Env)+3) i := 0 for k := range s3Env { vars[i] = k i++ } vars[i] = "TSURU_HOST" vars[i+1] = "TSURU_APPNAME" vars[i+2] = "TSURU_APP_TOKEN" app.UnsetEnvs(vars, false) } }, MinParams: 1,