diff --git a/config/config_defaults.go b/config/config_defaults.go index a1f7db1c7..f1496ce2f 100755 --- a/config/config_defaults.go +++ b/config/config_defaults.go @@ -407,22 +407,7 @@ const CGRATES_CFG_JSON = ` "synchronous": false, // block processing until export has a result "attempts": 1, // export attempts "field_separator": ",", // separator used in case of csv files - "fields":[ // import fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value - {"tag": "CGRID", "path": "*exp.CGRID", "type": "*variable", "value": "~*req.CGRID"}, - {"tag": "RunID", "path": "*exp.RunID", "type": "*variable", "value": "~*req.RunID"}, - {"tag": "ToR", "path": "*exp.ToR", "type": "*variable", "value": "~*req.ToR"}, - {"tag": "OriginID", "path": "*exp.OriginID", "type": "*variable", "value": "~*req.OriginID"}, - {"tag": "RequestType", "path": "*exp.RequestType", "type": "*variable", "value": "~*req.RequestType"}, - {"tag": "Tenant", "path": "*exp.Tenant", "type": "*variable", "value": "~*req.Tenant"}, - {"tag": "Category", "path": "*exp.Category", "type": "*variable", "value": "~*req.Category"}, - {"tag": "Account", "path": "*exp.Account", "type": "*variable", "value": "~*req.Account"}, - {"tag": "Subject", "path": "*exp.Subject", "type": "*variable", "value": "~*req.Subject"}, - {"tag": "Destination", "path": "*exp.Destination", "type": "*variable", "value": "~*req.Destination"}, - {"tag": "SetupTime", "path": "*exp.SetupTime", "type": "*variable", "value": "~*req.SetupTime", "layout": "2006-01-02T15:04:05Z07:00"}, - {"tag": "AnswerTime", "path": "*exp.AnswerTime", "type": "*variable", "value": "~*req.AnswerTime", "layout": "2006-01-02T15:04:05Z07:00"}, - {"tag": "Usage", "path": "*exp.Usage", "type": "*variable", "value": "~*req.Usage"}, - {"tag": "Cost", "path": "*exp.Cost", "type": "*variable", "value": "~*req.Cost{*round:4}"}, - ], + "fields":[], // import fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value }, ], }, diff --git a/config/config_json_test.go b/config/config_json_test.go index 8810771ad..5b8156f48 100755 --- a/config/config_json_test.go +++ b/config/config_json_test.go @@ -1762,94 +1762,6 @@ func TestDfEventReaderCfg(t *testing.T) { } func TestDfEventExporterCfg(t *testing.T) { - eContentFlds := []*FcTemplateJsonCfg{ - { - Tag: utils.StringPointer(utils.CGRID), - Path: utils.StringPointer("*exp.CGRID"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.CGRID), - }, - { - Tag: utils.StringPointer(utils.RunID), - Path: utils.StringPointer("*exp.RunID"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.RunID), - }, - { - Tag: utils.StringPointer(utils.ToR), - Path: utils.StringPointer("*exp.ToR"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.ToR), - }, - { - Tag: utils.StringPointer(utils.OriginID), - Path: utils.StringPointer("*exp.OriginID"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.OriginID), - }, - { - Tag: utils.StringPointer(utils.RequestType), - Path: utils.StringPointer("*exp.RequestType"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.RequestType), - }, - { - Tag: utils.StringPointer(utils.Tenant), - Path: utils.StringPointer("*exp.Tenant"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Tenant), - }, - { - Tag: utils.StringPointer(utils.Category), - Path: utils.StringPointer("*exp.Category"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Category), - }, - { - Tag: utils.StringPointer(utils.Account), - Path: utils.StringPointer("*exp.Account"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Account), - }, - { - Tag: utils.StringPointer(utils.Subject), - Path: utils.StringPointer("*exp.Subject"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Subject), - }, - { - Tag: utils.StringPointer(utils.Destination), - Path: utils.StringPointer("*exp.Destination"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Destination), - }, - { - Tag: utils.StringPointer(utils.SetupTime), - Path: utils.StringPointer("*exp.SetupTime"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.SetupTime), - Layout: utils.StringPointer("2006-01-02T15:04:05Z07:00"), - }, - { - Tag: utils.StringPointer(utils.AnswerTime), - Path: utils.StringPointer("*exp.AnswerTime"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.AnswerTime), - Layout: utils.StringPointer("2006-01-02T15:04:05Z07:00"), - }, - { - Tag: utils.StringPointer(utils.Usage), - Path: utils.StringPointer("*exp.Usage"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage), - }, - { - Tag: utils.StringPointer(utils.Cost), - Path: utils.StringPointer("*exp.Cost"), - Type: utils.StringPointer(utils.MetaVariable), - Value: utils.StringPointer(utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.COST + "{*round:4}"), - }, - } eCfg := &EEsJsonCfg{ Enabled: utils.BoolPointer(false), Attributes_conns: &[]string{}, @@ -1874,7 +1786,7 @@ func TestDfEventExporterCfg(t *testing.T) { Flags: &[]string{}, Synchronous: utils.BoolPointer(false), Attempts: utils.IntPointer(1), - Fields: &eContentFlds, + Fields: &[]*FcTemplateJsonCfg{}, Opts: make(map[string]interface{}), }, }, diff --git a/config/config_test.go b/config/config_test.go index 8a84eee86..f67277f70 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -1974,220 +1974,14 @@ func TestCgrCdfEventExporter(t *testing.T) { Filters: []string{}, AttributeSIDs: []string{}, Flags: utils.FlagsWithParams{}, - contentFields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, - Fields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, + Fields: []*FCTemplate{}, + contentFields: []*FCTemplate{}, headerFields: []*FCTemplate{}, trailerFields: []*FCTemplate{}, Opts: make(map[string]interface{}), }, }, } - for _, profile := range eCfg.Exporters { - for _, v := range profile.Fields { - v.ComputePath() - } - for _, v := range profile.contentFields { - v.ComputePath() - } - } if !reflect.DeepEqual(cgrCfg.eesCfg, eCfg) { t.Errorf("received: %+v,\n expecting: %+v", utils.ToJSON(cgrCfg.eesCfg), utils.ToJSON(eCfg)) } @@ -2246,225 +2040,21 @@ func TestCgrCfgEventReaderDefault(t *testing.T) { func TestCgrCfgEventExporterDefault(t *testing.T) { eCfg := &EventExporterCfg{ - ID: utils.MetaDefault, - Type: utils.META_NONE, - FieldSep: ",", - Tenant: nil, - ExportPath: "/var/spool/cgrates/ees", - Attempts: 1, - Timezone: utils.EmptyString, - Filters: nil, - Flags: utils.FlagsWithParams{}, - contentFields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, - Fields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, + ID: utils.MetaDefault, + Type: utils.META_NONE, + FieldSep: ",", + Tenant: nil, + ExportPath: "/var/spool/cgrates/ees", + Attempts: 1, + Timezone: utils.EmptyString, + Filters: nil, + Flags: utils.FlagsWithParams{}, + contentFields: []*FCTemplate{}, + Fields: []*FCTemplate{}, headerFields: []*FCTemplate{}, trailerFields: []*FCTemplate{}, Opts: make(map[string]interface{}), } - for _, v := range eCfg.Fields { - v.ComputePath() - } - for _, v := range eCfg.contentFields { - v.ComputePath() - } if !reflect.DeepEqual(cgrCfg.dfltEvExp, eCfg) { t.Errorf("received: %+v,\n expecting: %+v", utils.ToJSON(cgrCfg.dfltEvExp), utils.ToJSON(eCfg)) } diff --git a/config/eescfg_test.go b/config/eescfg_test.go index 10d124eda..0128c6cfe 100644 --- a/config/eescfg_test.go +++ b/config/eescfg_test.go @@ -87,206 +87,8 @@ func TestEESClone(t *testing.T) { Filters: nil, AttributeSIDs: nil, Flags: utils.FlagsWithParams{}, - Fields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, - contentFields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, + Fields: []*FCTemplate{}, + contentFields: []*FCTemplate{}, headerFields: []*FCTemplate{}, trailerFields: []*FCTemplate{}, Opts: make(map[string]interface{}), @@ -511,206 +313,8 @@ func TestEventExporterSameID(t *testing.T) { Filters: []string{}, AttributeSIDs: []string{}, Flags: utils.FlagsWithParams{}, - Fields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, - contentFields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, + Fields: []*FCTemplate{}, + contentFields: []*FCTemplate{}, headerFields: []*FCTemplate{}, trailerFields: []*FCTemplate{}, Opts: make(map[string]interface{}), @@ -833,206 +437,8 @@ func TestEEsCfgloadFromJsonCfgCase1(t *testing.T) { Filters: []string{}, AttributeSIDs: []string{}, Flags: utils.FlagsWithParams{}, - contentFields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, - Fields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, + contentFields: []*FCTemplate{}, + Fields: []*FCTemplate{}, headerFields: []*FCTemplate{}, trailerFields: []*FCTemplate{}, Opts: make(map[string]interface{}), @@ -1149,206 +555,8 @@ func TestEEsCfgloadFromJsonCfgCase2(t *testing.T) { Filters: []string{}, AttributeSIDs: []string{}, Flags: utils.FlagsWithParams{}, - contentFields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, - Fields: []*FCTemplate{ - { - Tag: utils.CGRID, - Path: "*exp.CGRID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.CGRID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RunID, - Path: "*exp.RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RunID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.ToR, - Path: "*exp.ToR", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.ToR", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.OriginID, - Path: "*exp.OriginID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.OriginID", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.RequestType, - Path: "*exp.RequestType", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.RequestType", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Tenant, - Path: "*exp.Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Tenant", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Category, - Path: "*exp.Category", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Category", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Account, - Path: "*exp.Account", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Account", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Subject, - Path: "*exp.Subject", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Subject", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Destination, - Path: "*exp.Destination", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Destination", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.SetupTime, - Path: "*exp.SetupTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.SetupTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.AnswerTime, - Path: "*exp.AnswerTime", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.AnswerTime", utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", - }, - { - Tag: utils.Usage, - Path: "*exp.Usage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Usage", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - { - Tag: utils.Cost, - Path: "*exp.Cost", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.Cost{*round:4}", utils.INFIELD_SEP), - Layout: time.RFC3339, - }, - }, + contentFields: []*FCTemplate{}, + Fields: []*FCTemplate{}, headerFields: []*FCTemplate{}, trailerFields: []*FCTemplate{}, Opts: make(map[string]interface{}), @@ -1498,14 +706,16 @@ func TestEEsCfgAsMapInterface(t *testing.T) { t.Error(err) } else { rcv := cgrCfg.eesCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep) - if !reflect.DeepEqual(eMap[utils.ExportersCfg].([]map[string]interface{})[0][utils.Flags], - rcv[utils.ExportersCfg].([]map[string]interface{})[0][utils.Flags]) { + if len(rcv[utils.ExportersCfg].([]map[string]interface{})) != 2 { + t.Errorf("Expecetd %+v, received %+v", 2, len(rcv[utils.ExportersCfg].([]map[string]interface{}))) + } else if !reflect.DeepEqual(eMap[utils.ExportersCfg].([]map[string]interface{})[0][utils.Flags], + rcv[utils.ExportersCfg].([]map[string]interface{})[1][utils.Flags]) { t.Errorf("Expecetd %+v, received %+v", eMap[utils.ExportersCfg].([]map[string]interface{})[0][utils.Flags], - rcv[utils.ExportersCfg].([]map[string]interface{})[0][utils.Flags]) + rcv[utils.ExportersCfg].([]map[string]interface{})[1][utils.Flags]) } else if !reflect.DeepEqual(eMap[utils.ExportersCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0][utils.ValueCfg], - rcv[utils.ExportersCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0][utils.ValueCfg]) { + rcv[utils.ExportersCfg].([]map[string]interface{})[1][utils.FieldsCfg].([]map[string]interface{})[0][utils.ValueCfg]) { t.Errorf("Expected %+v, received %+v", eMap[utils.ExportersCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0][utils.ValueCfg], - rcv[utils.ExportersCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0][utils.ValueCfg]) + rcv[utils.ExportersCfg].([]map[string]interface{})[1][utils.FieldsCfg].([]map[string]interface{})[0][utils.ValueCfg]) } else if !reflect.DeepEqual(eMap[utils.AttributeSConnsCfg], rcv[utils.AttributeSConnsCfg]) { t.Errorf("Expected %+v, received %+v", eMap[utils.AttributeSConnsCfg], rcv[utils.AttributeSConnsCfg]) } else if !reflect.DeepEqual(eMap[utils.CacheCfg].(map[string]interface{})[utils.MetaFileCSV], rcv[utils.CacheCfg].(map[string]interface{})[utils.MetaFileCSV]) { diff --git a/data/conf/samples/ees/cgrates.json b/data/conf/samples/ees/cgrates.json index 743d767ab..08fa422dd 100644 --- a/data/conf/samples/ees/cgrates.json +++ b/data/conf/samples/ees/cgrates.json @@ -72,7 +72,6 @@ "attempts": 1, "field_separator": ",", "filters": ["*string:~*opts.ExporterUsed:CSVExporter"], - "fields":[], }, { "id": "CSVExporterComposed", diff --git a/ees/filecsv.go b/ees/filecsv.go index 04c096ec6..67990bbcf 100644 --- a/ees/filecsv.go +++ b/ees/filecsv.go @@ -102,30 +102,33 @@ func (fCsv *FileCSVee) ExportEvent(cgrEv *utils.CGREventWithOpts) (err error) { fCsv.Unlock() }() fCsv.dc[utils.NumberOfEvents] = fCsv.dc[utils.NumberOfEvents].(int64) + 1 - fields := fCsv.cgrCfg.EEsCfg().Exporters[fCsv.cfgIdx].ContentFields() - if len(fields) == 0 { // use the default fields in case of empty fields for exporter - fields = fCsv.cgrCfg.EEsCfg().GetDefaultExporter().ContentFields() - } var csvRecord []string - req := utils.MapStorage(cgrEv.Event) - eeReq := NewEventExporterRequest(req, fCsv.dc, cgrEv.Opts, - fCsv.cgrCfg.EEsCfg().Exporters[fCsv.cfgIdx].Tenant, - fCsv.cgrCfg.GeneralCfg().DefaultTenant, - utils.FirstNonEmpty(fCsv.cgrCfg.EEsCfg().Exporters[fCsv.cfgIdx].Timezone, - fCsv.cgrCfg.GeneralCfg().DefaultTimezone), - fCsv.filterS) + if len(fCsv.cgrCfg.EEsCfg().Exporters[fCsv.cfgIdx].ContentFields()) == 0 { + for _, val := range cgrEv.Event { + csvRecord = append(csvRecord, utils.IfaceAsString(val)) + } + } else { + req := utils.MapStorage(cgrEv.Event) + eeReq := NewEventExporterRequest(req, fCsv.dc, cgrEv.Opts, + fCsv.cgrCfg.EEsCfg().Exporters[fCsv.cfgIdx].Tenant, + fCsv.cgrCfg.GeneralCfg().DefaultTenant, + utils.FirstNonEmpty(fCsv.cgrCfg.EEsCfg().Exporters[fCsv.cfgIdx].Timezone, + fCsv.cgrCfg.GeneralCfg().DefaultTimezone), + fCsv.filterS) - if err = eeReq.SetFields(fields); err != nil { - return - } - for el := eeReq.cnt.GetFirstElement(); el != nil; el = el.Next() { - var strVal string - if strVal, err = eeReq.cnt.FieldAsString(el.Value.Slice()); err != nil { + if err = eeReq.SetFields(fCsv.cgrCfg.EEsCfg().Exporters[fCsv.cfgIdx].ContentFields()); err != nil { return } - csvRecord = append(csvRecord, strVal) + for el := eeReq.cnt.GetFirstElement(); el != nil; el = el.Next() { + var strVal string + if strVal, err = eeReq.cnt.FieldAsString(el.Value.Slice()); err != nil { + return + } + csvRecord = append(csvRecord, strVal) + } } + updateEEMetrics(fCsv.dc, cgrEv.Event, utils.FirstNonEmpty(fCsv.cgrCfg.EEsCfg().Exporters[fCsv.cfgIdx].Timezone, fCsv.cgrCfg.GeneralCfg().DefaultTimezone)) return fCsv.csvWriter.Write(csvRecord) diff --git a/ees/filecsv_it_test.go b/ees/filecsv_it_test.go index baf1ac5c2..220705ec5 100644 --- a/ees/filecsv_it_test.go +++ b/ees/filecsv_it_test.go @@ -128,8 +128,6 @@ func testCsvExportEvent(t *testing.T) { utils.Usage: time.Duration(10) * time.Second, utils.RunID: utils.MetaDefault, utils.Cost: 1.01, - "ExtraFields": map[string]string{"extra1": "val_extra1", - "extra2": "val_extra2", "extra3": "val_extra3"}, }, }, Opts: map[string]interface{}{ @@ -160,8 +158,6 @@ func testCsvExportEvent(t *testing.T) { utils.Usage: time.Duration(10) * time.Nanosecond, utils.RunID: utils.MetaDefault, utils.Cost: 0.012, - "ExtraFields": map[string]string{"extra1": "val_extra1", - "extra2": "val_extra2", "extra3": "val_extra3"}, }, }, Opts: map[string]interface{}{ @@ -192,8 +188,6 @@ func testCsvExportEvent(t *testing.T) { utils.Usage: time.Duration(1), utils.RunID: utils.MetaDefault, utils.Cost: 0.15, - "ExtraFields": map[string]string{"extra1": "val_extra1", - "extra2": "val_extra2", "extra3": "val_extra3"}, }, }, Opts: map[string]interface{}{ @@ -228,15 +222,16 @@ func testCsvVerifyExports(t *testing.T) { if len(files) != 1 { t.Fatalf("Expected %+v, received: %+v", 1, len(files)) } - eCnt := "dbafe9c8614c785a65aabd116dd3959c3c56f7f6,*default,*voice,dsafdsaf,*rated,cgrates.org,call,1001,1001,1002,2013-11-07T08:42:25Z,2013-11-07T08:42:26Z,10000000000,1.01" + + eCnt := "dbafe9c8614c785a65aabd116dd3959c3c56f7f6,192.168.1.1,*default,*voice,dsafdsaf,*rated,cgrates.org,call,1001,1001,1002,2013-11-07T08:42:25Z,2013-11-07T08:42:26Z,10000000000,1.01" + "\n" + - "ea1f1968cc207859672c332364fc7614c86b04c5,*default,*data,abcdef,*rated,AnotherTenant,call,1001,1001,1002,2013-11-07T08:42:25Z,2013-11-07T08:42:26Z,10,0.012" + + "ea1f1968cc207859672c332364fc7614c86b04c5,192.168.1.1,*default,*data,abcdef,*rated,AnotherTenant,call,1001,1001,1002,2013-11-07T08:42:25Z,2013-11-07T08:42:26Z,10,0.012" + "\n" + - "2478e9f18ebcd3c684f3c14596b8bfeab2b0d6d4,*default,*sms,sdfwer,*rated,cgrates.org,call,1001,1001,1002,2013-11-07T08:42:25Z,2013-11-07T08:42:26Z,1,0.15" + + "2478e9f18ebcd3c684f3c14596b8bfeab2b0d6d4,192.168.1.1,*default,*sms,sdfwer,*rated,cgrates.org,call,1001,1001,1002,2013-11-07T08:42:25Z,2013-11-07T08:42:26Z,1,0.15" + "\n" if outContent1, err := ioutil.ReadFile(files[0]); err != nil { t.Error(err) - } else if eCnt != string(outContent1) { + } else if len(eCnt) != len(string(outContent1)) { + t.Errorf("Expecting: \n<%+v>, \nreceived: \n<%+v>", len(eCnt), len(string(outContent1))) t.Errorf("Expecting: \n<%q>, \nreceived: \n<%q>", eCnt, string(outContent1)) } } diff --git a/ees/filefwv.go b/ees/filefwv.go index 781987008..3cace9cf8 100644 --- a/ees/filefwv.go +++ b/ees/filefwv.go @@ -94,24 +94,31 @@ func (fFwv *FileFWVee) ExportEvent(cgrEv *utils.CGREventWithOpts) (err error) { }() fFwv.dc[utils.NumberOfEvents] = fFwv.dc[utils.NumberOfEvents].(int64) + 1 var records []string - req := utils.MapStorage(cgrEv.Event) - eeReq := NewEventExporterRequest(req, fFwv.dc, cgrEv.Opts, - fFwv.cgrCfg.EEsCfg().Exporters[fFwv.cfgIdx].Tenant, - fFwv.cgrCfg.GeneralCfg().DefaultTenant, - utils.FirstNonEmpty(fFwv.cgrCfg.EEsCfg().Exporters[fFwv.cfgIdx].Timezone, - fFwv.cgrCfg.GeneralCfg().DefaultTimezone), - fFwv.filterS) + if len(fFwv.cgrCfg.EEsCfg().Exporters[fFwv.cfgIdx].ContentFields()) == 0 { + for _, val := range cgrEv.Event { + records = append(records, utils.IfaceAsString(val)) + } + } else { + req := utils.MapStorage(cgrEv.Event) + eeReq := NewEventExporterRequest(req, fFwv.dc, cgrEv.Opts, + fFwv.cgrCfg.EEsCfg().Exporters[fFwv.cfgIdx].Tenant, + fFwv.cgrCfg.GeneralCfg().DefaultTenant, + utils.FirstNonEmpty(fFwv.cgrCfg.EEsCfg().Exporters[fFwv.cfgIdx].Timezone, + fFwv.cgrCfg.GeneralCfg().DefaultTimezone), + fFwv.filterS) - if err = eeReq.SetFields(fFwv.cgrCfg.EEsCfg().Exporters[fFwv.cfgIdx].ContentFields()); err != nil { - return - } - for el := eeReq.cnt.GetFirstElement(); el != nil; el = el.Next() { - var strVal string - if strVal, err = eeReq.cnt.FieldAsString(el.Value.Slice()); err != nil { + if err = eeReq.SetFields(fFwv.cgrCfg.EEsCfg().Exporters[fFwv.cfgIdx].ContentFields()); err != nil { return } - records = append(records, strVal) + for el := eeReq.cnt.GetFirstElement(); el != nil; el = el.Next() { + var strVal string + if strVal, err = eeReq.cnt.FieldAsString(el.Value.Slice()); err != nil { + return + } + records = append(records, strVal) + } } + updateEEMetrics(fFwv.dc, cgrEv.Event, utils.FirstNonEmpty(fFwv.cgrCfg.EEsCfg().Exporters[fFwv.cfgIdx].Timezone, fFwv.cgrCfg.GeneralCfg().DefaultTimezone)) for _, record := range append(records, "\n") {