Added DB reload for StatS

This commit is contained in:
Trial97
2019-10-08 12:55:45 +03:00
committed by Dan Christian Bogos
parent 2fab251799
commit badd7237cc
5 changed files with 15 additions and 7 deletions

View File

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

View File

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

View File

@@ -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("<StatS> Could not init, error: %s", err.Error()))
return

View File

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

View File

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