mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-17 06:09:53 +05:00
Resource indexing usage on ID instead of TenantID
This commit is contained in:
@@ -71,12 +71,14 @@ func TestRsV1ITMySQL(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
func TestRsV1ITMongo(t *testing.T) {
|
||||
rlsV1ConfDIR = "tutmongo"
|
||||
for _, stest := range sTestsRLSV1 {
|
||||
t.Run(rlsV1ConfDIR, stest)
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
func testV1RsLoadConfig(t *testing.T) {
|
||||
var err error
|
||||
|
||||
@@ -196,7 +196,7 @@ func testOnStorITSetReqFilterIndexes(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
if err := onStor.SetReqFilterIndexes(utils.ResourceProfilesIndex, idxes); err != nil {
|
||||
if err := onStor.SetReqFilterIndexes(utils.ResourceProfilesStringIndex, idxes); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -227,7 +227,7 @@ func testOnStorITGetReqFilterIndexes(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
if idxes, err := onStor.GetReqFilterIndexes(utils.ResourceProfilesIndex); err != nil {
|
||||
if idxes, err := onStor.GetReqFilterIndexes(utils.ResourceProfilesStringIndex); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(eIdxes, idxes) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", eIdxes, idxes)
|
||||
@@ -242,12 +242,12 @@ func testOnStorITMatchReqFilterIndex(t *testing.T) {
|
||||
"RL1": true,
|
||||
"RL2": true,
|
||||
}
|
||||
if rcvMp, err := onStor.MatchReqFilterIndex(utils.ResourceProfilesIndex, "Account", "1002"); err != nil {
|
||||
if rcvMp, err := onStor.MatchReqFilterIndex(utils.ResourceProfilesStringIndex, "Account", "1002"); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(eMp, rcvMp) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", eMp, rcvMp)
|
||||
}
|
||||
if _, err := onStor.MatchReqFilterIndex(utils.ResourceProfilesIndex, "NonexistentField", "1002"); err == nil || err != utils.ErrNotFound {
|
||||
if _, err := onStor.MatchReqFilterIndex(utils.ResourceProfilesStringIndex, "NonexistentField", "1002"); err == nil || err != utils.ErrNotFound {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,10 +136,10 @@ func (r *Resource) totalUsage() (tU float64) {
|
||||
|
||||
// recordUsage records a new usage
|
||||
func (r *Resource) recordUsage(ru *ResourceUsage) (err error) {
|
||||
if _, hasID := r.Usages[ru.TenantID()]; hasID {
|
||||
if _, hasID := r.Usages[ru.ID]; hasID {
|
||||
return fmt.Errorf("duplicate resource usage with id: %s", ru.TenantID())
|
||||
}
|
||||
r.Usages[ru.TenantID()] = ru
|
||||
r.Usages[ru.ID] = ru
|
||||
if r.tUsage != nil {
|
||||
*r.tUsage += ru.Units
|
||||
}
|
||||
@@ -147,12 +147,12 @@ func (r *Resource) recordUsage(ru *ResourceUsage) (err error) {
|
||||
}
|
||||
|
||||
// clearUsage clears the usage for an ID
|
||||
func (r *Resource) clearUsage(ruTntID string) (err error) {
|
||||
ru, hasIt := r.Usages[ruTntID]
|
||||
func (r *Resource) clearUsage(ruID string) (err error) {
|
||||
ru, hasIt := r.Usages[ruID]
|
||||
if !hasIt {
|
||||
return fmt.Errorf("Cannot find usage record with id: %s", ruTntID)
|
||||
return fmt.Errorf("cannot find usage record with id: %s", ruID)
|
||||
}
|
||||
delete(r.Usages, ruTntID)
|
||||
delete(r.Usages, ruID)
|
||||
if r.tUsage != nil {
|
||||
*r.tUsage -= ru.Units
|
||||
}
|
||||
@@ -403,8 +403,7 @@ func (rS *ResourceService) matchingResourcesForEvent(tenant string, ev map[strin
|
||||
guardian.Guardian.GuardIDs(config.CgrConfig().LockingTimeout, lockIDs...)
|
||||
defer guardian.Guardian.UnguardIDs(lockIDs...)
|
||||
for resName := range rIDs {
|
||||
rTntID := utils.NewTenantID(resName)
|
||||
rPrf, err := rS.dataDB.GetResourceProfile(rTntID.Tenant, rTntID.ID, false, utils.NonTransactional)
|
||||
rPrf, err := rS.dataDB.GetResourceProfile(tenant, resName, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
if err == utils.ErrNotFound {
|
||||
continue
|
||||
|
||||
@@ -32,23 +32,27 @@ var (
|
||||
rs Resources
|
||||
)
|
||||
|
||||
func TestRSRecordUsage(t *testing.T) {
|
||||
func TestRSRecordUsage1(t *testing.T) {
|
||||
ru1 = &ResourceUsage{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RU1",
|
||||
ExpiryTime: time.Date(2014, 7, 3, 13, 43, 0, 1, time.UTC),
|
||||
Units: 2,
|
||||
}
|
||||
|
||||
ru2 = &ResourceUsage{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RU2",
|
||||
ExpiryTime: time.Date(2014, 7, 3, 13, 43, 0, 1, time.UTC),
|
||||
Units: 2,
|
||||
}
|
||||
|
||||
r1 = &Resource{
|
||||
ID: "RL1",
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RL1",
|
||||
rPrf: &ResourceProfile{
|
||||
ID: "RL1",
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RL1",
|
||||
Filters: []*RequestFilter{
|
||||
&RequestFilter{
|
||||
Type: MetaString,
|
||||
@@ -83,13 +87,13 @@ func TestRSRecordUsage(t *testing.T) {
|
||||
t.Error(err.Error())
|
||||
} else {
|
||||
if err := r1.recordUsage(ru1); err == nil {
|
||||
t.Error("Duplicate ResourceUsage id should not be allowed")
|
||||
t.Error("duplicate ResourceUsage id should not be allowed")
|
||||
}
|
||||
if _, found := r1.Usages[ru2.ID]; !found {
|
||||
t.Error("ResourceUsage was not recorded")
|
||||
}
|
||||
if *r1.tUsage != 4 {
|
||||
t.Errorf("Expecting: %+v, received: %+v", 4, r1.tUsage)
|
||||
t.Errorf("expecting: %+v, received: %+v", 4, r1.tUsage)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,7 +130,8 @@ func TestRSUsedUnits(t *testing.T) {
|
||||
|
||||
func TestRSRsort(t *testing.T) {
|
||||
r2 = &Resource{
|
||||
ID: "RL2",
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RL2",
|
||||
rPrf: &ResourceProfile{
|
||||
ID: "RL2",
|
||||
Filters: []*RequestFilter{
|
||||
@@ -246,9 +251,11 @@ func TestRSAllocateResource(t *testing.T) {
|
||||
// TestRSCacheSetGet assurace the presence of private params in cached resource
|
||||
func TestRSCacheSetGet(t *testing.T) {
|
||||
r := &Resource{
|
||||
ID: "RL",
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RL",
|
||||
rPrf: &ResourceProfile{
|
||||
ID: "RL",
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RL",
|
||||
Filters: []*RequestFilter{
|
||||
&RequestFilter{
|
||||
Type: MetaString,
|
||||
@@ -273,6 +280,7 @@ func TestRSCacheSetGet(t *testing.T) {
|
||||
},
|
||||
Usages: map[string]*ResourceUsage{
|
||||
"RU2": &ResourceUsage{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RU2",
|
||||
ExpiryTime: time.Date(2014, 7, 3, 13, 43, 0, 1, time.UTC),
|
||||
Units: 2,
|
||||
@@ -281,7 +289,7 @@ func TestRSCacheSetGet(t *testing.T) {
|
||||
tUsage: utils.Float64Pointer(2),
|
||||
dirty: utils.BoolPointer(true),
|
||||
}
|
||||
key := utils.ResourcesPrefix + r.ID
|
||||
key := utils.ResourcesPrefix + r.TenantID()
|
||||
cache.Set(key, r, true, "")
|
||||
if x, ok := cache.Get(key); !ok {
|
||||
t.Error("not in cache")
|
||||
|
||||
@@ -2074,7 +2074,7 @@ func (tpr *TpReader) WriteToDatabase(flush, verbose, disable_reverse bool) (err
|
||||
if rl, err := APItoResource(tpRL, tpr.timezone); err != nil {
|
||||
return err
|
||||
} else {
|
||||
rlIdxr.IndexFilters(rl.TenantID(), rl.Filters)
|
||||
rlIdxr.IndexFilters(rl.ID, rl.Filters)
|
||||
}
|
||||
}
|
||||
if verbose {
|
||||
|
||||
Reference in New Issue
Block a user