From bf3d9a32817a026aeef3f66643c05b4872b47fb1 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Fri, 10 Jan 2025 18:08:48 +0200 Subject: [PATCH] Export funcs that wait for service state --- services/accounts.go | 2 +- services/actions.go | 2 +- services/adminsv1.go | 2 +- services/analyzers.go | 4 ++-- services/attributes.go | 2 +- services/caches.go | 2 +- services/cdrs.go | 2 +- services/chargers.go | 2 +- services/config.go | 2 +- services/cores.go | 2 +- services/diameteragent.go | 4 ++-- services/dispatchers.go | 2 +- services/dnsagent.go | 4 ++-- services/ees.go | 2 +- services/efs.go | 2 +- services/ers.go | 2 +- services/filters.go | 2 +- services/guardian.go | 2 +- services/httpagent.go | 2 +- services/janus.go | 2 +- services/loaders.go | 4 ++-- services/radiusagent.go | 2 +- services/rankings.go | 2 +- services/rates.go | 2 +- services/resources.go | 2 +- services/routes.go | 2 +- services/sessions.go | 2 +- services/sipagent.go | 2 +- services/statedeps.go | 10 +++++----- services/stats.go | 2 +- services/thresholds.go | 2 +- services/tpes.go | 2 +- services/trends.go | 2 +- 33 files changed, 41 insertions(+), 41 deletions(-) diff --git a/services/accounts.go b/services/accounts.go index b04a60717..54f63b238 100644 --- a/services/accounts.go +++ b/services/accounts.go @@ -60,7 +60,7 @@ type AccountService struct { // Start should handle the service start func (acts *AccountService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/actions.go b/services/actions.go index 148950d35..ff8e7676a 100644 --- a/services/actions.go +++ b/services/actions.go @@ -61,7 +61,7 @@ type ActionService struct { // Start should handle the service start func (acts *ActionService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/adminsv1.go b/services/adminsv1.go index b0f7f1978..8a88622d9 100644 --- a/services/adminsv1.go +++ b/services/adminsv1.go @@ -58,7 +58,7 @@ type AdminSv1Service struct { // Start should handle the sercive start // For this service the start should be called from RAL Service func (apiService *AdminSv1Service) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.FilterS, diff --git a/services/analyzers.go b/services/analyzers.go index 50dc4790d..294aa46a4 100644 --- a/services/analyzers.go +++ b/services/analyzers.go @@ -58,7 +58,7 @@ type AnalyzerService struct { // Start should handle the sercive start func (anz *AnalyzerService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - cls, err := waitForServiceState(utils.StateServiceUP, utils.CommonListenerS, registry, + cls, err := WaitForServiceState(utils.StateServiceUP, utils.CommonListenerS, registry, anz.cfg.GeneralCfg().ConnectTimeout) if err != nil { return @@ -84,7 +84,7 @@ func (anz *AnalyzerService) Start(shutdown *utils.SyncedChan, registry *servmana } func (anz *AnalyzerService) start(registry *servmanager.ServiceRegistry) { - fs, err := waitForServiceState(utils.StateServiceUP, utils.FilterS, registry, + fs, err := WaitForServiceState(utils.StateServiceUP, utils.FilterS, registry, anz.cfg.GeneralCfg().ConnectTimeout) if err != nil { return diff --git a/services/attributes.go b/services/attributes.go index e54e9d6f2..568f1fa56 100644 --- a/services/attributes.go +++ b/services/attributes.go @@ -58,7 +58,7 @@ type AttributeService struct { // Start should handle the service start func (attrS *AttributeService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/caches.go b/services/caches.go index 24fac472e..9ee12cfe6 100644 --- a/services/caches.go +++ b/services/caches.go @@ -54,7 +54,7 @@ type CacheService struct { // Start should handle the sercive start func (cS *CacheService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.DataDB, diff --git a/services/cdrs.go b/services/cdrs.go index 106ed2521..48611b168 100644 --- a/services/cdrs.go +++ b/services/cdrs.go @@ -57,7 +57,7 @@ type CDRService struct { // Start should handle the sercive start func (cs *CDRService) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.FilterS, diff --git a/services/chargers.go b/services/chargers.go index cc678ef1f..217f212a9 100644 --- a/services/chargers.go +++ b/services/chargers.go @@ -55,7 +55,7 @@ type ChargerService struct { // Start should handle the service start func (chrS *ChargerService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) error { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/config.go b/services/config.go index c9828179b..e263ce4a7 100644 --- a/services/config.go +++ b/services/config.go @@ -48,7 +48,7 @@ type ConfigService struct { // Start handles the service start. func (s *ConfigService) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) error { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.AnalyzerS, diff --git a/services/cores.go b/services/cores.go index 71d328dcb..f908de331 100644 --- a/services/cores.go +++ b/services/cores.go @@ -64,7 +64,7 @@ type CoreService struct { // Start should handle the service start func (cS *CoreService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) error { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.AnalyzerS, diff --git a/services/diameteragent.go b/services/diameteragent.go index 84dd15de1..24a8a72ca 100644 --- a/services/diameteragent.go +++ b/services/diameteragent.go @@ -60,7 +60,7 @@ type DiameterAgent struct { // Start should handle the sercive start func (da *DiameterAgent) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) error { - fs, err := waitForServiceState(utils.StateServiceUP, utils.FilterS, registry, + fs, err := WaitForServiceState(utils.StateServiceUP, utils.FilterS, registry, da.cfg.GeneralCfg().ConnectTimeout) if err != nil { return err @@ -102,7 +102,7 @@ func (da *DiameterAgent) Reload(shutdown *utils.SyncedChan, registry *servmanage } close(da.stopChan) - fs, err := waitForServiceState(utils.StateServiceUP, utils.FilterS, registry, + fs, err := WaitForServiceState(utils.StateServiceUP, utils.FilterS, registry, da.cfg.GeneralCfg().ConnectTimeout) if err != nil { return err diff --git a/services/dispatchers.go b/services/dispatchers.go index 2223a69a4..b4f78a20f 100644 --- a/services/dispatchers.go +++ b/services/dispatchers.go @@ -58,7 +58,7 @@ type DispatcherService struct { // Start should handle the sercive start func (dspS *DispatcherService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/dnsagent.go b/services/dnsagent.go index 2b8bfba2e..c6974d7ec 100644 --- a/services/dnsagent.go +++ b/services/dnsagent.go @@ -56,7 +56,7 @@ type DNSAgent struct { // Start should handle the service start func (dns *DNSAgent) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - fs, err := waitForServiceState(utils.StateServiceUP, utils.FilterS, registry, + fs, err := WaitForServiceState(utils.StateServiceUP, utils.FilterS, registry, dns.cfg.GeneralCfg().ConnectTimeout) if err != nil { return @@ -77,7 +77,7 @@ func (dns *DNSAgent) Start(shutdown *utils.SyncedChan, registry *servmanager.Ser // Reload handles the change of config func (dns *DNSAgent) Reload(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - fs, err := waitForServiceState(utils.StateServiceUP, utils.FilterS, registry, + fs, err := WaitForServiceState(utils.StateServiceUP, utils.FilterS, registry, dns.cfg.GeneralCfg().ConnectTimeout) if err != nil { return diff --git a/services/ees.go b/services/ees.go index d50df80d3..a6734974f 100644 --- a/services/ees.go +++ b/services/ees.go @@ -84,7 +84,7 @@ func (es *EventExporterService) Shutdown(_ *servmanager.ServiceRegistry) error { // Start should handle the service start func (es *EventExporterService) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) error { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.FilterS, diff --git a/services/efs.go b/services/efs.go index 174fc4714..eebefdd34 100644 --- a/services/efs.go +++ b/services/efs.go @@ -57,7 +57,7 @@ func NewExportFailoverService(cfg *config.CGRConfig, connMgr *engine.ConnManager // Start should handle the service start func (efServ *ExportFailoverService) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - cls, err := waitForServiceState(utils.StateServiceUP, utils.CommonListenerS, registry, + cls, err := WaitForServiceState(utils.StateServiceUP, utils.CommonListenerS, registry, efServ.cfg.GeneralCfg().ConnectTimeout) if err != nil { return diff --git a/services/ers.go b/services/ers.go index b316a2e7e..acee95b0b 100644 --- a/services/ers.go +++ b/services/ers.go @@ -61,7 +61,7 @@ type EventReaderService struct { // Start should handle the sercive start func (erS *EventReaderService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.FilterS, diff --git a/services/filters.go b/services/filters.go index 67f8385a3..46be8e55a 100644 --- a/services/filters.go +++ b/services/filters.go @@ -52,7 +52,7 @@ type FilterService struct { // Start handles the service start. func (s *FilterService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) error { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CacheS, utils.DataDB, diff --git a/services/guardian.go b/services/guardian.go index 07aafdd77..cd7e528a4 100644 --- a/services/guardian.go +++ b/services/guardian.go @@ -49,7 +49,7 @@ type GuardianService struct { // Start handles the service start. func (s *GuardianService) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) error { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.AnalyzerS, diff --git a/services/httpagent.go b/services/httpagent.go index 0d7dcb34f..2e81e41d9 100644 --- a/services/httpagent.go +++ b/services/httpagent.go @@ -59,7 +59,7 @@ type HTTPAgent struct { // Start should handle the sercive start func (ha *HTTPAgent) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.FilterS, diff --git a/services/janus.go b/services/janus.go index 2ee7b18f4..4ea7fdd06 100644 --- a/services/janus.go +++ b/services/janus.go @@ -60,7 +60,7 @@ type JanusAgent struct { // Start should jandle the sercive start func (ja *JanusAgent) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.FilterS, diff --git a/services/loaders.go b/services/loaders.go index 5c8cf7c36..570c61a83 100644 --- a/services/loaders.go +++ b/services/loaders.go @@ -58,7 +58,7 @@ type LoaderService struct { // Start should handle the service start func (ldrs *LoaderService) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.FilterS, @@ -98,7 +98,7 @@ func (ldrs *LoaderService) Start(_ *utils.SyncedChan, registry *servmanager.Serv // Reload handles the change of config func (ldrs *LoaderService) Reload(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) error { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.FilterS, utils.DataDB, diff --git a/services/radiusagent.go b/services/radiusagent.go index 5910e9557..b975eeee5 100644 --- a/services/radiusagent.go +++ b/services/radiusagent.go @@ -59,7 +59,7 @@ type RadiusAgent struct { // Start should handle the sercive start func (rad *RadiusAgent) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - fs, err := waitForServiceState(utils.StateServiceUP, utils.FilterS, registry, + fs, err := WaitForServiceState(utils.StateServiceUP, utils.FilterS, registry, rad.cfg.GeneralCfg().ConnectTimeout) if err != nil { return diff --git a/services/rankings.go b/services/rankings.go index 5b9b7bec1..dcc74e625 100644 --- a/services/rankings.go +++ b/services/rankings.go @@ -61,7 +61,7 @@ type RankingService struct { func (ran *RankingService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { ran.srvDep[utils.DataDB].Add(1) - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/rates.go b/services/rates.go index e6fecf3d8..af091ba52 100644 --- a/services/rates.go +++ b/services/rates.go @@ -82,7 +82,7 @@ func (rs *RateService) Shutdown(_ *servmanager.ServiceRegistry) (err error) { // Start should handle the service start func (rs *RateService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/resources.go b/services/resources.go index f5d4b4966..12f19bb0a 100644 --- a/services/resources.go +++ b/services/resources.go @@ -61,7 +61,7 @@ type ResourceService struct { func (reS *ResourceService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { reS.srvDep[utils.DataDB].Add(1) - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/routes.go b/services/routes.go index f8495055e..870f6ce8f 100644 --- a/services/routes.go +++ b/services/routes.go @@ -55,7 +55,7 @@ type RouteService struct { // Start should handle the sercive start func (routeS *RouteService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/sessions.go b/services/sessions.go index 5219a74b4..ab8179924 100644 --- a/services/sessions.go +++ b/services/sessions.go @@ -60,7 +60,7 @@ type SessionService struct { // Start should handle the service start func (smg *SessionService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.FilterS, diff --git a/services/sipagent.go b/services/sipagent.go index 3d554ecf1..a18414acb 100644 --- a/services/sipagent.go +++ b/services/sipagent.go @@ -56,7 +56,7 @@ type SIPAgent struct { // Start should handle the sercive start func (sip *SIPAgent) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - fs, err := waitForServiceState(utils.StateServiceUP, utils.FilterS, registry, + fs, err := WaitForServiceState(utils.StateServiceUP, utils.FilterS, registry, sip.cfg.GeneralCfg().ConnectTimeout) if err != nil { return diff --git a/services/statedeps.go b/services/statedeps.go index 63901e7e0..f124ab32a 100644 --- a/services/statedeps.go +++ b/services/statedeps.go @@ -50,13 +50,13 @@ func (sDs *StateDependencies) StateChan(stateID string) (retChan chan struct{}) return } -// waitForServicesToReachState ensures each service reaches the desired state, with the timeout applied individually per service. +// WaitForServicesToReachState ensures each service reaches the desired state, with the timeout applied individually per service. // Returns a map of service names to their instances or an error if any service fails to reach its state within its timeout window. -func waitForServicesToReachState(state string, serviceIDs []string, indexer *servmanager.ServiceRegistry, timeout time.Duration, +func WaitForServicesToReachState(state string, serviceIDs []string, indexer *servmanager.ServiceRegistry, timeout time.Duration, ) (map[string]servmanager.Service, error) { services := make(map[string]servmanager.Service, len(serviceIDs)) for _, serviceID := range serviceIDs { - srv, err := waitForServiceState(state, serviceID, indexer, timeout) + srv, err := WaitForServiceState(state, serviceID, indexer, timeout) if err != nil { return nil, err } @@ -66,9 +66,9 @@ func waitForServicesToReachState(state string, serviceIDs []string, indexer *ser return services, nil } -// waitForServiceState waits up to timeout duration for a service to reach the specified state. +// WaitForServiceState waits up to timeout duration for a service to reach the specified state. // Returns the service instance or an error if the timeout is exceeded. -func waitForServiceState(state, serviceID string, indexer *servmanager.ServiceRegistry, timeout time.Duration, +func WaitForServiceState(state, serviceID string, indexer *servmanager.ServiceRegistry, timeout time.Duration, ) (servmanager.Service, error) { srv := indexer.Lookup(serviceID) if serviceID == utils.AnalyzerS && !srv.ShouldRun() { diff --git a/services/stats.go b/services/stats.go index 6a9b2a849..f631845ef 100644 --- a/services/stats.go +++ b/services/stats.go @@ -59,7 +59,7 @@ type StatService struct { func (sts *StatService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { sts.srvDep[utils.DataDB].Add(1) - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/thresholds.go b/services/thresholds.go index fe8ad10db..5388df0e5 100644 --- a/services/thresholds.go +++ b/services/thresholds.go @@ -61,7 +61,7 @@ type ThresholdService struct { func (thrs *ThresholdService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { thrs.srvDep[utils.DataDB].Add(1) - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS, diff --git a/services/tpes.go b/services/tpes.go index 83fef43a3..cc0657219 100644 --- a/services/tpes.go +++ b/services/tpes.go @@ -58,7 +58,7 @@ type TPeService struct { // Start should handle the service start func (ts *TPeService) Start(_ *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.DataDB, diff --git a/services/trends.go b/services/trends.go index d5c71f414..b6cc696a3 100644 --- a/services/trends.go +++ b/services/trends.go @@ -60,7 +60,7 @@ type TrendService struct { func (trs *TrendService) Start(shutdown *utils.SyncedChan, registry *servmanager.ServiceRegistry) (err error) { trs.srvDep[utils.DataDB].Add(1) - srvDeps, err := waitForServicesToReachState(utils.StateServiceUP, + srvDeps, err := WaitForServicesToReachState(utils.StateServiceUP, []string{ utils.CommonListenerS, utils.CacheS,