From 1e89bbacbee81e0999da85fdc9cf9beed9f73f47 Mon Sep 17 00:00:00 2001 From: TeoV Date: Thu, 9 Jan 2020 11:57:04 +0200 Subject: [PATCH] Make FilterS to use connections through connManager and update general_tests package --- agents/agentreq_test.go | 42 ++++----- cdrc/csv_test.go | 4 +- cdrc/xml_test.go | 4 +- cmd/cgr-engine/cgr-engine.go | 8 +- config/config_json_test.go | 6 +- config/config_test.go | 6 +- config/configsanity.go | 25 ++++++ config/filterscfg.go | 44 ++++++---- config/filterscfg_test.go | 4 +- config/libconfig_json.go | 6 +- data/conf/samples/filters/cgrates.json | 12 +-- data/conf/samples/filters_gob/cgrates.json | 12 +-- engine/filters.go | 87 +++---------------- general_tests/a1_it_test.go | 6 +- general_tests/accounts_it_test.go | 4 +- general_tests/broadcast_client_it_test.go | 10 +-- general_tests/cdrs_it_test.go | 14 +-- general_tests/cdrs_onlexp_it_test.go | 14 +-- general_tests/cdrs_processevent_it_test.go | 10 +-- general_tests/data_it_test.go | 4 +- general_tests/ddazmbl1_test.go | 2 +- general_tests/ddazmbl2_test.go | 2 +- general_tests/ddazmbl3_test.go | 2 +- general_tests/destination_combined_it_test.go | 4 +- general_tests/filters_it_test.go | 8 +- general_tests/gocs_it_test.go | 18 ++-- general_tests/multiplecdrc_it_test.go | 8 +- general_tests/resourcesv1_it_test.go | 6 +- general_tests/rpccaching_it_test.go | 10 +-- general_tests/rpcclient_it_test.go | 20 ++--- general_tests/sentinel_it_test.go | 12 +-- general_tests/session2_it_test.go | 6 +- general_tests/session3_it_test.go | 8 +- general_tests/session_it_test.go | 6 +- ...ion_replications_automaticdebit_it_test.go | 16 ++-- general_tests/sessionrefund_it_test.go | 6 +- general_tests/supplier_it_test.go | 6 +- general_tests/tls_it_test.go | 6 +- general_tests/tp_it_test.go | 8 +- general_tests/tut_smgeneric_it_test.go | 10 +-- general_tests/tutorial2_it_test.go | 8 +- general_tests/tutorial_it_test.go | 4 +- 42 files changed, 232 insertions(+), 266 deletions(-) diff --git a/agents/agentreq_test.go b/agents/agentreq_test.go index 19c0a78b8..e9e16251e 100644 --- a/agents/agentreq_test.go +++ b/agents/agentreq_test.go @@ -40,7 +40,7 @@ func TestAgReqAsNavigableMap(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) // populate request, emulating the way will be done in HTTPAgent agReq.CGRRequest.Set([]string{utils.CGRID}, @@ -136,7 +136,7 @@ func TestAgReqMaxCost(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) // populate request, emulating the way will be done in HTTPAgent agReq.CGRRequest.Set([]string{utils.CapMaxUsage}, "120s", false, false) @@ -179,7 +179,7 @@ func TestAgReqParseFieldDiameter(t *testing.T) { dP := newDADataProvider(nil, m) dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) @@ -229,7 +229,7 @@ func TestAgReqParseFieldRadius(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) tplFlds := []*config.FCTemplate{ @@ -269,7 +269,7 @@ Host: api.cgrates.org data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) tplFlds := []*config.FCTemplate{ @@ -339,7 +339,7 @@ func TestAgReqParseFieldHttpXml(t *testing.T) { dP, _ := newHTTPXmlDP(req) dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) tplFlds := []*config.FCTemplate{ @@ -368,7 +368,7 @@ func TestAgReqEmptyFilter(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) // populate request, emulating the way will be done in HTTPAgent agReq.CGRRequest.Set([]string{utils.CGRID}, @@ -410,7 +410,7 @@ func TestAgReqEmptyFilter(t *testing.T) { func TestAgReqMetaExponent(t *testing.T) { dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) agReq.CGRRequest.Set([]string{"Value"}, "2", false, false) agReq.CGRRequest.Set([]string{"Exponent"}, "2", false, false) @@ -436,7 +436,7 @@ func TestAgReqCGRActiveRequest(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) // populate request, emulating the way will be done in HTTPAgent @@ -479,7 +479,7 @@ func TestAgReqFieldAsNone(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) // populate request, emulating the way will be done in HTTPAgent agReq.CGRRequest.Set([]string{utils.ToR}, utils.VOICE, false, false) @@ -515,7 +515,7 @@ func TestAgReqFieldAsNone(t *testing.T) { func TestAgReqFieldAsNone2(t *testing.T) { dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) // populate request, emulating the way will be done in HTTPAgent agReq.CGRRequest.Set([]string{utils.ToR}, utils.VOICE, false, false) @@ -555,7 +555,7 @@ func TestAgReqAsNavigableMap2(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) // populate request, emulating the way will be done in HTTPAgent agReq.CGRRequest.Set([]string{utils.ToR}, utils.VOICE, false, false) @@ -611,7 +611,7 @@ func TestAgReqAsNavigableMap2(t *testing.T) { func TestAgReqFieldAsInterface(t *testing.T) { dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) agReq := NewAgentRequest(nil, nil, nil, nil, nil, "cgrates.org", "", filterS) // populate request, emulating the way will be done in HTTPAgent agReq.CGRAReq = config.NewNavigableMap(nil) @@ -658,7 +658,7 @@ func TestAgReqNewARWithCGRRplyAndRply(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) ev := map[string]interface{}{ "FirstLevel": map[string]interface{}{ @@ -707,7 +707,7 @@ func TestAgReqNewARWithCGRRplyAndRply(t *testing.T) { func TestAgReqSetCGRReplyWithError(t *testing.T) { dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) ev := map[string]interface{}{ "FirstLevel": map[string]interface{}{ @@ -748,7 +748,7 @@ func TestAgReqSetCGRReplyWithoutError(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) ev := map[string]interface{}{ "FirstLevel": map[string]interface{}{ @@ -809,7 +809,7 @@ func TestAgReqParseFieldMetaCCUsage(t *testing.T) { dP := newDADataProvider(nil, m) dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) @@ -886,7 +886,7 @@ func TestAgReqParseFieldMetaUsageDifference(t *testing.T) { dP := newDADataProvider(nil, m) dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) @@ -952,7 +952,7 @@ func TestAgReqParseFieldMetaSum(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) @@ -995,7 +995,7 @@ func TestAgReqParseFieldMetaDifference(t *testing.T) { dP := newDADataProvider(nil, m) dm := engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) @@ -1039,7 +1039,7 @@ func TestAgReqParseFieldMetaValueExponent(t *testing.T) { data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil) cfg, _ := config.NewDefaultCGRConfig() - filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) + filterS := engine.NewFilterS(cfg, nil, dm) //pass the data provider to agent request agReq := NewAgentRequest(dP, nil, nil, nil, nil, "cgrates.org", "", filterS) diff --git a/cdrc/csv_test.go b/cdrc/csv_test.go index 95ef3c3ab..7653e2d2d 100644 --- a/cdrc/csv_test.go +++ b/cdrc/csv_test.go @@ -76,7 +76,7 @@ func TestCsvDataMultiplyFactor(t *testing.T) { cdrcConfig := cgrConfig.CdrcProfiles["/var/spool/cgrates/cdrc/in"][0] data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, cgrConfig.CacheCfg(), nil) - filterS := engine.NewFilterS(cgrConfig, nil, nil, nil, dm) + filterS := engine.NewFilterS(cgrConfig, nil, dm) cdrcConfig.CdrSourceId = "TEST_CDRC" cdrcConfig.ContentFields = []*config.FCTemplate{ {Tag: "TORField", Type: utils.META_COMPOSED, FieldId: utils.ToR, @@ -161,7 +161,7 @@ func TestCsvSecondUsage(t *testing.T) { cdrcConfig := cgrConfig.CdrcProfiles["/var/spool/cgrates/cdrc/in"][0] data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, cgrConfig.CacheCfg(), nil) - filterS := engine.NewFilterS(cgrConfig, nil, nil, nil, dm) + filterS := engine.NewFilterS(cgrConfig, nil, dm) cdrcConfig.CdrSourceId = "TEST_CDRC" cdrcConfig.ContentFields = []*config.FCTemplate{ {Tag: "TORField", Type: utils.META_COMPOSED, FieldId: utils.ToR, diff --git a/cdrc/xml_test.go b/cdrc/xml_test.go index 1c2f9cefc..cdb382fa0 100644 --- a/cdrc/xml_test.go +++ b/cdrc/xml_test.go @@ -321,7 +321,7 @@ func TestXMLRPProcessWithNewFilters(t *testing.T) { } xmlRP, err := NewXMLRecordsProcessor(bytes.NewBufferString(cdrXmlBroadsoft), utils.HierarchyPath([]string{"broadWorksCDR", "cdrData"}), "UTC", true, - cdrcCfgs, engine.NewFilterS(defaultCfg, nil, nil, nil, + cdrcCfgs, engine.NewFilterS(defaultCfg, nil, engine.NewDataManager(data, defaultCfg.CacheCfg(), nil))) if err != nil { t.Error(err) @@ -589,7 +589,7 @@ func TestXMLRPNestingSeparator(t *testing.T) { } xmlRP, err := NewXMLRecordsProcessor(bytes.NewBufferString(xmlContent), utils.HierarchyPath([]string{"File", "CDRs", "Call"}), "UTC", true, - cdrcCfgs, engine.NewFilterS(defaultCfg, nil, nil, nil, + cdrcCfgs, engine.NewFilterS(defaultCfg, nil, engine.NewDataManager(data, defaultCfg.CacheCfg(), nil))) if err != nil { t.Error(err) diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 6bacdfebd..9d60e0acb 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -119,11 +119,10 @@ func startCdrc(cdrcCfgs []*config.CdrcCfg, httpSkipTlsCheck bool, } // startFilterService fires up the FilterS -func startFilterService(filterSChan chan *engine.FilterS, cacheS *engine.CacheS, - internalStatSChan, internalResourceSChan, internalRalSChan chan rpcclient.ClientConnector, cfg *config.CGRConfig, +func startFilterService(filterSChan chan *engine.FilterS, cacheS *engine.CacheS, connMgr *engine.ConnManager, cfg *config.CGRConfig, dm *engine.DataManager, exitChan chan bool) { <-cacheS.GetPrecacheChannel(utils.CacheFilters) - filterSChan <- engine.NewFilterS(cfg, internalStatSChan, internalResourceSChan, internalRalSChan, dm) + filterSChan <- engine.NewFilterS(cfg, connMgr, dm) } // initCacheS inits the CacheS and starts precaching as well as populating internal channel for RPC conns @@ -568,8 +567,7 @@ func main() { ) srvManager.StartServices() // Start FilterS - go startFilterService(filterSChan, cacheS, stS.GetIntenternalChan(), - reS.GetIntenternalChan(), rals.GetResponder().GetIntenternalChan(), + go startFilterService(filterSChan, cacheS, connManager, cfg, dmService.GetDM(), exitChan) initServiceManagerV1(internalServeManagerChan, srvManager, server) diff --git a/config/config_json_test.go b/config/config_json_test.go index d31ef455f..398d0967b 100755 --- a/config/config_json_test.go +++ b/config/config_json_test.go @@ -849,9 +849,9 @@ func TestDfChargerServJsonCfg(t *testing.T) { func TestDfFilterSJsonCfg(t *testing.T) { eCfg := &FilterSJsonCfg{ - Stats_conns: &[]*RemoteHostJson{}, - Resources_conns: &[]*RemoteHostJson{}, - Rals_conns: &[]*RemoteHostJson{}, + Stats_conns: &[]string{}, + Resources_conns: &[]string{}, + Rals_conns: &[]string{}, } if cfg, err := dfCgrJsonCfg.FilterSJsonCfg(); err != nil { t.Error(err) diff --git a/config/config_test.go b/config/config_test.go index 973f7349d..d8b1f6314 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -794,9 +794,9 @@ func TestCgrCfgJSONDefaultssteriskAgentCfg(t *testing.T) { func TestCgrCfgJSONDefaultFiltersCfg(t *testing.T) { eFiltersCfg := &FilterSCfg{ - StatSConns: []*RemoteHost{}, - ResourceSConns: []*RemoteHost{}, - RALsConns: []*RemoteHost{}, + StatSConns: []string{}, + ResourceSConns: []string{}, + RALsConns: []string{}, } if !reflect.DeepEqual(cgrCfg.filterSCfg, eFiltersCfg) { t.Errorf("received: %+v, expecting: %+v", cgrCfg.filterSCfg, eFiltersCfg) diff --git a/config/configsanity.go b/config/configsanity.go index 546f95ffe..15d213c42 100644 --- a/config/configsanity.go +++ b/config/configsanity.go @@ -497,6 +497,31 @@ func (cfg *CGRConfig) checkConfigSanity() error { return fmt.Errorf("<%s> partition <%s> not defined", utils.CacheS, cacheID) } } + // FilterS sanity check + for _, connID := range cfg.filterSCfg.StatSConns { + if strings.HasPrefix(connID, utils.MetaInternal) && !cfg.statsCfg.Enabled { + return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.StatS, utils.FilterS) + } + if _, has := cfg.rpcConns[connID]; !has && !strings.HasPrefix(connID, utils.MetaInternal) { + return fmt.Errorf("<%s> Connection with id: <%s> not defined", utils.FilterS, connID) + } + } + for _, connID := range cfg.filterSCfg.ResourceSConns { + if strings.HasPrefix(connID, utils.MetaInternal) && !cfg.resourceSCfg.Enabled { + return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.ResourceS, utils.FilterS) + } + if _, has := cfg.rpcConns[connID]; !has && !strings.HasPrefix(connID, utils.MetaInternal) { + return fmt.Errorf("<%s> Connection with id: <%s> not defined", utils.FilterS, connID) + } + } + for _, connID := range cfg.filterSCfg.RALsConns { + if strings.HasPrefix(connID, utils.MetaInternal) && !cfg.ralsCfg.Enabled { + return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.RALService, utils.FilterS) + } + if _, has := cfg.rpcConns[connID]; !has && !strings.HasPrefix(connID, utils.MetaInternal) { + return fmt.Errorf("<%s> Connection with id: <%s> not defined", utils.FilterS, connID) + } + } return nil } diff --git a/config/filterscfg.go b/config/filterscfg.go index 4954670b5..c273d7d8b 100644 --- a/config/filterscfg.go +++ b/config/filterscfg.go @@ -18,10 +18,12 @@ along with this program. If not, see package config +import "github.com/cgrates/cgrates/utils" + type FilterSCfg struct { - StatSConns []*RemoteHost - ResourceSConns []*RemoteHost - RALsConns []*RemoteHost + StatSConns []string + ResourceSConns []string + RALsConns []string } func (fSCfg *FilterSCfg) loadFromJsonCfg(jsnCfg *FilterSJsonCfg) (err error) { @@ -29,24 +31,36 @@ func (fSCfg *FilterSCfg) loadFromJsonCfg(jsnCfg *FilterSJsonCfg) (err error) { return } if jsnCfg.Stats_conns != nil { - fSCfg.StatSConns = make([]*RemoteHost, len(*jsnCfg.Stats_conns)) - for idx, jsnHaCfg := range *jsnCfg.Stats_conns { - fSCfg.StatSConns[idx] = NewDfltRemoteHost() - fSCfg.StatSConns[idx].loadFromJsonCfg(jsnHaCfg) + fSCfg.StatSConns = make([]string, len(*jsnCfg.Stats_conns)) + for idx, connID := range *jsnCfg.Stats_conns { + // if we have the connection internal we change the name so we can have internal rpc for each subsystem + if connID == utils.MetaInternal { + fSCfg.StatSConns[idx] = utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStatS) + } else { + fSCfg.StatSConns[idx] = connID + } } } if jsnCfg.Resources_conns != nil { - fSCfg.ResourceSConns = make([]*RemoteHost, len(*jsnCfg.Resources_conns)) - for idx, jsnHaCfg := range *jsnCfg.Resources_conns { - fSCfg.ResourceSConns[idx] = NewDfltRemoteHost() - fSCfg.ResourceSConns[idx].loadFromJsonCfg(jsnHaCfg) + fSCfg.ResourceSConns = make([]string, len(*jsnCfg.Resources_conns)) + for idx, connID := range *jsnCfg.Resources_conns { + // if we have the connection internal we change the name so we can have internal rpc for each subsystem + if connID == utils.MetaInternal { + fSCfg.ResourceSConns[idx] = utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources) + } else { + fSCfg.ResourceSConns[idx] = connID + } } } if jsnCfg.Rals_conns != nil { - fSCfg.RALsConns = make([]*RemoteHost, len(*jsnCfg.Rals_conns)) - for idx, jsnHaCfg := range *jsnCfg.Rals_conns { - fSCfg.RALsConns[idx] = NewDfltRemoteHost() - fSCfg.RALsConns[idx].loadFromJsonCfg(jsnHaCfg) + fSCfg.RALsConns = make([]string, len(*jsnCfg.Rals_conns)) + for idx, connID := range *jsnCfg.Rals_conns { + // if we have the connection internal we change the name so we can have internal rpc for each subsystem + if connID == utils.MetaInternal { + fSCfg.RALsConns[idx] = utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder) + } else { + fSCfg.RALsConns[idx] = connID + } } } return diff --git a/config/filterscfg_test.go b/config/filterscfg_test.go index 24485df46..9c1e01b5a 100644 --- a/config/filterscfg_test.go +++ b/config/filterscfg_test.go @@ -38,11 +38,11 @@ func TestFilterSCfgloadFromJsonCfg(t *testing.T) { } cfgJSONStr := `{ "filters": { // Filters configuration (*new) - "stats_conns": [{"Address":"127.0.0.1","Transport":"","Synchronous":true}], // address where to reach the stat service, empty to disable stats functionality: <""|*internal|x.y.z.y:1234> + "stats_conns": ["*localhost"], // address where to reach the stat service, empty to disable stats functionality: <""|*internal|x.y.z.y:1234> }, }` expected = FilterSCfg{ - StatSConns: []*RemoteHost{{Address: "127.0.0.1", Transport: "", Synchronous: true}}, + StatSConns: []string{utils.MetaLocalHost}, } if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil { t.Error(err) diff --git a/config/libconfig_json.go b/config/libconfig_json.go index 134295ab9..62b6c5240 100755 --- a/config/libconfig_json.go +++ b/config/libconfig_json.go @@ -103,9 +103,9 @@ type ItemRmtRplOptJson struct { // Filters config type FilterSJsonCfg struct { - Stats_conns *[]*RemoteHostJson - Resources_conns *[]*RemoteHostJson - Rals_conns *[]*RemoteHostJson + Stats_conns *[]string + Resources_conns *[]string + Rals_conns *[]string } // Rater config section diff --git a/data/conf/samples/filters/cgrates.json b/data/conf/samples/filters/cgrates.json index b87e6d80b..50cb3cd4d 100644 --- a/data/conf/samples/filters/cgrates.json +++ b/data/conf/samples/filters/cgrates.json @@ -38,15 +38,9 @@ }, "filters": { - "stats_conns": [ - {"address": "127.0.0.1:2012", "transport":"*json"}, - ], - "resources_conns": [ - {"address": "127.0.0.1:2012", "transport":"*json"}, - ], - "rals_conns": [ - {"address": "127.0.0.1:2012", "transport":"*json"}, - ], + "stats_conns": ["*localhost"], + "resources_conns": ["*localhost"], + "rals_conns": ["*localhost"], }, diff --git a/data/conf/samples/filters_gob/cgrates.json b/data/conf/samples/filters_gob/cgrates.json index 386f95804..3ccbd8bcd 100644 --- a/data/conf/samples/filters_gob/cgrates.json +++ b/data/conf/samples/filters_gob/cgrates.json @@ -45,15 +45,9 @@ }, "filters": { - "stats_conns": [ - {"address": "127.0.0.1:2013", "transport":"*gob"}, - ], - "resources_conns": [ - {"address": "127.0.0.1:2013", "transport":"*gob"}, - ], - "rals_conns": [ - {"address": "127.0.0.1:2013", "transport":"*gob"}, - ], + "stats_conns": ["conn1"], + "resources_conns": ["conn1"], + "rals_conns": ["conn1"], }, diff --git a/engine/filters.go b/engine/filters.go index ab2d7b671..784fba526 100644 --- a/engine/filters.go +++ b/engine/filters.go @@ -19,87 +19,28 @@ import ( "fmt" "reflect" "strings" - "sync" "time" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/utils" - "github.com/cgrates/rpcclient" ) -func NewFilterS(cfg *config.CGRConfig, - statSChan, resSChan, ralSChan chan rpcclient.ClientConnector, dm *DataManager) (fS *FilterS) { +func NewFilterS(cfg *config.CGRConfig, connMgr *ConnManager, dm *DataManager) (fS *FilterS) { fS = &FilterS{ - dm: dm, - cfg: cfg, - } - if len(cfg.FilterSCfg().StatSConns) != 0 { - fS.connStatS(statSChan) - } - if len(cfg.FilterSCfg().ResourceSConns) != 0 { - fS.connResourceS(resSChan) - } - if len(cfg.FilterSCfg().RALsConns) != 0 { - fS.connRALs(ralSChan) + dm: dm, + cfg: cfg, + connMgr: connMgr, } + return } // FilterS is a service used to take decisions in case of filters // uses lazy connections where necessary to avoid deadlocks on service startup type FilterS struct { - cfg *config.CGRConfig - statSConns, resSConns, ralSConns rpcclient.ClientConnector - sSConnMux, rSConnMux, ralSConnMux sync.RWMutex // make sure only one goroutine attempts connecting - dm *DataManager -} - -// connStatS returns will connect towards StatS -func (fS *FilterS) connStatS(statSChan chan rpcclient.ClientConnector) (err error) { - fS.sSConnMux.Lock() - defer fS.sSConnMux.Unlock() - if fS.statSConns != nil { // connection was populated between locks - return - } - fS.statSConns, err = NewRPCPool(rpcclient.PoolFirst, - fS.cfg.TlsCfg().ClientKey, fS.cfg.TlsCfg().ClientCerificate, - fS.cfg.TlsCfg().CaCertificate, fS.cfg.GeneralCfg().ConnectAttempts, - fS.cfg.GeneralCfg().Reconnects, fS.cfg.GeneralCfg().ConnectTimeout, - fS.cfg.GeneralCfg().ReplyTimeout, fS.cfg.FilterSCfg().StatSConns, - statSChan, true) - return -} - -// connResourceS returns will connect towards ResourceS -func (fS *FilterS) connResourceS(resSChan chan rpcclient.ClientConnector) (err error) { - fS.rSConnMux.Lock() - defer fS.rSConnMux.Unlock() - if fS.resSConns != nil { // connection was populated between locks - return - } - fS.resSConns, err = NewRPCPool(rpcclient.PoolFirst, - fS.cfg.TlsCfg().ClientKey, fS.cfg.TlsCfg().ClientCerificate, - fS.cfg.TlsCfg().CaCertificate, fS.cfg.GeneralCfg().ConnectAttempts, - fS.cfg.GeneralCfg().Reconnects, fS.cfg.GeneralCfg().ConnectTimeout, - fS.cfg.GeneralCfg().ReplyTimeout, fS.cfg.FilterSCfg().ResourceSConns, - resSChan, true) - return -} - -// connRALs returns will connect towards RALs -func (fS *FilterS) connRALs(ralSChan chan rpcclient.ClientConnector) (err error) { - fS.ralSConnMux.Lock() - defer fS.ralSConnMux.Unlock() - if fS.ralSConns != nil { // connection was populated between locks - return - } - fS.ralSConns, err = NewRPCPool(rpcclient.PoolFirst, - fS.cfg.TlsCfg().ClientKey, fS.cfg.TlsCfg().ClientCerificate, - fS.cfg.TlsCfg().CaCertificate, fS.cfg.GeneralCfg().ConnectAttempts, - fS.cfg.GeneralCfg().Reconnects, fS.cfg.GeneralCfg().ConnectTimeout, - fS.cfg.GeneralCfg().ReplyTimeout, fS.cfg.FilterSCfg().RALsConns, - ralSChan, true) - return + cfg *config.CGRConfig + dm *DataManager + connMgr *ConnManager } // Pass will check all filters wihin filterIDs and require them passing for dataProvider @@ -497,7 +438,7 @@ func (fS *FilterS) getFieldNameDataProvider(initialDP config.DataProvider, return nil, fmt.Errorf("invalid fieldname <%s>", fieldName) } var account *Account - if err = fS.ralSConns.Call(utils.ApierV2GetAccount, + if err = fS.connMgr.Call(fS.cfg.FilterSCfg().RALsConns, nil, utils.ApierV2GetAccount, &utils.AttrGetAccount{Tenant: tenant, Account: splitFldName[1]}, &account); err != nil { return } @@ -510,7 +451,7 @@ func (fS *FilterS) getFieldNameDataProvider(initialDP config.DataProvider, return nil, fmt.Errorf("invalid fieldname <%s>", fieldName) } var reply *Resource - if err := fS.resSConns.Call(utils.ResourceSv1GetResource, + if err := fS.connMgr.Call(fS.cfg.FilterSCfg().ResourceSConns, nil, utils.ResourceSv1GetResource, &utils.TenantID{Tenant: tenant, ID: splitFldName[1]}, &reply); err != nil { return nil, err } @@ -523,7 +464,7 @@ func (fS *FilterS) getFieldNameDataProvider(initialDP config.DataProvider, } var statValues map[string]float64 - if err := fS.statSConns.Call(utils.StatSv1GetQueueFloatMetrics, + if err := fS.connMgr.Call(fS.cfg.FilterSCfg().StatSConns, nil, utils.StatSv1GetQueueFloatMetrics, &utils.TenantIDWithArgDispatcher{TenantID: &utils.TenantID{Tenant: tenant, ID: splitFldName[1]}}, &statValues); err != nil { return nil, err @@ -572,7 +513,7 @@ func (fS *FilterS) getFieldValueDataProvider(initialDP config.DataProvider, return nil, fmt.Errorf("invalid fieldname <%s>", fieldValue) } var account *Account - if err = fS.ralSConns.Call(utils.ApierV2GetAccount, + if err = fS.connMgr.Call(fS.cfg.FilterSCfg().RALsConns, nil, utils.ApierV2GetAccount, &utils.AttrGetAccount{Tenant: tenant, Account: splitFldName[1]}, &account); err != nil { return } @@ -585,7 +526,7 @@ func (fS *FilterS) getFieldValueDataProvider(initialDP config.DataProvider, return nil, fmt.Errorf("invalid fieldname <%s>", fieldValue) } var reply *Resource - if err := fS.resSConns.Call(utils.ResourceSv1GetResource, + if err := fS.connMgr.Call(fS.cfg.FilterSCfg().ResourceSConns, nil, utils.ResourceSv1GetResource, &utils.TenantID{Tenant: tenant, ID: splitFldName[1]}, &reply); err != nil { return nil, err } @@ -598,7 +539,7 @@ func (fS *FilterS) getFieldValueDataProvider(initialDP config.DataProvider, } var statValues map[string]float64 - if err := fS.statSConns.Call(utils.StatSv1GetQueueFloatMetrics, + if err := fS.connMgr.Call(fS.cfg.FilterSCfg().StatSConns, nil, utils.StatSv1GetQueueFloatMetrics, &utils.TenantIDWithArgDispatcher{TenantID: &utils.TenantID{Tenant: tenant, ID: splitFldName[1]}}, &statValues); err != nil { return nil, err diff --git a/general_tests/a1_it_test.go b/general_tests/a1_it_test.go index fbc0c14ee..91f6b06de 100644 --- a/general_tests/a1_it_test.go +++ b/general_tests/a1_it_test.go @@ -78,7 +78,7 @@ func TestA1ItInternal(t *testing.T) { } func testA1itLoadConfig(t *testing.T) { - a1CfgPath = path.Join(*dataDir, "conf", "samples", a1ConfigDir) + a1CfgPath = path.Join(dataDir, "conf", "samples", a1ConfigDir) if a1Cfg, err = config.NewCGRConfigFromPath(a1CfgPath); err != nil { t.Error(err) } @@ -97,7 +97,7 @@ func testA1itResetStorDb(t *testing.T) { } func testA1itStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(a1CfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(a1CfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -112,7 +112,7 @@ func testA1itRPCConn(t *testing.T) { func testA1itLoadTPFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "a1")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "test", "a1")} if err := a1rpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } else if reply != utils.OK { diff --git a/general_tests/accounts_it_test.go b/general_tests/accounts_it_test.go index 6139abc6b..324fae4de 100644 --- a/general_tests/accounts_it_test.go +++ b/general_tests/accounts_it_test.go @@ -77,7 +77,7 @@ func TestAccITMongo(t *testing.T) { func testV1AccLoadConfig(t *testing.T) { var err error - accCfgPath = path.Join(*dataDir, "conf", "samples", accConfDIR) + accCfgPath = path.Join(dataDir, "conf", "samples", accConfDIR) if accCfg, err = config.NewCGRConfigFromPath(accCfgPath); err != nil { t.Error(err) } @@ -121,7 +121,7 @@ func testV1AccGetAccountBeforeSet(t *testing.T) { func testV1AccLoadTarrifPlans(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testit")} if err := accRpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } else if reply != utils.OK { diff --git a/general_tests/broadcast_client_it_test.go b/general_tests/broadcast_client_it_test.go index a3c2c2113..8d6efad91 100644 --- a/general_tests/broadcast_client_it_test.go +++ b/general_tests/broadcast_client_it_test.go @@ -63,11 +63,11 @@ func TestBrodcastRPC(t *testing.T) { // test for 0 balance with session terminate with 1s usage func testbrodcastItLoadConfig(t *testing.T) { var err error - brodcastCfgPath = path.Join(*dataDir, "conf", "samples", "internal_broadcast_replication") + brodcastCfgPath = path.Join(dataDir, "conf", "samples", "internal_broadcast_replication") if brodcastCfg, err = config.NewCGRConfigFromPath(brodcastCfgPath); err != nil { t.Error(err) } - brodcastInternalCfgPath = path.Join(*dataDir, "conf", "samples", "tutinternal") + brodcastInternalCfgPath = path.Join(dataDir, "conf", "samples", "tutinternal") if brodcastInternalCfg, err = config.NewCGRConfigFromPath(brodcastInternalCfgPath); err != nil { t.Error(err) } @@ -86,10 +86,10 @@ func testbrodcastItLoadConfig(t *testing.T) { // } func testbrodcastItStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(brodcastCfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(brodcastCfgPath, waitRater); err != nil { t.Fatal(err) } - if _, err := engine.StartEngine(brodcastInternalCfgPath, *waitRater); err != nil { + if _, err := engine.StartEngine(brodcastInternalCfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -108,7 +108,7 @@ func testbrodcastItRPCConn(t *testing.T) { func testbrodcastItLoadFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "tutorial")} if err := brodcastRPC.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } diff --git a/general_tests/cdrs_it_test.go b/general_tests/cdrs_it_test.go index 7d010b323..a3435529f 100644 --- a/general_tests/cdrs_it_test.go +++ b/general_tests/cdrs_it_test.go @@ -95,9 +95,9 @@ func TestCDRsITMongo(t *testing.T) { func testV2CDRsInitConfig(t *testing.T) { var err error - cdrsCfgPath = path.Join(*dataDir, "conf", "samples", cdrsConfDIR) - if *encoding == utils.MetaGOB { - cdrsCfgPath = path.Join(*dataDir, "conf", "samples", cdrsConfDIR+"_gob") + cdrsCfgPath = path.Join(dataDir, "conf", "samples", cdrsConfDIR) + if encoding == utils.MetaGOB { + cdrsCfgPath = path.Join(dataDir, "conf", "samples", cdrsConfDIR+"_gob") } if cdrsCfg, err = config.NewCGRConfigFromPath(cdrsCfgPath); err != nil { t.Fatal("Got config error: ", err.Error()) @@ -118,7 +118,7 @@ func testV2CDRsInitCdrDb(t *testing.T) { } func testV2CDRsStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(cdrsCfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(cdrsCfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -135,10 +135,10 @@ func testV2CDRsLoadTariffPlanFromFolder(t *testing.T) { var loadInst utils.LoadInstance if err := cdrsRpc.Call(utils.ApierV2LoadTariffPlanFromFolder, &utils.AttrLoadTpFromFolder{FolderPath: path.Join( - *dataDir, "tariffplans", "testit")}, &loadInst); err != nil { + dataDir, "tariffplans", "testit")}, &loadInst); err != nil { t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups + time.Sleep(time.Duration(waitRater) * time.Millisecond) // Give time for scheduler to execute topups var resp string if err := cdrsRpc.Call(utils.ApierV1RemoveChargerProfile, &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"}, &resp); err != nil { @@ -755,7 +755,7 @@ func testV2CDRsGetCdrs7(t *testing.T) { } func testV2CDRsKillEngine(t *testing.T) { - if err := engine.KillEngine(*waitRater); err != nil { + if err := engine.KillEngine(waitRater); err != nil { t.Error(err) } } diff --git a/general_tests/cdrs_onlexp_it_test.go b/general_tests/cdrs_onlexp_it_test.go index e7a347ae4..edd56cc75 100644 --- a/general_tests/cdrs_onlexp_it_test.go +++ b/general_tests/cdrs_onlexp_it_test.go @@ -78,11 +78,11 @@ func TestCDRsOnExp(t *testing.T) { func testCDRsOnExpInitConfig(t *testing.T) { var err error - cdrsMasterCfgPath = path.Join(*dataDir, "conf", "samples", "cdrsonexpmaster") + cdrsMasterCfgPath = path.Join(dataDir, "conf", "samples", "cdrsonexpmaster") if cdrsMasterCfg, err = config.NewCGRConfigFromPath(cdrsMasterCfgPath); err != nil { t.Fatal("Got config error: ", err.Error()) } - cdrsSlaveCfgPath = path.Join(*dataDir, "conf", "samples", "cdrsonexpslave") + cdrsSlaveCfgPath = path.Join(dataDir, "conf", "samples", "cdrsonexpslave") if cdrsSlaveCfg, err = config.NewCGRConfigFromPath(cdrsSlaveCfgPath); err != nil { t.Fatal("Got config error: ", err.Error()) } @@ -113,13 +113,13 @@ func testCDRsOnExpInitCdrDb(t *testing.T) { } func testCDRsOnExpStartMasterEngine(t *testing.T) { - if _, err := engine.StopStartEngine(cdrsMasterCfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(cdrsMasterCfgPath, waitRater); err != nil { t.Fatal(err) } } func testCDRsOnExpStartSlaveEngine(t *testing.T) { - if _, err := engine.StartEngine(cdrsSlaveCfgPath, *waitRater); err != nil { + if _, err := engine.StartEngine(cdrsSlaveCfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -213,7 +213,7 @@ func testCDRsOnExpDisableOnlineExport(t *testing.T) { } else if reply != utils.OK { t.Error("Unexpected reply received: ", reply) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) + time.Sleep(time.Duration(waitRater) * time.Millisecond) filesInDir, _ := ioutil.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir) if len(filesInDir) != 0 { t.Fatalf("Should be no files in directory: %s", cdrsMasterCfg.GeneralCfg().FailedPostsDir) @@ -253,7 +253,7 @@ func testCDRsOnExpHttpCdrReplication(t *testing.T) { } else if reply != utils.OK { t.Error("Unexpected reply received: ", reply) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) + time.Sleep(time.Duration(waitRater) * time.Millisecond) cdrsSlaveRpc, err := rpcclient.NewRPCClient(utils.TCP, "127.0.0.1:12012", false, "", "", "", 1, 1, time.Duration(1*time.Second), time.Duration(2*time.Second), rpcclient.JSONrpc, nil, false) if err != nil { @@ -384,7 +384,7 @@ func testCDRsOnExpAMQPReplication(t *testing.T) { } else if reply != utils.OK { t.Error("Unexpected reply received: ", reply) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) + time.Sleep(time.Duration(waitRater) * time.Millisecond) if conn, err = amqp.Dial("amqp://guest:guest@localhost:5672/"); err != nil { t.Fatal(err) } diff --git a/general_tests/cdrs_processevent_it_test.go b/general_tests/cdrs_processevent_it_test.go index 8eabebf04..867d87505 100644 --- a/general_tests/cdrs_processevent_it_test.go +++ b/general_tests/cdrs_processevent_it_test.go @@ -84,7 +84,7 @@ func TestCDRsITPEMySql(t *testing.T) { func testV1CDRsInitConfig(t *testing.T) { var err error - pecdrsCfgPath = path.Join(*dataDir, "conf", "samples", pecdrsConfDIR) + pecdrsCfgPath = path.Join(dataDir, "conf", "samples", pecdrsConfDIR) if pecdrsCfg, err = config.NewCGRConfigFromPath(pecdrsCfgPath); err != nil { t.Fatal("Got config error: ", err.Error()) } @@ -103,7 +103,7 @@ func testV1CDRsInitCdrDb(t *testing.T) { } func testV1CDRsStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(pecdrsCfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(pecdrsCfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -120,10 +120,10 @@ func testV1CDRsLoadTariffPlanFromFolder(t *testing.T) { var loadInst string if err := pecdrsRpc.Call(utils.ApierV1LoadTariffPlanFromFolder, &utils.AttrLoadTpFromFolder{FolderPath: path.Join( - *dataDir, "tariffplans", "testit")}, &loadInst); err != nil { + dataDir, "tariffplans", "testit")}, &loadInst); err != nil { t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) + time.Sleep(time.Duration(waitRater) * time.Millisecond) } func testV1CDRsProcessEventAttrS(t *testing.T) { @@ -599,7 +599,7 @@ func testV1CDRsProcessEventExportCheck(t *testing.T) { } } func testV1CDRsKillEngine(t *testing.T) { - if err := engine.KillEngine(*waitRater); err != nil { + if err := engine.KillEngine(waitRater); err != nil { t.Error(err) } } diff --git a/general_tests/data_it_test.go b/general_tests/data_it_test.go index f55deb8ee..930ca7f83 100644 --- a/general_tests/data_it_test.go +++ b/general_tests/data_it_test.go @@ -69,7 +69,7 @@ func TestDataITMongo(t *testing.T) { func testV1DataLoadConfig(t *testing.T) { var err error - dataCfgPath = path.Join(*dataDir, "conf", "samples", dataConfDIR) + dataCfgPath = path.Join(dataDir, "conf", "samples", dataConfDIR) if dataCfg, err = config.NewCGRConfigFromPath(dataCfgPath); err != nil { t.Error(err) } @@ -113,7 +113,7 @@ func testV1DataGetAccountBeforeSet(t *testing.T) { func testV1DataLoadTarrifPlans(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testData")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testData")} if err := dataRpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } else if reply != utils.OK { diff --git a/general_tests/ddazmbl1_test.go b/general_tests/ddazmbl1_test.go index 027da5aff..c2b70e747 100644 --- a/general_tests/ddazmbl1_test.go +++ b/general_tests/ddazmbl1_test.go @@ -131,7 +131,7 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10` func TestDZ1ExecuteActions(t *testing.T) { scheduler.NewScheduler(dataDB, config.CgrConfig(), - engine.NewFilterS(config.CgrConfig(), nil, nil, nil, dataDB)).Reload() + engine.NewFilterS(config.CgrConfig(), nil, dataDB)).Reload() time.Sleep(10 * time.Millisecond) // Give time to scheduler to topup the account if acnt, err := dataDB.GetAccount("cgrates.org:12344"); err != nil { t.Error(err) diff --git a/general_tests/ddazmbl2_test.go b/general_tests/ddazmbl2_test.go index 4dec53e54..0aadb49c8 100644 --- a/general_tests/ddazmbl2_test.go +++ b/general_tests/ddazmbl2_test.go @@ -128,7 +128,7 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10` func TestExecuteActions2(t *testing.T) { scheduler.NewScheduler(dataDB2, config.CgrConfig(), - engine.NewFilterS(config.CgrConfig(), nil, nil, nil, dataDB)).Reload() + engine.NewFilterS(config.CgrConfig(), nil, dataDB)).Reload() time.Sleep(10 * time.Millisecond) // Give time to scheduler to topup the account if acnt, err := dataDB2.GetAccount("cgrates.org:12345"); err != nil { t.Error(err) diff --git a/general_tests/ddazmbl3_test.go b/general_tests/ddazmbl3_test.go index 8bee8a4c3..93770a0a1 100644 --- a/general_tests/ddazmbl3_test.go +++ b/general_tests/ddazmbl3_test.go @@ -127,7 +127,7 @@ cgrates.org,call,discounted_minutes,2013-01-06T00:00:00Z,RP_UK_Mobile_BIG5_PKG,` func TestExecuteActions3(t *testing.T) { scheduler.NewScheduler(dataDB3, config.CgrConfig(), - engine.NewFilterS(config.CgrConfig(), nil, nil, nil, dataDB)).Reload() + engine.NewFilterS(config.CgrConfig(), nil, dataDB)).Reload() time.Sleep(10 * time.Millisecond) // Give time to scheduler to topup the account if acnt, err := dataDB3.GetAccount("cgrates.org:12346"); err != nil { t.Error(err) diff --git a/general_tests/destination_combined_it_test.go b/general_tests/destination_combined_it_test.go index 344b71093..49f8fdecb 100644 --- a/general_tests/destination_combined_it_test.go +++ b/general_tests/destination_combined_it_test.go @@ -55,7 +55,7 @@ func TestDestinationCombinesMySQL(t *testing.T) { func testDestinationLoadConfig(t *testing.T) { var err error - tutorialCfgPath = path.Join(*dataDir, "conf", "samples", tutorialConfDIR) + tutorialCfgPath = path.Join(dataDir, "conf", "samples", tutorialConfDIR) if tutorialCfg, err = config.NewCGRConfigFromPath(tutorialCfgPath); err != nil { t.Error(err) } @@ -88,7 +88,7 @@ func testDestinationRpcConn(t *testing.T) { func testDestinationFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tp_destination_with_any")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "tp_destination_with_any")} if err := tutorialRpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } diff --git a/general_tests/filters_it_test.go b/general_tests/filters_it_test.go index 69b5d8379..6b70d52c0 100644 --- a/general_tests/filters_it_test.go +++ b/general_tests/filters_it_test.go @@ -67,9 +67,9 @@ func TestFltrIT(t *testing.T) { func testV1FltrLoadConfig(t *testing.T) { var err error - fltrCfgPath = path.Join(*dataDir, "conf", "samples", fltrConfDIR) - if *encoding == utils.MetaGOB { - cdrsCfgPath = path.Join(*dataDir, "conf", "samples", fltrConfDIR+"_gob") + fltrCfgPath = path.Join(dataDir, "conf", "samples", fltrConfDIR) + if encoding == utils.MetaGOB { + cdrsCfgPath = path.Join(dataDir, "conf", "samples", fltrConfDIR+"_gob") } if fltrCfg, err = config.NewCGRConfigFromPath(fltrCfgPath); err != nil { t.Error(err) @@ -105,7 +105,7 @@ func testV1FltrRpcConn(t *testing.T) { func testV1FltrLoadTarrifPlans(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testit")} if err := fltrRpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } else if reply != utils.OK { diff --git a/general_tests/gocs_it_test.go b/general_tests/gocs_it_test.go index a1df663f2..a1d1d5549 100644 --- a/general_tests/gocs_it_test.go +++ b/general_tests/gocs_it_test.go @@ -69,17 +69,17 @@ func TestGOCSIT(t *testing.T) { //Init Config func testGOCSInitCfg(t *testing.T) { - auCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "au_site") + auCfgPath = path.Join(dataDir, "conf", "samples", "gocs", "au_site") if auCfg, err = config.NewCGRConfigFromPath(auCfgPath); err != nil { t.Fatal(err) } - auCfg.DataFolderPath = *dataDir + auCfg.DataFolderPath = dataDir config.SetCgrConfig(auCfg) - usCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "us_site") + usCfgPath = path.Join(dataDir, "conf", "samples", "gocs", "us_site") if usCfg, err = config.NewCGRConfigFromPath(usCfgPath); err != nil { t.Fatal(err) } - dspCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "dsp_site") + dspCfgPath = path.Join(dataDir, "conf", "samples", "gocs", "dsp_site") if dspCfg, err = config.NewCGRConfigFromPath(dspCfgPath); err != nil { t.Fatal(err) } @@ -111,13 +111,13 @@ func testGOCSResetDB(t *testing.T) { // Start CGR Engine func testGOCSStartEngine(t *testing.T) { - if usEngine, err = engine.StopStartEngine(usCfgPath, *waitRater); err != nil { + if usEngine, err = engine.StopStartEngine(usCfgPath, waitRater); err != nil { t.Fatal(err) } - if auEngine, err = engine.StartEngine(auCfgPath, *waitRater); err != nil { + if auEngine, err = engine.StartEngine(auCfgPath, waitRater); err != nil { t.Fatal(err) } - if dspEngine, err = engine.StartEngine(dspCfgPath, *waitRater); err != nil { + if dspEngine, err = engine.StartEngine(dspCfgPath, waitRater); err != nil { t.Fatal(err) } time.Sleep(10 * time.Millisecond) @@ -178,7 +178,7 @@ func testGOCSLoadData(t *testing.T) { if err != nil { t.Error(err) } - loader := exec.Command(loaderPath, "-config_path", dspCfgPath, "-path", path.Join(*dataDir, "tariffplans", "gocs", "dsp_site")) + loader := exec.Command(loaderPath, "-config_path", dspCfgPath, "-path", path.Join(dataDir, "tariffplans", "gocs", "dsp_site")) if err := loader.Start(); err != nil { t.Error(err) @@ -218,7 +218,7 @@ func testGOCSLoadData(t *testing.T) { } else if rply := acnt.BalanceMap[utils.VOICE].GetTotalValue(); rply != expectedVoice { t.Errorf("Expecting: %v, received: %v", expectedVoice, rply) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups on au_site + time.Sleep(time.Duration(waitRater) * time.Millisecond) // Give time for scheduler to execute topups on au_site } func testGOCSAuthSession(t *testing.T) { diff --git a/general_tests/multiplecdrc_it_test.go b/general_tests/multiplecdrc_it_test.go index 3a83ef680..3e252729f 100644 --- a/general_tests/multiplecdrc_it_test.go +++ b/general_tests/multiplecdrc_it_test.go @@ -64,7 +64,7 @@ func TestMCDRC(t *testing.T) { func testMCDRCLoadConfig(t *testing.T) { var err error - cfgPath = path.Join(*dataDir, "conf", "samples", "multiplecdrc") + cfgPath = path.Join(dataDir, "conf", "samples", "multiplecdrc") if cfg, err = config.NewCGRConfigFromPath(cfgPath); err != nil { t.Error(err) } @@ -98,7 +98,7 @@ func testMCDRCCreateCdrDirs(t *testing.T) { } } func testMCDRCStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(cfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(cfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -116,13 +116,13 @@ func testMCDRCRpcConn(t *testing.T) { func testMCDRCApierLoadTariffPlanFromFolder(t *testing.T) { reply := "" // Simple test that command is executed without errors - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testtp")} if err := rater.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error("Got error on ApierV1.LoadTariffPlanFromFolder: ", err.Error()) } else if reply != "OK" { t.Error("Calling ApierV1.LoadTariffPlanFromFolder got reply: ", reply) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups + time.Sleep(time.Duration(waitRater) * time.Millisecond) // Give time for scheduler to execute topups } // The default scenario, out of cdrc defined in .cfg file diff --git a/general_tests/resourcesv1_it_test.go b/general_tests/resourcesv1_it_test.go index aadc2a434..f22580936 100644 --- a/general_tests/resourcesv1_it_test.go +++ b/general_tests/resourcesv1_it_test.go @@ -67,7 +67,7 @@ func TestRsV1ITMongo(t *testing.T) { func testV1RsLoadConfig(t *testing.T) { var err error - rlsV1CfgPath = path.Join(*dataDir, "conf", "samples", rlsV1ConfDIR) + rlsV1CfgPath = path.Join(dataDir, "conf", "samples", rlsV1ConfDIR) if rlsV1Cfg, err = config.NewCGRConfigFromPath(rlsV1CfgPath); err != nil { t.Error(err) } @@ -87,7 +87,7 @@ func testV1RsResetStorDb(t *testing.T) { } func testV1RsStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(rlsV1CfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(rlsV1CfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -219,7 +219,7 @@ func testV1RsAuthorize(t *testing.T) { } func testV1RsStopEngine(t *testing.T) { - if err := engine.KillEngine(*waitRater); err != nil { + if err := engine.KillEngine(waitRater); err != nil { t.Error(err) } } diff --git a/general_tests/rpccaching_it_test.go b/general_tests/rpccaching_it_test.go index 9ab9ea56e..82188f69f 100644 --- a/general_tests/rpccaching_it_test.go +++ b/general_tests/rpccaching_it_test.go @@ -78,7 +78,7 @@ func TestRPCMethods(t *testing.T) { func testRPCMethodsLoadConfig(t *testing.T) { var err error - rpcCfgPath = path.Join(*dataDir, "conf", "samples", rpcConfDIR) + rpcCfgPath = path.Join(dataDir, "conf", "samples", rpcConfDIR) if rpcCfg, err = config.NewCGRConfigFromPath(rpcCfgPath); err != nil { t.Error(err) } @@ -98,7 +98,7 @@ func testRPCMethodsResetStorDb(t *testing.T) { } func testRPCMethodsStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(rpcCfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(rpcCfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -113,7 +113,7 @@ func testRPCMethodsRpcConn(t *testing.T) { func testRPCMethodsFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testit")} if err := rpcRpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } @@ -806,11 +806,11 @@ func testRPCMethodsCdrsStoreSessionCost(t *testing.T) { // Load the tariff plan, creating accounts and their balances func testRPCMethodsLoadData(t *testing.T) { - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testtp")} if err := rpcRpc.Call(utils.ApierV2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil { t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups + time.Sleep(time.Duration(waitRater) * time.Millisecond) // Give time for scheduler to execute topups } func testRPCMethodsResponderDebit(t *testing.T) { diff --git a/general_tests/rpcclient_it_test.go b/general_tests/rpcclient_it_test.go index 568fac0a7..7d03cf654 100644 --- a/general_tests/rpcclient_it_test.go +++ b/general_tests/rpcclient_it_test.go @@ -78,8 +78,8 @@ func TestRPCITLcl(t *testing.T) { } func testRPCITLclInitCfg(t *testing.T) { - rpcITCfgPath1 = path.Join(*dataDir, "conf", "samples", "multiral1") - rpcITCfgPath2 = path.Join(*dataDir, "conf", "samples", "multiral2") + rpcITCfgPath1 = path.Join(dataDir, "conf", "samples", "multiral1") + rpcITCfgPath2 = path.Join(dataDir, "conf", "samples", "multiral2") rpcITCfg1, err = config.NewCGRConfigFromPath(rpcITCfgPath1) if err != nil { t.Error(err) @@ -94,7 +94,7 @@ func testRPCITLclInitCfg(t *testing.T) { } func testRPCITLclStartSecondEngine(t *testing.T) { - if ral2, err = engine.StopStartEngine(rpcITCfgPath2, *waitRater); err != nil { + if ral2, err = engine.StopStartEngine(rpcITCfgPath2, waitRater); err != nil { t.Fatal(err) } } @@ -133,7 +133,7 @@ func testRPCITLclStatusSecondEngine(t *testing.T) { // Start first engine func testRPCITLclStartFirstEngine(t *testing.T) { - if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil { + if ral1, err = engine.StartEngine(rpcITCfgPath1, waitRater); err != nil { t.Fatal(err) } } @@ -160,7 +160,7 @@ func testRPCITLclStatusFirstFailover(t *testing.T) { if err := ral1.Process.Kill(); err != nil { // Kill the first RAL t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) + time.Sleep(time.Duration(waitRater) * time.Millisecond) var status map[string]interface{} if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithArgDispatcher{}, &status); err != nil { t.Error(err) @@ -177,7 +177,7 @@ func testRPCITLclStatusFirstFailover(t *testing.T) { } func testRPCITLclStatusFirstFailback(t *testing.T) { - if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil { + if ral1, err = engine.StartEngine(rpcITCfgPath1, waitRater); err != nil { t.Fatal(err) } var status map[string]interface{} @@ -235,7 +235,7 @@ func testRPCITLclBcastStatusNoRals1(t *testing.T) { if err := ral1.Process.Kill(); err != nil { // Kill the first RAL t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) + time.Sleep(time.Duration(waitRater) * time.Millisecond) var status map[string]interface{} if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithArgDispatcher{}, &status); err != nil { t.Error(err) @@ -253,7 +253,7 @@ func testRPCITLclBcastStatusBcastNoRals(t *testing.T) { if err := ral2.Process.Kill(); err != nil { // Kill the first RAL t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) + time.Sleep(time.Duration(waitRater) * time.Millisecond) var status map[string]interface{} if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithArgDispatcher{}, &status); err == nil { t.Error("Should get error") @@ -261,7 +261,7 @@ func testRPCITLclBcastStatusBcastNoRals(t *testing.T) { } func testRPCITLclBcastStatusRALs2Up(t *testing.T) { - if ral2, err = engine.StartEngine(rpcITCfgPath2, *waitRater); err != nil { + if ral2, err = engine.StartEngine(rpcITCfgPath2, waitRater); err != nil { t.Fatal(err) } var status map[string]interface{} @@ -278,7 +278,7 @@ func testRPCITLclBcastStatusRALs2Up(t *testing.T) { } func testRPCITLclStatusBcastRALs1Up(t *testing.T) { - if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil { + if ral1, err = engine.StartEngine(rpcITCfgPath1, waitRater); err != nil { t.Fatal(err) } var status map[string]interface{} diff --git a/general_tests/sentinel_it_test.go b/general_tests/sentinel_it_test.go index cb8286b83..5251a2608 100755 --- a/general_tests/sentinel_it_test.go +++ b/general_tests/sentinel_it_test.go @@ -34,11 +34,11 @@ import ( ) var ( - node1ConfigPath = path.Join(*dataDir, "redis_sentinel", "node1.conf") - node2ConfigPath = path.Join(*dataDir, "redis_sentinel", "node2.conf") - sentinel1ConfigPath = path.Join(*dataDir, "redis_sentinel", "sentinel1.conf") - sentinel2ConfigPath = path.Join(*dataDir, "redis_sentinel", "sentinel2.conf") - engineConfigPath = path.Join(*dataDir, "conf", "samples", "tutsentinel") + node1ConfigPath = path.Join(dataDir, "redis_sentinel", "node1.conf") + node2ConfigPath = path.Join(dataDir, "redis_sentinel", "node2.conf") + sentinel1ConfigPath = path.Join(dataDir, "redis_sentinel", "sentinel1.conf") + sentinel2ConfigPath = path.Join(dataDir, "redis_sentinel", "sentinel2.conf") + engineConfigPath = path.Join(dataDir, "conf", "samples", "tutsentinel") sentinelConfig *config.CGRConfig sentinelRPC *rpc.Client node1Exec, node2Exec, @@ -97,7 +97,7 @@ func testRedisSentinelInitConfig(t *testing.T) { if err != nil { t.Error(err) } - sentinelConfig.DataFolderPath = *dataDir // Share DataFolderPath through config towards StoreDb for Flush() + sentinelConfig.DataFolderPath = dataDir // Share DataFolderPath through config towards StoreDb for Flush() config.SetCgrConfig(sentinelConfig) } diff --git a/general_tests/session2_it_test.go b/general_tests/session2_it_test.go index 43da4629b..89798e903 100644 --- a/general_tests/session2_it_test.go +++ b/general_tests/session2_it_test.go @@ -66,7 +66,7 @@ func TestSes2ItTutMysql(t *testing.T) { } func testSes2ItLoadConfig(t *testing.T) { - ses2CfgPath = path.Join(*dataDir, "conf", "samples", ses2CfgDir) + ses2CfgPath = path.Join(dataDir, "conf", "samples", ses2CfgDir) if ses2Cfg, err = config.NewCGRConfigFromPath(ses2CfgPath); err != nil { t.Error(err) } @@ -85,7 +85,7 @@ func testSes2ItResetStorDb(t *testing.T) { } func testSes2ItStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(ses2CfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(ses2CfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -100,7 +100,7 @@ func testSes2ItRPCConn(t *testing.T) { func testSes2ItLoadFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "tutorial")} if err := ses2RPC.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } diff --git a/general_tests/session3_it_test.go b/general_tests/session3_it_test.go index 10361a143..8f660b05d 100644 --- a/general_tests/session3_it_test.go +++ b/general_tests/session3_it_test.go @@ -71,7 +71,7 @@ func TestSes3ItSessions(t *testing.T) { } func testSes3ItLoadConfig(t *testing.T) { - ses3CfgPath = path.Join(*dataDir, "conf", "samples", ses3CfgDir) + ses3CfgPath = path.Join(dataDir, "conf", "samples", ses3CfgDir) if ses3Cfg, err = config.NewCGRConfigFromPath(ses3CfgPath); err != nil { t.Error(err) } @@ -90,7 +90,7 @@ func testSes3ItResetStorDb(t *testing.T) { } func testSes3ItStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(ses3CfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(ses3CfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -105,7 +105,7 @@ func testSes3ItRPCConn(t *testing.T) { func testSes3ItLoadFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testit")} if err := ses3RPC.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } @@ -174,7 +174,7 @@ func testSes3ItProcessEvent(t *testing.T) { }, }, } - if *encoding == utils.MetaGOB { + if encoding == utils.MetaGOB { eAttrs.CGREvent.Event[utils.Usage] = 5 * time.Minute eAttrs.CGREvent.Event[utils.SetupTime], _ = utils.IfaceAsTime("2018-01-07T17:00:00Z", "") eAttrs.CGREvent.Event[utils.AnswerTime], _ = utils.IfaceAsTime("2018-01-07T17:00:10Z", "") diff --git a/general_tests/session_it_test.go b/general_tests/session_it_test.go index 6ae234f9c..991d344e6 100644 --- a/general_tests/session_it_test.go +++ b/general_tests/session_it_test.go @@ -60,7 +60,7 @@ func TestSesIt(t *testing.T) { // test for 0 balance with session terminate with 1s usage func testSesItLoadConfig(t *testing.T) { - sesCfgPath = path.Join(*dataDir, "conf", "samples", "tutmysql_internal") + sesCfgPath = path.Join(dataDir, "conf", "samples", "tutmysql_internal") if sesCfg, err = config.NewCGRConfigFromPath(sesCfgPath); err != nil { t.Error(err) } @@ -79,7 +79,7 @@ func testSesItResetStorDb(t *testing.T) { } func testSesItStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(sesCfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(sesCfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -94,7 +94,7 @@ func testSesItRPCConn(t *testing.T) { func testSesItLoadFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testit")} if err := sesRPC.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } diff --git a/general_tests/session_replications_automaticdebit_it_test.go b/general_tests/session_replications_automaticdebit_it_test.go index d02aabe3f..ab8ac61e5 100644 --- a/general_tests/session_replications_automaticdebit_it_test.go +++ b/general_tests/session_replications_automaticdebit_it_test.go @@ -93,13 +93,13 @@ func testSessionSRplAddVoiceBalance(t *testing.T) { //Init Config func testSessionSRplInitCfg(t *testing.T) { - smgRplcMasterCfgPath = path.Join(*dataDir, "conf", "samples", "sessions_replication", "smgreplcmaster") + smgRplcMasterCfgPath = path.Join(dataDir, "conf", "samples", "sessions_replication", "smgreplcmaster") if smgRplcMasterCfg, err = config.NewCGRConfigFromPath(smgRplcMasterCfgPath); err != nil { t.Fatal(err) } - smgRplcMasterCfg.DataFolderPath = *dataDir + smgRplcMasterCfg.DataFolderPath = dataDir config.SetCgrConfig(smgRplcMasterCfg) - smgRplcSlaveCfgPath = path.Join(*dataDir, "conf", "samples", "sessions_replication", "smgreplcslave") + smgRplcSlaveCfgPath = path.Join(dataDir, "conf", "samples", "sessions_replication", "smgreplcslave") if smgRplcSlaveCfg, err = config.NewCGRConfigFromPath(smgRplcSlaveCfgPath); err != nil { t.Fatal(err) } @@ -117,10 +117,10 @@ func testSessionSRplResetDB(t *testing.T) { // Start CGR Engine func testSessionSRplStartEngine(t *testing.T) { - if _, err = engine.StopStartEngine(smgRplcSlaveCfgPath, *waitRater); err != nil { + if _, err = engine.StopStartEngine(smgRplcSlaveCfgPath, waitRater); err != nil { t.Fatal(err) } - if masterEngine, err = engine.StartEngine(smgRplcMasterCfgPath, *waitRater); err != nil { + if masterEngine, err = engine.StartEngine(smgRplcMasterCfgPath, waitRater); err != nil { t.Fatal(err) } @@ -138,12 +138,12 @@ func testSessionSRplApierRpcConn(t *testing.T) { // Load the tariff plan, creating accounts and their balances func testSessionSRplTPFromFolder(t *testing.T) { - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "oldtutorial")} var loadInst utils.LoadInstance if err := smgRplcMstrRPC.Call(utils.ApierV2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil { t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups + time.Sleep(time.Duration(waitRater) * time.Millisecond) // Give time for scheduler to execute topups } func testSessionSRplInitiate(t *testing.T) { @@ -372,7 +372,7 @@ func testSessionSRplTerminate(t *testing.T) { if err := smgRplcSlvRPC.Call(utils.SessionSv1TerminateSession, args, &reply); err != nil { t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated + time.Sleep(time.Duration(waitRater) * time.Millisecond) // Wait for the sessions to be populated var aSessions []*sessions.ExternalSession //check if the session was terminated on slave diff --git a/general_tests/sessionrefund_it_test.go b/general_tests/sessionrefund_it_test.go index 6c24b3c8d..697ade879 100644 --- a/general_tests/sessionrefund_it_test.go +++ b/general_tests/sessionrefund_it_test.go @@ -62,7 +62,7 @@ func TestSrIt(t *testing.T) { } func testSrItLoadConfig(t *testing.T) { - srCfgPath = path.Join(*dataDir, "conf", "samples", "tutmongo") + srCfgPath = path.Join(dataDir, "conf", "samples", "tutmongo") if srCfg, err = config.NewCGRConfigFromPath(srCfgPath); err != nil { t.Error(err) } @@ -81,7 +81,7 @@ func testSrItResetStorDb(t *testing.T) { } func testSrItStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(srCfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(srCfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -96,7 +96,7 @@ func testSrItRPCConn(t *testing.T) { func testSrItLoadFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "oldtutorial")} if err := srrpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } diff --git a/general_tests/supplier_it_test.go b/general_tests/supplier_it_test.go index 9a7891220..2fc277f1d 100644 --- a/general_tests/supplier_it_test.go +++ b/general_tests/supplier_it_test.go @@ -77,7 +77,7 @@ func TestSuplSV1ITMongo(t *testing.T) { func testV1SplSLoadConfig(t *testing.T) { var err error - splSv1CfgPath = path.Join(*dataDir, "conf", "samples", splSv1ConfDIR) + splSv1CfgPath = path.Join(dataDir, "conf", "samples", splSv1ConfDIR) if splSv1Cfg, err = config.NewCGRConfigFromPath(splSv1CfgPath); err != nil { t.Error(err) } @@ -97,7 +97,7 @@ func testV1SplSResetStorDb(t *testing.T) { } func testV1SplSStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(splSv1CfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(splSv1CfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -112,7 +112,7 @@ func testV1SplSRpcConn(t *testing.T) { func testV1SplSFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testit")} if err := splSv1Rpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) } diff --git a/general_tests/tls_it_test.go b/general_tests/tls_it_test.go index 2a4d0bd20..678fd7e4d 100755 --- a/general_tests/tls_it_test.go +++ b/general_tests/tls_it_test.go @@ -60,9 +60,9 @@ func TestTLS(t *testing.T) { func testTLSLoadConfig(t *testing.T) { var err error - tlsCfgPath = path.Join(*dataDir, "conf", "samples", tlsConfDIR) - if *encoding == utils.MetaGOB { - tlsCfgPath = path.Join(*dataDir, "conf", "samples", tlsConfDIR+"_gob") + tlsCfgPath = path.Join(dataDir, "conf", "samples", tlsConfDIR) + if encoding == utils.MetaGOB { + tlsCfgPath = path.Join(dataDir, "conf", "samples", tlsConfDIR+"_gob") } if tlsCfg, err = config.NewCGRConfigFromPath(tlsCfgPath); err != nil { t.Error(err) diff --git a/general_tests/tp_it_test.go b/general_tests/tp_it_test.go index b77ec6fd8..6316ace29 100644 --- a/general_tests/tp_it_test.go +++ b/general_tests/tp_it_test.go @@ -67,14 +67,14 @@ func TestTp(t *testing.T) { } } func testTpInitCfg(t *testing.T) { - tpCfgPath = path.Join(*dataDir, "conf", "samples", "tutmysql") + tpCfgPath = path.Join(dataDir, "conf", "samples", "tutmysql") // Init config first var err error tpCfg, err = config.NewCGRConfigFromPath(tpCfgPath) if err != nil { t.Error(err) } - tpCfg.DataFolderPath = *dataDir // Share DataFolderPath through config towards StoreDb for Flush() + tpCfg.DataFolderPath = dataDir // Share DataFolderPath through config towards StoreDb for Flush() config.SetCgrConfig(tpCfg) } @@ -110,11 +110,11 @@ func testTpRpcConn(t *testing.T) { // Load the tariff plan, creating accounts and their balances func testTpLoadTariffPlanFromFolder(t *testing.T) { - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "testtp")} if err := tpRPC.Call(utils.ApierV2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil { t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups + time.Sleep(time.Duration(waitRater) * time.Millisecond) // Give time for scheduler to execute topups } func testTpBalanceCounter(t *testing.T) { diff --git a/general_tests/tut_smgeneric_it_test.go b/general_tests/tut_smgeneric_it_test.go index b0396a111..40449ac3c 100644 --- a/general_tests/tut_smgeneric_it_test.go +++ b/general_tests/tut_smgeneric_it_test.go @@ -58,14 +58,14 @@ func TestTutSMG(t *testing.T) { } func testTutSMGInitCfg(t *testing.T) { - tutSMGCfgPath = path.Join(*dataDir, "conf", "samples", "smgeneric") + tutSMGCfgPath = path.Join(dataDir, "conf", "samples", "smgeneric") // Init config first var err error tutSMGCfg, err = config.NewCGRConfigFromPath(tutSMGCfgPath) if err != nil { t.Error(err) } - tutSMGCfg.DataFolderPath = *dataDir // Share DataFolderPath through config towards StoreDb for Flush() + tutSMGCfg.DataFolderPath = dataDir // Share DataFolderPath through config towards StoreDb for Flush() config.SetCgrConfig(tutSMGCfg) } @@ -85,7 +85,7 @@ func testTutSMGResetStorDb(t *testing.T) { // Start CGR Engine func testTutSMGStartEngine(t *testing.T) { - if _, err := engine.StopStartEngine(tutSMGCfgPath, *waitRater); err != nil { + if _, err := engine.StopStartEngine(tutSMGCfgPath, waitRater); err != nil { t.Fatal(err) } } @@ -101,11 +101,11 @@ func testTutSMGRpcConn(t *testing.T) { // Load the tariff plan, creating accounts and their balances func testTutSMGLoadTariffPlanFromFolder(t *testing.T) { - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "oldtutorial")} if err := tutSMGRpc.Call(utils.ApierV2LoadTariffPlanFromFolder, attrs, &smgLoadInst); err != nil { t.Error(err) } - time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups + time.Sleep(time.Duration(waitRater) * time.Millisecond) // Give time for scheduler to execute topups } // Check loaded stats diff --git a/general_tests/tutorial2_it_test.go b/general_tests/tutorial2_it_test.go index cdd465c26..f1d8408a8 100644 --- a/general_tests/tutorial2_it_test.go +++ b/general_tests/tutorial2_it_test.go @@ -69,9 +69,9 @@ func TestTutorial2Mongo(t *testing.T) { func testTutLoadConfig(t *testing.T) { var err error - tutCfgPath = path.Join(*dataDir, "conf", "samples", tutCfgDir) - if *encoding == utils.MetaGOB { - tutCfgPath = path.Join(*dataDir, "conf", "samples", tutCfgDir+"_gob") + tutCfgPath = path.Join(dataDir, "conf", "samples", tutCfgDir) + if encoding == utils.MetaGOB { + tutCfgPath = path.Join(dataDir, "conf", "samples", tutCfgDir+"_gob") } if tutCfg, err = config.NewCGRConfigFromPath(tutCfgPath); err != nil { t.Error(err) @@ -104,7 +104,7 @@ func testTutRpcConn(t *testing.T) { func testTutFromFolder(t *testing.T) { var reply string attrs := &utils.AttrLoadTpFromFolder{ - FolderPath: path.Join(*dataDir, "tariffplans", "tutorial2")} + FolderPath: path.Join(dataDir, "tariffplans", "tutorial2")} if err := tutRpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) diff --git a/general_tests/tutorial_it_test.go b/general_tests/tutorial_it_test.go index 000639f73..b6556c0c4 100644 --- a/general_tests/tutorial_it_test.go +++ b/general_tests/tutorial_it_test.go @@ -79,7 +79,7 @@ func TestTutorialMySQL(t *testing.T) { func testTutorialLoadConfig(t *testing.T) { var err error - tutorialCfgPath = path.Join(*dataDir, "conf", "samples", tutorialConfDIR) + tutorialCfgPath = path.Join(dataDir, "conf", "samples", tutorialConfDIR) if tutorialCfg, err = config.NewCGRConfigFromPath(tutorialCfgPath); err != nil { t.Error(err) } @@ -116,7 +116,7 @@ func testTutorialRpcConn(t *testing.T) { func testTutorialFromFolder(t *testing.T) { var reply string - attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")} + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(dataDir, "tariffplans", "tutorial")} if err := tutorialRpc.Call(utils.ApierV1LoadTariffPlanFromFolder, attrs, &reply); err != nil { t.Error(err) }