diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 966f5872a..ae8b1d089 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -1586,32 +1586,20 @@ func main() { var loadDb engine.LoadStorage var cdrDb engine.CdrStorage var dm *engine.DataManager - if cfg.RalsCfg().RALsEnabled || cfg.SchedulerCfg().Enabled || cfg.ChargerSCfg().Enabled || + if needsDB := cfg.RalsCfg().RALsEnabled || cfg.SchedulerCfg().Enabled || cfg.ChargerSCfg().Enabled || cfg.AttributeSCfg().Enabled || cfg.ResourceSCfg().Enabled || cfg.StatSCfg().Enabled || - cfg.ThresholdSCfg().Enabled || cfg.SupplierSCfg().Enabled || cfg.DispatcherSCfg().Enabled { // Some services can run without db, ie: CDRC + cfg.ThresholdSCfg().Enabled || cfg.SupplierSCfg().Enabled || cfg.DispatcherSCfg().Enabled; needsDB || + cfg.SessionSCfg().Enabled { // Some services can run without db, ie: CDRC dm, err = engine.ConfigureDataStorage(cfg.DataDbCfg().DataDbType, cfg.DataDbCfg().DataDbHost, cfg.DataDbCfg().DataDbPort, cfg.DataDbCfg().DataDbName, cfg.DataDbCfg().DataDbUser, cfg.DataDbCfg().DataDbPass, cfg.GeneralCfg().DBDataEncoding, cfg.CacheCfg(), cfg.DataDbCfg().DataDbSentinelName) - if err != nil { // Cannot configure getter database, show stopper + if needsDB && err != nil { // Cannot configure getter database, show stopper utils.Logger.Crit(fmt.Sprintf("Could not configure dataDb: %s exiting!", err)) return - } - defer dm.DataDB().Close() - engine.SetDataStorage(dm) - if err := engine.CheckVersions(dm.DataDB()); err != nil { - fmt.Println(err.Error()) - return - } - } else if cfg.SessionSCfg().Enabled { - dm, err = engine.ConfigureDataStorage(cfg.DataDbCfg().DataDbType, - cfg.DataDbCfg().DataDbHost, cfg.DataDbCfg().DataDbPort, - cfg.DataDbCfg().DataDbName, cfg.DataDbCfg().DataDbUser, - cfg.DataDbCfg().DataDbPass, cfg.GeneralCfg().DBDataEncoding, - cfg.CacheCfg(), cfg.DataDbCfg().DataDbSentinelName) - if err != nil { // Cannot configure getter database, show stopper - utils.Logger.Warning(fmt.Sprintf("Could not configure dataDb: %s.Some SessionS API will not work", err)) + } else if cfg.SessionSCfg().Enabled && err != nil { + utils.Logger.Warning(fmt.Sprintf("Could not configure dataDb: %s.Some SessionS APIs will not work", err)) } else { defer dm.DataDB().Close() engine.SetDataStorage(dm) diff --git a/sessions/sessions.go b/sessions/sessions.go index dfe12655e..b98a77f70 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -1552,7 +1552,7 @@ func (sS *SessionS) BiRPCv1GetActiveSessions(clnt rpcclient.RpcClientConnection, args = &utils.SessionFilter{} } if len(args.Filters) != 0 && sS.dm == nil { - return utils.NoDataBaseConnection + return utils.ErrNoDatabaseConn } aSs := sS.filterSessions(args, false) if len(aSs) == 0 { @@ -1569,7 +1569,7 @@ func (sS *SessionS) BiRPCv1GetActiveSessionsCount(clnt rpcclient.RpcClientConnec args = &utils.SessionFilter{} } if len(args.Filters) != 0 && sS.dm == nil { - return utils.NoDataBaseConnection + return utils.ErrNoDatabaseConn } *reply = sS.filterSessionsCount(args, false) return nil @@ -1582,7 +1582,7 @@ func (sS *SessionS) BiRPCv1GetPassiveSessions(clnt rpcclient.RpcClientConnection args = &utils.SessionFilter{} } if len(args.Filters) != 0 && sS.dm == nil { - return utils.NoDataBaseConnection + return utils.ErrNoDatabaseConn } pSs := sS.filterSessions(args, true) if len(pSs) == 0 { @@ -1599,7 +1599,7 @@ func (sS *SessionS) BiRPCv1GetPassiveSessionsCount(clnt rpcclient.RpcClientConne args = &utils.SessionFilter{} } if len(args.Filters) != 0 && sS.dm == nil { - return utils.NoDataBaseConnection + return utils.ErrNoDatabaseConn } *reply = sS.filterSessionsCount(args, true) return nil @@ -2782,7 +2782,7 @@ func (sS *SessionS) BiRPCv1ForceDisconnect(clnt rpcclient.RpcClientConnection, args = &utils.SessionFilter{} } if len(args.Filters) != 0 && sS.dm == nil { - return utils.NoDataBaseConnection + return utils.ErrNoDatabaseConn } aSs := sS.filterSessions(args, false) if len(aSs) == 0 { diff --git a/utils/errors.go b/utils/errors.go index ee45498e8..7ca86efe8 100644 --- a/utils/errors.go +++ b/utils/errors.go @@ -78,7 +78,7 @@ var ( RalsErrorPrfx = "RALS_ERROR" DispatcherErrorPrefix = "DISPATCHER_ERROR" ErrUnsupportedFormat = errors.New("UNSUPPORTED_FORMAT") - NoDataBaseConnection = errors.New("NO_DATA_BASE_CONNECTION") + ErrNoDatabaseConn = errors.New("NO_DATA_BASE_CONNECTION") ) // NewCGRError initialises a new CGRError