From 8103cd4c9ff227881bbb0891a805db7afda4dd93 Mon Sep 17 00:00:00 2001 From: gezimbll Date: Tue, 11 Jun 2024 03:56:51 -0400 Subject: [PATCH] renamed sarS api&®ister the sarS service to servmanager --- apier/v1/sars.go | 9 ++++---- cmd/cgr-engine/cgr-engine.go | 14 ++++++++--- config/configsanity.go | 4 ++-- services/sars.go | 45 +++++++++++++++++++++++++----------- servmanager/servmanager.go | 2 +- utils/consts.go | 4 +++- 6 files changed, 53 insertions(+), 25 deletions(-) diff --git a/apier/v1/sars.go b/apier/v1/sars.go index 1b30a096b..9cdabdc8b 100644 --- a/apier/v1/sars.go +++ b/apier/v1/sars.go @@ -23,14 +23,13 @@ import ( "github.com/cgrates/cgrates/utils" ) -func NewSArSv1() *SaRSv1 { - return &SaRSv1{} +func NewSArSv1() *SarSv1 { + return &SarSv1{} } -type SaRSv1 struct { -} +type SarSv1 struct{} -func (sa *SaRSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error { +func (sa *SarSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error { *reply = utils.Pong return nil } diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 97b0b0c9f..4dac7c717 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -150,7 +150,7 @@ func initConfigSv1(internalConfigChan chan birpc.ClientConnector, } func startRPC(server *cores.Server, internalRaterChan, - internalCdrSChan, internalRsChan, internalStatSChan, + internalCdrSChan, internalRsChan, internalStatSChan, internalSarSChan, internalAttrSChan, internalChargerSChan, internalThdSChan, internalSuplSChan, internalSMGChan, internalAnalyzerSChan, internalDispatcherSChan, internalLoaderSChan, internalRALsv1Chan, internalCacheSChan, @@ -182,6 +182,8 @@ func startRPC(server *cores.Server, internalRaterChan, internalLoaderSChan <- loaderS case ralS := <-internalRALsv1Chan: internalRALsv1Chan <- ralS + case sarS := <-internalSarSChan: + internalSarSChan <- sarS case chS := <-internalCacheSChan: // added in order to start the RPC before precaching is done internalCacheSChan <- chS case eeS := <-internalEEsChan: @@ -455,6 +457,7 @@ func main() { internalChargerSChan := make(chan birpc.ClientConnector, 1) internalThresholdSChan := make(chan birpc.ClientConnector, 1) internalStatSChan := make(chan birpc.ClientConnector, 1) + internalSarSChan := make(chan birpc.ClientConnector, 1) internalResourceSChan := make(chan birpc.ClientConnector, 1) internalRouteSChan := make(chan birpc.ClientConnector, 1) internalSchedulerSChan := make(chan birpc.ClientConnector, 1) @@ -483,6 +486,7 @@ func main() { utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS): internalSessionSChan, utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): internalStatSChan, utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes): internalRouteSChan, + utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSars): internalSarSChan, utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): internalThresholdSChan, utils.ConcatenatedKey(utils.MetaInternal, utils.MetaServiceManager): internalServeManagerChan, utils.ConcatenatedKey(utils.MetaInternal, utils.MetaConfig): internalConfigChan, @@ -524,6 +528,7 @@ func main() { utils.SessionS: new(sync.WaitGroup), utils.SIPAgent: new(sync.WaitGroup), utils.StatS: new(sync.WaitGroup), + utils.SarS: new(sync.WaitGroup), utils.StorDB: new(sync.WaitGroup), utils.ThresholdS: new(sync.WaitGroup), utils.AccountS: new(sync.WaitGroup), @@ -605,6 +610,8 @@ func main() { tS := services.NewThresholdService(cfg, dmService, cacheS, filterSChan, server, internalThresholdSChan, anz, srvDep) stS := services.NewStatService(cfg, dmService, cacheS, filterSChan, server, internalStatSChan, connManager, anz, srvDep) + srS := services.NewSarService(cfg, dmService, cacheS, filterSChan, server, + internalSarSChan, connManager, anz, srvDep) reS := services.NewResourceService(cfg, dmService, cacheS, filterSChan, server, internalResourceSChan, connManager, anz, srvDep) routeS := services.NewRouteService(cfg, dmService, cacheS, filterSChan, server, @@ -630,7 +637,7 @@ func main() { ldrs := services.NewLoaderService(cfg, dmService, filterSChan, server, internalLoaderSChan, connManager, anz, srvDep) - srvManager.AddServices(gvService, attrS, chrS, tS, stS, reS, routeS, schS, rals, + srvManager.AddServices(gvService, attrS, chrS, tS, stS, srS, reS, routeS, schS, rals, apiSv1, apiSv2, cdrS, smg, coreS, services.NewDNSAgent(cfg, filterSChan, shdChan, connManager, srvDep), services.NewFreeswitchAgent(cfg, shdChan, connManager, srvDep), @@ -674,6 +681,7 @@ func main() { engine.IntRPC.AddInternalRPCClient(utils.SchedulerSv1, internalSchedulerSChan) engine.IntRPC.AddInternalRPCClient(utils.SessionSv1, internalSessionSChan) engine.IntRPC.AddInternalRPCClient(utils.StatSv1, internalStatSChan) + engine.IntRPC.AddInternalRPCClient(utils.SarSv1, internalSarSChan) engine.IntRPC.AddInternalRPCClient(utils.RouteSv1, internalRouteSChan) engine.IntRPC.AddInternalRPCClient(utils.ThresholdSv1, internalThresholdSChan) engine.IntRPC.AddInternalRPCClient(utils.ServiceManagerV1, internalServeManagerChan) @@ -695,7 +703,7 @@ func main() { // Serve rpc connections go startRPC(server, internalResponderChan, internalCDRServerChan, - internalResourceSChan, internalStatSChan, + internalResourceSChan, internalStatSChan, internalSarSChan, internalAttributeSChan, internalChargerSChan, internalThresholdSChan, internalRouteSChan, internalSessionSChan, internalAnalyzerSChan, internalDispatcherSChan, internalLoaderSChan, internalRALsChan, diff --git a/config/configsanity.go b/config/configsanity.go index 150f7105a..8ae58a3e8 100644 --- a/config/configsanity.go +++ b/config/configsanity.go @@ -632,10 +632,10 @@ func (cfg *CGRConfig) checkConfigSanity() error { if cfg.sarsCfg.Enabled { for _, connID := range cfg.sarsCfg.StatSConns { if strings.HasPrefix(connID, utils.MetaInternal) && !cfg.statsCfg.Enabled { - return fmt.Errorf("<%s> not enabled but requested by <%s> component", utils.StatS, utils.SaRS) + return fmt.Errorf("<%s> not enabled but requested by <%s> component", utils.StatS, utils.SarS) } if _, has := cfg.rpcConns[connID]; !has && !strings.HasPrefix(connID, utils.MetaInternal) { - return fmt.Errorf("<%s> connection with id: <%s> not defined", utils.SaRS, connID) + return fmt.Errorf("<%s> connection with id: <%s> not defined", utils.SarS, connID) } } } diff --git a/services/sars.go b/services/sars.go index e6c19fef3..369678783 100644 --- a/services/sars.go +++ b/services/sars.go @@ -27,10 +27,30 @@ import ( "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/cores" "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/servmanager" "github.com/cgrates/cgrates/utils" ) -type SaRService struct { +// NewSarsService returns the SaRS Service +func NewSarService(cfg *config.CGRConfig, dm *DataDBService, + cacheS *engine.CacheS, filterSChan chan *engine.FilterS, + server *cores.Server, internalStatSChan chan birpc.ClientConnector, + connMgr *engine.ConnManager, anz *AnalyzerService, + srvDep map[string]*sync.WaitGroup) servmanager.Service { + return &SarService{ + connChan: internalStatSChan, + cfg: cfg, + dm: dm, + cacheS: cacheS, + filterSChan: filterSChan, + server: server, + connMgr: connMgr, + anz: anz, + srvDep: srvDep, + } +} + +type SarService struct { sync.RWMutex cfg *config.CGRConfig dm *DataDBService @@ -38,14 +58,13 @@ type SaRService struct { filterSChan chan *engine.FilterS server *cores.Server connMgr *engine.ConnManager - - connChan chan birpc.ClientConnector - anz *AnalyzerService - srvDep map[string]*sync.WaitGroup + connChan chan birpc.ClientConnector + anz *AnalyzerService + srvDep map[string]*sync.WaitGroup } // Start should handle the sercive start -func (sa *SaRService) Start() error { +func (sa *SarService) Start() error { if sa.IsRunning() { return utils.ErrServiceAlreadyRunning } @@ -59,7 +78,7 @@ func (sa *SaRService) Start() error { dbchan <- datadb utils.Logger.Info(fmt.Sprintf("<%s> starting <%s> subsystem", - utils.CoreS, utils.SaRS)) + utils.CoreS, utils.SarS)) srv, err := engine.NewService(v1.NewSArSv1()) if err != nil { return err @@ -74,12 +93,12 @@ func (sa *SaRService) Start() error { } // Reload handles the change of config -func (sa *SaRService) Reload() (err error) { +func (sa *SarService) Reload() (err error) { return } // Shutdown stops the service -func (sa *SaRService) Shutdown() (err error) { +func (sa *SarService) Shutdown() (err error) { defer sa.srvDep[utils.DataDB].Done() sa.Lock() defer sa.Unlock() @@ -88,18 +107,18 @@ func (sa *SaRService) Shutdown() (err error) { } // IsRunning returns if the service is running -func (sa *SaRService) IsRunning() bool { +func (sa *SarService) IsRunning() bool { sa.RLock() defer sa.RUnlock() return false } // ServiceName returns the service name -func (sa *SaRService) ServiceName() string { - return utils.SaRS +func (sa *SarService) ServiceName() string { + return utils.SarS } // ShouldRun returns if the service should be running -func (sa *SaRService) ShouldRun() bool { +func (sa *SarService) ShouldRun() bool { return sa.cfg.SarSCfg().Enabled } diff --git a/servmanager/servmanager.go b/servmanager/servmanager.go index ac685aafd..c850360f3 100644 --- a/servmanager/servmanager.go +++ b/servmanager/servmanager.go @@ -196,7 +196,7 @@ func (srvMngr *ServiceManager) handleReload() { case <-srvMngr.GetConfig().GetReloadChan(config.STATS_JSON): go srvMngr.reloadService(utils.StatS) case <-srvMngr.GetConfig().GetReloadChan(config.SARS_JSON): - go srvMngr.reloadService(utils.SaRS) + go srvMngr.reloadService(utils.SarS) case <-srvMngr.GetConfig().GetReloadChan(config.RESOURCES_JSON): go srvMngr.reloadService(utils.ResourceS) case <-srvMngr.GetConfig().GetReloadChan(config.RouteSJson): diff --git a/utils/consts.go b/utils/consts.go index 6a9f75af7..5a30f67a6 100644 --- a/utils/consts.go +++ b/utils/consts.go @@ -397,6 +397,7 @@ const ( MetaRerate = "*rerate" MetaRefund = "*refund" MetaStats = "*stats" + MetaSars = "*sars" MetaResponder = "*responder" MetaCore = "*core" MetaServiceManager = "*servicemanager" @@ -1014,7 +1015,7 @@ const ( RouteS = "RouteS" SessionS = "SessionS" StatService = "StatS" - SaRS = "SaRS" + SarS = "SarS" ThresholdS = "ThresholdS" ) @@ -1161,6 +1162,7 @@ const ( MetaDefaultRatio = "*default_ratio" ThresholdSv1 = "ThresholdSv1" StatSv1 = "StatSv1" + SarSv1 = "SarSv1" ResourceSv1 = "ResourceSv1" RouteSv1 = "RouteSv1" AttributeSv1 = "AttributeSv1"