WIP implement multi connstr config

This commit is contained in:
lash 2025-01-19 16:32:55 +00:00
parent 0f54ab4b4a
commit 8d5d3f1dc8
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
13 changed files with 129 additions and 104 deletions

View File

@ -36,8 +36,7 @@ var (
func main() { func main() {
config.LoadConfig() config.LoadConfig()
var connStr string var override config.Override
var resourceDir string
var size uint var size uint
var engineDebug bool var engineDebug bool
var host string var host string
@ -46,10 +45,11 @@ func main() {
var gettextDir string var gettextDir string
var langs args.LangVar var langs args.LangVar
flag.StringVar(&resourceDir, "resourcedir", path.Join("services", "registration"), "resource dir")
flag.StringVar(&connStr, "c", "", "connection string")
flag.BoolVar(&engineDebug, "d", false, "use engine debug output") flag.BoolVar(&engineDebug, "d", false, "use engine debug output")
flag.StringVar(&override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(&override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(&override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(&override.StateConn, "state", "?", "state store connection string")
flag.UintVar(&size, "s", 160, "max size of output") flag.UintVar(&size, "s", 160, "max size of output")
flag.StringVar(&host, "h", config.Host(), "http host") flag.StringVar(&host, "h", config.Host(), "http host")
flag.UintVar(&port, "p", config.Port(), "http port") flag.UintVar(&port, "p", config.Port(), "http port")
@ -57,16 +57,14 @@ func main() {
flag.Var(&langs, "language", "add symbol resolution for language") flag.Var(&langs, "language", "add symbol resolution for language")
flag.Parse() flag.Parse()
if connStr == "" { config.Apply(&override)
connStr = config.DbConn() conns, err := config.GetConns()
}
connData, err := storage.ToConnData(connStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "connstr err: %v", err) fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1) os.Exit(1)
} }
logg.Infof("start command", "build", build, "conn", connData, "resourcedir", resourceDir, "outputsize", size) logg.Infof("start command", "build", build, "conn", conns, "outputsize", size)
ctx := context.Background() ctx := context.Background()
ln, err := lang.LanguageFromCode(config.Language()) ln, err := lang.LanguageFromCode(config.Language())
@ -89,7 +87,7 @@ func main() {
cfg.EngineDebug = true cfg.EngineDebug = true
} }
menuStorageService := storage.NewMenuStorageService(connData, resourceDir) menuStorageService := storage.NewMenuStorageService(conns)
rs, err := menuStorageService.GetResource(ctx) rs, err := menuStorageService.GetResource(ctx)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "menustorageservice: %v\n", err) fmt.Fprintf(os.Stderr, "menustorageservice: %v\n", err)
@ -119,7 +117,7 @@ func main() {
os.Exit(1) os.Exit(1)
} }
accountService := services.New(ctx, menuStorageService, connData) accountService := services.New(ctx, menuStorageService)
hl, err := lhs.GetHandler(accountService) hl, err := lhs.GetHandler(accountService)
if err != nil { if err != nil {

View File

@ -44,9 +44,8 @@ func (p *asyncRequestParser) GetInput(r any) ([]byte, error) {
func main() { func main() {
config.LoadConfig() config.LoadConfig()
var connStr string var override config.Override
var sessionId string var sessionId string
var resourceDir string
var size uint var size uint
var engineDebug bool var engineDebug bool
var host string var host string
@ -56,8 +55,11 @@ func main() {
var langs args.LangVar var langs args.LangVar
flag.StringVar(&sessionId, "session-id", "075xx2123", "session id") flag.StringVar(&sessionId, "session-id", "075xx2123", "session id")
flag.StringVar(&resourceDir, "resourcedir", path.Join("services", "registration"), "resource dir") flag.StringVar(&override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(&connStr, "c", "", "connection string") flag.StringVar(&override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(&override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(&override.StateConn, "state", "?", "state store connection string")
flag.BoolVar(&engineDebug, "d", false, "use engine debug output") flag.BoolVar(&engineDebug, "d", false, "use engine debug output")
flag.UintVar(&size, "s", 160, "max size of output") flag.UintVar(&size, "s", 160, "max size of output")
flag.StringVar(&host, "h", config.Host(), "http host") flag.StringVar(&host, "h", config.Host(), "http host")
@ -66,16 +68,14 @@ func main() {
flag.Var(&langs, "language", "add symbol resolution for language") flag.Var(&langs, "language", "add symbol resolution for language")
flag.Parse() flag.Parse()
if connStr == "" { config.Apply(&override)
connStr = config.DbConn() conns, err := config.GetConns()
}
connData, err := storage.ToConnData(connStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "connstr err: %v", err) fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1) os.Exit(1)
} }
logg.Infof("start command", "conn", connData, "resourcedir", resourceDir, "outputsize", size, "sessionId", sessionId) logg.Infof("start command", "conn", conns, "outputsize", size, "sessionId", sessionId)
ctx := context.Background() ctx := context.Background()
@ -99,7 +99,7 @@ func main() {
cfg.EngineDebug = true cfg.EngineDebug = true
} }
menuStorageService := storage.NewMenuStorageService(connData, resourceDir) menuStorageService := storage.NewMenuStorageService(conns)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, err.Error()) fmt.Fprintf(os.Stderr, err.Error())
os.Exit(1) os.Exit(1)
@ -126,7 +126,7 @@ func main() {
lhs, err := handlers.NewLocalHandlerService(ctx, pfp, true, dbResource, cfg, rs) lhs, err := handlers.NewLocalHandlerService(ctx, pfp, true, dbResource, cfg, rs)
lhs.SetDataStore(&userdataStore) lhs.SetDataStore(&userdataStore)
accountService := services.New(ctx, menuStorageService, connData) accountService := services.New(ctx, menuStorageService)
hl, err := lhs.GetHandler(accountService) hl, err := lhs.GetHandler(accountService)
if err != nil { if err != nil {

View File

@ -35,8 +35,7 @@ var (
func main() { func main() {
config.LoadConfig() config.LoadConfig()
var connStr string var override config.Override
var resourceDir string
var size uint var size uint
var engineDebug bool var engineDebug bool
var host string var host string
@ -45,8 +44,11 @@ func main() {
var gettextDir string var gettextDir string
var langs args.LangVar var langs args.LangVar
flag.StringVar(&resourceDir, "resourcedir", path.Join("services", "registration"), "resource dir") flag.StringVar(&override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(&connStr, "c", "", "connection string") flag.StringVar(&override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(&override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(&override.StateConn, "state", "?", "state store connection string")
flag.BoolVar(&engineDebug, "d", false, "use engine debug output") flag.BoolVar(&engineDebug, "d", false, "use engine debug output")
flag.UintVar(&size, "s", 160, "max size of output") flag.UintVar(&size, "s", 160, "max size of output")
flag.StringVar(&host, "h", config.Host(), "http host") flag.StringVar(&host, "h", config.Host(), "http host")
@ -55,16 +57,14 @@ func main() {
flag.Var(&langs, "language", "add symbol resolution for language") flag.Var(&langs, "language", "add symbol resolution for language")
flag.Parse() flag.Parse()
if connStr == "" { config.Apply(&override)
connStr = config.DbConn() conns, err := config.GetConns()
}
connData, err := storage.ToConnData(connStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "connstr err: %v", err) fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1) os.Exit(1)
} }
logg.Infof("start command", "conn", connData, "resourcedir", resourceDir, "outputsize", size) logg.Infof("start command", "conn", conns, "outputsize", size)
ctx := context.Background() ctx := context.Background()
@ -88,7 +88,7 @@ func main() {
cfg.EngineDebug = true cfg.EngineDebug = true
} }
menuStorageService := storage.NewMenuStorageService(connData, resourceDir) menuStorageService := storage.NewMenuStorageService(conns)
rs, err := menuStorageService.GetResource(ctx) rs, err := menuStorageService.GetResource(ctx)
if err != nil { if err != nil {
@ -115,7 +115,7 @@ func main() {
os.Exit(1) os.Exit(1)
} }
accountService := services.New(ctx, menuStorageService, connData) accountService := services.New(ctx, menuStorageService)
hl, err := lhs.GetHandler(accountService) hl, err := lhs.GetHandler(accountService)
if err != nil { if err != nil {

View File

@ -29,34 +29,33 @@ var (
func main() { func main() {
config.LoadConfig() config.LoadConfig()
var connStr string var override config.Override
var size uint var size uint
var sessionId string var sessionId string
var engineDebug bool var engineDebug bool
var resourceDir string
var err error var err error
var gettextDir string var gettextDir string
var langs args.LangVar var langs args.LangVar
flag.StringVar(&resourceDir, "resourcedir", scriptDir, "resource dir")
flag.StringVar(&sessionId, "session-id", "075xx2123", "session id") flag.StringVar(&sessionId, "session-id", "075xx2123", "session id")
flag.StringVar(&connStr, "c", "", "connection string") flag.StringVar(&override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(&override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(&override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(&override.StateConn, "state", "?", "state store connection string")
flag.BoolVar(&engineDebug, "d", false, "use engine debug output") flag.BoolVar(&engineDebug, "d", false, "use engine debug output")
flag.UintVar(&size, "s", 160, "max size of output") flag.UintVar(&size, "s", 160, "max size of output")
flag.StringVar(&gettextDir, "gettext", "", "use gettext translations from given directory") flag.StringVar(&gettextDir, "gettext", "", "use gettext translations from given directory")
flag.Var(&langs, "language", "add symbol resolution for language") flag.Var(&langs, "language", "add symbol resolution for language")
flag.Parse() flag.Parse()
if connStr == "" { config.Apply(&override)
connStr = config.DbConn() conns, err := config.GetConns()
}
connData, err := storage.ToConnData(connStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "connstr err: %v\n", err) fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1) os.Exit(1)
} }
logg.Infof("start command", "conn", connData, "outputsize", size) logg.Infof("start command", "conn", conns, "outputsize", size)
if len(langs.Langs()) == 0 { if len(langs.Langs()) == 0 {
langs.Set(config.Language()) langs.Set(config.Language())
@ -82,7 +81,7 @@ func main() {
MenuSeparator: menuSeparator, MenuSeparator: menuSeparator,
} }
menuStorageService := storage.NewMenuStorageService(connData, resourceDir) menuStorageService := storage.NewMenuStorageService(conns)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "menu storage service error: %v\n", err) fmt.Fprintf(os.Stderr, "menu storage service error: %v\n", err)
os.Exit(1) os.Exit(1)
@ -124,7 +123,7 @@ func main() {
os.Exit(1) os.Exit(1)
} }
accountService := services.New(ctx, menuStorageService, connData) accountService := services.New(ctx, menuStorageService)
hl, err := lhs.GetHandler(accountService) hl, err := lhs.GetHandler(accountService)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "get accounts service handler: %v\n", err) fmt.Fprintf(os.Stderr, "get accounts service handler: %v\n", err)

View File

@ -31,34 +31,31 @@ var (
func main() { func main() {
config.LoadConfig() config.LoadConfig()
var connStr string var override config.Override
var authConnStr string var authConnStr string
var resourceDir string
var size uint var size uint
var engineDebug bool var engineDebug bool
var stateDebug bool var stateDebug bool
var host string var host string
var port uint var port uint
flag.StringVar(&connStr, "c", "", "connection string") //flag.StringVar(&authConnStr, "authdb", "", "auth connection string")
flag.StringVar(&authConnStr, "authdb", "", "auth connection string") flag.StringVar(&override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(&resourceDir, "resourcedir", path.Join("services", "registration"), "resource dir") flag.StringVar(&override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(&override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(&override.StateConn, "state", "?", "state store connection string")
flag.BoolVar(&engineDebug, "d", false, "use engine debug output") flag.BoolVar(&engineDebug, "d", false, "use engine debug output")
flag.UintVar(&size, "s", 160, "max size of output") flag.UintVar(&size, "s", 160, "max size of output")
flag.StringVar(&host, "h", config.HostSSH(), "socket host") flag.StringVar(&host, "h", config.HostSSH(), "socket host")
flag.UintVar(&port, "p", config.PortSSH(), "socket port") flag.UintVar(&port, "p", config.PortSSH(), "socket port")
flag.Parse() flag.Parse()
if connStr == "" { config.Apply(&override)
connStr = config.DbConn() conns, err := config.GetConns()
}
if authConnStr == "" {
authConnStr = connStr
}
connData, err := storage.ToConnData(connStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "connstr err: %v", err) fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1) os.Exit(1)
} }
authConnData, err := storage.ToConnData(authConnStr) authConnData, err := storage.ToConnData(authConnStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "auth connstr err: %v", err) fmt.Fprintf(os.Stderr, "auth connstr err: %v", err)
@ -79,7 +76,7 @@ func main() {
logg.WarnCtxf(ctx, "!!!!! Do not expose to internet and only use with tunnel!") logg.WarnCtxf(ctx, "!!!!! Do not expose to internet and only use with tunnel!")
logg.WarnCtxf(ctx, "!!!!! (See ssh -L <...>)") logg.WarnCtxf(ctx, "!!!!! (See ssh -L <...>)")
logg.Infof("start command", "conn", connData, "authconn", authConnData, "resourcedir", resourceDir, "outputsize", size, "keyfile", sshKeyFile, "host", host, "port", port) logg.Infof("start command", "conn", conns, "authconn", authConnData, "outputsize", size, "keyfile", sshKeyFile, "host", host, "port", port)
pfp := path.Join(scriptDir, "pp.csv") pfp := path.Join(scriptDir, "pp.csv")
@ -117,8 +114,7 @@ func main() {
Cfg: cfg, Cfg: cfg,
Debug: engineDebug, Debug: engineDebug,
FlagFile: pfp, FlagFile: pfp,
Conn: connData, Conn: conns,
ResourceDir: resourceDir,
SrvKeyFile: sshKeyFile, SrvKeyFile: sshKeyFile,
Host: host, Host: host,
Port: port, Port: port,

17
config/args.go Normal file
View File

@ -0,0 +1,17 @@
package config
import (
viseconfig "git.grassecon.net/grassrootseconomics/visedriver/config"
)
type Override struct {
DbConn string
StateConn string
ResourceConn string
UserConn string
}
func Apply(o *Override) error {
viseconfig.ApplyConn(&o.DbConn, &o.StateConn, &o.ResourceConn, &o.UserConn)
return nil
}

View File

@ -6,6 +6,10 @@ import (
apiconfig "git.grassecon.net/grassrootseconomics/sarafu-api/config" apiconfig "git.grassecon.net/grassrootseconomics/sarafu-api/config"
) )
var (
GetConns = viseconfig.GetConns
)
func init() { func init() {
env.LoadEnvVariables() env.LoadEnvVariables()
} }
@ -17,7 +21,6 @@ const (
defaultHTTPPort uint = 7123 defaultHTTPPort uint = 7123
) )
func LoadConfig() error { func LoadConfig() error {
err := viseconfig.LoadConfig() err := viseconfig.LoadConfig()
if err != nil { if err != nil {
@ -30,10 +33,6 @@ func LoadConfig() error {
return nil return nil
} }
func DbConn() string {
return viseconfig.DbConn
}
func Language() string { func Language() string {
return viseconfig.DefaultLanguage return viseconfig.DefaultLanguage
} }

View File

@ -24,21 +24,23 @@ func main() {
config.LoadConfig() config.LoadConfig()
var sessionId string var sessionId string
var connStr string var override config.Override
flag.StringVar(&sessionId, "session-id", "075xx2123", "session id") flag.StringVar(&sessionId, "session-id", "075xx2123", "session id")
flag.StringVar(&connStr, "c", "", "connection string") flag.StringVar(&override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(&override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(&override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(&override.StateConn, "state", "?", "state store connection string")
flag.Parse() flag.Parse()
config.Apply(&override)
if connStr == "" { conns, err := config.GetConns()
connStr = config.DbConn()
}
connData, err := storage.ToConnData(connStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "connstr err: %v\n", err) fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1) os.Exit(1)
} }
ctx := context.Background() ctx := context.Background()
ctx = context.WithValue(ctx, "SessionId", sessionId) ctx = context.WithValue(ctx, "SessionId", sessionId)
@ -49,16 +51,16 @@ func main() {
os.Exit(1) os.Exit(1)
} }
x := cmd.NewCmd(connData, sessionId, flagParser) x := cmd.NewCmd(sessionId, flagParser)
err = x.Parse(flag.Args()) err = x.Parse(flag.Args())
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "cmd parse fail: %v\n", err) fmt.Fprintf(os.Stderr, "cmd parse fail: %v\n", err)
os.Exit(1) os.Exit(1)
} }
logg.Infof("start command", "conn", connData, "subcmd", x) logg.Infof("start command", "conn", conns, "subcmd", x)
menuStorageService := storage.NewMenuStorageService(connData, "") menuStorageService := storage.NewMenuStorageService(conns)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "menu storage service error: %v\n", err) fmt.Fprintf(os.Stderr, "menu storage service error: %v\n", err)
os.Exit(1) os.Exit(1)

View File

@ -32,7 +32,7 @@ func formatItem(k []byte, v []byte, sessionId string) (string, error) {
func main() { func main() {
config.LoadConfig() config.LoadConfig()
var connStr string var override config.Override
var sessionId string var sessionId string
var database string var database string
var engineDebug bool var engineDebug bool
@ -40,27 +40,27 @@ func main() {
var first bool var first bool
flag.StringVar(&sessionId, "session-id", "075xx2123", "session id") flag.StringVar(&sessionId, "session-id", "075xx2123", "session id")
flag.StringVar(&connStr, "c", "", "connection string") flag.StringVar(&override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(&override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(&override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(&override.StateConn, "state", "?", "state store connection string")
flag.BoolVar(&engineDebug, "d", false, "use engine debug output") flag.BoolVar(&engineDebug, "d", false, "use engine debug output")
flag.Parse() flag.Parse()
if connStr == "" { config.Apply(&override)
connStr = config.DbConn() conns, err := config.GetConns()
}
connData, err := storage.ToConnData(connStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "connstr err: %v\n", err) fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1) os.Exit(1)
} }
logg.Infof("start command", "conn", connData) logg.Infof("start command", "conn", conns)
ctx := context.Background() ctx := context.Background()
ctx = context.WithValue(ctx, "SessionId", sessionId) ctx = context.WithValue(ctx, "SessionId", sessionId)
ctx = context.WithValue(ctx, "Database", database) ctx = context.WithValue(ctx, "Database", database)
resourceDir := scriptDir menuStorageService := storage.NewMenuStorageService(conns)
menuStorageService := storage.NewMenuStorageService(connData, resourceDir)
store, err := menuStorageService.GetUserdataDb(ctx) store, err := menuStorageService.GetUserdataDb(ctx)
if err != nil { if err != nil {

View File

@ -22,9 +22,10 @@ type Cmd struct {
exec func(ctx context.Context, ss storage.StorageService) error exec func(ctx context.Context, ss storage.StorageService) error
} }
func NewCmd(conn storage.ConnData, sessionId string, flagParser *application.FlagManager) *Cmd { //func NewCmd(conn storage.ConnData, sessionId string, flagParser *application.FlagManager) *Cmd {
func NewCmd(sessionId string, flagParser *application.FlagManager) *Cmd {
return &Cmd{ return &Cmd{
conn: conn, // conn: conn,
sessionId: sessionId, sessionId: sessionId,
flagParser: flagParser, flagParser: flagParser,
} }

View File

@ -37,7 +37,7 @@ func (d *localEmitter) emit(ctx context.Context, msg apievent.Msg) error {
return err return err
} }
func New(ctx context.Context, storageService storage.StorageService, conn storage.ConnData) remote.AccountService { func New(ctx context.Context, storageService storage.StorageService) remote.AccountService {
svc := devremote.NewDevAccountService(ctx, storageService) svc := devremote.NewDevAccountService(ctx, storageService)
svc = svc.WithAutoVoucher(ctx, "FOO", 42) svc = svc.WithAutoVoucher(ctx, "FOO", 42)
eu := event.NewEventsUpdater(svc, storageService) eu := event.NewEventsUpdater(svc, storageService)

View File

@ -75,8 +75,7 @@ type SshRunner struct {
Ctx context.Context Ctx context.Context
Cfg engine.Config Cfg engine.Config
FlagFile string FlagFile string
Conn storage.ConnData Conn storage.Conns
ResourceDir string
Debug bool Debug bool
SrvKeyFile string SrvKeyFile string
Host string Host string
@ -148,7 +147,7 @@ func(s *SshRunner) Stop() error {
func(s *SshRunner) GetEngine(sessionId string) (engine.Engine, func(), error) { func(s *SshRunner) GetEngine(sessionId string) (engine.Engine, func(), error) {
ctx := s.Ctx ctx := s.Ctx
menuStorageService := storage.NewMenuStorageService(s.Conn, s.ResourceDir) menuStorageService := storage.NewMenuStorageService(s.Conn)
rs, err := menuStorageService.GetResource(ctx) rs, err := menuStorageService.GetResource(ctx)
if err != nil { if err != nil {
@ -180,7 +179,7 @@ func(s *SshRunner) GetEngine(sessionId string) (engine.Engine, func(), error) {
} }
// TODO: clear up why pointer here and by-value other cmds // TODO: clear up why pointer here and by-value other cmds
accountService := services.New(ctx, menuStorageService, s.Conn) accountService := services.New(ctx, menuStorageService)
hl, err := lhs.GetHandler(accountService) hl, err := lhs.GetHandler(accountService)
if err != nil { if err != nil {

View File

@ -112,10 +112,16 @@ func TestEngine(sessionId string) (engine.Engine, func(), chan bool) {
} }
if setDbType == "postgres" { if setDbType == "postgres" {
setConnStr = config.DbConn conns, err := config.GetConns()
if err != nil {
fmt.Fprintf(os.Stderr, "Getconns error: %v", err)
os.Exit(1)
}
conn := conns[storage.STORETYPE_USER]
setConnStr = conn.String()
setConnStr, err = updateSearchPath(setConnStr, setDbSchema) setConnStr, err = updateSearchPath(setConnStr, setDbSchema)
if err != nil { if err != nil {
fmt.Println("Error:", err) fmt.Fprintf(os.Stderr, "Update search paths Error: %v\n", err)
os.Exit(1) os.Exit(1)
} }
} else { } else {
@ -125,15 +131,23 @@ func TestEngine(sessionId string) (engine.Engine, func(), chan bool) {
os.Exit(1) os.Exit(1)
} }
} }
conn, err := storage.ToConnData(setConnStr) conn, err := storage.ToConnData(setConnStr)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "connstr parse err: %v", err) fmt.Fprintf(os.Stderr, "connstr parse err: %v", err)
os.Exit(1) os.Exit(1)
} }
conns := storage.NewConns()
conns.Set(conn, storage.STORETYPE_STATE)
conns.Set(conn, storage.STORETYPE_USER)
resourceDir := scriptDir conn, err = storage.ToConnData(scriptDir)
menuStorageService := storage.NewMenuStorageService(conn, resourceDir) if err != nil {
fmt.Fprintf(os.Stderr, "connstr parse err: %v", err)
os.Exit(1)
}
conns.Set(conn, storage.STORETYPE_RESOURCE)
menuStorageService := storage.NewMenuStorageService(conns)
rs, err := menuStorageService.GetResource(ctx) rs, err := menuStorageService.GetResource(ctx)
if err != nil { if err != nil {