fix: timzone issue

This commit is contained in:
2024-03-29 09:38:25 +08:00
parent 0ff07a7ccd
commit e22abdc890
7 changed files with 89 additions and 49 deletions

View File

@@ -77,9 +77,11 @@ type DatabaseClient struct {
var DbClient DatabaseClient var DbClient DatabaseClient
func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) error { func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam string) error {
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", // DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local",
dbUser, dbPassword, dbHost, dbPort, dbName) // dbUser, dbPassword, dbHost, dbPort, dbName)
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?%s",
dbUser, dbPassword, dbHost, dbPort, dbName, dbParam)
DbClient.dbType = dbType DbClient.dbType = dbType
DbClient.dbConnMaxLifetime = 0 DbClient.dbConnMaxLifetime = 0
DbClient.dbMaxIdleConns = 0 DbClient.dbMaxIdleConns = 0
@@ -87,8 +89,7 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) err
if log.GetLevel() == log.LOG_TRACE { if log.GetLevel() == log.LOG_TRACE {
DbClient.IsShowSQL = true DbClient.IsShowSQL = true
} }
log.Debugf("dbType:%s dbUrl:%s:******@tcp(%s:%s)/%s??charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", log.Debugf("dbType:%s dbUrl:%s:", dbType, DbClient.dbUrl)
dbType, dbUser, dbHost, dbPort, dbName)
var err error var err error
DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl) DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl)

View File

@@ -151,9 +151,9 @@ type DatabaseClient struct {
var DbClient DatabaseClient var DbClient DatabaseClient
func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) error { func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam string) error {
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?%s",
dbUser, dbPassword, dbHost, dbPort, dbName) dbUser, dbPassword, dbHost, dbPort, dbName, dbParam)
DbClient.dbType = dbType DbClient.dbType = dbType
DbClient.dbConnMaxLifetime = 0 DbClient.dbConnMaxLifetime = 0
DbClient.dbMaxIdleConns = 0 DbClient.dbMaxIdleConns = 0
@@ -161,8 +161,7 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) err
if log.GetLevel() == log.LOG_TRACE { if log.GetLevel() == log.LOG_TRACE {
DbClient.IsShowSQL = true DbClient.IsShowSQL = true
} }
log.Debugf("dbType:%s dbUrl:%s:******@tcp(%s:%s)/%s??charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", log.Debugf("dbType:%s dbUrl:%s:", dbType, DbClient.dbUrl)
dbType, dbUser, dbHost, dbPort, dbName)
var err error var err error
DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl) DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl)

View File

@@ -50,9 +50,9 @@ var DbClient DatabaseClient
// conf.Database.Host, conf.Database.Port, conf.Database.Name) // conf.Database.Host, conf.Database.Port, conf.Database.Name)
// } // }
func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) error { func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam string) error {
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?%s",
dbUser, dbPassword, dbHost, dbPort, dbName) dbUser, dbPassword, dbHost, dbPort, dbName, dbParam)
DbClient.dbType = dbType DbClient.dbType = dbType
DbClient.dbConnMaxLifetime = 0 DbClient.dbConnMaxLifetime = 0
DbClient.dbMaxIdleConns = 0 DbClient.dbMaxIdleConns = 0
@@ -60,8 +60,7 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) err
if log.GetLevel() == log.LOG_TRACE { if log.GetLevel() == log.LOG_TRACE {
DbClient.IsShowSQL = true DbClient.IsShowSQL = true
} }
log.Debugf("dbType:%s dbUrl:%s:******@tcp(%s:%s)/%s??charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", log.Debugf("dbType:%s dbUrl:%s:", dbType, DbClient.dbUrl)
dbType, dbUser, dbHost, dbPort, dbName)
var err error var err error
DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl) DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl)

View File

@@ -96,9 +96,9 @@ type DatabaseClient struct {
var DbClient DatabaseClient var DbClient DatabaseClient
func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) error { func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam string) error {
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?%s",
dbUser, dbPassword, dbHost, dbPort, dbName) dbUser, dbPassword, dbHost, dbPort, dbName, dbParam)
DbClient.dbType = dbType DbClient.dbType = dbType
DbClient.dbConnMaxLifetime = 0 DbClient.dbConnMaxLifetime = 0
DbClient.dbMaxIdleConns = 0 DbClient.dbMaxIdleConns = 0
@@ -106,8 +106,7 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) err
if log.GetLevel() == log.LOG_TRACE { if log.GetLevel() == log.LOG_TRACE {
DbClient.IsShowSQL = true DbClient.IsShowSQL = true
} }
log.Debugf("dbType:%s dbUrl:%s:******@tcp(%s:%s)/%s??charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", log.Debugf("dbType:%s dbUrl:%s:", dbType, DbClient.dbUrl)
dbType, dbUser, dbHost, dbPort, dbName)
var err error var err error
DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl) DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl)

