diff --git a/services/dnsagent_it_test.go b/services/dnsagent_it_test.go index 8fb9c1d0e..d06ea90dd 100644 --- a/services/dnsagent_it_test.go +++ b/services/dnsagent_it_test.go @@ -82,7 +82,6 @@ func TestDNSAgentReload(t *testing.T) { if err == nil || err != utils.ErrServiceAlreadyRunning { t.Errorf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err) } - err = srv.Reload() if err != nil { t.Errorf("\nExpecting ,\n Received <%+v>", err) diff --git a/services/stordb_it_test.go b/services/stordb_it_test.go index 4990b396f..af7446a70 100644 --- a/services/stordb_it_test.go +++ b/services/stordb_it_test.go @@ -19,168 +19,112 @@ along with this program. If not, see */ package services -/* +import ( + "path" + "sync" + "testing" + "time" + + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/cores" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/servmanager" + "github.com/cgrates/cgrates/utils" + "github.com/cgrates/rpcclient" +) + func TestStorDBReload(t *testing.T) { cfg := config.NewDefaultCGRConfig() utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID) utils.Logger.SetLogLevel(7) - + filterSChan := make(chan *engine.FilterS, 1) + filterSChan <- nil shdChan := utils.NewSyncedChan() shdWg := new(sync.WaitGroup) chS := engine.NewCacheS(cfg, nil, nil) - filterSChan := make(chan *engine.FilterS, 1) - filterSChan <- nil + cfg.ChargerSCfg().Enabled = true server := cores.NewServer(nil) - srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)} srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg) - cM := engine.NewConnManager(cfg, nil) - db := NewDataDBService(cfg, cM, srvDep) - storDB := NewStorDBService(cfg, srvDep) + srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)} + db := NewDataDBService(cfg, nil, srvDep) + cfg.StorDbCfg().Type = utils.INTERNAL + stordb := NewStorDBService(cfg, srvDep) anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep) - srvMngr.AddServices(NewAttributeService(cfg, db, - chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep), - NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db) + chrS := NewChargerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep) + schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep) + ralS := NewRalService(cfg, chS, server, + make(chan rpcclient.ClientConnector, 1), + make(chan rpcclient.ClientConnector, 1), + shdChan, nil, anz, srvDep) + cdrsRPC := make(chan rpcclient.ClientConnector, 1) + cdrS := NewCDRServer(cfg, db, stordb, filterSChan, server, + cdrsRPC, nil, anz, srvDep) + srvMngr.AddServices(cdrS, ralS, schS, chrS, + NewLoaderService(cfg, db, filterSChan, server, + make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db, stordb) if err := srvMngr.StartServices(); err != nil { t.Error(err) } - if db.IsRunning() { + if cdrS.IsRunning() { t.Errorf("Expected service to be down") } + + if stordb.IsRunning() { + t.Errorf("Expected service to be down") + } + + cfg.RalsCfg().Enabled = true var reply string - cfg.AttributeSCfg().Enabled = true if err := cfg.V1ReloadConfig(&config.ReloadArgs{ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"), - Section: config.DATADB_JSN, + Section: config.CDRS_JSN, }, &reply); err != nil { t.Error(err) } else if reply != utils.OK { t.Errorf("Expecting OK ,received %s", reply) } - time.Sleep(10 * time.Millisecond) //need to switch to gorutine - if !db.IsRunning() { + + if err := cfg.V1ReloadConfig(&config.ReloadArgs{ + Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"), + Section: config.STORDB_JSN, + }, &reply); err != nil { + t.Error(err) + } else if reply != utils.OK { + t.Errorf("Expecting OK ,received %s", reply) + } + select { + case d := <-cdrsRPC: + cdrsRPC <- d + case <-time.After(time.Second): + t.Fatal("It took to long to reload the cache") + } + if !cdrS.IsRunning() { t.Errorf("Expected service to be running") } - getDm := db.GetDM() - if !reflect.DeepEqual(getDm, db.dm) { - t.Errorf("\nExpecting <%+v>,\n Received <%+v>", db.dm, getDm) + if !stordb.IsRunning() { + t.Errorf("Expected service to be running") } - oldcfg := &config.DataDbCfg{ - DataDbType: utils.Mongo, - DataDbHost: "127.0.0.1", - DataDbPort: "27017", - DataDbName: "10", - DataDbUser: "cgrates", - Opts: map[string]interface{}{ - utils.QueryTimeoutCfg: "10s", - utils.RedisClusterOnDownDelayCfg: "0", - utils.RedisClusterSyncCfg: "5s", - utils.RedisClusterCfg: false, - utils.RedisSentinelNameCfg: "", - utils.RedisTLS: false, - utils.RedisClientCertificate: "", - utils.RedisClientKey: "", - utils.RedisCACertificate: "", - }, - RmtConns: []string{}, - RplConns: []string{}, - Items: map[string]*config.ItemOpt{ - utils.MetaAccounts: { - Replicate: false, - Remote: false}, - utils.MetaReverseDestinations: { - Replicate: false, - Remote: false}, - utils.MetaDestinations: { - Replicate: false, - Remote: false}, - utils.MetaRatingPlans: { - Replicate: false, - Remote: false}, - utils.MetaRatingProfiles: { - Replicate: false, - Remote: false}, - utils.MetaActions: { - Replicate: false, - Remote: false}, - utils.MetaActionPlans: { - Replicate: false, - Remote: false}, - utils.MetaAccountActionPlans: { - Replicate: false, - Remote: false}, - utils.MetaActionTriggers: { - Replicate: false, - Remote: false}, - utils.MetaSharedGroups: { - Replicate: false, - Remote: false}, - utils.MetaTimings: { - Replicate: false, - Remote: false}, - utils.MetaResourceProfile: { - Replicate: false, - Remote: false}, - utils.MetaStatQueues: { - Replicate: false, - Remote: false}, - utils.MetaResources: { - Replicate: false, - Remote: false}, - utils.MetaStatQueueProfiles: { - Replicate: false, - Remote: false}, - utils.MetaThresholds: { - Replicate: false, - Remote: false}, - utils.MetaThresholdProfiles: { - Replicate: false, - Remote: false}, - utils.MetaFilters: { - Replicate: false, - Remote: false}, - utils.MetaRouteProfiles: { - Replicate: false, - Remote: false}, - utils.MetaAttributeProfiles: { - Replicate: false, - Remote: false}, - utils.MetaDispatcherHosts: { - Replicate: false, - Remote: false}, - utils.MetaChargerProfiles: { - Replicate: false, - Remote: false}, - utils.MetaDispatcherProfiles: { - Replicate: false, - Remote: false}, - utils.MetaLoadIDs: { - Replicate: false, - Remote: false}, - utils.MetaIndexes: { - Replicate: false, - Remote: false}, - utils.MetaRateProfiles: { - Replicate: false, - Remote: false}, - utils.MetaActionProfiles: { - Replicate: false, - Remote: false}, - utils.MetaAccountProfiles: { - Replicate: false, - Remote: false}, - }, + + err := cdrS.Reload() + if err != nil { + t.Errorf("\nExpecting ,\n Received <%+v>", err) } - if !reflect.DeepEqual(oldcfg, db.oldDBCfg) { - t.Errorf("Expected %s \n received:%s", utils.ToJSON(oldcfg), utils.ToJSON(db.oldDBCfg)) + + err = cdrS.Start() + if err == nil || err != utils.ErrServiceAlreadyRunning { + t.Errorf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err) } - cfg.AttributeSCfg().Enabled = false - cfg.GetReloadChan(config.STORDB_JSN) <- struct{}{} + err = cdrS.Reload() + if err != nil { + t.Errorf("\nExpecting ,\n Received <%+v>", err) + } + cfg.CdrsCfg().Enabled = false + cfg.GetReloadChan(config.CDRS_JSN) <- struct{}{} time.Sleep(10 * time.Millisecond) - if db.IsRunning() { + if cdrS.IsRunning() { t.Errorf("Expected service to be down") } shdChan.CloseOnce() time.Sleep(10 * time.Millisecond) } -*/