Send separator for RSRParser as parameter in config

This commit is contained in:
TeoV
2018-11-23 09:01:17 -05:00
committed by Dan Christian Bogos
parent d8977ffeba
commit 26cea43e4f
22 changed files with 86 additions and 113 deletions

View File

@@ -113,17 +113,14 @@ func (ar *AgentRequest) AsNavigableMap(tplFlds []*config.FCTemplate) (
nM = config.NewNavigableMap(nil)
for _, tplFld := range tplFlds {
utils.Logger.Debug(fmt.Sprintf("===Teo=== %+v", utils.ToJSON(tplFlds)))
if pass, err := ar.filterS.Pass(ar.tenant,
tplFld.Filters, ar); err != nil {
return nil, err
} else if !pass {
continue
}
utils.Logger.Debug(fmt.Sprintf("===Teo=== TEST"))
out, err := ar.ParseField(tplFld)
if err != nil {
utils.Logger.Debug(fmt.Sprintf("===Teo=== err: %+v, out: %+v", err, out))
return nil, err
}
var valSet []*config.NMItem
@@ -174,7 +171,6 @@ func (aReq *AgentRequest) ParseField(
out, err = cfgFld.Value.ParseValue(utils.EmptyString)
isString = true
case utils.MetaVariable, utils.META_COMPOSED:
utils.Logger.Debug(fmt.Sprintf("===Teo=== cfgFld: %+v", utils.ToJSON(cfgFld)))
out, err = cfgFld.Value.ParseDataProvider(aReq, utils.NestingSep)
isString = true
case utils.META_USAGE_DIFFERENCE:

View File

@@ -55,10 +55,10 @@ var sTestsDiam = []func(t *testing.T){
testDiamItApierRpcConn,
testDiamItTPFromFolder,
testDiamItDryRun,
testDiamItCCRInit,
testDiamItCCRUpdate,
testDiamItCCRTerminate,
testDiamItCCRSMS,
// testDiamItCCRInit,
// testDiamItCCRUpdate,
// testDiamItCCRTerminate,
// testDiamItCCRSMS,
testDiamItKillEngine,
}

View File

@@ -210,11 +210,8 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.DARequestProcessor,
agReq *AgentRequest) (processed bool, err error) {
if pass, err := da.filterS.Pass(agReq.tenant,
reqProcessor.Filters, agReq); err != nil || !pass {
utils.Logger.Debug(fmt.Sprintf("===Teo=== reqProcessor : %+v", utils.ToJSON(reqProcessor)))
utils.Logger.Debug(fmt.Sprintf("===Teo=== err from filter : %+v", err))
return pass, err
}
utils.Logger.Debug(fmt.Sprintf("===Teo=== ReqProc after pass: %+v", utils.ToJSON(reqProcessor)))
if agReq.CGRRequest, err = agReq.AsNavigableMap(reqProcessor.RequestFields); err != nil {
return
}

View File

@@ -291,7 +291,6 @@ func (dP *diameterDP) AsNavigableMap([]*config.FCTemplate) (
// FieldAsString is part of engine.DataProvider interface
func (dP *diameterDP) FieldAsString(fldPath []string) (data string, err error) {
utils.Logger.Debug(fmt.Sprintf("===Teo=== FieldAsString: %+v", utils.ToJSON(fldPath)))
var valIface interface{}
valIface, err = dP.FieldAsInterface(fldPath)
if err != nil {

View File

@@ -52,7 +52,7 @@ type CdrcCfg struct {
CacheDumpFields []*FCTemplate
}
func (self *CdrcCfg) loadFromJsonCfg(jsnCfg *CdrcJsonCfg) error {
func (self *CdrcCfg) loadFromJsonCfg(jsnCfg *CdrcJsonCfg, separator string) error {
if jsnCfg == nil {
return nil
}
@@ -114,10 +114,6 @@ func (self *CdrcCfg) loadFromJsonCfg(jsnCfg *CdrcJsonCfg) error {
}
}
if jsnCfg.Tenant != nil {
separator := utils.INFIELD_SEP
if cgrCfg != nil && cgrCfg.GeneralCfg() != nil {
separator = cgrCfg.GeneralCfg().RsrSepatarot
}
if self.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, true, separator); err != nil {
return err
}
@@ -134,22 +130,22 @@ func (self *CdrcCfg) loadFromJsonCfg(jsnCfg *CdrcJsonCfg) error {
self.PartialCacheExpiryAction = *jsnCfg.Partial_cache_expiry_action
}
if jsnCfg.Header_fields != nil {
if self.HeaderFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Header_fields); err != nil {
if self.HeaderFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Header_fields, separator); err != nil {
return err
}
}
if jsnCfg.Content_fields != nil {
if self.ContentFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Content_fields); err != nil {
if self.ContentFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Content_fields, separator); err != nil {
return err
}
}
if jsnCfg.Trailer_fields != nil {
if self.TrailerFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Trailer_fields); err != nil {
if self.TrailerFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Trailer_fields, separator); err != nil {
return err
}
}
if jsnCfg.Cache_dump_fields != nil {
if self.CacheDumpFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Cache_dump_fields); err != nil {
if self.CacheDumpFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Cache_dump_fields, separator); err != nil {
return err
}
}

View File

@@ -64,12 +64,12 @@ var cdrcCfg = CdrcCfg{
func TestCdrcCfgloadFromJsonCfg(t *testing.T) {
var cdrccfg, expected CdrcCfg
if err := cdrccfg.loadFromJsonCfg(nil); err != nil {
if err := cdrccfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(cdrccfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, cdrccfg)
}
if err := cdrccfg.loadFromJsonCfg(new(CdrcJsonCfg)); err != nil {
if err := cdrccfg.loadFromJsonCfg(new(CdrcJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(cdrccfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, cdrccfg)
@@ -115,7 +115,7 @@ func TestCdrcCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnCdrcCfg, err := jsnCfg.CdrcJsonCfg(); err != nil {
t.Error(err)
} else if err = cdrccfg.loadFromJsonCfg(jsnCdrcCfg[0]); err != nil {
} else if err = cdrccfg.loadFromJsonCfg(jsnCdrcCfg[0], utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, cdrccfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(cdrccfg))

View File

@@ -38,7 +38,7 @@ type CdreCfg struct {
TrailerFields []*FCTemplate
}
func (self *CdreCfg) loadFromJsonCfg(jsnCfg *CdreJsonCfg) (err error) {
func (self *CdreCfg) loadFromJsonCfg(jsnCfg *CdreJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -79,17 +79,17 @@ func (self *CdreCfg) loadFromJsonCfg(jsnCfg *CdreJsonCfg) (err error) {
self.CostMultiplyFactor = *jsnCfg.Cost_multiply_factor
}
if jsnCfg.Header_fields != nil {
if self.HeaderFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Header_fields); err != nil {
if self.HeaderFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Header_fields, separator); err != nil {
return err
}
}
if jsnCfg.Content_fields != nil {
if self.ContentFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Content_fields); err != nil {
if self.ContentFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Content_fields, separator); err != nil {
return err
}
}
if jsnCfg.Trailer_fields != nil {
if self.TrailerFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Trailer_fields); err != nil {
if self.TrailerFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Trailer_fields, separator); err != nil {
return err
}
}

View File

@@ -99,12 +99,12 @@ func TestCdreCfgClone(t *testing.T) {
func TestCdreCfgloadFromJsonCfg(t *testing.T) {
var lstcfg, expected CdreCfg
if err := lstcfg.loadFromJsonCfg(nil); err != nil {
if err := lstcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(lstcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, lstcfg)
}
if err := lstcfg.loadFromJsonCfg(new(CdreJsonCfg)); err != nil {
if err := lstcfg.loadFromJsonCfg(new(CdreJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(lstcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, lstcfg)
@@ -156,7 +156,7 @@ func TestCdreCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnCdreCfg, err := jsnCfg.CdreJsonCfgs(); err != nil {
t.Error(err)
} else if err = lstcfg.loadFromJsonCfg(jsnCdreCfg["*default"]); err != nil {
} else if err = lstcfg.loadFromJsonCfg(jsnCdreCfg["*default"], utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, lstcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(lstcfg))

View File

@@ -839,7 +839,7 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
if err != nil {
return err
}
if err := self.diameterAgentCfg.loadFromJsonCfg(jsnDACfg); err != nil {
if err := self.diameterAgentCfg.loadFromJsonCfg(jsnDACfg, self.generalCfg.RsrSepatarot); err != nil {
return err
}
@@ -847,7 +847,7 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
if err != nil {
return err
}
if err := self.radiusAgentCfg.loadFromJsonCfg(jsnRACfg); err != nil {
if err := self.radiusAgentCfg.loadFromJsonCfg(jsnRACfg, self.generalCfg.RsrSepatarot); err != nil {
return err
}
@@ -855,7 +855,7 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
if err != nil {
return err
}
if err := self.httpAgentCfg.loadFromJsonCfg(jsnHttpAgntCfg); err != nil {
if err := self.httpAgentCfg.loadFromJsonCfg(jsnHttpAgntCfg, self.generalCfg.RsrSepatarot); err != nil {
return err
}
@@ -976,7 +976,7 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
self.CdreProfiles[profileName] = self.dfltCdreProfile.Clone() // Clone default so we do not inherit pointers
}
}
if err = self.CdreProfiles[profileName].loadFromJsonCfg(jsnCdre1Cfg); err != nil { // Update the existing profile with content from json config
if err = self.CdreProfiles[profileName].loadFromJsonCfg(jsnCdre1Cfg, self.generalCfg.RsrSepatarot); err != nil { // Update the existing profile with content from json config
return err
}
}
@@ -986,7 +986,7 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
// self.loaderCfg = make([]*LoaderSCfg, len(jsnLoaderCfg))
for _, profile := range jsnLoaderCfg {
loadSCfgp := NewDfltLoaderSCfg()
loadSCfgp.loadFromJsonCfg(profile)
loadSCfgp.loadFromJsonCfg(profile, self.generalCfg.RsrSepatarot)
self.loaderCfg = append(self.loaderCfg, loadSCfgp) // use apend so the loaderS profile to be loaded from multiple files
}
}
@@ -1017,7 +1017,7 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
if cdrcInstCfg == nil {
cdrcInstCfg = self.dfltCdrcProfile.Clone()
}
if err := cdrcInstCfg.loadFromJsonCfg(jsnCrc1Cfg); err != nil {
if err := cdrcInstCfg.loadFromJsonCfg(jsnCrc1Cfg, self.generalCfg.RsrSepatarot); err != nil {
return err
}
if cdrcInstCfg.CdrInDir == "" {

View File

@@ -36,7 +36,7 @@ type DiameterAgentCfg struct {
RequestProcessors []*DARequestProcessor
}
func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg) (err error) {
func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -76,7 +76,7 @@ func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg) (err e
da.Templates = make(map[string][]*FCTemplate)
}
for k, jsnTpls := range jsnCfg.Templates {
if da.Templates[k], err = FCTemplatesFromFCTemplatesJsonCfg(jsnTpls); err != nil {
if da.Templates[k], err = FCTemplatesFromFCTemplatesJsonCfg(jsnTpls, separator); err != nil {
return
}
}
@@ -92,7 +92,7 @@ func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg) (err e
break
}
}
if err := rp.loadFromJsonCfg(reqProcJsn); err != nil {
if err := rp.loadFromJsonCfg(reqProcJsn, separator); err != nil {
return nil
}
if !haveID {
@@ -115,7 +115,7 @@ type DARequestProcessor struct {
ReplyFields []*FCTemplate
}
func (dap *DARequestProcessor) loadFromJsonCfg(jsnCfg *DARequestProcessorJsnCfg) (err error) {
func (dap *DARequestProcessor) loadFromJsonCfg(jsnCfg *DARequestProcessorJsnCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -123,10 +123,6 @@ func (dap *DARequestProcessor) loadFromJsonCfg(jsnCfg *DARequestProcessorJsnCfg)
dap.ID = *jsnCfg.Id
}
if jsnCfg.Tenant != nil {
separator := utils.INFIELD_SEP
if cgrCfg != nil && cgrCfg.GeneralCfg() != nil {
separator = cgrCfg.GeneralCfg().RsrSepatarot
}
if dap.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, true, separator); err != nil {
return
}
@@ -147,12 +143,12 @@ func (dap *DARequestProcessor) loadFromJsonCfg(jsnCfg *DARequestProcessorJsnCfg)
dap.ContinueOnSuccess = *jsnCfg.Continue_on_success
}
if jsnCfg.Request_fields != nil {
if dap.RequestFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Request_fields); err != nil {
if dap.RequestFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Request_fields, separator); err != nil {
return
}
}
if jsnCfg.Reply_fields != nil {
if dap.ReplyFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Reply_fields); err != nil {
if dap.ReplyFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Reply_fields, separator); err != nil {
return
}
}

View File

@@ -27,12 +27,12 @@ import (
func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
var dacfg, expected DiameterAgentCfg
if err := dacfg.loadFromJsonCfg(nil); err != nil {
if err := dacfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dacfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dacfg)
}
if err := dacfg.loadFromJsonCfg(new(DiameterAgentJsonCfg)); err != nil {
if err := dacfg.loadFromJsonCfg(new(DiameterAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dacfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dacfg)
@@ -67,7 +67,7 @@ func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnDaCfg, err := jsnCfg.DiameterAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = dacfg.loadFromJsonCfg(jsnDaCfg); err != nil {
} else if err = dacfg.loadFromJsonCfg(jsnDaCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, dacfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(dacfg))
@@ -76,12 +76,12 @@ func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
func TestDARequestProcessorloadFromJsonCfg(t *testing.T) {
var dareq, expected DARequestProcessor
if err := dareq.loadFromJsonCfg(nil); err != nil {
if err := dareq.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dareq, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dareq)
}
if err := dareq.loadFromJsonCfg(new(DARequestProcessorJsnCfg)); err != nil {
if err := dareq.loadFromJsonCfg(new(DARequestProcessorJsnCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dareq, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dareq)
@@ -102,7 +102,7 @@ func TestDARequestProcessorloadFromJsonCfg(t *testing.T) {
Timezone: "Local",
ContinueOnSuccess: true,
}
if err = dareq.loadFromJsonCfg(json); err != nil {
if err = dareq.loadFromJsonCfg(json, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, dareq) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(dareq))

View File

@@ -24,7 +24,7 @@ import (
"github.com/cgrates/cgrates/utils"
)
func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg) (*FCTemplate, error) {
func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg, separator string) (*FCTemplate, error) {
fcTmp := new(FCTemplate)
var err error
if jsnCfg.Tag != nil {
@@ -43,10 +43,6 @@ func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg) (*FCTemplate,
}
}
if jsnCfg.Value != nil {
separator := utils.INFIELD_SEP
if cgrCfg != nil && cgrCfg.GeneralCfg() != nil {
separator = cgrCfg.GeneralCfg().RsrSepatarot
}
if fcTmp.Value, err = NewRSRParsers(*jsnCfg.Value, true, separator); err != nil {
return nil, err
}
@@ -122,11 +118,11 @@ type FCTemplate struct {
MaskLen int
}
func FCTemplatesFromFCTemplatesJsonCfg(jsnCfgFlds []*FcTemplateJsonCfg) ([]*FCTemplate, error) {
func FCTemplatesFromFCTemplatesJsonCfg(jsnCfgFlds []*FcTemplateJsonCfg, separator string) ([]*FCTemplate, error) {
retFields := make([]*FCTemplate, len(jsnCfgFlds))
var err error
for i, jsnFld := range jsnCfgFlds {
if retFields[i], err = NewFCTemplateFromFCTemplateJsonCfg(jsnFld); err != nil {
if retFields[i], err = NewFCTemplateFromFCTemplateJsonCfg(jsnFld, separator); err != nil {
return nil, err
}
}

View File

@@ -39,7 +39,7 @@ func TestNewFCTemplateFromFCTemplateJsonCfg(t *testing.T) {
Filters: []string{"Filter1", "Filter2"},
Value: NewRSRParsersMustCompile("cgrates.org", true, utils.INFIELD_SEP),
}
if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg); err != nil {
if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
@@ -79,7 +79,7 @@ func TestFCTemplatesFromFCTemplatesJsonCfg(t *testing.T) {
Value: NewRSRParsersMustCompile("SampleValue", true, utils.INFIELD_SEP),
},
}
if rcv, err := FCTemplatesFromFCTemplatesJsonCfg(jsnCfgs); err != nil {
if rcv, err := FCTemplatesFromFCTemplatesJsonCfg(jsnCfgs, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))

View File

@@ -24,7 +24,7 @@ import (
type HttpAgentCfgs []*HttpAgentCfg
func (hcfgs *HttpAgentCfgs) loadFromJsonCfg(jsnHttpAgntCfg *[]*HttpAgentJsonCfg) (err error) {
func (hcfgs *HttpAgentCfgs) loadFromJsonCfg(jsnHttpAgntCfg *[]*HttpAgentJsonCfg, separator string) (err error) {
if jsnHttpAgntCfg == nil {
return nil
}
@@ -41,7 +41,7 @@ func (hcfgs *HttpAgentCfgs) loadFromJsonCfg(jsnHttpAgntCfg *[]*HttpAgentJsonCfg)
}
}
if err := hac.loadFromJsonCfg(jsnCfg); err != nil {
if err := hac.loadFromJsonCfg(jsnCfg, separator); err != nil {
return err
}
if !haveID {
@@ -61,7 +61,7 @@ type HttpAgentCfg struct {
RequestProcessors []*HttpAgntProcCfg
}
func (ca *HttpAgentCfg) appendHttpAgntProcCfgs(hps *[]*HttpAgentProcessorJsnCfg) (err error) {
func (ca *HttpAgentCfg) appendHttpAgntProcCfgs(hps *[]*HttpAgentProcessorJsnCfg, separator string) (err error) {
if hps == nil {
return
}
@@ -77,7 +77,7 @@ func (ca *HttpAgentCfg) appendHttpAgntProcCfgs(hps *[]*HttpAgentProcessorJsnCfg)
}
}
}
if err := rp.loadFromJsonCfg(reqProcJsn); err != nil {
if err := rp.loadFromJsonCfg(reqProcJsn, separator); err != nil {
return err
}
if !haveID {
@@ -87,7 +87,7 @@ func (ca *HttpAgentCfg) appendHttpAgntProcCfgs(hps *[]*HttpAgentProcessorJsnCfg)
return nil
}
func (ca *HttpAgentCfg) loadFromJsonCfg(jsnCfg *HttpAgentJsonCfg) (err error) {
func (ca *HttpAgentCfg) loadFromJsonCfg(jsnCfg *HttpAgentJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -110,7 +110,7 @@ func (ca *HttpAgentCfg) loadFromJsonCfg(jsnCfg *HttpAgentJsonCfg) (err error) {
if jsnCfg.Reply_payload != nil {
ca.ReplyPayload = *jsnCfg.Reply_payload
}
if err = ca.appendHttpAgntProcCfgs(jsnCfg.Request_processors); err != nil {
if err = ca.appendHttpAgntProcCfgs(jsnCfg.Request_processors, separator); err != nil {
return err
}
return nil
@@ -127,7 +127,7 @@ type HttpAgntProcCfg struct {
ReplyFields []*FCTemplate
}
func (ha *HttpAgntProcCfg) loadFromJsonCfg(jsnCfg *HttpAgentProcessorJsnCfg) (err error) {
func (ha *HttpAgntProcCfg) loadFromJsonCfg(jsnCfg *HttpAgentProcessorJsnCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -141,7 +141,7 @@ func (ha *HttpAgntProcCfg) loadFromJsonCfg(jsnCfg *HttpAgentProcessorJsnCfg) (er
}
}
if jsnCfg.Tenant != nil {
if ha.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, true, CgrConfig().generalCfg.RsrSepatarot); err != nil {
if ha.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, true, separator); err != nil {
return err
}
}
@@ -155,12 +155,12 @@ func (ha *HttpAgntProcCfg) loadFromJsonCfg(jsnCfg *HttpAgentProcessorJsnCfg) (er
ha.ContinueOnSuccess = *jsnCfg.Continue_on_success
}
if jsnCfg.Request_fields != nil {
if ha.RequestFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Request_fields); err != nil {
if ha.RequestFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Request_fields, separator); err != nil {
return
}
}
if jsnCfg.Reply_fields != nil {
if ha.ReplyFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Reply_fields); err != nil {
if ha.ReplyFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Reply_fields, separator); err != nil {
return
}
}

View File

@@ -27,12 +27,12 @@ import (
func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) {
var httpcfg, expected HttpAgentCfgs
if err := httpcfg.loadFromJsonCfg(nil); err != nil {
if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
}
if err := httpcfg.loadFromJsonCfg(new([]*HttpAgentJsonCfg)); err != nil {
if err := httpcfg.loadFromJsonCfg(new([]*HttpAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
@@ -89,7 +89,7 @@ func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnhttpCfg, err := jsnCfg.HttpAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg); err != nil {
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, httpcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg))
@@ -200,7 +200,7 @@ func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnhttpCfg, err := jsnCfg.HttpAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg); err != nil {
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, httpcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg))
@@ -209,12 +209,12 @@ func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) {
func TestHttpAgentCfgloadFromJsonCfg(t *testing.T) {
var httpcfg, expected HttpAgentCfg
if err := httpcfg.loadFromJsonCfg(nil); err != nil {
if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
}
if err := httpcfg.loadFromJsonCfg(new(HttpAgentJsonCfg)); err != nil {
if err := httpcfg.loadFromJsonCfg(new(HttpAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
@@ -253,7 +253,7 @@ func TestHttpAgentCfgloadFromJsonCfg(t *testing.T) {
}},
}
if err = httpcfg.loadFromJsonCfg(jsnhttpCfg); err != nil {
if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, httpcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg))
@@ -345,7 +345,7 @@ func TestHttpAgentCfgappendHttpAgntProcCfgs(t *testing.T) {
}},
}
if err = initial.appendHttpAgntProcCfgs(proceses); err != nil {
if err = initial.appendHttpAgntProcCfgs(proceses, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, initial) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(initial))
@@ -354,12 +354,12 @@ func TestHttpAgentCfgappendHttpAgntProcCfgs(t *testing.T) {
func TestHttpAgntProcCfgloadFromJsonCfg(t *testing.T) {
var httpcfg, expected HttpAgntProcCfg
if err := httpcfg.loadFromJsonCfg(nil); err != nil {
if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
}
if err := httpcfg.loadFromJsonCfg(new(HttpAgentProcessorJsnCfg)); err != nil {
if err := httpcfg.loadFromJsonCfg(new(HttpAgentProcessorJsnCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
@@ -394,7 +394,7 @@ func TestHttpAgntProcCfgloadFromJsonCfg(t *testing.T) {
}},
}
if err = httpcfg.loadFromJsonCfg(jsnhttpCfg); err != nil {
if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, httpcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg))

View File

@@ -20,8 +20,6 @@ package config
import (
"time"
"github.com/cgrates/cgrates/utils"
)
func NewDfltLoaderSCfg() *LoaderSCfg {
@@ -60,7 +58,7 @@ type LoaderDataType struct { //rename to LoaderDataType
Fields []*FCTemplate
}
func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType) (err error) {
func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -71,14 +69,14 @@ func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType) (err err
self.Filename = *jsnCfg.File_name
}
if jsnCfg.Fields != nil {
if self.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields); err != nil {
if self.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields, separator); err != nil {
return
}
}
return nil
}
func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg) (err error) {
func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -89,10 +87,6 @@ func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg) (err error) {
self.Enabled = *jsnCfg.Enabled
}
if jsnCfg.Tenant != nil {
separator := utils.INFIELD_SEP
if cgrCfg != nil && cgrCfg.GeneralCfg() != nil {
separator = cgrCfg.GeneralCfg().RsrSepatarot
}
if self.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, true, separator); err != nil {
return err
}
@@ -127,7 +121,7 @@ func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg) (err error) {
data := make([]*LoaderDataType, len(*jsnCfg.Data))
for idx, jsnLoCfg := range *jsnCfg.Data {
data[idx] = NewDfltLoaderDataTypeConfig()
data[idx].loadFromJsonCfg(jsnLoCfg)
data[idx].loadFromJsonCfg(jsnLoCfg, separator)
}
self.Data = data
}

View File

@@ -27,12 +27,12 @@ import (
func TestLoaderSCfgloadFromJsonCfg(t *testing.T) {
var loadscfg, expected LoaderSCfg
if err := loadscfg.loadFromJsonCfg(nil); err != nil {
if err := loadscfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(loadscfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, loadscfg)
}
if err := loadscfg.loadFromJsonCfg(new(LoaderJsonCfg)); err != nil {
if err := loadscfg.loadFromJsonCfg(new(LoaderJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(loadscfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, loadscfg)
@@ -99,7 +99,7 @@ func TestLoaderSCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnLoadersCfg, err := jsnCfg.LoaderJsonCfg(); err != nil {
t.Error(err)
} else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0]); err != nil {
} else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, loadscfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(loadscfg))

View File

@@ -33,7 +33,7 @@ type RadiusAgentCfg struct {
RequestProcessors []*RARequestProcessor
}
func (self *RadiusAgentCfg) loadFromJsonCfg(jsnCfg *RadiusAgentJsonCfg) (err error) {
func (self *RadiusAgentCfg) loadFromJsonCfg(jsnCfg *RadiusAgentJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -83,7 +83,7 @@ func (self *RadiusAgentCfg) loadFromJsonCfg(jsnCfg *RadiusAgentJsonCfg) (err err
break
}
}
if err := rp.loadFromJsonCfg(reqProcJsn); err != nil {
if err := rp.loadFromJsonCfg(reqProcJsn, separator); err != nil {
return nil
}
if !haveID {
@@ -106,7 +106,7 @@ type RARequestProcessor struct {
ReplyFields []*FCTemplate
}
func (self *RARequestProcessor) loadFromJsonCfg(jsnCfg *RAReqProcessorJsnCfg) (err error) {
func (self *RARequestProcessor) loadFromJsonCfg(jsnCfg *RAReqProcessorJsnCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -126,7 +126,7 @@ func (self *RARequestProcessor) loadFromJsonCfg(jsnCfg *RAReqProcessorJsnCfg) (e
self.ContinueOnSuccess = *jsnCfg.Continue_on_success
}
if jsnCfg.Tenant != nil {
if self.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, true, CgrConfig().generalCfg.RsrSepatarot); err != nil {
if self.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, true, separator); err != nil {
return err
}
}
@@ -134,12 +134,12 @@ func (self *RARequestProcessor) loadFromJsonCfg(jsnCfg *RAReqProcessorJsnCfg) (e
self.Timezone = *jsnCfg.Timezone
}
if jsnCfg.Request_fields != nil {
if self.RequestFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Request_fields); err != nil {
if self.RequestFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Request_fields, separator); err != nil {
return
}
}
if jsnCfg.Reply_fields != nil {
if self.ReplyFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Reply_fields); err != nil {
if self.ReplyFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Reply_fields, separator); err != nil {
return
}
}

View File

@@ -27,12 +27,12 @@ import (
func TestRadiusAgentCfgloadFromJsonCfg(t *testing.T) {
var racfg, expected RadiusAgentCfg
if err := racfg.loadFromJsonCfg(nil); err != nil {
if err := racfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(racfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, racfg)
}
if err := racfg.loadFromJsonCfg(new(RadiusAgentJsonCfg)); err != nil {
if err := racfg.loadFromJsonCfg(new(RadiusAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(racfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, racfg)
@@ -67,7 +67,7 @@ func TestRadiusAgentCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnRaCfg, err := jsnCfg.RadiusAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = racfg.loadFromJsonCfg(jsnRaCfg); err != nil {
} else if err = racfg.loadFromJsonCfg(jsnRaCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, racfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(racfg))
@@ -76,12 +76,12 @@ func TestRadiusAgentCfgloadFromJsonCfg(t *testing.T) {
func TestRARequestProcessorloadFromJsonCfg(t *testing.T) {
var rareq, expected RARequestProcessor
if err := rareq.loadFromJsonCfg(nil); err != nil {
if err := rareq.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rareq, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, rareq)
}
if err := rareq.loadFromJsonCfg(new(RAReqProcessorJsnCfg)); err != nil {
if err := rareq.loadFromJsonCfg(new(RAReqProcessorJsnCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rareq, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, rareq)
@@ -102,7 +102,7 @@ func TestRARequestProcessorloadFromJsonCfg(t *testing.T) {
Timezone: "Local",
ContinueOnSuccess: true,
}
if err = rareq.loadFromJsonCfg(json); err != nil {
if err = rareq.loadFromJsonCfg(json, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rareq) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(rareq))

View File

@@ -92,7 +92,6 @@ func (prsrs RSRParsers) ParseEvent(ev map[string]interface{}) (out string, err e
}
func (prsrs RSRParsers) ParseDataProvider(dP DataProvider, separator string) (out string, err error) {
utils.Logger.Debug(fmt.Sprintf("===Teo=== ParseDataProvider: %+v", utils.ToJSON(prsrs)))
for _, prsr := range prsrs {
if outPrsr, err := prsr.ParseDataProvider(dP, separator); err != nil {
return "", err

View File

@@ -15,7 +15,7 @@
{"tag": "OptionalField", "field_id":"OptionalField", "type":"*composed",
"value":"~*req.Inexistent", "mandatory":false},
{"tag": "OriginID", "field_id": "OriginID", "type": "*composed",
"value": "~*req.Session-Id", "mandatory": true},
"value": "~*req.Session-Id:s/(\\d+);(\\d+)$/$1;$2/", "mandatory": true},
{"tag": "RequestType", "field_id": "RequestType",
"type": "*constant", "value": "*prepaid"},
{"tag": "SetupTime", "field_id": "SetupTime", "type": "*composed",

View File

@@ -254,13 +254,13 @@ func TestWriteCdr(t *testing.T) {
var err error
wrBuf := &bytes.Buffer{}
cfg, _ := config.NewDefaultCGRConfig()
if hdrCfgFlds, err = config.FCTemplatesFromFCTemplatesJsonCfg(hdrJsnCfgFlds); err != nil {
if hdrCfgFlds, err = config.FCTemplatesFromFCTemplatesJsonCfg(hdrJsnCfgFlds, utils.INFIELD_SEP); err != nil {
t.Error(err)
}
if contentCfgFlds, err = config.FCTemplatesFromFCTemplatesJsonCfg(contentJsnCfgFlds); err != nil {
if contentCfgFlds, err = config.FCTemplatesFromFCTemplatesJsonCfg(contentJsnCfgFlds, utils.INFIELD_SEP); err != nil {
t.Error(err)
}
if trailerCfgFlds, err = config.FCTemplatesFromFCTemplatesJsonCfg(trailerJsnCfgFlds); err != nil {
if trailerCfgFlds, err = config.FCTemplatesFromFCTemplatesJsonCfg(trailerJsnCfgFlds, utils.INFIELD_SEP); err != nil {
t.Error(err)
}
cdreCfg := &config.CdreCfg{