91 lines
2.4 KiB
Go
91 lines
2.4 KiB
Go
package cmdline
|
|
|
|
import (
|
|
"fmt"
|
|
pcmHubClient "gitlink.org.cn/JointCloud/pcm-hub/client"
|
|
pcmHubConfig "gitlink.org.cn/JointCloud/pcm-hub/config"
|
|
"gitlink.org.cn/cloudream/common/pkgs/logger"
|
|
schglb "gitlink.org.cn/cloudream/scheduler/common/globals"
|
|
"gitlink.org.cn/cloudream/scheduler/common/pkgs/db"
|
|
"gitlink.org.cn/cloudream/scheduler/common/pkgs/prescheduler2"
|
|
"gitlink.org.cn/cloudream/scheduler/schedulerMiddleware/internal/config"
|
|
"gitlink.org.cn/cloudream/scheduler/schedulerMiddleware/internal/http"
|
|
"gitlink.org.cn/cloudream/scheduler/schedulerMiddleware/internal/manager/jobmgr"
|
|
"gitlink.org.cn/cloudream/scheduler/schedulerMiddleware/internal/services"
|
|
"os"
|
|
)
|
|
|
|
var _ = MustAddCmd(func(ctx CommandContext, args []string) error {
|
|
listenAddr := ":7891"
|
|
if len(args) > 0 {
|
|
listenAddr = args[0]
|
|
}
|
|
|
|
httpSvr, err := http.NewServer(listenAddr, ctx.Cmdline.Svc)
|
|
if err != nil {
|
|
return fmt.Errorf("new http server: %w", err)
|
|
}
|
|
|
|
err = httpSvr.Serve()
|
|
if err != nil {
|
|
return fmt.Errorf("serving http: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}, "serve", "http")
|
|
|
|
func serve(configPath string, address string) {
|
|
err := config.Init(configPath)
|
|
if err != nil {
|
|
fmt.Printf("init config failed, err: %s", err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
err = logger.Init(&config.Cfg().Logger)
|
|
if err != nil {
|
|
fmt.Printf("init logger failed, err: %s", err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
schglb.InitPCMSchePool(&config.Cfg().PCMScheduler)
|
|
schglb.InitUploaderPool(&config.Cfg().Uploader)
|
|
schglb.InitBlockChainPool(&config.Cfg().BlockChain)
|
|
schglb.InitCloudreamStoragePool(&config.Cfg().CloudreamStorage)
|
|
|
|
dbSvc, err := db.NewDB(&config.Cfg().DB)
|
|
if err != nil {
|
|
logger.Fatalf("new db2 failed, err: %s", err.Error())
|
|
}
|
|
|
|
preSchr := prescheduler2.NewDefaultPreScheduler()
|
|
nodeSvc := jobmgr.NewNodeService()
|
|
jobMgr, err := jobmgr.NewManager(dbSvc, nodeSvc)
|
|
if err != nil {
|
|
logger.Fatalf("new job manager failed, err: %s", err.Error())
|
|
}
|
|
|
|
hubConfig := &pcmHubConfig.Config{
|
|
Platforms: config.Cfg().PCMHub,
|
|
}
|
|
hubClient, err := pcmHubClient.NewClient(hubConfig)
|
|
if err != nil {
|
|
logger.Fatalf("new pcm hub client failed, err: %s", err.Error())
|
|
}
|
|
svc, err := services.NewService(preSchr, jobMgr, dbSvc, hubClient)
|
|
if err != nil {
|
|
logger.Fatalf("new service failed, err: %s", err.Error())
|
|
}
|
|
|
|
httpSvr, err := http.NewServer(address, svc)
|
|
if err != nil {
|
|
logger.Errorf(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
err = httpSvr.Serve()
|
|
if err != nil {
|
|
logger.Errorf(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
}
|