137 lines
3.6 KiB
Go
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
|
|
}
|