From eaeddd581bc8911133be9c8d9b36cf6fae182d8f Mon Sep 17 00:00:00 2001 From: TeoV Date: Tue, 28 May 2019 10:19:14 +0300 Subject: [PATCH] Replacing CGREvent with *CGRevent when inherited for ResourceService --- apier/v1/filterindexecache_it_test.go | 16 +++++------ apier/v1/resourcesv1_it_test.go | 38 +++++++++++++-------------- dispatchers/resources.go | 8 +++--- dispatchers/resources_it_test.go | 14 +++++----- engine/resources.go | 28 ++++++++++++++------ engine/resources_test.go | 4 +-- general_tests/filters_it_test.go | 2 +- general_tests/resourcesv1_it_test.go | 8 +++--- general_tests/supplier_it_test.go | 8 +++--- sessions/sessions.go | 19 +++++++------- utils/apitpdata.go | 2 +- 11 files changed, 79 insertions(+), 68 deletions(-) diff --git a/apier/v1/filterindexecache_it_test.go b/apier/v1/filterindexecache_it_test.go index b88d323d5..1628a876e 100644 --- a/apier/v1/filterindexecache_it_test.go +++ b/apier/v1/filterindexecache_it_test.go @@ -1144,7 +1144,7 @@ func testV1FIdxCaGetResourceProfileWithNotFound(t *testing.T) { var reply string argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -1220,7 +1220,7 @@ func testV1FIdxCaSetResourceProfile(t *testing.T) { } argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -1249,7 +1249,7 @@ func testV1FIdxCaGetResourceProfileFromTP(t *testing.T) { var reply string argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e63", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -1274,7 +1274,7 @@ func testV1FIdxCaGetResourceProfileFromTP(t *testing.T) { argsReU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -1350,7 +1350,7 @@ func testV1FIdxCaUpdateResourceProfile(t *testing.T) { } argsReU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -1416,7 +1416,7 @@ func testV1FIdxCaUpdateResourceProfileFromTP(t *testing.T) { } argsReU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e65", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -1437,7 +1437,7 @@ func testV1FIdxCaRemoveResourceProfile(t *testing.T) { var resp string argsReU := utils.ArgRSv1ResourceUsage{ UsageID: "653a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -1459,7 +1459,7 @@ func testV1FIdxCaRemoveResourceProfile(t *testing.T) { } argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "654a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ diff --git a/apier/v1/resourcesv1_it_test.go b/apier/v1/resourcesv1_it_test.go index fbddbb3c5..9b2431a54 100644 --- a/apier/v1/resourcesv1_it_test.go +++ b/apier/v1/resourcesv1_it_test.go @@ -128,7 +128,7 @@ func testV1RsFromFolder(t *testing.T) { func testV1RsGetResourcesForEvent(t *testing.T) { var reply *engine.Resources args := &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event1", Event: map[string]interface{}{"Unknown": "unknown"}, @@ -192,7 +192,7 @@ func testV1RsGetResourcesForEvent(t *testing.T) { func testV1RsTTL0(t *testing.T) { // only matching Resource3 argsRU := utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -209,7 +209,7 @@ func testV1RsTTL0(t *testing.T) { } // overwrite the first allocation argsRU = utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -224,7 +224,7 @@ func testV1RsTTL0(t *testing.T) { } // too many units should be rejected argsRU = utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -241,7 +241,7 @@ func testV1RsTTL0(t *testing.T) { // check the record var rs *engine.Resources args := &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -285,7 +285,7 @@ func testV1RsTTL0(t *testing.T) { var releaseReply string argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e25", // same ID should be accepted by first group since the previous resource should be expired - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -304,7 +304,7 @@ func testV1RsAllocateResource(t *testing.T) { var reply string argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e51", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -325,7 +325,7 @@ func testV1RsAllocateResource(t *testing.T) { // Second event to test matching of exact limit of first resource argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e52", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -346,7 +346,7 @@ func testV1RsAllocateResource(t *testing.T) { // Third event testing overflow to second resource which still has one resource available argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e53", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -367,7 +367,7 @@ func testV1RsAllocateResource(t *testing.T) { // Test resource unavailable argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e54", // same ID should be accepted by first group since the previous resource should be expired - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -385,7 +385,7 @@ func testV1RsAllocateResource(t *testing.T) { argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e55", // same ID should be accepted by first group since the previous resource should be expired - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -409,7 +409,7 @@ func testV1RsAuthorizeResources(t *testing.T) { var reply string argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -426,7 +426,7 @@ func testV1RsAuthorizeResources(t *testing.T) { } argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -447,7 +447,7 @@ func testV1RsReleaseResource(t *testing.T) { var reply string argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e55", // same ID should be accepted by first group since the previous resource should be expired - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -464,7 +464,7 @@ func testV1RsReleaseResource(t *testing.T) { // only match Resource1 since we don't want for storing of the resource2 bellow argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -481,7 +481,7 @@ func testV1RsReleaseResource(t *testing.T) { } var rs *engine.Resources args := &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event5", Event: map[string]interface{}{ @@ -515,7 +515,7 @@ func testV1RsReleaseResource(t *testing.T) { func testV1RsDBStore(t *testing.T) { argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e71", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -534,7 +534,7 @@ func testV1RsDBStore(t *testing.T) { } var rs *engine.Resources args := &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event3", Event: map[string]interface{}{ @@ -579,7 +579,7 @@ func testV1RsDBStore(t *testing.T) { } rs = new(engine.Resources) args = &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event4", Event: map[string]interface{}{ diff --git a/dispatchers/resources.go b/dispatchers/resources.go index fd5e801d3..b6019dcc4 100755 --- a/dispatchers/resources.go +++ b/dispatchers/resources.go @@ -60,7 +60,7 @@ func (dS *DispatcherService) ResourceSv1GetResourcesForEvent(args utils.ArgRSv1R if args.ArgDispatcher != nil { routeID = args.ArgDispatcher.RouteID } - return dS.Dispatch(&args.CGREvent, utils.MetaResources, routeID, + return dS.Dispatch(args.CGREvent, utils.MetaResources, routeID, utils.ResourceSv1GetResourcesForEvent, args, reply) } @@ -81,7 +81,7 @@ func (dS *DispatcherService) ResourceSv1AuthorizeResources(args utils.ArgRSv1Res if args.ArgDispatcher != nil { routeID = args.ArgDispatcher.RouteID } - return dS.Dispatch(&args.CGREvent, utils.MetaResources, routeID, + return dS.Dispatch(args.CGREvent, utils.MetaResources, routeID, utils.ResourceSv1AuthorizeResources, args, reply) } @@ -102,7 +102,7 @@ func (dS *DispatcherService) ResourceSv1AllocateResources(args utils.ArgRSv1Reso if args.ArgDispatcher != nil { routeID = args.ArgDispatcher.RouteID } - return dS.Dispatch(&args.CGREvent, utils.MetaResources, routeID, + return dS.Dispatch(args.CGREvent, utils.MetaResources, routeID, utils.ResourceSv1AllocateResources, args, reply) } @@ -123,6 +123,6 @@ func (dS *DispatcherService) ResourceSv1ReleaseResources(args utils.ArgRSv1Resou if args.ArgDispatcher != nil { routeID = args.ArgDispatcher.RouteID } - return dS.Dispatch(&args.CGREvent, utils.MetaResources, routeID, + return dS.Dispatch(args.CGREvent, utils.MetaResources, routeID, utils.ResourceSv1ReleaseResources, args, reply) } diff --git a/dispatchers/resources_it_test.go b/dispatchers/resources_it_test.go index 3684a122d..f43e07225 100755 --- a/dispatchers/resources_it_test.go +++ b/dispatchers/resources_it_test.go @@ -104,7 +104,7 @@ func testDspResPing(t *testing.T) { func testDspResTestAuthKey(t *testing.T) { var rs *engine.Resources args := &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -127,7 +127,7 @@ func testDspResTestAuthKey(t *testing.T) { func testDspResTestAuthKey2(t *testing.T) { var rs *engine.Resources args := &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -161,7 +161,7 @@ func testDspResTestAuthKey3(t *testing.T) { var reply string argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e51", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -190,7 +190,7 @@ func testDspResTestAuthKey3(t *testing.T) { } argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -211,7 +211,7 @@ func testDspResTestAuthKey3(t *testing.T) { // relase the only resource active for Resource1 argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e55", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -231,7 +231,7 @@ func testDspResTestAuthKey3(t *testing.T) { // only match Resource1 since we don't want for storing of the resource2 bellow argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -251,7 +251,7 @@ func testDspResTestAuthKey3(t *testing.T) { } var rs *engine.Resources args := &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event5", Event: map[string]interface{}{ diff --git a/engine/resources.go b/engine/resources.go index 96c758975..43263b89c 100644 --- a/engine/resources.go +++ b/engine/resources.go @@ -527,7 +527,10 @@ func (rS *ResourceService) matchingResourcesForEvent(ev *utils.CGREvent, // V1ResourcesForEvent returns active resource configs matching the event func (rS *ResourceService) V1ResourcesForEvent(args utils.ArgRSv1ResourceUsage, reply *Resources) (err error) { - if missing := utils.MissingStructFields(&args.CGREvent, []string{utils.Tenant, utils.ID, utils.Event}); len(missing) != 0 { //Params missing + if args.CGREvent == nil { + return utils.NewErrMandatoryIeMissing(utils.Event) + } + if missing := utils.MissingStructFields(args.CGREvent, []string{utils.Tenant, utils.ID, utils.Event}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } else if args.UsageID == "" { return utils.NewErrMandatoryIeMissing(utils.UsageID) @@ -553,7 +556,7 @@ func (rS *ResourceService) V1ResourcesForEvent(args utils.ArgRSv1ResourceUsage, // end of RPC caching var mtcRLs Resources - if mtcRLs, err = rS.matchingResourcesForEvent(&args.CGREvent, args.UsageID, args.UsageTTL); err != nil { + if mtcRLs, err = rS.matchingResourcesForEvent(args.CGREvent, args.UsageID, args.UsageTTL); err != nil { return err } *reply = mtcRLs @@ -562,7 +565,10 @@ func (rS *ResourceService) V1ResourcesForEvent(args utils.ArgRSv1ResourceUsage, // V1AuthorizeResources queries service to find if an Usage is allowed func (rS *ResourceService) V1AuthorizeResources(args utils.ArgRSv1ResourceUsage, reply *string) (err error) { - if missing := utils.MissingStructFields(&args.CGREvent, []string{utils.Tenant, utils.ID, utils.Event}); len(missing) != 0 { //Params missing + if args.CGREvent == nil { + return utils.NewErrMandatoryIeMissing(utils.Event) + } + if missing := utils.MissingStructFields(args.CGREvent, []string{utils.Tenant, utils.ID, utils.Event}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } else if args.UsageID == "" { return utils.NewErrMandatoryIeMissing(utils.UsageID) @@ -588,7 +594,7 @@ func (rS *ResourceService) V1AuthorizeResources(args utils.ArgRSv1ResourceUsage, // end of RPC caching var mtcRLs Resources - if mtcRLs, err = rS.matchingResourcesForEvent(&args.CGREvent, args.UsageID, args.UsageTTL); err != nil { + if mtcRLs, err = rS.matchingResourcesForEvent(args.CGREvent, args.UsageID, args.UsageTTL); err != nil { return err } var alcMessage string @@ -608,7 +614,10 @@ func (rS *ResourceService) V1AuthorizeResources(args utils.ArgRSv1ResourceUsage, // V1AllocateResource is called when a resource requires allocation func (rS *ResourceService) V1AllocateResource(args utils.ArgRSv1ResourceUsage, reply *string) (err error) { - if missing := utils.MissingStructFields(&args.CGREvent, []string{utils.Tenant, utils.ID, utils.Event}); len(missing) != 0 { //Params missing + if args.CGREvent == nil { + return utils.NewErrMandatoryIeMissing(utils.Event) + } + if missing := utils.MissingStructFields(args.CGREvent, []string{utils.Tenant, utils.ID, utils.Event}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } else if args.UsageID == "" { return utils.NewErrMandatoryIeMissing(utils.UsageID) @@ -634,7 +643,7 @@ func (rS *ResourceService) V1AllocateResource(args utils.ArgRSv1ResourceUsage, r // end of RPC caching var mtcRLs Resources - if mtcRLs, err = rS.matchingResourcesForEvent(&args.CGREvent, args.UsageID, + if mtcRLs, err = rS.matchingResourcesForEvent(args.CGREvent, args.UsageID, args.UsageTTL); err != nil { return err } @@ -667,7 +676,10 @@ func (rS *ResourceService) V1AllocateResource(args utils.ArgRSv1ResourceUsage, r // V1ReleaseResource is called when we need to clear an allocation func (rS *ResourceService) V1ReleaseResource(args utils.ArgRSv1ResourceUsage, reply *string) (err error) { - if missing := utils.MissingStructFields(&args.CGREvent, []string{utils.Tenant, utils.ID, utils.Event}); len(missing) != 0 { //Params missing + if args.CGREvent == nil { + return utils.NewErrMandatoryIeMissing(utils.Event) + } + if missing := utils.MissingStructFields(args.CGREvent, []string{utils.Tenant, utils.ID, utils.Event}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } else if args.UsageID == "" { return utils.NewErrMandatoryIeMissing(utils.UsageID) @@ -693,7 +705,7 @@ func (rS *ResourceService) V1ReleaseResource(args utils.ArgRSv1ResourceUsage, re // end of RPC caching var mtcRLs Resources - if mtcRLs, err = rS.matchingResourcesForEvent(&args.CGREvent, args.UsageID, + if mtcRLs, err = rS.matchingResourcesForEvent(args.CGREvent, args.UsageID, args.UsageTTL); err != nil { return err } diff --git a/engine/resources_test.go b/engine/resources_test.go index 298cc6ee2..fafa1a069 100644 --- a/engine/resources_test.go +++ b/engine/resources_test.go @@ -379,7 +379,7 @@ func TestResourcePopulateResourceService(t *testing.T) { func TestResourceV1AuthorizeResourceMissingStruct(t *testing.T) { var reply *string argsMissingTenant := utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ ID: "id1", Event: map[string]interface{}{}, }, @@ -387,7 +387,7 @@ func TestResourceV1AuthorizeResourceMissingStruct(t *testing.T) { Units: 20, } argsMissingUsageID := utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "id1", Event: map[string]interface{}{}, diff --git a/general_tests/filters_it_test.go b/general_tests/filters_it_test.go index 54f56c42d..53aef1ada 100644 --- a/general_tests/filters_it_test.go +++ b/general_tests/filters_it_test.go @@ -400,7 +400,7 @@ func testV1FltrPopulateResources(t *testing.T) { // Allocate 3 units for resource ResTest argsRU := utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ diff --git a/general_tests/resourcesv1_it_test.go b/general_tests/resourcesv1_it_test.go index 644a32cd9..6b8e4872a 100644 --- a/general_tests/resourcesv1_it_test.go +++ b/general_tests/resourcesv1_it_test.go @@ -128,7 +128,7 @@ func testV1RsSetProfile(t *testing.T) { func testV1RsAllocate(t *testing.T) { argsRU := utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -148,7 +148,7 @@ func testV1RsAllocate(t *testing.T) { } argsRU2 := utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -170,7 +170,7 @@ func testV1RsAllocate(t *testing.T) { func testV1RsAuthorize(t *testing.T) { var reply *engine.Resources args := &utils.ArgRSv1ResourceUsage{ - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ @@ -204,7 +204,7 @@ func testV1RsAuthorize(t *testing.T) { var reply2 string argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "chan_1", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: utils.UUIDSha1Prefix(), Event: map[string]interface{}{ diff --git a/general_tests/supplier_it_test.go b/general_tests/supplier_it_test.go index b67b2d6f0..95c1c3043 100644 --- a/general_tests/supplier_it_test.go +++ b/general_tests/supplier_it_test.go @@ -324,7 +324,7 @@ func testV1SplSPopulateResUsage(t *testing.T) { var reply string argsRU := utils.ArgRSv1ResourceUsage{ UsageID: "RandomID", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event1", Event: map[string]interface{}{ @@ -347,7 +347,7 @@ func testV1SplSPopulateResUsage(t *testing.T) { argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "RandomID2", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event2", Event: map[string]interface{}{ @@ -369,7 +369,7 @@ func testV1SplSPopulateResUsage(t *testing.T) { argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "RandomID3", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event3", Event: map[string]interface{}{ @@ -391,7 +391,7 @@ func testV1SplSPopulateResUsage(t *testing.T) { argsRU = utils.ArgRSv1ResourceUsage{ UsageID: "RandomID4", - CGREvent: utils.CGREvent{ + CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "Event4", Event: map[string]interface{}{ diff --git a/sessions/sessions.go b/sessions/sessions.go index 1ed18b6fa..b6bc6632d 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -379,11 +379,6 @@ func (sS *SessionS) forceSTerminate(s *Session, extraDebit time.Duration, lastUs "<%s> failed force terminating session with ID <%s>, err: <%s>", utils.SessionS, s.CGRid(), err.Error())) } - cgrEv := utils.CGREvent{ - Tenant: s.Tenant, - ID: utils.GenUUID(), - Event: s.EventStart.AsMapInterface(), - } // post the CDRs if sS.cdrS != nil { if cgrEvs, err := s.asCGREvents(); err != nil { @@ -417,7 +412,11 @@ func (sS *SessionS) forceSTerminate(s *Session, extraDebit time.Duration, lastUs if sS.resS != nil && s.ResourceID != "" { var reply string argsRU := utils.ArgRSv1ResourceUsage{ - CGREvent: cgrEv, + CGREvent: &utils.CGREvent{ + Tenant: s.Tenant, + ID: utils.GenUUID(), + Event: s.EventStart.AsMapInterface(), + }, UsageID: s.ResourceID, Units: 1, ArgDispatcher: s.ArgDispatcher, @@ -1816,7 +1815,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(clnt rpcclient.RpcClientConnection, } var allocMsg string attrRU := utils.ArgRSv1ResourceUsage{ - CGREvent: args.CGREvent, + CGREvent: &args.CGREvent, UsageID: originID, Units: 1, ArgDispatcher: args.ArgDispatcher, @@ -2063,7 +2062,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(clnt rpcclient.RpcClientConnection, return utils.NewErrMandatoryIeMissing(utils.OriginID) } attrRU := utils.ArgRSv1ResourceUsage{ - CGREvent: args.CGREvent, + CGREvent: &args.CGREvent, UsageID: originID, Units: 1, ArgDispatcher: args.ArgDispatcher, @@ -2415,7 +2414,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(clnt rpcclient.RpcClientConnection, } var reply string argsRU := utils.ArgRSv1ResourceUsage{ - CGREvent: args.CGREvent, + CGREvent: &args.CGREvent, UsageID: originID, // same ID should be accepted by first group since the previous resource should be expired Units: 1, ArgDispatcher: args.ArgDispatcher, @@ -2691,7 +2690,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.RpcClientConnection, return utils.NewErrMandatoryIeMissing(utils.OriginID) } attrRU := utils.ArgRSv1ResourceUsage{ - CGREvent: args.CGREvent, + CGREvent: &args.CGREvent, UsageID: originID, Units: 1, ArgDispatcher: args.ArgDispatcher, diff --git a/utils/apitpdata.go b/utils/apitpdata.go index 0fda33b12..8319d7b18 100755 --- a/utils/apitpdata.go +++ b/utils/apitpdata.go @@ -1022,7 +1022,7 @@ type AttrRLsCache struct { } type ArgRSv1ResourceUsage struct { - CGREvent + *CGREvent UsageID string // ResourceUsage Identifier UsageTTL *time.Duration Units float64