add: 提交

This commit is contained in:
lichang
2023-08-14 17:02:50 +08:00
parent 897d45d443
commit 5ac2e981ea
163 changed files with 29466 additions and 0 deletions

119
restagent/restagent.go Normal file
View File

@@ -0,0 +1,119 @@
package main
import (
"fmt"
"net"
"net/http"
"os"
"strconv"
"ems.agt/lib/dborm"
"ems.agt/lib/global"
"ems.agt/lib/log"
"ems.agt/lib/routes"
"ems.agt/features/dbrest"
"ems.agt/features/fm"
"ems.agt/features/pm"
"ems.agt/restagent/config"
)
// const defaultConfigFile = "./etc/restconf.yaml"
// func init() {
// cfile := flag.String("c", defaultConfigFile, "config file")
// pv := flag.Bool("v", false, "print version")
// ph := flag.Bool("h", false, "print help")
// flag.Parse()
// if *pv {
// fmt.Printf("OMC restagent version: %s\n%s\n%s\n\n", global.Version, global.BuildTime, global.GoVer)
// os.Exit(0)
// }
// if *ph {
// flag.Usage()
// os.Exit(0)
// }
// config.ReadConfig(*cfile)
// config.UriPrefix = config.GetYamlConfig().OMC.UriPrefix
// //fmt.Println(config.UriPrefix)
// }
func listenIPv6(ipv6 string, port int) {
//
addr := &net.TCPAddr{
IP: net.ParseIP(ipv6),
Port: port,
}
listener, err := net.ListenTCP("tcp6", addr)
if err != nil {
fmt.Println("Failed to listen:", err)
return
}
server := &http.Server{}
err = server.Serve(listener)
if err != nil {
fmt.Println("Failed to serve:", err)
}
}
func HttpListen(addr string, router http.Handler) {
err := http.ListenAndServe(addr, router)
if err != nil {
fmt.Println("ListenAndServe err:", err)
os.Exit(5)
}
}
func main() {
conf := config.GetYamlConfig()
log.InitLogger(conf.Logger.File, conf.Logger.Duration, conf.Logger.Count, "omc:restagent", config.GetLogLevel())
fmt.Printf("OMC restagent version: %s\n", global.Version)
log.Infof("========================= OMC restagent startup =========================")
log.Infof("OMC restagent version: %s %s %s", global.Version, global.BuildTime, global.GoVer)
err := dborm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name)
if err != nil {
fmt.Println("dborm.initDbClient err:", err)
os.Exit(4)
}
err = fm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name)
if err != nil {
fmt.Println("dborm.initDbClient err:", err)
os.Exit(4)
}
err = pm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name)
if err != nil {
fmt.Println("dborm.initDbClient err:", err)
os.Exit(4)
}
err = dbrest.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name)
if err != nil {
fmt.Println("rests.initDbClient err:", err)
os.Exit(4)
}
router := routes.NewRouter()
for _, rest := range conf.Rest {
// ipv4 goroutines
if rest.IPv4 != "" {
listen := rest.IPv4 + ":" + strconv.Itoa(int(rest.Port))
go HttpListen(listen, router)
}
// ipv6 goroutines
if rest.IPv6 != "" {
listenv6 := "[" + rest.IPv6 + "]" + ":" + strconv.Itoa(int(rest.Port))
go HttpListen(listenv6, router)
}
}
select {}
}