JCC-CSScheduler/executor/internal/http/server.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)
}