From 0964c7a60bd018d7c386eb253bf32094d84ec81a Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Tue, 7 Dec 2021 09:46:45 +0200 Subject: [PATCH] Fixed replicated data in args for archiveEvents api --- apis/ees.go | 1 + ees/ees.go | 10 ++- ees/filecsv_it_test.go | 148 ++++++++++++++++++----------------------- 3 files changed, 75 insertions(+), 84 deletions(-) diff --git a/apis/ees.go b/apis/ees.go index a6851967b..55e1aac39 100644 --- a/apis/ees.go +++ b/apis/ees.go @@ -37,6 +37,7 @@ func (cS *EeSv1) ProcessEvent(ctx *context.Context, cgrEv *utils.CGREventWithEeI return cS.ees.V1ProcessEvent(ctx, cgrEv, rply) } +// ArchiveEventsInReply should archive the events sent with existing exporters. The zipped content should be returned back as a reply. func (cS *EeSv1) ArchiveEventsInReply(ctx *context.Context, args *ees.ArchiveEventsArgs, reply *[]byte) error { return cS.ees.V1ArchiveEventsInReply(ctx, args, reply) } diff --git a/ees/ees.go b/ees/ees.go index 756590ac7..ff28b6c7f 100644 --- a/ees/ees.go +++ b/ees/ees.go @@ -326,7 +326,7 @@ func ExportWithAttempts(ctx *context.Context, exp EventExporter, eEv interface{} type ArchiveEventsArgs struct { Tenant string APIOpts map[string]interface{} - Events []*utils.CGREvent + Events []map[string]interface{} } // V1ArchiveEventsInReply should archive the events sent with existing exporters. The zipped content should be returned back as a reply. @@ -382,7 +382,13 @@ func (eeS *EeS) V1ArchiveEventsInReply(ctx *context.Context, args *ArchiveEvents return err } for _, event := range args.Events { - if err := exportEventWithExporter(ctx, ee, event, false, eeS.cfg, eeS.fltrS); err != nil { + cgrEv := &utils.CGREvent{ + ID: utils.UUIDSha1Prefix(), + Tenant: args.Tenant, + Event: event, + APIOpts: args.APIOpts, + } + if err := exportEventWithExporter(ctx, ee, cgrEv, false, eeS.cfg, eeS.fltrS); err != nil { return err } } diff --git a/ees/filecsv_it_test.go b/ees/filecsv_it_test.go index 04e419ccb..be6399381 100644 --- a/ees/filecsv_it_test.go +++ b/ees/filecsv_it_test.go @@ -318,95 +318,79 @@ func testCsvExportBufferedEvent(t *testing.T) { APIOpts: map[string]interface{}{ utils.MetaExporterID: "CSVExporterBuffered", }, - Events: []*utils.CGREvent{ + Events: []map[string]interface{}{ { - Tenant: "cgrates.org", - ID: "voiceEvent", - Event: map[string]interface{}{ - utils.CGRID: utils.Sha1("dsafdsaf", time.Unix(1383813745, 0).UTC().String()), - utils.ToR: utils.MetaVoice, - "ComposedOriginID1": "dsaf", - "ComposedOriginID2": "dsaf", - utils.OriginHost: "192.168.1.1", - utils.RequestType: utils.MetaRated, - utils.Tenant: "cgrates.org", - utils.Category: "call", - utils.AccountField: "1001", - utils.Subject: "1001", - utils.Destination: "1002", - utils.SetupTime: time.Unix(1383813745, 0).UTC(), - utils.AnswerTime: time.Unix(1383813746, 0).UTC(), - utils.Usage: 10 * time.Second, - utils.RunID: utils.MetaDefault, - utils.Cost: 1.016374, - "ExtraFields": map[string]string{"extra1": "val_extra1", - "extra2": "val_extra2", "extra3": "val_extra3"}, - }, + utils.CGRID: utils.Sha1("dsafdsaf", time.Unix(1383813745, 0).UTC().String()), + utils.ToR: utils.MetaVoice, + "ComposedOriginID1": "dsaf", + "ComposedOriginID2": "dsaf", + utils.OriginHost: "192.168.1.1", + utils.RequestType: utils.MetaRated, + utils.Tenant: "cgrates.org", + utils.Category: "call", + utils.AccountField: "1001", + utils.Subject: "1001", + utils.Destination: "1002", + utils.SetupTime: time.Unix(1383813745, 0).UTC(), + utils.AnswerTime: time.Unix(1383813746, 0).UTC(), + utils.Usage: 10 * time.Second, + utils.RunID: utils.MetaDefault, + utils.Cost: 1.016374, + "ExtraFields": map[string]string{"extra1": "val_extra1", + "extra2": "val_extra2", "extra3": "val_extra3"}, }, { - Tenant: "cgrates.org", - ID: "dataEvent", - Event: map[string]interface{}{ - utils.CGRID: utils.Sha1("abcdef", time.Unix(1383813745, 0).UTC().String()), - utils.ToR: utils.MetaData, - utils.OriginID: "abcdef", - utils.OriginHost: "192.168.1.1", - utils.RequestType: utils.MetaRated, - utils.Tenant: "AnotherTenant", - utils.Category: "call", //for data CDR use different Tenant - utils.AccountField: "1001", - utils.Subject: "1001", - utils.Destination: "1002", - utils.SetupTime: time.Unix(1383813745, 0).UTC(), - utils.AnswerTime: time.Unix(1383813746, 0).UTC(), - utils.Usage: 10 * time.Nanosecond, - utils.RunID: utils.MetaDefault, - utils.Cost: 0.012, - "ExtraFields": map[string]string{"extra1": "val_extra1", - "extra2": "val_extra2", "extra3": "val_extra3"}, - }, + utils.CGRID: utils.Sha1("abcdef", time.Unix(1383813745, 0).UTC().String()), + utils.ToR: utils.MetaData, + utils.OriginID: "abcdef", + utils.OriginHost: "192.168.1.1", + utils.RequestType: utils.MetaRated, + utils.Tenant: "AnotherTenant", + utils.Category: "call", //for data CDR use different Tenant + utils.AccountField: "1001", + utils.Subject: "1001", + utils.Destination: "1002", + utils.SetupTime: time.Unix(1383813745, 0).UTC(), + utils.AnswerTime: time.Unix(1383813746, 0).UTC(), + utils.Usage: 10 * time.Nanosecond, + utils.RunID: utils.MetaDefault, + utils.Cost: 0.012, + "ExtraFields": map[string]string{"extra1": "val_extra1", + "extra2": "val_extra2", "extra3": "val_extra3"}, }, { - Tenant: "cgrates.org", - ID: "smsEvent", - Event: map[string]interface{}{ - utils.CGRID: utils.Sha1("nlllo", time.Unix(1383813745, 0).UTC().String()), - utils.ToR: utils.MetaData, - utils.OriginID: "abcdef", - utils.RequestType: utils.MetaNone, - utils.Tenant: "phone.org", - utils.Category: "sms", //for data CDR use different Tenant - utils.AccountField: "User2001", - utils.Subject: "User2001", - utils.Destination: "User2002", - utils.SetupTime: time.Unix(1383813745, 0).UTC(), - utils.AnswerTime: time.Unix(1383813746, 0).UTC(), - utils.Usage: 10 * time.Nanosecond, - utils.RunID: "raw", - utils.Cost: 44.5, - "ExtraFields": map[string]string{"extra1": "val_extra1", - "extra2": "val_extra2", "extra3": "val_extra3"}, - }, + utils.CGRID: utils.Sha1("nlllo", time.Unix(1383813745, 0).UTC().String()), + utils.ToR: utils.MetaData, + utils.OriginID: "abcdef", + utils.RequestType: utils.MetaNone, + utils.Tenant: "phone.org", + utils.Category: "sms", //for data CDR use different Tenant + utils.AccountField: "User2001", + utils.Subject: "User2001", + utils.Destination: "User2002", + utils.SetupTime: time.Unix(1383813745, 0).UTC(), + utils.AnswerTime: time.Unix(1383813746, 0).UTC(), + utils.Usage: 10 * time.Nanosecond, + utils.RunID: "raw", + utils.Cost: 44.5, + "ExtraFields": map[string]string{"extra1": "val_extra1", + "extra2": "val_extra2", "extra3": "val_extra3"}, }, { - Tenant: "cgrates.org", - ID: "photoEvent", - Event: map[string]interface{}{ - utils.CGRID: utils.Sha1("qwert", time.Unix(1383813745, 0).UTC().String()), - utils.OriginID: "abcdef", - utils.OriginHost: "127.0.0.1", - utils.RequestType: utils.MetaPrepaid, - utils.Tenant: "dispatchers.org", - utils.Category: "photo", //for data CDR use different Tenant - utils.AccountField: "1005", - utils.Subject: "1005", - utils.Destination: "1000", - utils.SetupTime: time.Unix(22383813745, 0).UTC(), - utils.AnswerTime: time.Unix(22383813760, 0).UTC(), - utils.Usage: 10 * time.Nanosecond, - utils.RunID: "Default_charging_id", - utils.Cost: 1.442234, - }, + utils.CGRID: utils.Sha1("qwert", time.Unix(1383813745, 0).UTC().String()), + utils.OriginID: "abcdef", + utils.OriginHost: "127.0.0.1", + utils.RequestType: utils.MetaPrepaid, + utils.Tenant: "dispatchers.org", + utils.Category: "photo", //for data CDR use different Tenant + utils.AccountField: "1005", + utils.Subject: "1005", + utils.Destination: "1000", + utils.SetupTime: time.Unix(22383813745, 0).UTC(), + utils.AnswerTime: time.Unix(22383813760, 0).UTC(), + utils.Usage: 10 * time.Nanosecond, + utils.RunID: "Default_charging_id", + utils.Cost: 1.442234, }, }, }