DataManager RemoveFilterIndexes and GetFilterReverseIndexes using cacheID and itemIDPrefix

This commit is contained in:
DanB
2018-03-02 20:01:06 +01:00
parent bbd3436440
commit 456c512440
8 changed files with 28 additions and 29 deletions

View File

@@ -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

View File

@@ -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)
}
}

View File

@@ -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) {

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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 {