47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
package http
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"gitlink.org.cn/cloudream/common/pkgs/logger"
|
|
"gitlink.org.cn/cloudream/scheduler/executor/internal/reporter"
|
|
"gitlink.org.cn/cloudream/scheduler/executor/internal/services"
|
|
)
|
|
|
|
type Server struct {
|
|
engine *gin.Engine
|
|
listenAddr string
|
|
svc *services.Service
|
|
reporter *reporter.Reporter
|
|
}
|
|
|
|
func NewServer(listenAddr string, svc *services.Service) (*Server, error) {
|
|
engine := gin.New()
|
|
|
|
return &Server{
|
|
engine: engine,
|
|
listenAddr: listenAddr,
|
|
svc: svc,
|
|
}, nil
|
|
}
|
|
|
|
func (s *Server) Serve() error {
|
|
s.initRouters()
|
|
|
|
logger.Infof("start serving http at: %s", s.listenAddr)
|
|
err := s.engine.Run(s.listenAddr)
|
|
|
|
if err != nil {
|
|
logger.Infof("http stopped with error: %s", err.Error())
|
|
return err
|
|
}
|
|
|
|
logger.Infof("http stopped")
|
|
return nil
|
|
}
|
|
|
|
func (s *Server) initRouters() {
|
|
s.engine.POST("/submitTask", s.TaskSvc().SubmitTask)
|
|
s.engine.POST("/operateTask", s.TaskSvc().OperateTask)
|
|
s.engine.GET("/getReportInfo", s.TaskSvc().GetReportInfo)
|
|
}
|