wings/router/router_server_backup.go

43 lines
923 B
Go
Raw Normal View History

package router
import (
"github.com/gin-gonic/gin"
"github.com/pterodactyl/wings/server"
"github.com/pterodactyl/wings/server/backup"
"go.uber.org/zap"
"net/http"
)
// Backs up a server.
func postServerBackup(c *gin.Context) {
s := GetServer(c.Param("server"))
data := &backup.Backup{}
c.BindJSON(&data)
go func(b *backup.Backup, serv *server.Server) {
if err := serv.BackupRoot(b); err != nil {
zap.S().Errorw("failed to generate backup for server", zap.Error(err))
}
}(data, s)
c.Status(http.StatusAccepted)
}
2020-04-10 05:07:48 +00:00
// Deletes a local backup of a server.
func deleteServerBackup(c *gin.Context) {
s := GetServer(c.Param("server"))
b, _, err := backup.LocateLocal(c.Param("backup"))
2020-04-10 05:07:48 +00:00
if err != nil {
TrackedServerError(err, s).AbortWithServerError(c)
return
}
if err := b.Remove(); err != nil {
2020-04-10 05:07:48 +00:00
TrackedServerError(err, s).AbortWithServerError(c)
return
}
c.Status(http.StatusNoContent)
}