package main
import (
"fmt"
"os"
"gitee.com/openeuler/PilotGo/sdk/go-micro/registry"
"gitee.com/openeuler/PilotGo/sdk/logger"
"gitee.com/openeuler/PilotGo/sdk/plugin/client"
"github.com/gin-gonic/gin"
"openeuler.org/PilotGo/PilotGo-plugin-event/service"
cli "openeuler.org/PilotGo/container-plugin/client"
"openeuler.org/PilotGo/container-plugin/config"
"openeuler.org/PilotGo/container-plugin/database"
"openeuler.org/PilotGo/container-plugin/httphandler"
)
func main() {
fmt.Println("hello gala-ops")
if err := database.MysqlInit(config.Config().Mysql); err != nil {
fmt.Println("failed to initialize database")
os.Exit(-1)
}
InitLogger()
server := gin.Default()
sr, err := registry.NewServiceRegistrar(®istry.Options{
Endpoints: config.Config().Etcd.Endpoints,
ServiceAddr: config.Config().Http.Addr,
ServiceName: config.Config().Etcd.ServiceName,
Version: config.Config().Etcd.Version,
MenuName: config.Config().Etcd.MenuName,
Icon: config.Config().Etcd.Icon,
DialTimeout: config.Config().Etcd.DialTimeout,
Extentions: service.GetExtentions(),
Permissions: service.GetPermissions(),
})
if err != nil {
logger.Error("failed to initialize registry: %s", err)
os.Exit(-1)
}
client, err := client.NewClient(config.Config().Etcd.ServiceName, sr.Registry)
if err != nil {
logger.Error("failed to create plugin client: %s", err)
os.Exit(-1)
}
cli.ContainerClient = client
cli.ContainerClient.RegisterHandlers(server)
InitRouter(server)
if err := server.Run(config.Config().Http.Addr); err != nil {
logger.Fatal("failed to run server")
}
}
func InitLogger() {
if err := logger.Init(config.Config().Logopts); err != nil {
fmt.Printf("logger init failed, please check the config file: %s", err)
os.Exit(-1)
}
}
func InitRouter(router *gin.Engine) {
api := router.Group("/plugin/container/api")
{
api.POST("/deploy_docker", httphandler.DeployDocker)
}
}