Added DB reload for ResourceS

This commit is contained in:
Trial97
2019-10-08 13:36:11 +03:00
committed by Dan Christian Bogos
parent badd7237cc
commit 0545430c16
4 changed files with 12 additions and 5 deletions

View File

@@ -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(),

View File

@@ -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

View File

@@ -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

View File

@@ -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)