diff --git a/data/conf/samples/ers_internal/cgrates.json b/data/conf/samples/ers_internal/cgrates.json index 6092b5df3..25d213425 100644 --- a/data/conf/samples/ers_internal/cgrates.json +++ b/data/conf/samples/ers_internal/cgrates.json @@ -230,8 +230,9 @@ "run_delay": "-1", "type": "*file_fwv", "source_path": "/tmp/fwvErs/in", - "flags": ["*cdrs"], "processed_path": "/tmp/fwvErs/out", + "flags": ["*cdrs"], + "filters": ["*regex:~*req.0-10:^CDR00000|^CDR00001|^CDR00002"], "fields": [ {"tag": "FileName", "path": "*cgreq.CdrFileName", "type": "*variable", "value": "~*hdr.95-135", "padding":"*right"}, {"tag": "FileSeqNr", "path": "*cgreq.FileSeqNr", "type": "*variable", "value": "~*hdr.135-141", "padding":"*zeroleft"}, diff --git a/data/conf/samples/ers_mongo/cgrates.json b/data/conf/samples/ers_mongo/cgrates.json index ac51ac874..f8cd4e39b 100644 --- a/data/conf/samples/ers_mongo/cgrates.json +++ b/data/conf/samples/ers_mongo/cgrates.json @@ -232,8 +232,9 @@ "run_delay": "-1", "type": "*file_fwv", "source_path": "/tmp/fwvErs/in", - "flags": ["*cdrs"], "processed_path": "/tmp/fwvErs/out", + "flags": ["*cdrs"], + "filters": ["*regex:~*req.0-10:^CDR00000|^CDR00001|^CDR00002"], "fields": [ {"tag": "FileName", "path": "*cgreq.CdrFileName", "type": "*variable", "value": "~*hdr.95-135", "padding":"*right"}, {"tag": "FileSeqNr", "path": "*cgreq.FileSeqNr", "type": "*variable", "value": "~*hdr.135-141", "padding":"*zeroleft"}, diff --git a/data/conf/samples/ers_mysql/cgrates.json b/data/conf/samples/ers_mysql/cgrates.json index f1e783a06..ce8b06658 100644 --- a/data/conf/samples/ers_mysql/cgrates.json +++ b/data/conf/samples/ers_mysql/cgrates.json @@ -229,8 +229,9 @@ "run_delay": "-1", "type": "*file_fwv", "source_path": "/tmp/fwvErs/in", - "flags": ["*cdrs"], "processed_path": "/tmp/fwvErs/out", + "flags": ["*cdrs"], + "filters": ["*regex:~*req.0-10:^CDR00000|^CDR00001|^CDR00002"], "fields": [ {"tag": "FileName", "path": "*cgreq.CdrFileName", "type": "*variable", "value": "~*hdr.95-135", "padding":"*right"}, {"tag": "FileSeqNr", "path": "*cgreq.FileSeqNr", "type": "*variable", "value": "~*hdr.135-141", "padding":"*zeroleft"}, diff --git a/data/conf/samples/ers_postgres/cgrates.json b/data/conf/samples/ers_postgres/cgrates.json index 5117f12ae..c952537a6 100644 --- a/data/conf/samples/ers_postgres/cgrates.json +++ b/data/conf/samples/ers_postgres/cgrates.json @@ -226,8 +226,9 @@ "run_delay": "-1", "type": "*file_fwv", "source_path": "/tmp/fwvErs/in", - "flags": ["*cdrs"], "processed_path": "/tmp/fwvErs/out", + "flags": ["*cdrs"], + "filters": ["*regex:~*req.0-10:^CDR00000|^CDR00001|^CDR00002"], "fields": [ {"tag": "FileName", "path": "*cgreq.CdrFileName", "type": "*variable", "value": "~*hdr.95-135", "padding":"*right"}, {"tag": "FileSeqNr", "path": "*cgreq.FileSeqNr", "type": "*variable", "value": "~*hdr.135-141", "padding":"*zeroleft"}, diff --git a/ers/filefwv.go b/ers/filefwv.go index c04409c29..747006e5a 100644 --- a/ers/filefwv.go +++ b/ers/filefwv.go @@ -296,7 +296,7 @@ func (rdr *FWVFileER) processTrailer(file *os.File, rowNr, evsPosted int, absPat record := string(buf) rdr.trailerDP = config.NewFWVProvider(record) agReq := agents.NewAgentRequest( - nil, nil, nil, nil, nil, + utils.MapStorage{}, nil, nil, nil, nil, rdr.Config().Tenant, rdr.cgrCfg.GeneralCfg().DefaultTenant, utils.FirstNonEmpty(rdr.Config().Timezone, @@ -338,9 +338,10 @@ func (rdr *FWVFileER) processHeader(file *os.File, rowNr, evsPosted int, absPath } func (rdr *FWVFileER) createHeaderMap(record string, rowNr, evsPosted int, absPath string, hdrFields []*config.FCTemplate) (err error) { + rdr.offset += rdr.headerOffset // increase the offset rdr.headerDP = config.NewFWVProvider(record) agReq := agents.NewAgentRequest( - nil, nil, nil, nil, nil, + utils.MapStorage{}, nil, nil, nil, nil, rdr.Config().Tenant, rdr.cgrCfg.GeneralCfg().DefaultTenant, utils.FirstNonEmpty(rdr.Config().Timezone, @@ -354,10 +355,8 @@ func (rdr *FWVFileER) createHeaderMap(record string, rowNr, evsPosted int, absPa utils.Logger.Warning( fmt.Sprintf("<%s> reading file: <%s> row <%d>, ignoring due to error: <%s>", utils.ERs, absPath, rowNr, err.Error())) - rdr.offset += rdr.lineLen // increase the offset when exit return err } - rdr.offset += rdr.headerOffset // increase the offset cgrEv := utils.NMAsCGREvent(agReq.CGRRequest, agReq.Tenant, utils.NestingSep, agReq.Opts) rdrEv := rdr.rdrEvents if _, isPartial := cgrEv.APIOpts[utils.PartialOpt]; isPartial { diff --git a/ers/filefwv_it_test.go b/ers/filefwv_it_test.go index 8eb48c1a4..6b43b0edd 100644 --- a/ers/filefwv_it_test.go +++ b/ers/filefwv_it_test.go @@ -186,7 +186,7 @@ func testFWVITAnalyseCDRs(t *testing.T) { var reply []*engine.ExternalCDR if err := fwvRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil { t.Error("Unexpected error: ", err.Error()) - } else if len(reply) != 34 { + } else if len(reply) != 29 { t.Error("Unexpected number of CDRs returned: ", len(reply)) } if err := fwvRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginIDs: []string{"CDR0000010"}}, &reply); err != nil {