View File

@@ -45,9 +45,9 @@ type DatabaseClient struct {
var DbClient DatabaseClient var DbClient DatabaseClient
func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) error { func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam string) error {
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?%s",
dbUser, dbPassword, dbHost, dbPort, dbName) dbUser, dbPassword, dbHost, dbPort, dbName, dbParam)
DbClient.dbType = dbType DbClient.dbType = dbType
DbClient.dbConnMaxLifetime = 0 DbClient.dbConnMaxLifetime = 0
DbClient.dbMaxIdleConns = 0 DbClient.dbMaxIdleConns = 0
@@ -55,8 +55,7 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) err
if log.GetLevel() == log.LOG_TRACE { if log.GetLevel() == log.LOG_TRACE {
DbClient.IsShowSQL = true DbClient.IsShowSQL = true
} }
log.Debugf("dbType:%s dbUrl:%s:******@tcp(%s:%s)/%s??charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local", log.Debugf("dbType:%s dbUrl:%s:", dbType, DbClient.dbUrl)
dbType, dbUser, dbHost, dbPort, dbName)
var err error var err error
DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl) DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl)

View File

@@ -12,13 +12,14 @@ import (
) )
type DbConfig struct { type DbConfig struct {
Type string `yaml:"type"` Type string `yaml:"type"`
User string `yaml:"user"` User string `yaml:"user"`
Password string `yaml:"password"` Password string `yaml:"password"`
Host string `yaml:"host"` Host string `yaml:"host"`
Port string `yaml:"port"` Port string `yaml:"port"`
Name string `yaml:"name"` Name string `yaml:"name"`
Backup string `yaml:"backup"` ConnParam string `yaml:"connParam,omitempty"`
Backup string `yaml:"backup"`
} }
// Yaml struct of config // Yaml struct of config
@@ -30,16 +31,18 @@ type YamlConfig struct {
Count int `yaml:"count"` Count int `yaml:"count"`
} `yaml:"logger"` } `yaml:"logger"`
Rest []struct { // Rest []struct {
IPv4 string `yaml:"ipv4"` // IPv4 string `yaml:"ipv4"`
IPv6 string `yaml:"ipv6"` // IPv6 string `yaml:"ipv6"`
Port uint16 `yaml:"port"` // Port uint16 `yaml:"port"`
Scheme string `yaml:"scheme"` // Scheme string `yaml:"scheme"`
ClientAuthType int `yaml:"clientAuthType"` // ClientAuthType int `yaml:"clientAuthType"`
CaFile string `yaml:"caFile"` // CaFile string `yaml:"caFile"`
CertFile string `yaml:"certFile"` // CertFile string `yaml:"certFile"`
KeyFile string `yaml:"keyFile"` // KeyFile string `yaml:"keyFile"`
} `yaml:"rest"` // } `yaml:"rest"`
Rest []RestParam
WebServer struct { WebServer struct {
Enabled bool `yaml:"enabled"` Enabled bool `yaml:"enabled"`
@@ -157,6 +160,17 @@ type YamlConfig struct {
} `yaml:"testConfig"` } `yaml:"testConfig"`
} }
type RestParam struct {
IPv4 string `yaml:"ipv4"`
IPv6 string `yaml:"ipv6"`
Port uint16 `yaml:"port"`
Scheme string `yaml:"scheme,omitempty" default:"http"`
ClientAuthType int `yaml:"clientAuthType"`
CaFile string `yaml:"caFile"`
CertFile string `yaml:"certFile"`
KeyFile string `yaml:"keyFile"`
}
type TestDatas struct { type TestDatas struct {
UDM struct { UDM struct {
CapUsed uint32 `yaml:"capUsed"` CapUsed uint32 `yaml:"capUsed"`
@@ -188,7 +202,17 @@ type TestDataMap struct {
NeTestDatas []map[string]NeTestData NeTestDatas []map[string]NeTestData
} }
var yamlConfig YamlConfig var yamlConfig YamlConfig = NewYamlConfig()
// set default value for yaml config
func NewYamlConfig() YamlConfig {
return YamlConfig{
Database: DbConfig{
Type: "mysql",
ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&loc=Local",
},
}
}
func ReadConfig(configFile string) { func ReadConfig(configFile string) {
yamlFile, err := os.ReadFile(configFile) yamlFile, err := os.ReadFile(configFile)
@@ -327,6 +351,23 @@ func GetDefaultUserAgent() string {
return "OMC-restagent/" + global.Version return "OMC-restagent/" + global.Version
} }
func GetOMCHostUrl() string {
var omcip string = "127.0.0.1"
var rest RestParam = yamlConfig.Rest[0]
var port uint16 = rest.Port
if rest.IPv4 != "0.0.0.0" && rest.IPv4 != "" {
omcip = rest.IPv4
} else if rest.IPv6 != "::" && rest.IPv6 != "" {
omcip = "[" + rest.IPv6 + "]"
}
var scheme string = "http"
if rest.Scheme != "" {
scheme = rest.Scheme
}
return fmt.Sprintf("%s://%s:%d", scheme, omcip, port)
}
// const defaultConfigFile = "./etc/restconf.yaml" // const defaultConfigFile = "./etc/restconf.yaml"
// func init() { // func init() {

View File

@@ -197,31 +197,31 @@ func main() {
log.Infof("OMC restagent version: %s %s %s", global.Version, global.BuildTime, global.GoVer) 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, err := dborm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name) conf.Database.Host, conf.Database.Port, conf.Database.Name, conf.Database.ConnParam)
if err != nil { if err != nil {
fmt.Println("dborm.initDbClient err:", err) fmt.Println("dborm.initDbClient err:", err)
os.Exit(4) os.Exit(4)
} }
err = fm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password, err = fm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name) conf.Database.Host, conf.Database.Port, conf.Database.Name, conf.Database.ConnParam)
if err != nil { if err != nil {
fmt.Println("dborm.initDbClient err:", err) fmt.Println("dborm.initDbClient err:", err)
os.Exit(4) os.Exit(4)
} }
err = pm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password, err = pm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name) conf.Database.Host, conf.Database.Port, conf.Database.Name, conf.Database.ConnParam)
if err != nil { if err != nil {
fmt.Println("dborm.initDbClient err:", err) fmt.Println("dborm.initDbClient err:", err)
os.Exit(4) os.Exit(4)
} }
err = dbrest.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password, err = dbrest.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name) conf.Database.Host, conf.Database.Port, conf.Database.Name, conf.Database.ConnParam)
if err != nil { if err != nil {
fmt.Println("dbrest.initDbClient err:", err) fmt.Println("dbrest.initDbClient err:", err)
os.Exit(4) os.Exit(4)
} }
err = lm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password, err = lm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
conf.Database.Host, conf.Database.Port, conf.Database.Name) conf.Database.Host, conf.Database.Port, conf.Database.Name, conf.Database.ConnParam)
if err != nil { if err != nil {
fmt.Println("lm.initDbClient err:", err) fmt.Println("lm.initDbClient err:", err)
os.Exit(4) os.Exit(4)
@@ -244,6 +244,7 @@ func main() {
// 开启监控采集 // 开启监控采集
// monitor.StartMonitor(false, "") // monitor.StartMonitor(false, "")
var listenLocalhost bool = false
for _, rest := range conf.Rest { for _, rest := range conf.Rest {
// ipv4 goroutines // ipv4 goroutines
if rest.IPv4 != "" { if rest.IPv4 != "" {
@@ -254,7 +255,8 @@ func main() {
go HttpListen(listen, app) go HttpListen(listen, app)
} }
} }
if rest.IPv4 != "0.0.0.0" { if rest.IPv4 != "0.0.0.0" && !listenLocalhost {
listenLocalhost = true
// 默认启动localhost侦听 // 默认启动localhost侦听
listenLocal := "127.0.0.1" + ":" + strconv.Itoa(int(rest.Port)) listenLocal := "127.0.0.1" + ":" + strconv.Itoa(int(rest.Port))
if strings.ToLower(rest.Scheme) == "https" { if strings.ToLower(rest.Scheme) == "https" {