You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
3.6 KiB
136 lines
3.6 KiB
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 |
|
}
|
|
|