mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
DataManager RemoveFilterIndexes and GetFilterReverseIndexes using cacheID and itemIDPrefix
This commit is contained in:
@@ -188,7 +188,7 @@ func (self *ApierV1) GetFilterReverseIndexes(arg AttrGetFilterReverseIndexes, re
|
||||
indexes = make(map[string]utils.StringMap)
|
||||
for _, itemID := range arg.ItemIDs {
|
||||
if tmpIndexes, err := self.DataManager.GetFilterReverseIndexes(
|
||||
engine.GetDBIndexKey(arg.ItemType, key, true), map[string]string{itemID: ""}); err != nil {
|
||||
utils.PrefixToRevIndexCache[arg.ItemType], key, map[string]string{itemID: ""}); err != nil {
|
||||
return err
|
||||
} else {
|
||||
for key, val := range tmpIndexes {
|
||||
@@ -199,7 +199,7 @@ func (self *ApierV1) GetFilterReverseIndexes(arg AttrGetFilterReverseIndexes, re
|
||||
}
|
||||
}
|
||||
} else {
|
||||
indexes, err = self.DataManager.GetFilterReverseIndexes(engine.GetDBIndexKey(arg.ItemType, key, true), nil)
|
||||
indexes, err = self.DataManager.GetFilterReverseIndexes(utils.PrefixToRevIndexCache[arg.ItemType], key, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -743,7 +743,7 @@ func (self *ApierV1) computeSupplierIndexes(tenant string, sppIDs *[]string, tra
|
||||
if err := sppIndexers.StoreIndexes(true, transactionID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, err
|
||||
return nil, nil
|
||||
} else {
|
||||
if err := sppIndexers.StoreIndexes(false, transactionID); err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -528,8 +528,7 @@ func TestAttributeIndexer(t *testing.T) {
|
||||
}
|
||||
}
|
||||
if reverseRcvIdx, err := dmAtr.GetFilterReverseIndexes(
|
||||
GetDBIndexKey(rfi1.itemType, rfi1.dbKeySuffix, true),
|
||||
nil); err != nil {
|
||||
utils.PrefixToRevIndexCache[rfi1.itemType], rfi1.dbKeySuffix, nil); err != nil {
|
||||
t.Error(err)
|
||||
} else {
|
||||
if !reflect.DeepEqual(reverseIdxes, reverseRcvIdx) {
|
||||
@@ -552,13 +551,10 @@ func TestAttributeIndexer(t *testing.T) {
|
||||
}
|
||||
}
|
||||
if reverseRcvIdx, err := dmAtr.GetFilterReverseIndexes(
|
||||
GetDBIndexKey(rfi2.itemType, rfi2.dbKeySuffix, true),
|
||||
nil); err != nil {
|
||||
utils.PrefixToRevIndexCache[rfi2.itemType], rfi2.dbKeySuffix, nil); err != nil {
|
||||
t.Error(err)
|
||||
} else {
|
||||
if !reflect.DeepEqual(reverseIdxes, reverseRcvIdx) {
|
||||
t.Errorf("Expecting %+v, received: %+v", reverseIdxes, reverseRcvIdx)
|
||||
}
|
||||
} else if !reflect.DeepEqual(reverseIdxes, reverseRcvIdx) {
|
||||
t.Errorf("Expecting %+v, received: %+v", reverseIdxes, reverseRcvIdx)
|
||||
}
|
||||
//verify if old index was deleted ( context *any)
|
||||
if _, err := dmAtr.GetFilterIndexes(utils.PrefixToIndexCache[rfi1.itemType],
|
||||
@@ -566,8 +562,7 @@ func TestAttributeIndexer(t *testing.T) {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err := dmAtr.GetFilterReverseIndexes(
|
||||
GetDBIndexKey(rfi1.itemType, rfi1.dbKeySuffix, true),
|
||||
nil); err != utils.ErrNotFound {
|
||||
utils.PrefixToRevIndexCache[rfi1.itemType], rfi1.dbKeySuffix, nil); err != utils.ErrNotFound {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1117,12 +1117,13 @@ func (dm *DataManager) SetFilterIndexes(cacheID, itemIDPrefix string,
|
||||
return dm.DataDB().SetFilterIndexesDrv(cacheID, itemIDPrefix, indexes, commit, transactionID)
|
||||
}
|
||||
|
||||
func (dm *DataManager) RemoveFilterIndexes(dbKey string) (err error) {
|
||||
return dm.DataDB().RemoveFilterIndexesDrv(dbKey)
|
||||
func (dm *DataManager) RemoveFilterIndexes(cacheID, itemIDPrefix string) (err error) {
|
||||
return dm.DataDB().RemoveFilterIndexesDrv(cacheID, itemIDPrefix)
|
||||
}
|
||||
|
||||
func (dm *DataManager) GetFilterReverseIndexes(dbKey string, fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error) {
|
||||
return dm.DataDB().GetFilterReverseIndexesDrv(dbKey, fldNameVal)
|
||||
func (dm *DataManager) GetFilterReverseIndexes(cacheID, itemIDPrefix string,
|
||||
fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error) {
|
||||
return dm.DataDB().GetFilterReverseIndexesDrv(cacheID, itemIDPrefix, fldNameVal)
|
||||
}
|
||||
|
||||
func (dm *DataManager) SetFilterReverseIndexes(dbKey string, indexes map[string]utils.StringMap, commit bool, transactionID string) (err error) {
|
||||
|
||||
@@ -142,7 +142,7 @@ func (rfi *FilterIndexer) StoreIndexes(commit bool, transactionID string) (err e
|
||||
//Populate the FilterIndexer.reveseIndex for specifil itemID
|
||||
func (rfi *FilterIndexer) loadItemReverseIndex(filterType, itemID string) (err error) {
|
||||
rcvReveseIdx, err := rfi.dm.GetFilterReverseIndexes(
|
||||
GetDBIndexKey(rfi.itemType, rfi.dbKeySuffix, true),
|
||||
utils.PrefixToRevIndexCache[rfi.itemType], rfi.dbKeySuffix,
|
||||
map[string]string{itemID: ""})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -122,8 +122,8 @@ type DataDB interface {
|
||||
fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error)
|
||||
SetFilterIndexesDrv(cacheID, itemIDPrefix string,
|
||||
indexes map[string]utils.StringMap, commit bool, transactionID string) (err error)
|
||||
RemoveFilterIndexesDrv(id string) (err error)
|
||||
GetFilterReverseIndexesDrv(dbKey string,
|
||||
RemoveFilterIndexesDrv(cacheID, itemIDPrefix string) (err error)
|
||||
GetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
|
||||
fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error)
|
||||
SetFilterReverseIndexesDrv(dbKey string, indexes map[string]utils.StringMap,
|
||||
commit bool, transactionID string) (err error)
|
||||
|
||||
@@ -1299,18 +1299,19 @@ func (ms *MapStorage) SetFilterIndexesDrv(cacheID, itemIDPrefix string,
|
||||
}
|
||||
}
|
||||
|
||||
func (ms *MapStorage) RemoveFilterIndexesDrv(id string) (err error) {
|
||||
func (ms *MapStorage) RemoveFilterIndexesDrv(cacheID, itemIDPrefix string) (err error) {
|
||||
ms.mu.Lock()
|
||||
defer ms.mu.Unlock()
|
||||
delete(ms.dict, id)
|
||||
delete(ms.dict, utils.CacheInstanceToPrefix[cacheID]+itemIDPrefix)
|
||||
return
|
||||
}
|
||||
|
||||
//GetFilterReverseIndexesDrv retrieves ReverseIndexes from dataDB
|
||||
func (ms *MapStorage) GetFilterReverseIndexesDrv(dbKey string,
|
||||
func (ms *MapStorage) GetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
|
||||
fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error) {
|
||||
ms.mu.RLock()
|
||||
defer ms.mu.RUnlock()
|
||||
dbKey := utils.CacheInstanceToPrefix[cacheID] + itemIDPrefix
|
||||
values, ok := ms.dict[dbKey]
|
||||
if !ok {
|
||||
return nil, utils.ErrNotFound
|
||||
|
||||
@@ -2025,10 +2025,10 @@ func (ms *MongoStorage) SetFilterIndexesDrv(cacheID, itemIDPrefix string,
|
||||
return
|
||||
}
|
||||
|
||||
func (ms *MongoStorage) RemoveFilterIndexesDrv(dbKey string) (err error) {
|
||||
func (ms *MongoStorage) RemoveFilterIndexesDrv(cacheID, itemIDPrefix string) (err error) {
|
||||
session, col := ms.conn(colRFI)
|
||||
defer session.Close()
|
||||
err = col.Remove(bson.M{"key": dbKey})
|
||||
err = col.Remove(bson.M{"key": utils.CacheInstanceToPrefix[cacheID] + itemIDPrefix})
|
||||
// redis compatibility
|
||||
if err == mgo.ErrNotFound {
|
||||
err = nil
|
||||
@@ -2037,10 +2037,11 @@ func (ms *MongoStorage) RemoveFilterIndexesDrv(dbKey string) (err error) {
|
||||
}
|
||||
|
||||
// GetFilterReverseIndexesDrv retrieves ReverseIndexes from dataDB
|
||||
func (ms *MongoStorage) GetFilterReverseIndexesDrv(dbKey string,
|
||||
func (ms *MongoStorage) GetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
|
||||
fldNameVal map[string]string) (revIdx map[string]utils.StringMap, err error) {
|
||||
session, col := ms.conn(colRFI)
|
||||
defer session.Close()
|
||||
dbKey := utils.CacheInstanceToPrefix[cacheID] + itemIDPrefix
|
||||
var result struct {
|
||||
Key string
|
||||
Value map[string][]string
|
||||
|
||||
@@ -1442,14 +1442,15 @@ func (rs *RedisStorage) SetFilterIndexesDrv(cacheID, itemIDPrefix string,
|
||||
}
|
||||
}
|
||||
|
||||
func (rs *RedisStorage) RemoveFilterIndexesDrv(id string) (err error) {
|
||||
return rs.Cmd("DEL", id).Err
|
||||
func (rs *RedisStorage) RemoveFilterIndexesDrv(cacheID, itemIDPrefix string) (err error) {
|
||||
return rs.Cmd("DEL", utils.CacheInstanceToPrefix[cacheID]+itemIDPrefix).Err
|
||||
}
|
||||
|
||||
//GetFilterReverseIndexesDrv retrieves ReverseIndexes from dataDB
|
||||
func (rs *RedisStorage) GetFilterReverseIndexesDrv(dbKey string,
|
||||
func (rs *RedisStorage) GetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
|
||||
fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error) {
|
||||
mp := make(map[string]string)
|
||||
dbKey := utils.CacheInstanceToPrefix[cacheID] + itemIDPrefix
|
||||
if len(fldNameVal) == 0 {
|
||||
mp, err = rs.Cmd("HGETALL", dbKey).Map()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user