From badd7237cc192674a4e36b4f852d74f1b8bab1d1 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Tue, 8 Oct 2019 12:55:45 +0300 Subject: [PATCH] Added DB reload for StatS --- cmd/cgr-engine/cgr-engine.go | 2 +- config/config.go | 1 + services/stats.go | 6 +++--- services/stats_it_test.go | 8 +++++++- services/suppliers_it_test.go | 5 +++-- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 954985656..9bc8b40d3 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -524,7 +524,7 @@ func main() { chrS := services.NewChargerService(cfg, dmService, cacheS, filterSChan, server, attrS.GetIntenternalChan(), dspS.GetIntenternalChan()) tS := services.NewThresholdService(cfg, dmService, cacheS, filterSChan, server) - stS := services.NewStatService(cfg, dmService.GetDM(), cacheS, filterSChan, server, + stS := services.NewStatService(cfg, dmService, cacheS, filterSChan, server, tS.GetIntenternalChan(), dspS.GetIntenternalChan()) reS := services.NewResourceService(cfg, dmService.GetDM(), cacheS, filterSChan, server, tS.GetIntenternalChan(), dspS.GetIntenternalChan()) diff --git a/config/config.go b/config/config.go index bfd9a79ba..5889406d5 100755 --- a/config/config.go +++ b/config/config.go @@ -1639,6 +1639,7 @@ func (cfg *CGRConfig) reloadSection(section string) (err error) { } fallthrough case STATS_JSON: + cfg.rldChans[DATADB_JSN] <- struct{}{} // reload datadb before cfg.rldChans[STATS_JSON] <- struct{}{} if !fall { break diff --git a/services/stats.go b/services/stats.go index 80d4b1296..661e75a5e 100644 --- a/services/stats.go +++ b/services/stats.go @@ -31,7 +31,7 @@ import ( ) // NewStatService returns the Stat Service -func NewStatService(cfg *config.CGRConfig, dm *engine.DataManager, +func NewStatService(cfg *config.CGRConfig, dm *DataDBService, cacheS *engine.CacheS, filterSChan chan *engine.FilterS, server *utils.Server, thrsChan, dispatcherChan chan rpcclient.RpcClientConnection) servmanager.Service { @@ -51,7 +51,7 @@ func NewStatService(cfg *config.CGRConfig, dm *engine.DataManager, type StatService struct { sync.RWMutex cfg *config.CGRConfig - dm *engine.DataManager + dm *DataDBService cacheS *engine.CacheS filterSChan chan *engine.FilterS server *utils.Server @@ -83,7 +83,7 @@ func (sts *StatService) Start() (err error) { } sts.Lock() defer sts.Unlock() - sts.sts, err = engine.NewStatService(sts.dm, sts.cfg, thdSConn, filterS) + sts.sts, err = engine.NewStatService(sts.dm.GetDM(), sts.cfg, thdSConn, filterS) if err != nil { utils.Logger.Crit(fmt.Sprintf(" Could not init, error: %s", err.Error())) return diff --git a/services/stats_it_test.go b/services/stats_it_test.go index 9d29bded9..30d45940f 100644 --- a/services/stats_it_test.go +++ b/services/stats_it_test.go @@ -53,7 +53,7 @@ func TestStatSReload(t *testing.T) { srvMngr := servmanager.NewServiceManager(cfg, engineShutdown) db := NewDataDBService(cfg) tS := NewThresholdService(cfg, db, chS, filterSChan, server) - sS := NewStatService(cfg, nil, chS, filterSChan, server, tS.GetIntenternalChan(), nil) + sS := NewStatService(cfg, db, chS, filterSChan, server, tS.GetIntenternalChan(), nil) srvMngr.AddServices(tS, sS, NewLoaderService(cfg, nil, filterSChan, server, nil, nil, engineShutdown), db) if err = srvMngr.StartServices(); err != nil { t.Error(err) @@ -61,6 +61,9 @@ func TestStatSReload(t *testing.T) { if sS.IsRunning() { t.Errorf("Expected service to be down") } + if db.IsRunning() { + t.Errorf("Expected service to be down") + } var reply string if err = cfg.V1ReloadConfig(&config.ConfigReloadWithArgDispatcher{ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"), @@ -74,6 +77,9 @@ func TestStatSReload(t *testing.T) { if !sS.IsRunning() { t.Errorf("Expected service to be running") } + if !db.IsRunning() { + t.Errorf("Expected service to be running") + } cfg.StatSCfg().Enabled = false cfg.GetReloadChan(config.STATS_JSON) <- struct{}{} time.Sleep(10 * time.Millisecond) diff --git a/services/suppliers_it_test.go b/services/suppliers_it_test.go index 2653ca6d9..878b88346 100644 --- a/services/suppliers_it_test.go +++ b/services/suppliers_it_test.go @@ -49,9 +49,10 @@ func TestSupplierSReload(t *testing.T) { close(chS.GetPrecacheChannel(utils.CacheStatFilterIndexes)) server := utils.NewServer() srvMngr := servmanager.NewServiceManager(cfg, engineShutdown) - sts := NewStatService(cfg, nil, chS, filterSChan, server, nil, nil) + db := NewDataDBService(cfg) + sts := NewStatService(cfg, db, chS, filterSChan, server, nil, nil) supS := NewSupplierService(cfg, nil, chS, filterSChan, server, nil, sts.GetIntenternalChan(), nil, nil) - srvMngr.AddServices(supS, sts, NewLoaderService(cfg, nil, filterSChan, server, nil, nil, engineShutdown)) + srvMngr.AddServices(supS, sts, NewLoaderService(cfg, nil, filterSChan, server, nil, nil, engineShutdown), db) if err = srvMngr.StartServices(); err != nil { t.Error(err) }