From 485fb736f40b59d89bce5b6821537b93c1554d84 Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Thu, 2 Dec 2021 09:04:05 +0200 Subject: [PATCH] Fixed set indexes + cache commit on internaldb --- apis/filter_indexes_it_test.go | 17 ++++-- data/tariffplans/tutroutes/Routes.csv | 1 + engine/storage_internal_datadb.go | 86 ++++++++++++++------------- 3 files changed, 58 insertions(+), 46 deletions(-) diff --git a/apis/filter_indexes_it_test.go b/apis/filter_indexes_it_test.go index c0f10fd95..3449388f2 100644 --- a/apis/filter_indexes_it_test.go +++ b/apis/filter_indexes_it_test.go @@ -714,21 +714,27 @@ func testV1FIdxAttributesRemoveProfilesNoIndexes(t *testing.T) { var reply string if err := tFIdxRpc.Call(context.Background(), utils.AdminSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "TEST_ATTRIBUTES_IT_TEST", - Tenant: utils.CGRateSorg}}, &reply); err != nil { + Tenant: utils.CGRateSorg}, APIOpts: map[string]interface{}{ + utils.MetaCache: utils.MetaClear, + }}, &reply); err != nil { t.Error(err) } else if reply != utils.OK { t.Errorf("Expected %+v \n, received %+v", utils.OK, reply) } if err := tFIdxRpc.Call(context.Background(), utils.AdminSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "TEST_ATTRIBUTE3", - Tenant: utils.CGRateSorg}}, &reply); err != nil { + Tenant: utils.CGRateSorg}, APIOpts: map[string]interface{}{ + utils.MetaCache: utils.MetaClear, + }}, &reply); err != nil { t.Error(err) } else if reply != utils.OK { t.Errorf("Expected %+v \n, received %+v", utils.OK, reply) } if err := tFIdxRpc.Call(context.Background(), utils.AdminSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "TEST_ATTRIBUTES_new_fltr", - Tenant: utils.CGRateSorg}}, &reply); err != nil { + Tenant: utils.CGRateSorg}, APIOpts: map[string]interface{}{ + utils.MetaCache: utils.MetaClear, + }}, &reply); err != nil { t.Error(err) } else if reply != utils.OK { t.Errorf("Expected %+v \n, received %+v", utils.OK, reply) @@ -736,7 +742,9 @@ func testV1FIdxAttributesRemoveProfilesNoIndexes(t *testing.T) { if err := tFIdxRpc.Call(context.Background(), utils.AdminSv1RemoveFilter, utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: utils.CGRateSorg, - ID: "fltr_for_attr"}}, &reply); err != nil { + ID: "fltr_for_attr"}, APIOpts: map[string]interface{}{ + utils.MetaCache: utils.MetaClear, + }}, &reply); err != nil { t.Error(err) } @@ -746,6 +754,7 @@ func testV1FIdxAttributesRemoveProfilesNoIndexes(t *testing.T) { &AttrGetFilterIndexes{Tenant: utils.CGRateSorg, ItemType: utils.MetaAttributes}, &replyIdx); err == nil || err.Error() != utils.ErrNotFound.Error() { t.Error(err) } + if err := tFIdxRpc.Call(context.Background(), utils.AdminSv1GetFilterIndexes, &AttrGetFilterIndexes{Tenant: utils.CGRateSorg, ItemType: utils.MetaAttributes}, &replyIdx); err == nil || err.Error() != utils.ErrNotFound.Error() { t.Error(err) diff --git a/data/tariffplans/tutroutes/Routes.csv b/data/tariffplans/tutroutes/Routes.csv index 45a5a7c96..c7cfc7a92 100644 --- a/data/tariffplans/tutroutes/Routes.csv +++ b/data/tariffplans/tutroutes/Routes.csv @@ -25,3 +25,4 @@ cgrates.org,ROUTE_ACNT_1005,,,,,vendor3,,,,,STATS_VENDOR_2:*distinct#~*req.Usage cgrates.org,ROUTE_HC1,Fltr_tcc,,*hc,,route1,*gte:~*resources.RES_GRP2.Available:6,,RP_VENDOR2,RES_GRP2,,;20,,, cgrates.org,ROUTE_HC1,,,,,route2,*gte:~*resources.RES_GRP1.TotalUsage:9,,RP_VENDOR1,RES_GRP1,,;20,,, cgrates.org,ROUTE_HC1,,,,,route3,,,RP_VENDOR1,RES_GRP2,,;10,,, + diff --git a/engine/storage_internal_datadb.go b/engine/storage_internal_datadb.go index 3c337f661..786e01990 100644 --- a/engine/storage_internal_datadb.go +++ b/engine/storage_internal_datadb.go @@ -131,7 +131,7 @@ func (iDB *InternalDB) SetVersions(vrs Versions, overwrite bool) (err error) { x, ok := iDB.db.Get(utils.CacheVersions, utils.VersionName) if !ok || x == nil { iDB.db.Set(utils.CacheVersions, utils.VersionName, vrs, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } provVrs := x.(Versions) @@ -139,7 +139,7 @@ func (iDB *InternalDB) SetVersions(vrs Versions, overwrite bool) (err error) { provVrs[key] = val } iDB.db.Set(utils.CacheVersions, utils.VersionName, provVrs, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -155,11 +155,11 @@ func (iDB *InternalDB) RemoveVersions(vrs Versions) (err error) { delete(internalVersions, key) } iDB.db.Set(utils.CacheVersions, utils.VersionName, internalVersions, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } iDB.db.Remove(utils.CacheVersions, utils.VersionName, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -199,13 +199,13 @@ func (iDB *InternalDB) GetResourceProfileDrv(_ *context.Context, tenant, id stri func (iDB *InternalDB) SetResourceProfileDrv(_ *context.Context, rp *ResourceProfile) (err error) { iDB.db.Set(utils.CacheResourceProfiles, rp.TenantID(), rp, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveResourceProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheResourceProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -218,13 +218,13 @@ func (iDB *InternalDB) GetResourceDrv(_ *context.Context, tenant, id string) (r func (iDB *InternalDB) SetResourceDrv(_ *context.Context, r *Resource) (err error) { iDB.db.Set(utils.CacheResources, r.TenantID(), r, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveResourceDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheResources, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -246,13 +246,13 @@ func (iDB *InternalDB) GetStatQueueProfileDrv(_ *context.Context, tenant string, } func (iDB *InternalDB) SetStatQueueProfileDrv(_ *context.Context, sq *StatQueueProfile) (err error) { iDB.db.Set(utils.CacheStatQueueProfiles, sq.TenantID(), sq, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemStatQueueProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheStatQueueProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -271,12 +271,12 @@ func (iDB *InternalDB) SetStatQueueDrv(_ *context.Context, ssq *StoredStatQueue, } } iDB.db.Set(utils.CacheStatQueues, utils.ConcatenatedKey(sq.Tenant, sq.ID), sq, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemStatQueueDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheStatQueues, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -290,13 +290,13 @@ func (iDB *InternalDB) GetThresholdProfileDrv(_ *context.Context, tenant, id str func (iDB *InternalDB) SetThresholdProfileDrv(_ *context.Context, tp *ThresholdProfile) (err error) { iDB.db.Set(utils.CacheThresholdProfiles, tp.TenantID(), tp, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemThresholdProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheThresholdProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -310,13 +310,13 @@ func (iDB *InternalDB) GetThresholdDrv(_ *context.Context, tenant, id string) (t func (iDB *InternalDB) SetThresholdDrv(_ *context.Context, th *Threshold) (err error) { iDB.db.Set(utils.CacheThresholds, th.TenantID(), th, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveThresholdDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheThresholds, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -334,13 +334,13 @@ func (iDB *InternalDB) SetFilterDrv(_ *context.Context, fltr *Filter) (err error return } iDB.db.Set(utils.CacheFilters, fltr.TenantID(), fltr, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveFilterDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheFilters, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -357,13 +357,13 @@ func (iDB *InternalDB) SetRouteProfileDrv(_ *context.Context, spp *RouteProfile) return } iDB.db.Set(utils.CacheRouteProfiles, spp.TenantID(), spp, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveRouteProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheRouteProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -380,13 +380,13 @@ func (iDB *InternalDB) SetAttributeProfileDrv(_ *context.Context, attr *Attribut return } iDB.db.Set(utils.CacheAttributeProfiles, attr.TenantID(), attr, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveAttributeProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheAttributeProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -400,13 +400,13 @@ func (iDB *InternalDB) GetChargerProfileDrv(_ *context.Context, tenant, id strin func (iDB *InternalDB) SetChargerProfileDrv(_ *context.Context, chr *ChargerProfile) (err error) { iDB.db.Set(utils.CacheChargerProfiles, chr.TenantID(), chr, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveChargerProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheChargerProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -420,13 +420,13 @@ func (iDB *InternalDB) GetDispatcherProfileDrv(_ *context.Context, tenant, id st func (iDB *InternalDB) SetDispatcherProfileDrv(_ *context.Context, dpp *DispatcherProfile) (err error) { iDB.db.Set(utils.CacheDispatcherProfiles, dpp.TenantID(), dpp, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveDispatcherProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheDispatcherProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -444,7 +444,7 @@ func (iDB *InternalDB) GetItemLoadIDsDrv(_ *context.Context, itemIDPrefix string func (iDB *InternalDB) SetLoadIDsDrv(_ *context.Context, loadIDs map[string]int64) (err error) { iDB.db.Set(utils.CacheLoadIDs, utils.LoadIDs, loadIDs, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -458,13 +458,13 @@ func (iDB *InternalDB) GetDispatcherHostDrv(_ *context.Context, tenant, id strin func (iDB *InternalDB) SetDispatcherHostDrv(_ *context.Context, dpp *DispatcherHost) (err error) { iDB.db.Set(utils.CacheDispatcherHosts, dpp.TenantID(), dpp, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveDispatcherHostDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheDispatcherHosts, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -481,13 +481,13 @@ func (iDB *InternalDB) SetRateProfileDrv(_ *context.Context, rpp *utils.RateProf return } iDB.db.Set(utils.CacheRateProfiles, rpp.TenantID(), rpp, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveRateProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheRateProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -501,13 +501,13 @@ func (iDB *InternalDB) GetActionProfileDrv(_ *context.Context, tenant, id string func (iDB *InternalDB) SetActionProfileDrv(_ *context.Context, ap *ActionProfile) (err error) { iDB.db.Set(utils.CacheActionProfiles, ap.TenantID(), ap, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveActionProfileDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheActionProfiles, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } @@ -553,10 +553,10 @@ func (iDB *InternalDB) SetIndexesDrv(_ *context.Context, idxItmType, tntCtx stri continue } iDB.db.Remove(idxItmType, dbKey, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) key := strings.TrimSuffix(strings.TrimPrefix(dbKey, "tmp_"), utils.ConcatenatedKeySep+transactionID) iDB.db.Set(idxItmType, key, x, []string{tntCtx}, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) } return } @@ -567,15 +567,17 @@ func (iDB *InternalDB) SetIndexesDrv(_ *context.Context, idxItmType, tntCtx stri } if len(indx) == 0 { iDB.db.Remove(idxItmType, dbKey, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) continue } //to be the same as HMSET - if x, ok := iDB.db.Get(idxItmType, dbKey); ok && x != nil { - indx = utils.JoinStringSet(indx, x.(utils.StringSet)) + if transactionID != utils.EmptyString { + if x, ok := iDB.db.Get(idxItmType, dbKey); ok && x != nil { + indx = utils.JoinStringSet(indx, x.(utils.StringSet)) + } } iDB.db.Set(idxItmType, dbKey, indx, []string{tntCtx}, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) } return } @@ -585,7 +587,7 @@ func (iDB *InternalDB) RemoveIndexesDrv(_ *context.Context, idxItmType, tntCtx, iDB.db.RemoveGroup(idxItmType, tntCtx, true, utils.EmptyString) return } - iDB.db.Remove(idxItmType, utils.ConcatenatedKey(tntCtx, idxKey), cacheCommit(utils.NonTransactional), utils.NonTransactional) + iDB.db.Remove(idxItmType, utils.ConcatenatedKey(tntCtx, idxKey), true, utils.NonTransactional) return } @@ -599,12 +601,12 @@ func (iDB *InternalDB) GetAccountDrv(_ *context.Context, tenant, id string) (ap func (iDB *InternalDB) SetAccountDrv(_ *context.Context, ap *utils.Account) (err error) { iDB.db.Set(utils.CacheAccounts, ap.TenantID(), ap, nil, - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return } func (iDB *InternalDB) RemoveAccountDrv(_ *context.Context, tenant, id string) (err error) { iDB.db.Remove(utils.CacheAccounts, utils.ConcatenatedKey(tenant, id), - cacheCommit(utils.NonTransactional), utils.NonTransactional) + true, utils.NonTransactional) return }