From 0545430c1698107448feebaa5884b472573901a0 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Tue, 8 Oct 2019 13:36:11 +0300 Subject: [PATCH] Added DB reload for ResourceS --- cmd/cgr-engine/cgr-engine.go | 2 +- config/config.go | 1 + services/resources.go | 6 +++--- services/resources_it_test.go | 8 +++++++- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 9bc8b40d3..035eee081 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -526,7 +526,7 @@ func main() { tS := services.NewThresholdService(cfg, dmService, cacheS, filterSChan, server) stS := services.NewStatService(cfg, dmService, cacheS, filterSChan, server, tS.GetIntenternalChan(), dspS.GetIntenternalChan()) - reS := services.NewResourceService(cfg, dmService.GetDM(), cacheS, filterSChan, server, + reS := services.NewResourceService(cfg, dmService, cacheS, filterSChan, server, tS.GetIntenternalChan(), dspS.GetIntenternalChan()) supS := services.NewSupplierService(cfg, dmService.GetDM(), cacheS, filterSChan, server, attrS.GetIntenternalChan(), stS.GetIntenternalChan(), diff --git a/config/config.go b/config/config.go index 5889406d5..6ef01eafa 100755 --- a/config/config.go +++ b/config/config.go @@ -1633,6 +1633,7 @@ func (cfg *CGRConfig) reloadSection(section string) (err error) { } fallthrough case RESOURCES_JSON: + cfg.rldChans[DATADB_JSN] <- struct{}{} // reload datadb before cfg.rldChans[RESOURCES_JSON] <- struct{}{} if !fall { break diff --git a/services/resources.go b/services/resources.go index d35ae9cb4..d6b00fbea 100644 --- a/services/resources.go +++ b/services/resources.go @@ -31,7 +31,7 @@ import ( ) // NewResourceService returns the Resource Service -func NewResourceService(cfg *config.CGRConfig, dm *engine.DataManager, +func NewResourceService(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 NewResourceService(cfg *config.CGRConfig, dm *engine.DataManager, type ResourceService struct { sync.RWMutex cfg *config.CGRConfig - dm *engine.DataManager + dm *DataDBService cacheS *engine.CacheS filterSChan chan *engine.FilterS server *utils.Server @@ -84,7 +84,7 @@ func (reS *ResourceService) Start() (err error) { reS.Lock() defer reS.Unlock() - reS.reS, err = engine.NewResourceService(reS.dm, reS.cfg, thdSConn, filterS) + reS.reS, err = engine.NewResourceService(reS.dm.GetDM(), reS.cfg, thdSConn, filterS) if err != nil { utils.Logger.Crit(fmt.Sprintf("<%s> Could not init, error: %s", utils.ResourceS, err.Error())) return diff --git a/services/resources_it_test.go b/services/resources_it_test.go index f0a721e48..2e5780dc8 100644 --- a/services/resources_it_test.go +++ b/services/resources_it_test.go @@ -53,7 +53,7 @@ func TestResourceSReload(t *testing.T) { srvMngr := servmanager.NewServiceManager(cfg, engineShutdown) db := NewDataDBService(cfg) tS := NewThresholdService(cfg, db, chS, filterSChan, server) - reS := NewResourceService(cfg, nil, chS, filterSChan, server, tS.GetIntenternalChan(), nil) + reS := NewResourceService(cfg, db, chS, filterSChan, server, tS.GetIntenternalChan(), nil) srvMngr.AddServices(tS, reS, NewLoaderService(cfg, nil, filterSChan, server, nil, nil, engineShutdown), db) if err = srvMngr.StartServices(); err != nil { t.Error(err) @@ -61,6 +61,9 @@ func TestResourceSReload(t *testing.T) { if reS.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 TestResourceSReload(t *testing.T) { if !reS.IsRunning() { t.Errorf("Expected service to be running") } + if !db.IsRunning() { + t.Errorf("Expected service to be running") + } cfg.ResourceSCfg().Enabled = false cfg.GetReloadChan(config.RESOURCES_JSON) <- struct{}{} time.Sleep(10 * time.Millisecond)