mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
Implementing force delete for apps
Deployment-Impact: DB schema changed
API Impact: HTTP DELETE /apps/{app} accepts query parameters: /apps/{app}?force=True
Closes: #302
This commit is contained in:
@@ -610,8 +610,9 @@ func (ds *sqlStore) GetLog(ctx context.Context, appName, callID string) (*models
|
||||
}
|
||||
|
||||
return &models.CallLog{
|
||||
CallID: callID,
|
||||
Log: log,
|
||||
CallID: callID,
|
||||
Log: log,
|
||||
AppName: appName,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/fnproject/fn/api/common"
|
||||
"github.com/fnproject/fn/api/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func (s *Server) handleAppDelete(c *gin.Context) {
|
||||
@@ -21,10 +22,16 @@ func (s *Server) handleAppDelete(c *gin.Context) {
|
||||
handleErrorResponse(c, err)
|
||||
return
|
||||
}
|
||||
//TODO allow this? #528
|
||||
if len(routes) > 0 {
|
||||
handleErrorResponse(c, models.ErrDeleteAppsWithRoutes)
|
||||
return
|
||||
forceDelete, _ := strconv.ParseBool(c.Query("force"))
|
||||
if !forceDelete {
|
||||
if len(routes) > 0 {
|
||||
handleErrorResponse(c, models.ErrDeleteAppsWithRoutes)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
s.Datastore.BatchDeleteLogs(ctx, app.Name)
|
||||
s.Datastore.BatchDeleteCalls(ctx, app.Name)
|
||||
s.Datastore.BatchDeleteRoutes(ctx, app.Name)
|
||||
}
|
||||
|
||||
err = s.FireBeforeAppDelete(ctx, app)
|
||||
|
||||
@@ -73,11 +73,17 @@ paths:
|
||||
tags:
|
||||
- Apps
|
||||
parameters:
|
||||
- name: app
|
||||
in: path
|
||||
- in: path
|
||||
name: app
|
||||
description: Name of the app.
|
||||
required: true
|
||||
type: string
|
||||
schema:
|
||||
type: string
|
||||
- in: query
|
||||
name: force
|
||||
schema:
|
||||
type: bool
|
||||
description: Query parameter that enables force delete for app
|
||||
responses:
|
||||
200:
|
||||
description: Apps successfully deleted.
|
||||
|
||||
Reference in New Issue
Block a user