bilibili-backup/app/admin/main/config/http/http.go
2019-04-22 02:59:20 +00:00

137 lines
3.6 KiB
Go

package http
import (
"net/http"
"go-common/app/admin/main/config/conf"
"go-common/app/admin/main/config/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/permit"
)
var (
svr *service.Service
authSrv *permit.Permit
)
// Init init config.
func Init(c *conf.Config, s *service.Service) {
svr = s
authSrv = permit.New(c.Auth)
engine := bm.DefaultServer(c.BM)
innerRouter(engine)
if err := engine.Start(); err != nil {
log.Error("engine.Start error(%v)", err)
panic(err)
}
}
// innerRouter init inner router.
func innerRouter(e *bm.Engine) {
e.Ping(ping)
b := e.Group("x/admin/config", authSrv.Verify())
d := e.Group("x/admin/config")
{
notAuth := d.Group("/")
{
notAuth.POST("home/config/update", configUpdate)
notAuth.POST("home/tag/update", tagUpdate)
notAuth.POST("canal/tag/update", canalTagUpdate)
notAuth.POST("canal/name/configs", canalNameConfigs)
notAuth.POST("canal/config/create", canalConfigCreate)
notAuth.POST("caster/envs", casterEnvs)
notAuth.GET("get/apps", getApps)
}
service := b.Group("/service")
{
service.POST("/token/set", setToken)
service.GET("/host/infos", hosts)
service.POST("/delete", clearhost)
}
app := b.Group("/app")
{
app.POST("/token/update", updateToken)
app.POST("/create", create)
app.GET("/apps", appList)
app.GET("/envs", envs)
app.GET("/nodeTree", nodeTree)
app.POST("/zone/copy", zoneCopy)
app.POST("/rename", rename)
app.POST("/status", upAppStatus)
}
bu := b.Group("/build")
{
bu.POST("/create", createBuild)
bu.POST("/tag/update", updateTag)
bu.POST("/tagid/update", updateTagID)
bu.GET("/builds", builds)
bu.GET("/build", build)
bu.POST("/delete", buildDel)
bu.POST("/hosts/force", hostsForce)
bu.POST("/clear/force", clearForce)
}
config := b.Group("/config")
{
config.POST("/create", createConfig)
config.POST("/lint", lintConfig)
config.POST("/value/update", updateConfValue)
config.GET("/app/configs", configsByAppName)
config.GET("/build/configs", configsByBuildID)
config.GET("/tag/configs", configsByTagID)
config.GET("/name/configs", configsByName)
config.GET("/names", namesByAppName)
config.GET("/configs", configs)
config.GET("/all/search", configSearchAll)
config.GET("/app/search", configSearchApp)
config.GET("/refs", configRefs)
config.GET("/value", value)
config.GET("/diff", diff)
config.POST("/delete", configDel)
config.GET("/build/infos", configBuildInfos)
}
common := b.Group("/common")
{
common.POST("/create", createComConfig)
common.POST("/value/update", updateComConfValue)
common.GET("/name/configs", comConfigsByName)
common.GET("/configs", configsByTeam)
common.GET("/names", namesByTeam)
common.GET("/value", comValue)
common.GET("/envs", envsByTeam)
common.GET("/app", appByTeam)
common.GET("/tag/push", tagPush)
}
tags := b.Group("/tag")
{
tags.POST("/create", createTag)
tags.GET("/last/tags", lastTags)
tags.GET("/build/tags", tagsByBuild)
tags.GET("/tag", tag)
tags.GET("/config/diff", tagConfigDiff)
}
apm := b.Group("/apm")
{
apm.GET("/copy", apmCopy)
}
tree := b.Group("/tree")
{
tree.GET("/update", syncTree)
}
}
}
// ping check server ok.
func ping(ctx *bm.Context) {
if err := svr.Ping(); err != nil {
log.Error("service ping error(%v)", err)
ctx.AbortWithStatus(http.StatusServiceUnavailable)
}
}
func user(c *bm.Context) (username string) {
usernameI, _ := c.Get("username")
username, _ = usernameI.(string)
return
}