Enable db text/binary mode set in override, config
This commit is contained in:
parent
d5e636fbd6
commit
8530c45074
@ -15,12 +15,27 @@ var (
|
|||||||
DefaultLanguage string
|
DefaultLanguage string
|
||||||
dbConn string
|
dbConn string
|
||||||
dbConnMissing bool
|
dbConnMissing bool
|
||||||
|
dbConnMode storage.DbMode
|
||||||
stateDbConn string
|
stateDbConn string
|
||||||
|
stateDbConnMode storage.DbMode
|
||||||
resourceDbConn string
|
resourceDbConn string
|
||||||
|
resourceDbConnMode storage.DbMode
|
||||||
userDbConn string
|
userDbConn string
|
||||||
|
userDbConnMode storage.DbMode
|
||||||
Languages []string
|
Languages []string
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Override struct {
|
||||||
|
DbConn *string
|
||||||
|
DbConnMode storage.DbMode
|
||||||
|
StateConn *string
|
||||||
|
StateConnMode storage.DbMode
|
||||||
|
ResourceConn *string
|
||||||
|
ResourceConnMode storage.DbMode
|
||||||
|
UserConn *string
|
||||||
|
UserConnMode storage.DbMode
|
||||||
|
}
|
||||||
|
|
||||||
func setLanguage() error {
|
func setLanguage() error {
|
||||||
defaultLanguage = env.GetEnv("DEFAULT_LANGUAGE", defaultLanguage)
|
defaultLanguage = env.GetEnv("DEFAULT_LANGUAGE", defaultLanguage)
|
||||||
languages = strings.Split(env.GetEnv("LANGUAGES", defaultLanguage), ",")
|
languages = strings.Split(env.GetEnv("LANGUAGES", defaultLanguage), ",")
|
||||||
@ -47,19 +62,24 @@ func setConn() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ApplyConn(connStr *string, stateConnStr *string, resourceConnStr *string, userConnStr *string) {
|
func ApplyConn(override *Override) {
|
||||||
logg.Infof("applyconn", "state", stateConnStr, "user", userConnStr)
|
if override.DbConn != nil {
|
||||||
if connStr != nil {
|
dbConn = *override.DbConn
|
||||||
dbConn = *connStr
|
dbConnMode = override.DbConnMode
|
||||||
}
|
}
|
||||||
if stateConnStr != nil {
|
if override.StateConn != nil {
|
||||||
stateDbConn = *stateConnStr
|
stateDbConn = *override.StateConn
|
||||||
|
stateDbConnMode = override.StateConnMode
|
||||||
}
|
}
|
||||||
if resourceConnStr != nil {
|
if override.ResourceConn != nil {
|
||||||
resourceDbConn = *resourceConnStr
|
resourceDbConn = *override.ResourceConn
|
||||||
|
resourceDbConnMode = override.ResourceConnMode
|
||||||
}
|
}
|
||||||
if userConnStr != nil {
|
if override.UserConn != nil {
|
||||||
userDbConn = *userConnStr
|
userDbConn = *override.UserConn
|
||||||
|
if override.UserConnMode != storage.DBMODE_BINARY {
|
||||||
|
logg.Warnf("user db non-binary mode ignored")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if dbConn == "?" {
|
if dbConn == "?" {
|
||||||
@ -68,28 +88,31 @@ func ApplyConn(connStr *string, stateConnStr *string, resourceConnStr *string, u
|
|||||||
|
|
||||||
if stateDbConn == "?" {
|
if stateDbConn == "?" {
|
||||||
stateDbConn = dbConn
|
stateDbConn = dbConn
|
||||||
|
stateDbConnMode = dbConnMode
|
||||||
}
|
}
|
||||||
if resourceDbConn == "?" {
|
if resourceDbConn == "?" {
|
||||||
resourceDbConn = dbConn
|
resourceDbConn = dbConn
|
||||||
|
resourceDbConnMode = dbConnMode
|
||||||
}
|
}
|
||||||
if userDbConn == "?" {
|
if userDbConn == "?" {
|
||||||
userDbConn = dbConn
|
userDbConn = dbConn
|
||||||
|
//userDbConnMode = dbConnMode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetConns() (storage.Conns, error) {
|
func GetConns() (storage.Conns, error) {
|
||||||
o := storage.NewConns()
|
o := storage.NewConns()
|
||||||
c, err := storage.ToConnData(stateDbConn)
|
c, err := storage.ToConnDataMode(stateDbConn, stateDbConnMode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return o, err
|
return o, err
|
||||||
}
|
}
|
||||||
o.Set(c, storage.STORETYPE_STATE)
|
o.Set(c, storage.STORETYPE_STATE)
|
||||||
c, err = storage.ToConnData(resourceDbConn)
|
c, err = storage.ToConnDataMode(resourceDbConn, resourceDbConnMode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return o, err
|
return o, err
|
||||||
}
|
}
|
||||||
o.Set(c, storage.STORETYPE_RESOURCE)
|
o.Set(c, storage.STORETYPE_RESOURCE)
|
||||||
c, err = storage.ToConnData(userDbConn)
|
c, err = storage.ToConnDataMode(userDbConn, userDbConnMode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return o, err
|
return o, err
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,8 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type DbMode uint8
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DBTYPE_NONE = iota
|
DBTYPE_NONE = iota
|
||||||
DBTYPE_MEM
|
DBTYPE_MEM
|
||||||
@ -13,6 +15,11 @@ const (
|
|||||||
DBTYPE_POSTGRES
|
DBTYPE_POSTGRES
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DBMODE_BINARY DbMode = iota
|
||||||
|
DBMODE_TEXT
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
STORETYPE_STATE = iota
|
STORETYPE_STATE = iota
|
||||||
STORETYPE_RESOURCE
|
STORETYPE_RESOURCE
|
||||||
@ -52,6 +59,7 @@ type ConnData struct {
|
|||||||
typ int
|
typ int
|
||||||
str string
|
str string
|
||||||
domain string
|
domain string
|
||||||
|
mode DbMode
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cd *ConnData) DbType() int {
|
func (cd *ConnData) DbType() int {
|
||||||
@ -66,6 +74,10 @@ func (cd *ConnData) Domain() string {
|
|||||||
return cd.domain
|
return cd.domain
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cd *ConnData) Mode() DbMode {
|
||||||
|
return cd.mode
|
||||||
|
}
|
||||||
|
|
||||||
func (cd *ConnData) Path() string {
|
func (cd *ConnData) Path() string {
|
||||||
v, _ := url.Parse(cd.str)
|
v, _ := url.Parse(cd.str)
|
||||||
v.RawQuery = ""
|
v.RawQuery = ""
|
||||||
|
@ -61,6 +61,15 @@ func probeMem(s string) (string, string, bool) {
|
|||||||
return "", "", true
|
return "", "", true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ToConnDataMode(connStr string, mode DbMode) (ConnData, error) {
|
||||||
|
o, err := ToConnData(connStr)
|
||||||
|
if err != nil {
|
||||||
|
return o, err
|
||||||
|
}
|
||||||
|
o.mode = mode
|
||||||
|
return o, nil
|
||||||
|
}
|
||||||
|
|
||||||
func ToConnData(connStr string) (ConnData, error) {
|
func ToConnData(connStr string) (ConnData, error) {
|
||||||
var o ConnData
|
var o ConnData
|
||||||
|
|
||||||
|
@ -105,7 +105,11 @@ func (ms *MenuStorageService) getOrCreateDb(ctx context.Context, section string,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
newDb = fsdb.NewFsDb().WithBinary()
|
fsdbInstance := fsdb.NewFsDb()
|
||||||
|
if connData.Mode() == DBMODE_BINARY {
|
||||||
|
fsdbInstance = fsdbInstance.WithBinary()
|
||||||
|
}
|
||||||
|
newDb = fsdbInstance
|
||||||
} else if dbTyp == DBTYPE_MEM {
|
} else if dbTyp == DBTYPE_MEM {
|
||||||
logg.WarnCtxf(ctx, "using volatile storage (memdb)")
|
logg.WarnCtxf(ctx, "using volatile storage (memdb)")
|
||||||
newDb = memdb.NewMemDb()
|
newDb = memdb.NewMemDb()
|
||||||
|
Loading…
Reference in New Issue
Block a user