From 954493a5f2c866a8c6fbef5f90773b1dc220c45b Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Mon, 1 Apr 2024 17:22:26 +0800 Subject: [PATCH] fix: time-zone issue, localhost issue --- captrace/config/config.go | 2 +- captrace/etc/capconf.yaml | 1 + config/etc/default/crontask.yaml | 2 +- config/etc/default/restconf.yaml | 1 + config/etc/default/sshsvc.yaml | 1 + crontask/config.go | 2 +- crontask/db.go | 6 ++++-- crontask/etc/crontask.yaml | 1 + features/dbrest/dbrest.go | 7 +++++-- features/fm/alarm.go | 2 ++ features/lm/logbak.go | 2 ++ features/maintenance/maintenance.go | 2 +- features/pm/performance.go | 2 ++ features/state/getstate.go | 5 +++-- lib/dborm/dborm.go | 5 ++++- restagent/config/config.go | 2 +- restagent/etc/restconf.yaml | 1 + .../crontask/processor/genNeStateAlarm/genNeStateAlarm.go | 6 ++++-- sshsvc/config/config.go | 2 +- sshsvc/etc/sshsvc.yaml | 1 + 20 files changed, 38 insertions(+), 15 deletions(-) diff --git a/captrace/config/config.go b/captrace/config/config.go index 378c2256..19c2e35e 100644 --- a/captrace/config/config.go +++ b/captrace/config/config.go @@ -45,7 +45,7 @@ func NewYamlConfig() YamlConfig { return YamlConfig{ Database: DbConfig{ Type: "mysql", - ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&loc=Local", + ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True", }, } } diff --git a/captrace/etc/capconf.yaml b/captrace/etc/capconf.yaml index 0b9cc683..f918ef1b 100644 --- a/captrace/etc/capconf.yaml +++ b/captrace/etc/capconf.yaml @@ -17,5 +17,6 @@ database: host: 172.25.97.150 port: 33066 name: omc_db + connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True diff --git a/config/etc/default/crontask.yaml b/config/etc/default/crontask.yaml index 5e8f4f2c..88a6b9fe 100644 --- a/config/etc/default/crontask.yaml +++ b/config/etc/default/crontask.yaml @@ -25,7 +25,7 @@ database: host: 127.0.0.1 port: 33066 name: omc_db - backup: /usr/local/omc/database + connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True # northbound interface, cm/pm # duration(day): saved days diff --git a/config/etc/default/restconf.yaml b/config/etc/default/restconf.yaml index 132da7be..b7206a43 100644 --- a/config/etc/default/restconf.yaml +++ b/config/etc/default/restconf.yaml @@ -45,6 +45,7 @@ database: host: 127.0.0.1 port: 33066 name: omc_db + connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True backup: /usr/local/omc/database # Redis data cache diff --git a/config/etc/default/sshsvc.yaml b/config/etc/default/sshsvc.yaml index d384b88e..80ed06fc 100644 --- a/config/etc/default/sshsvc.yaml +++ b/config/etc/default/sshsvc.yaml @@ -37,6 +37,7 @@ database: host: 127.0.0.1 port: 33066 name: omc_db + connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True omc: httpUri: http://127.0.0.1:33030 diff --git a/crontask/config.go b/crontask/config.go index 5a4b441a..0ba3deb2 100644 --- a/crontask/config.go +++ b/crontask/config.go @@ -68,7 +68,7 @@ func NewYamlConfig() YamlConfig { return YamlConfig{ Database: DbConfig{ Type: "mysql", - ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&loc=Local", + ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True", }, } } diff --git a/crontask/db.go b/crontask/db.go index c3d5407c..49d0d92a 100644 --- a/crontask/db.go +++ b/crontask/db.go @@ -51,12 +51,14 @@ func initDbClient() error { //} // defer dbClient.xEngine.Close() // 退出后关闭 - if dbClient.IsShowSQL == true { + if dbClient.IsShowSQL { dbClient.xEngine.ShowSQL(true) } dbClient.xEngine.SetConnMaxLifetime(dbClient.dbConnMaxLifetime) dbClient.xEngine.SetMaxIdleConns(dbClient.dbMaxIdleConns) dbClient.xEngine.SetMaxOpenConns(dbClient.dbMaxOpenConns) + dbClient.xEngine.DatabaseTZ = time.Local // 必须 + dbClient.xEngine.TZLocation = time.Local // 必须 return nil } @@ -447,7 +449,7 @@ func XormInsertTalbeOne(tbInfo interface{}) (int64, error) { } func XormGetDataBySQL(sql string) (*[]map[string]string, error) { - log.Debug("XormGetDataBySQL processing... ") + //log.Debug("XormGetDataBySQL processing... ") rows := make([]map[string]string, 0) rows, err := dbClient.xEngine.QueryString(sql) diff --git a/crontask/etc/crontask.yaml b/crontask/etc/crontask.yaml index 308c6024..afab47b6 100644 --- a/crontask/etc/crontask.yaml +++ b/crontask/etc/crontask.yaml @@ -25,6 +25,7 @@ database: host: 127.0.0.1 port: 33066 name: omc_db + connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True backup: d:/local.git/be.ems/restagent/database # northbound interface, cm/pm diff --git a/features/dbrest/dbrest.go b/features/dbrest/dbrest.go index fd1fb523..6b897f44 100644 --- a/features/dbrest/dbrest.go +++ b/features/dbrest/dbrest.go @@ -86,6 +86,7 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam st DbClient.dbConnMaxLifetime = 0 DbClient.dbMaxIdleConns = 0 DbClient.dbMaxOpenConns = 0 + if log.GetLevel() == log.LOG_TRACE { DbClient.IsShowSQL = true } @@ -100,6 +101,8 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam st DbClient.XEngine.SetConnMaxLifetime(DbClient.dbConnMaxLifetime) DbClient.XEngine.SetMaxIdleConns(DbClient.dbMaxIdleConns) DbClient.XEngine.SetMaxOpenConns(DbClient.dbMaxOpenConns) + DbClient.XEngine.DatabaseTZ = time.Local // 必须 + DbClient.XEngine.TZLocation = time.Local // 必须 if DbClient.IsShowSQL { //DbClient.XEngine.SetLogger(&log.Elogger) DbClient.XEngine.ShowSQL(true) @@ -301,7 +304,7 @@ func ExtDatabaseGetData(w http.ResponseWriter, r *http.Request) { if s != "" { // err = XEngine.SQL(s).Find(&rows) - if IsQuerySQL(s) == false { + if !IsQuerySQL(s) { services.ResponseNotAcceptable406QuerySQLError(w) return } @@ -561,7 +564,7 @@ func DatabaseGetData(w http.ResponseWriter, r *http.Request) { log.Debug("querySQL:", querySQL) rows, err = DbClient.XEngine.QueryInterface(querySQL) if err != nil { - log.Error("SQL failed:", err) + log.Error("QueryInterface failed:", err) services.ResponseInternalServerError500ProcessError(w, err) return } diff --git a/features/fm/alarm.go b/features/fm/alarm.go index 45cfcaf7..dc39c2ed 100644 --- a/features/fm/alarm.go +++ b/features/fm/alarm.go @@ -172,6 +172,8 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam st DbClient.XEngine.SetConnMaxLifetime(DbClient.dbConnMaxLifetime) DbClient.XEngine.SetMaxIdleConns(DbClient.dbMaxIdleConns) DbClient.XEngine.SetMaxOpenConns(DbClient.dbMaxOpenConns) + DbClient.XEngine.DatabaseTZ = time.Local // 必须 + DbClient.XEngine.TZLocation = time.Local // 必须 if DbClient.IsShowSQL { DbClient.XEngine.ShowSQL(true) } diff --git a/features/lm/logbak.go b/features/lm/logbak.go index 1b8008a1..ef78362f 100644 --- a/features/lm/logbak.go +++ b/features/lm/logbak.go @@ -71,6 +71,8 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam st DbClient.XEngine.SetConnMaxLifetime(DbClient.dbConnMaxLifetime) DbClient.XEngine.SetMaxIdleConns(DbClient.dbMaxIdleConns) DbClient.XEngine.SetMaxOpenConns(DbClient.dbMaxOpenConns) + DbClient.XEngine.DatabaseTZ = time.Local // 必须 + DbClient.XEngine.TZLocation = time.Local // 必须 if DbClient.IsShowSQL { DbClient.XEngine.ShowSQL(true) } diff --git a/features/maintenance/maintenance.go b/features/maintenance/maintenance.go index 49dcd065..2ee014a6 100644 --- a/features/maintenance/maintenance.go +++ b/features/maintenance/maintenance.go @@ -216,7 +216,7 @@ func SqlClient(w http.ResponseWriter, r *http.Request) { if isConnet == "connet" && dborm.DbClient.XEngine == nil { conf := config.GetYamlConfig() 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 { fmt.Println("dborm.initDbClient err:", err) services.ResponseInternalServerError500DatabaseOperationFailed(w) diff --git a/features/pm/performance.go b/features/pm/performance.go index 078fccb5..6be6dc64 100644 --- a/features/pm/performance.go +++ b/features/pm/performance.go @@ -117,6 +117,8 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam st DbClient.XEngine.SetConnMaxLifetime(DbClient.dbConnMaxLifetime) DbClient.XEngine.SetMaxIdleConns(DbClient.dbMaxIdleConns) DbClient.XEngine.SetMaxOpenConns(DbClient.dbMaxOpenConns) + DbClient.XEngine.DatabaseTZ = time.Local // 必须 + DbClient.XEngine.TZLocation = time.Local // 必须 if DbClient.IsShowSQL { DbClient.XEngine.ShowSQL(true) } diff --git a/features/state/getstate.go b/features/state/getstate.go index d171553c..f41627f9 100644 --- a/features/state/getstate.go +++ b/features/state/getstate.go @@ -857,7 +857,8 @@ func GetStateFromNFOld(w http.ResponseWriter, r *http.Request) { case "all": // query all NFs // create rest client - restHostPort := fmt.Sprintf("http://127.0.0.1:%d", config.GetYamlConfig().Rest[0].Port) + + restHostPort := config.GetOMCHostUrl() getNeInfoPattern := fmt.Sprintf(config.DefaultUriPrefix+"/databaseManagement/v1/elementType/%s/objectType/ne_info", config.GetYamlConfig().Database.Name) getNeInfoURI := restHostPort + getNeInfoPattern + "?WHERE=status+in+('0','3')" @@ -878,7 +879,7 @@ func GetStateFromNFOld(w http.ResponseWriter, r *http.Request) { neList, _ = dborm.XormParseResult(resp.Body()) default: - restHostPort := fmt.Sprintf("http://127.0.0.1:%d", config.GetYamlConfig().Rest[0].Port) + restHostPort := config.GetOMCHostUrl() getNeInfoPattern := fmt.Sprintf(config.DefaultUriPrefix+"/databaseManagement/v1/elementType/%s/objectType/ne_info", config.GetYamlConfig().Database.Name) getNeInfoURI := restHostPort + getNeInfoPattern diff --git a/lib/dborm/dborm.go b/lib/dborm/dborm.go index cc206583..f35c7ee7 100644 --- a/lib/dborm/dborm.go +++ b/lib/dborm/dborm.go @@ -66,9 +66,12 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam st DbClient.XEngine.SetConnMaxLifetime(DbClient.dbConnMaxLifetime) DbClient.XEngine.SetMaxIdleConns(DbClient.dbMaxIdleConns) DbClient.XEngine.SetMaxOpenConns(DbClient.dbMaxOpenConns) + DbClient.XEngine.DatabaseTZ = time.Local // 必须 + DbClient.XEngine.TZLocation = time.Local // 必须 if DbClient.IsShowSQL { DbClient.XEngine.ShowSQL(true) } + xEngine = DbClient.XEngine return nil @@ -1423,7 +1426,7 @@ type NeVersion struct { } func XormGetDataBySQL(sql string) (*[]map[string]string, error) { - log.Debug("XormGetDataBySQL processing... ") + //log.Debug("XormGetDataBySQL processing... ") rows := make([]map[string]string, 0) rows, err := DbClient.XEngine.QueryString(sql) diff --git a/restagent/config/config.go b/restagent/config/config.go index 24338c69..529f594c 100644 --- a/restagent/config/config.go +++ b/restagent/config/config.go @@ -209,7 +209,7 @@ func NewYamlConfig() YamlConfig { return YamlConfig{ Database: DbConfig{ Type: "mysql", - ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&loc=Local", + ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True", }, } } diff --git a/restagent/etc/restconf.yaml b/restagent/etc/restconf.yaml index 1926c165..df25c186 100644 --- a/restagent/etc/restconf.yaml +++ b/restagent/etc/restconf.yaml @@ -45,6 +45,7 @@ database: host: 127.0.0.1 port: 33066 name: omc_db + connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True backup: d:/local.git/be.ems/restagent/database # Redis 缓存数据,数据源声明全小写 diff --git a/src/modules/crontask/processor/genNeStateAlarm/genNeStateAlarm.go b/src/modules/crontask/processor/genNeStateAlarm/genNeStateAlarm.go index d26d2c0a..76f587f9 100644 --- a/src/modules/crontask/processor/genNeStateAlarm/genNeStateAlarm.go +++ b/src/modules/crontask/processor/genNeStateAlarm/genNeStateAlarm.go @@ -202,7 +202,8 @@ func (s *BarProcessor) Execute(data any) (any, error) { var response *resty.Response requestURI := fmt.Sprintf("/api/rest/faultManagement/v1/elementType/%s/objectType/alarms", ne.NeType) - restHost := fmt.Sprintf("http://127.0.0.1:%d", config.GetYamlConfig().Rest[0].Port) + //restHost := fmt.Sprintf("http://127.0.0.1:%d", config.GetYamlConfig().Rest[0].Port) + restHost := config.GetOMCHostUrl() requestURL := fmt.Sprintf("%s%s", restHost, requestURI) log.Debug("requestURL: POST ", requestURL) response, err = client.R(). @@ -269,7 +270,8 @@ func (s *BarProcessor) Execute(data any) (any, error) { var response *resty.Response requestURI := fmt.Sprintf("/api/rest/faultManagement/v1/elementType/%s/objectType/alarms", ne.NeType) - restHost := fmt.Sprintf("http://127.0.0.1:%d", config.GetYamlConfig().Rest[0].Port) + //restHost := fmt.Sprintf("http://127.0.0.1:%d", config.GetYamlConfig().Rest[0].Port) + restHost := config.GetOMCHostUrl() requestURL := fmt.Sprintf("%s%s", restHost, requestURI) log.Debug("requestURL: POST ", requestURL) response, err = client.R(). diff --git a/sshsvc/config/config.go b/sshsvc/config/config.go index f4d7a589..411d6758 100644 --- a/sshsvc/config/config.go +++ b/sshsvc/config/config.go @@ -65,7 +65,7 @@ func NewYamlConfig() YamlConfig { return YamlConfig{ Database: DbConfig{ Type: "mysql", - ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&loc=Local", + ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True", }, } } diff --git a/sshsvc/etc/sshsvc.yaml b/sshsvc/etc/sshsvc.yaml index 9115d903..5e8cb358 100644 --- a/sshsvc/etc/sshsvc.yaml +++ b/sshsvc/etc/sshsvc.yaml @@ -37,6 +37,7 @@ database: host: 127.0.0.1 port: 33066 name: omc_db + connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True omc: httpUri: http://127.0.0.1:3040