fix: 与omc主程序解耦
This commit is contained in:
161
sshsvc/dborm/dborm.go
Normal file
161
sshsvc/dborm/dborm.go
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
package dborm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"be.ems/lib/log"
|
||||||
|
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"xorm.io/xorm"
|
||||||
|
"xorm.io/xorm/core"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
TableNameMeasureTask = "measure_task"
|
||||||
|
TableNameNeInfo = "ne_info"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Menu struct {
|
||||||
|
Id int `json:"id"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
Icon string `json:"icon"`
|
||||||
|
Href string `json:"href"`
|
||||||
|
ParentId int `json:"parent_id"`
|
||||||
|
Remark int `json:"remark"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type DatabaseClient struct {
|
||||||
|
dbType string
|
||||||
|
dbUrl string
|
||||||
|
dbConnMaxLifetime time.Duration
|
||||||
|
dbMaxIdleConns int
|
||||||
|
dbMaxOpenConns int
|
||||||
|
IsShowSQL bool
|
||||||
|
|
||||||
|
XEngine *xorm.Engine
|
||||||
|
}
|
||||||
|
|
||||||
|
var DbClient DatabaseClient
|
||||||
|
|
||||||
|
func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam string) error {
|
||||||
|
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?%s",
|
||||||
|
dbUser, dbPassword, dbHost, dbPort, dbName, dbParam)
|
||||||
|
DbClient.dbType = dbType
|
||||||
|
DbClient.dbConnMaxLifetime = 0
|
||||||
|
DbClient.dbMaxIdleConns = 0
|
||||||
|
DbClient.dbMaxOpenConns = 0
|
||||||
|
if log.GetLevel() == log.LOG_TRACE {
|
||||||
|
DbClient.IsShowSQL = true
|
||||||
|
}
|
||||||
|
log.Debugf("dbType:%s dbUrl:%s:", dbType, DbClient.dbUrl)
|
||||||
|
|
||||||
|
var err error
|
||||||
|
DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to connet database:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
// func InitDbClient() error {
|
||||||
|
// db := config.GetYamlConfig().Database
|
||||||
|
// DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", db.User, db.Password, db.Host, db.Port, db.Name)
|
||||||
|
// DbClient.dbType = db.Type
|
||||||
|
// DbClient.dbConnMaxLifetime = 0
|
||||||
|
// DbClient.dbMaxIdleConns = 0
|
||||||
|
// DbClient.dbMaxOpenConns = 0
|
||||||
|
// if log.GetLevel() == log.LOG_TRACE {
|
||||||
|
// DbClient.IsShowSQL = true
|
||||||
|
// }
|
||||||
|
// log.Debugf("dbType:%s dbUrl:%s:******@tcp(%s:%s)/%s", DbClient.dbType, db.User, db.Host, db.Port, db.Name)
|
||||||
|
// var err error
|
||||||
|
// DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl)
|
||||||
|
// if err != nil {
|
||||||
|
// log.Error("Failed to connet database:", err)
|
||||||
|
// return err
|
||||||
|
// }
|
||||||
|
// DbClient.XEngine.SetConnMaxLifetime(DbClient.dbConnMaxLifetime)
|
||||||
|
// DbClient.XEngine.SetMaxIdleConns(DbClient.dbMaxIdleConns)
|
||||||
|
// DbClient.XEngine.SetMaxOpenConns(DbClient.dbMaxOpenConns)
|
||||||
|
// if DbClient.IsShowSQL {
|
||||||
|
// DbClient.XEngine.ShowSQL(true)
|
||||||
|
// }
|
||||||
|
// xEngine = DbClient.XEngine
|
||||||
|
|
||||||
|
// return nil
|
||||||
|
// }
|
||||||
|
|
||||||
|
var xEngine *xorm.Engine
|
||||||
|
|
||||||
|
func XormConnectDatabase(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) (*xorm.Engine, error) {
|
||||||
|
sqlStr := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local",
|
||||||
|
dbUser, dbPassword, dbHost, dbPort, dbName)
|
||||||
|
log.Debugf("dbType:%s Connect to:%s:******@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local",
|
||||||
|
dbType, dbUser, dbHost, dbPort, dbName)
|
||||||
|
var err error
|
||||||
|
xEngine, err = xorm.NewEngine(dbType, sqlStr) //1、Create xorm engine
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to connect database:", err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if log.GetLevel() == log.LOG_TRACE {
|
||||||
|
xEngine.ShowSQL(true)
|
||||||
|
}
|
||||||
|
return xEngine, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func XCoreDB() *core.DB {
|
||||||
|
return xEngine.DB()
|
||||||
|
}
|
||||||
|
|
||||||
|
func XEngDB() *xorm.Engine {
|
||||||
|
return xEngine
|
||||||
|
}
|
||||||
|
|
||||||
|
type Session struct {
|
||||||
|
Id int `json:"id" xorm:"pk 'id' autoincr"`
|
||||||
|
AccountId string `json:"accountId" xorm:"account_id"`
|
||||||
|
Name string `json:"name" xorm:"name"`
|
||||||
|
Host string `json:"host" xorm:"host"`
|
||||||
|
AccessToken string `json:"accessToken" xorm:"access_token"`
|
||||||
|
Expires uint32 `json:"expires" xorm:"expires"`
|
||||||
|
Status string `json:"status" xorm:"status"`
|
||||||
|
LoginTime string `json:"loginTime" xorm:"-"`
|
||||||
|
ShakeTime sql.NullTime `son:"shakeTime" xorm:"shake_time"`
|
||||||
|
LogoutTime sql.NullTime `json:"logoutTime" xorm:"logout_time"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// XormUpdateSession update session
|
||||||
|
func XormLogoutUpdateSession(token string) (Session, error) {
|
||||||
|
log.Info("XormLogoutUpdateSession processing... ")
|
||||||
|
|
||||||
|
session := Session{Status: "offline", AccessToken: token}
|
||||||
|
session.LogoutTime.Valid = true
|
||||||
|
session.LogoutTime.Time = time.Now()
|
||||||
|
|
||||||
|
xSession := xEngine.NewSession()
|
||||||
|
defer xSession.Close()
|
||||||
|
_, err := xSession.Table("session").Where("access_token = ?", token).Update(session)
|
||||||
|
xSession.Commit()
|
||||||
|
// 查询记录返回
|
||||||
|
if err == nil {
|
||||||
|
session := Session{}
|
||||||
|
_, err = xSession.Table("session").Where("access_token = ?", token).Get(&session)
|
||||||
|
return session, err
|
||||||
|
}
|
||||||
|
return session, err
|
||||||
|
}
|
||||||
@@ -12,11 +12,11 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"be.ems/lib/dborm"
|
|
||||||
"be.ems/lib/global"
|
"be.ems/lib/global"
|
||||||
"be.ems/lib/log"
|
"be.ems/lib/log"
|
||||||
"be.ems/lib/mmlp"
|
"be.ems/lib/mmlp"
|
||||||
"be.ems/sshsvc/config"
|
"be.ems/sshsvc/config"
|
||||||
|
"be.ems/sshsvc/dborm"
|
||||||
"be.ems/sshsvc/logmml"
|
"be.ems/sshsvc/logmml"
|
||||||
"be.ems/sshsvc/snmp"
|
"be.ems/sshsvc/snmp"
|
||||||
omctelnet "be.ems/sshsvc/telnet"
|
omctelnet "be.ems/sshsvc/telnet"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"be.ems/lib/dborm"
|
"be.ems/sshsvc/dborm"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TelnetHandler struct {
|
type TelnetHandler struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user