123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- package http
- import (
- "net/http"
- "go-common/app/admin/ep/merlin/conf"
- "go-common/app/admin/ep/merlin/service"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/http/blademaster/middleware/permit"
- )
- const (
- _sessIDKey = "_AJSESSIONID"
- )
- var (
- svc *service.Service
- authSvc *permit.Permit
- )
- // Init init
- func Init(c *conf.Config, s *service.Service) {
- svc = s
- authSvc = permit.New(c.Auth)
- engine := bm.DefaultServer(c.BM)
- engine.Ping(ping)
- outerRouter(engine)
- if err := engine.Start(); err != nil {
- log.Error("engine.Start error(%v)", err)
- panic(err)
- }
- }
- // outerRouter init outer router api path.
- func outerRouter(e *bm.Engine) {
- e.GET("/ep/admin/merlin/version", getVersion)
- e.GET("/ep/admin/merlin/conf/version", confVersion)
- base := e.Group("/ep/admin/merlin", authSvc.Permit(""))
- {
- v1 := base.Group("/v1")
- {
- cluster := v1.Group("/cluster")
- {
- cluster.GET("/query", queryCluster)
- }
- machine := v1.Group("/machine")
- {
- machine.POST("/gen", genMachines)
- machine.GET("/del", delMachine)
- machine.GET("/query/detail", queryMachineDetail)
- machine.GET("/query", queryMachines)
- machine.GET("/query/status", queryMachineStatus)
- machine.GET("/transfer", transferMachine)
- machinePackage := machine.Group("/package")
- {
- machinePackage.GET("/query", queryMachinePackages)
- }
- machineLog := machine.Group("/log")
- {
- machineLog.GET("/query", queryMachineLogs)
- }
- machineNode := machine.Group("/node")
- {
- machineNode.POST("update", updateNodes)
- machineNode.GET("query", queryNodes)
- }
- }
- image := v1.Group("image")
- {
- image.GET("/query", queryImage)
- image.POST("/add", addImage)
- image.POST("/update", updateImage)
- image.POST("/del", delImage)
- }
- serviceTree := v1.Group("/tree")
- {
- serviceTree.GET("/query", userTree)
- serviceTree.GET("/container/query", userTreeContainer)
- serviceTree.GET("/auditors/query", treeAuditors)
- }
- audit := v1.Group("/audit")
- {
- auditEndTime := audit.Group("/endTime")
- {
- auditEndTime.GET("/delay", delayMachineEndTime) //手动延期 done ok
- auditEndTime.POST("/apply", applyMachineEndTime) //申请延期 done
- auditEndTime.GET("/cancel", cancelMachineEndTime) //取消延期 done
- auditEndTime.POST("/audit", auditMachineEndTime) //审批 通过或驳回 done
- auditEndTime.GET("/query/applyList", queryApplicationRecordsByMachineID) //done ok
- auditEndTime.GET("/query/user/applyList", queryApplicationRecordsByApplicant) //done ok
- auditEndTime.GET("/query/user/auditList", queryApplicationRecordsByAuditor) //done ok
- }
- }
- user := v1.Group("/user")
- {
- user.GET("/query", queryUserInfo)
- }
- mobileDevice := v1.Group("/mobiledevice")
- {
- mobileDevice.POST("/query", queryMobileDevice)
- mobileDevice.GET("/refresh", refreshMobileDeviceDetail)
- mobileDevice.GET("/bind", bindMobileDevice)
- mobileDevice.GET("/release", releaseMobileDevice)
- mobileDevice.GET("/isbind", isBindByTheUser)
- mobileDevice.GET("/pullout", lendOutMobileDevice)
- mobileDevice.GET("/return", returnMobileDevice)
- mobileDevice.GET("/start", startMobileDevice)
- mobileDevice.GET("/shutdown", shutDownMobileDevice)
- mobileDevice.GET("/syncall", syncMobileDevice)
- mobileDevice.GET("/category/query", queryCategory)
- mobileDevice.GET("/superuser/query", queryDeviceFarmSuperUser)
- mobileDeviceLog := mobileDevice.Group("/log")
- {
- mobileDeviceLog.GET("/query", queryMobileMachineLogs)
- mobileDeviceLog.GET("/lendout/query", queryMobileMachineLendOut)
- }
- mobileDeviceErrorLog := mobileDevice.Group("/error/log")
- {
- mobileDeviceErrorLog.GET("/query", queryMobileMachineErrorLogs)
- mobileDeviceErrorLog.POST("/report", reportMobileDeviceError)
- }
- }
- biliHub := v1.Group("/bilihub")
- {
- biliHub.GET("/auth", authHub)
- biliHub.GET("/auth/access", accessAuthHub)
- biliHub.GET("/projects/accesspull", accessPullProjects)
- biliHub.GET("/projects", projects)
- biliHub.GET("/repos", repos)
- biliHub.GET("/repotags", tags)
- biliHub.GET("/repos/delete", deleteRepo)
- biliHub.GET("/repotags/delete", deleteRepoTag)
- biliHub.GET("/snapshot", snapshot)
- biliHub.GET("/snapshot/query", querySnapshot)
- biliHub.POST("/machine2image", machine2image)
- biliHub.GET("/machine2image/forcefailed", machine2imageForceFailed)
- biliHub.GET("/machine2image/log/query", queryMachine2ImageLog)
- image := biliHub.Group("/image")
- {
- image.GET("/all", allImage)
- image.POST("/addtag", addTag)
- image.POST("/push", push)
- image.POST("/retag", reTag)
- image.POST("/pull", pull)
- conf := image.Group("/conf")
- {
- conf.POST("/update", updateImageConf)
- conf.GET("/query", queryImageConf)
- }
- }
- }
- dashboard := v1.Group("/dashboard")
- {
- machine := dashboard.Group("/machine")
- {
- machine.GET("/lifecycle", queryMachineLifeCycle)
- machine.GET("/count", queryMachineCount)
- machine.GET("/time", queryMachineTime)
- machine.GET("/usage", queryMachineUsage)
- }
- deviceFarm := dashboard.Group("/devicefarm")
- {
- deviceFarm.GET("/usagecount", queryMobileMachineUsageCount)
- deviceFarm.GET("/modecount", queryMobileMachineModeCount)
- deviceFarm.GET("/usagetime", queryMobileMachineUsageTime)
- }
- }
- }
- v2 := base.Group("/v2")
- {
- machine := v2.Group("/machine")
- {
- machine.POST("/gen", genMachinesV2)
- }
- }
- }
- callback := e.Group("/ep/admin/merlin/callback")
- {
- v1 := callback.Group("/v1")
- {
- v1.POST("/bilihub/snapshot", callbackSnapshot)
- v1.POST("/mobiledevice/error", callbackMobileDeviceError)
- }
- }
- }
- func ping(c *bm.Context) {
- if err := svc.Ping(c); err != nil {
- log.Error("ping error(%v)", err)
- c.AbortWithStatus(http.StatusServiceUnavailable)
- }
- }
- func getVersion(c *bm.Context) {
- v := new(struct {
- Version string `json:"version"`
- })
- v.Version = "v.1.5.9.3"
- c.JSON(v, nil)
- }
- func confVersion(c *bm.Context) {
- v := new(struct {
- Version string `json:"version"`
- })
- v.Version = svc.ConfVersion(c)
- c.JSON(v, nil)
- }
|