diff --git a/apier/v1/attributes.go b/apier/v1/attributes.go index 3c90107d1..2c604ab2f 100644 --- a/apier/v1/attributes.go +++ b/apier/v1/attributes.go @@ -59,7 +59,7 @@ func (apierV1 *ApierV1) RemAttributeProfile(arg utils.TenantID, reply *string) e if missing := utils.MissingStructFields(&arg, []string{"Tenant", "ID"}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } - if err := apierV1.DataManager.RemoveAttributeProfile(arg.Tenant, arg.ID, utils.NonTransactional); err != nil { + if err := apierV1.DataManager.RemoveAttributeProfile(arg.Tenant, arg.ID, utils.NonTransactional, true); err != nil { if err.Error() != utils.ErrNotFound.Error() { err = utils.NewErrServerError(err) } diff --git a/apier/v1/filter_indexes.go b/apier/v1/filter_indexes.go index d705e8b1e..79288aab2 100644 --- a/apier/v1/filter_indexes.go +++ b/apier/v1/filter_indexes.go @@ -99,15 +99,11 @@ func (self *ApierV1) computeThresholdIndexes(tenant string, thIDs *[]string) err if thIDs == nil { if err := self.DataManager.RemoveFilterIndexes(engine.GetDBIndexKey(utils.ThresholdProfilePrefix, tenant, false)); err != nil { - if err != utils.ErrNotFound { - return err - } + return err } if err := self.DataManager.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.ThresholdProfilePrefix, - tenant, true), ""); err != nil { - if err != utils.ErrNotFound { - return err - } + tenant, true)); err != nil { + return err } } else { indexRemover := engine.NewReqFilterIndexer(self.DataManager, utils.ThresholdProfilePrefix, tenant) @@ -167,7 +163,7 @@ func (self *ApierV1) computeAttributeIndexes(tenant string, attrIDs *[]string) e return err } if err := self.DataManager.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.AttributeProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { return err } @@ -227,7 +223,7 @@ func (self *ApierV1) computeResourceIndexes(tenant string, rsIDs *[]string) erro return err } if err := self.DataManager.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.ResourceProfilesPrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { return err } } else { @@ -286,7 +282,7 @@ func (self *ApierV1) computeStatIndexes(tenant string, stIDs *[]string) error { return err } if err := self.DataManager.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.StatQueueProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { return err } } else { @@ -346,7 +342,7 @@ func (self *ApierV1) computeSupplierIndexes(tenant string, sppIDs *[]string) err return err } if err := self.DataManager.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.SupplierProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { return err } } else { diff --git a/apier/v1/filter_indexes_it_test.go b/apier/v1/filter_indexes_it_test.go index 314241f03..3f2b01e57 100644 --- a/apier/v1/filter_indexes_it_test.go +++ b/apier/v1/filter_indexes_it_test.go @@ -234,7 +234,7 @@ func testV1FIdxSetThresholdProfile(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.ThresholdProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.ThresholdProfilePrefix, tenant, false), @@ -340,7 +340,7 @@ func testV1FIdxSetSecondThresholdProfile(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.ThresholdProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.ThresholdProfilePrefix, tenant, false), @@ -590,7 +590,7 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.StatQueueProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.StatQueueProfilePrefix, tenant, false), @@ -706,7 +706,7 @@ func testV1FIdxSetSecondStatQueueProfileIndexes(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.StatQueueProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.StatQueueProfilePrefix, tenant, false), @@ -811,7 +811,7 @@ func testV1FIdxSetResourceProfileIndexes(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.ResourceProfilesPrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.ResourceProfilesPrefix, tenant, false), @@ -915,7 +915,7 @@ func testV1FIdxSetSecondResourceProfileIndexes(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.ResourceProfilesPrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.ResourceProfilesPrefix, tenant, false), @@ -1026,7 +1026,7 @@ func testV1FIdxSetSupplierProfileIndexes(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.SupplierProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.SupplierProfilePrefix, tenant, false), @@ -1136,7 +1136,7 @@ func testV1FIdxSetSecondSupplierProfileIndexes(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.SupplierProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.SupplierProfilePrefix, tenant, false), @@ -1250,7 +1250,7 @@ func testV1FIdxSetAttributeProfileIndexes(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.AttributeProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.AttributeProfilePrefix, tenant, false), @@ -1363,7 +1363,7 @@ func testV1FIdxSetSecondAttributeProfileIndexes(t *testing.T) { t.Error(err) } if err := onStor.RemoveFilterReverseIndexes(engine.GetDBIndexKey(utils.AttributeProfilePrefix, - tenant, true), ""); err != nil { + tenant, true)); err != nil { t.Error(err) } if indexes, err = onStor.GetFilterIndexes(engine.GetDBIndexKey(utils.AttributeProfilePrefix, tenant, false), diff --git a/apier/v1/resourcesv1.go b/apier/v1/resourcesv1.go index 8d8520512..c6181af22 100644 --- a/apier/v1/resourcesv1.go +++ b/apier/v1/resourcesv1.go @@ -92,7 +92,7 @@ func (apierV1 *ApierV1) RemResourceProfile(arg utils.TenantID, reply *string) er if missing := utils.MissingStructFields(&arg, []string{"Tenant", "ID"}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } - if err := apierV1.DataManager.RemoveResourceProfile(arg.Tenant, arg.ID, utils.NonTransactional); err != nil { + if err := apierV1.DataManager.RemoveResourceProfile(arg.Tenant, arg.ID, utils.NonTransactional, true); err != nil { if err.Error() != utils.ErrNotFound.Error() { err = utils.NewErrServerError(err) } diff --git a/apier/v1/stats.go b/apier/v1/stats.go index f720a9f97..4cab6e272 100644 --- a/apier/v1/stats.go +++ b/apier/v1/stats.go @@ -57,7 +57,7 @@ func (apierV1 *ApierV1) RemStatQueueProfile(args *utils.TenantID, reply *string) if missing := utils.MissingStructFields(args, []string{"Tenant", "ID"}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } - if err := apierV1.DataManager.RemoveStatQueueProfile(args.Tenant, args.ID, utils.NonTransactional); err != nil { + if err := apierV1.DataManager.RemoveStatQueueProfile(args.Tenant, args.ID, utils.NonTransactional, true); err != nil { return utils.APIErrorHandler(err) } *reply = utils.OK diff --git a/apier/v1/suppliers.go b/apier/v1/suppliers.go index d0632b15b..6ae8e5084 100644 --- a/apier/v1/suppliers.go +++ b/apier/v1/suppliers.go @@ -58,7 +58,7 @@ func (apierV1 *ApierV1) RemSupplierProfile(arg utils.TenantID, reply *string) er if missing := utils.MissingStructFields(&arg, []string{"Tenant", "ID"}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } - if err := apierV1.DataManager.RemoveSupplierProfile(arg.Tenant, arg.ID, utils.NonTransactional); err != nil { + if err := apierV1.DataManager.RemoveSupplierProfile(arg.Tenant, arg.ID, utils.NonTransactional, true); err != nil { if err.Error() != utils.ErrNotFound.Error() { err = utils.NewErrServerError(err) } diff --git a/apier/v1/thresholds.go b/apier/v1/thresholds.go index 8e116f1d7..b49ca0e3f 100644 --- a/apier/v1/thresholds.go +++ b/apier/v1/thresholds.go @@ -90,7 +90,7 @@ func (apierV1 *ApierV1) RemThresholdProfile(args *utils.TenantID, reply *string) if missing := utils.MissingStructFields(args, []string{"Tenant", "ID"}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } - if err := apierV1.DataManager.RemoveThresholdProfile(args.Tenant, args.ID, utils.NonTransactional); err != nil { + if err := apierV1.DataManager.RemoveThresholdProfile(args.Tenant, args.ID, utils.NonTransactional, true); err != nil { return utils.APIErrorHandler(err) } *reply = utils.OK diff --git a/engine/datamanager.go b/engine/datamanager.go index 06f810db6..c7c5bee8d 100644 --- a/engine/datamanager.go +++ b/engine/datamanager.go @@ -409,14 +409,16 @@ func (dm *DataManager) SetThresholdProfile(th *ThresholdProfile, withIndex bool) return } -func (dm *DataManager) RemoveThresholdProfile(tenant, id, transactionID string) (err error) { +func (dm *DataManager) RemoveThresholdProfile(tenant, id, transactionID string, withIndex bool) (err error) { if err = dm.DataDB().RemThresholdProfileDrv(tenant, id); err != nil { return } cache.RemKey(utils.ThresholdProfilePrefix+utils.ConcatenatedKey(tenant, id), cacheCommit(transactionID), transactionID) - return NewReqFilterIndexer(dm, utils.ThresholdProfilePrefix, - tenant).RemoveItemFromIndex(id) + if withIndex { + return NewReqFilterIndexer(dm, utils.ThresholdProfilePrefix, tenant).RemoveItemFromIndex(id) + } + return } func (dm *DataManager) GetStatQueueProfile(tenant, id string, skipCache bool, transactionID string) (sqp *StatQueueProfile, err error) { @@ -444,37 +446,40 @@ func (dm *DataManager) SetStatQueueProfile(sqp *StatQueueProfile, withIndex bool if err = dm.DataDB().SetStatQueueProfileDrv(sqp); err != nil { return err } - // if withIndex { - // indexer := NewReqFilterIndexer(dm, utils.ThresholdProfilePrefix, sqp.Tenant) - // //remove old StatQueueProfile indexes - // if err = indexer.RemoveItemFromIndex(sqp.ID); err != nil && - // err.Error() != utils.ErrNotFound.Error() { - // return - // } - // //Verify matching Filters for every FilterID from StatQueueProfile - // for _, fltrID := range sqp.FilterIDs { - // var fltr *Filter - // if fltr, err = dm.GetFilter(sqp.Tenant, fltrID, false, utils.NonTransactional); err != nil { - // if err == utils.ErrNotFound { - // err = fmt.Errorf("broken reference to filter: %+v for threshold: %+v", fltrID, sqp) - // } - // return - // } - // indexer.IndexTPFilter(FilterToTPFilter(fltr), sqp.ID) - // } - // if err = indexer.StoreIndexes(); err != nil { - // return - // } - // } + if withIndex { + indexer := NewReqFilterIndexer(dm, utils.StatQueueProfilePrefix, sqp.Tenant) + //remove old StatQueueProfile indexes + if err = indexer.RemoveItemFromIndex(sqp.ID); err != nil && + err.Error() != utils.ErrNotFound.Error() { + return + } + //Verify matching Filters for every FilterID from StatQueueProfile + for _, fltrID := range sqp.FilterIDs { + var fltr *Filter + if fltr, err = dm.GetFilter(sqp.Tenant, fltrID, false, utils.NonTransactional); err != nil { + if err == utils.ErrNotFound { + err = fmt.Errorf("broken reference to filter: %+v for threshold: %+v", fltrID, sqp) + } + return + } + indexer.IndexTPFilter(FilterToTPFilter(fltr), sqp.ID) + } + if err = indexer.StoreIndexes(); err != nil { + return + } + } return } -func (dm *DataManager) RemoveStatQueueProfile(tenant, id, transactionID string) (err error) { +func (dm *DataManager) RemoveStatQueueProfile(tenant, id, transactionID string, withIndex bool) (err error) { if err = dm.DataDB().RemStatQueueProfileDrv(tenant, id); err != nil { return } cache.RemKey(utils.StatQueueProfilePrefix+utils.ConcatenatedKey(tenant, id), cacheCommit(transactionID), transactionID) + if withIndex { + return NewReqFilterIndexer(dm, utils.StatQueueProfilePrefix, tenant).RemoveItemFromIndex(id) + } return } @@ -596,12 +601,15 @@ func (dm *DataManager) SetResourceProfile(rp *ResourceProfile, withIndex bool) ( return } -func (dm *DataManager) RemoveResourceProfile(tenant, id, transactionID string) (err error) { +func (dm *DataManager) RemoveResourceProfile(tenant, id, transactionID string, withIndex bool) (err error) { if err = dm.DataDB().RemoveResourceProfileDrv(tenant, id); err != nil { return } cache.RemKey(utils.ResourceProfilesPrefix+utils.ConcatenatedKey(tenant, id), cacheCommit(transactionID), transactionID) + if withIndex { + return NewReqFilterIndexer(dm, utils.ResourceProfilesPrefix, tenant).RemoveItemFromIndex(id) + } return } @@ -941,8 +949,8 @@ func (dm *DataManager) SetFilterReverseIndexes(dbKey string, indexes map[string] return dm.DataDB().SetFilterReverseIndexesDrv(dbKey, indexes) } -func (dm *DataManager) RemoveFilterReverseIndexes(dbKey, itemID string) (err error) { - return dm.DataDB().RemoveFilterReverseIndexesDrv(dbKey, itemID) +func (dm *DataManager) RemoveFilterReverseIndexes(dbKey string) (err error) { + return dm.DataDB().RemoveFilterReverseIndexesDrv(dbKey) } func (dm *DataManager) MatchFilterIndex(dbKey, fieldName, fieldVal string) (itemIDs utils.StringMap, err error) { @@ -1016,37 +1024,40 @@ func (dm *DataManager) SetSupplierProfile(supp *SupplierProfile, withIndex bool) return err } //to be implemented in tests - // if withIndex { - // indexer := NewReqFilterIndexer(dm, utils.SupplierProfilePrefix, supp.Tenant) - // //remove old SupplierProfile indexes - // if err = indexer.RemoveItemFromIndex(supp.ID); err != nil && - // err.Error() != utils.ErrNotFound.Error() { - // return - // } - // //Verify matching Filters for every FilterID from SupplierProfile - // for _, fltrID := range supp.FilterIDs { - // var fltr *Filter - // if fltr, err = dm.GetFilter(supp.Tenant, fltrID, false, utils.NonTransactional); err != nil { - // if err == utils.ErrNotFound { - // err = fmt.Errorf("broken reference to filter: %+v for threshold: %+v", fltrID, supp) - // } - // return - // } - // indexer.IndexTPFilter(FilterToTPFilter(fltr), supp.ID) - // } - // if err = indexer.StoreIndexes(); err != nil { - // return - // } - // } + if withIndex { + indexer := NewReqFilterIndexer(dm, utils.SupplierProfilePrefix, supp.Tenant) + //remove old SupplierProfile indexes + if err = indexer.RemoveItemFromIndex(supp.ID); err != nil && + err.Error() != utils.ErrNotFound.Error() { + return + } + //Verify matching Filters for every FilterID from SupplierProfile + for _, fltrID := range supp.FilterIDs { + var fltr *Filter + if fltr, err = dm.GetFilter(supp.Tenant, fltrID, false, utils.NonTransactional); err != nil { + if err == utils.ErrNotFound { + err = fmt.Errorf("broken reference to filter: %+v for threshold: %+v", fltrID, supp) + } + return + } + indexer.IndexTPFilter(FilterToTPFilter(fltr), supp.ID) + } + if err = indexer.StoreIndexes(); err != nil { + return + } + } return } -func (dm *DataManager) RemoveSupplierProfile(tenant, id, transactionID string) (err error) { +func (dm *DataManager) RemoveSupplierProfile(tenant, id, transactionID string, withIndex bool) (err error) { if err = dm.DataDB().RemoveSupplierProfileDrv(tenant, id); err != nil { return } cache.RemKey(utils.SupplierProfilePrefix+utils.ConcatenatedKey(tenant, id), cacheCommit(transactionID), transactionID) + if withIndex { + return NewReqFilterIndexer(dm, utils.SupplierProfilePrefix, tenant).RemoveItemFromIndex(id) + } return } @@ -1076,36 +1087,39 @@ func (dm *DataManager) SetAttributeProfile(ap *AttributeProfile, withIndex bool) return err } //to be implemented in tests - // if withIndex { - // indexer := NewReqFilterIndexer(dm, utils.AttributeProfilePrefix, ap.Tenant) - // //remove old AttributeProfile indexes - // if err = indexer.RemoveItemFromIndex(ap.ID); err != nil && - // err.Error() != utils.ErrNotFound.Error() { - // return - // } - // //Verify matching Filters for every FilterID from AttributeProfile - // for _, fltrID := range ap.FilterIDs { - // var fltr *Filter - // if fltr, err = dm.GetFilter(ap.Tenant, fltrID, false, utils.NonTransactional); err != nil { - // if err == utils.ErrNotFound { - // err = fmt.Errorf("broken reference to filter: %+v for threshold: %+v", fltrID, ap) - // } - // return - // } - // indexer.IndexTPFilter(FilterToTPFilter(fltr), ap.ID) - // } - // if err = indexer.StoreIndexes(); err != nil { - // return - // } - // } + if withIndex { + indexer := NewReqFilterIndexer(dm, utils.AttributeProfilePrefix, ap.Tenant) + //remove old AttributeProfile indexes + if err = indexer.RemoveItemFromIndex(ap.ID); err != nil && + err.Error() != utils.ErrNotFound.Error() { + return + } + //Verify matching Filters for every FilterID from AttributeProfile + for _, fltrID := range ap.FilterIDs { + var fltr *Filter + if fltr, err = dm.GetFilter(ap.Tenant, fltrID, false, utils.NonTransactional); err != nil { + if err == utils.ErrNotFound { + err = fmt.Errorf("broken reference to filter: %+v for threshold: %+v", fltrID, ap) + } + return + } + indexer.IndexTPFilter(FilterToTPFilter(fltr), ap.ID) + } + if err = indexer.StoreIndexes(); err != nil { + return + } + } return } -func (dm *DataManager) RemoveAttributeProfile(tenant, id, transactionID string) (err error) { +func (dm *DataManager) RemoveAttributeProfile(tenant, id, transactionID string, withIndex bool) (err error) { if err = dm.DataDB().RemoveAttributeProfileDrv(tenant, id); err != nil { return } cache.RemKey(utils.AttributeProfilePrefix+utils.ConcatenatedKey(tenant, id), cacheCommit(transactionID), transactionID) + if withIndex { + return NewReqFilterIndexer(dm, utils.AttributeProfilePrefix, tenant).RemoveItemFromIndex(id) + } return } diff --git a/engine/storage_interface.go b/engine/storage_interface.go index 4a482bfbd..4c99e066d 100755 --- a/engine/storage_interface.go +++ b/engine/storage_interface.go @@ -122,7 +122,7 @@ type DataDB interface { RemoveFilterIndexesDrv(id string) (err error) GetFilterReverseIndexesDrv(dbKey string, fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error) SetFilterReverseIndexesDrv(dbKey string, indexes map[string]utils.StringMap) (err error) - RemoveFilterReverseIndexesDrv(dbKey, itemID string) (err error) + RemoveFilterReverseIndexesDrv(dbKey string) (err error) MatchFilterIndexDrv(dbKey, fieldName, fieldVal string) (itemIDs utils.StringMap, err error) GetStatQueueProfileDrv(tenant string, ID string) (sq *StatQueueProfile, err error) SetStatQueueProfileDrv(sq *StatQueueProfile) (err error) diff --git a/engine/storage_map.go b/engine/storage_map.go index 441bf4da7..8dff01445 100755 --- a/engine/storage_map.go +++ b/engine/storage_map.go @@ -1328,10 +1328,10 @@ func (ms *MapStorage) SetFilterReverseIndexesDrv(dbKey string, indexes map[strin } //RemoveFilterReverseIndexesDrv removes ReverseIndexes for a specific itemID -func (ms *MapStorage) RemoveFilterReverseIndexesDrv(dbKey, itemID string) (err error) { +func (ms *MapStorage) RemoveFilterReverseIndexesDrv(dbKey string) (err error) { ms.mu.Lock() defer ms.mu.Unlock() - delete(ms.dict, utils.ConcatenatedKey(dbKey, itemID)) + delete(ms.dict, dbKey) return } diff --git a/engine/storage_mongo_datadb.go b/engine/storage_mongo_datadb.go index 16ab10fba..ec7543c6b 100755 --- a/engine/storage_mongo_datadb.go +++ b/engine/storage_mongo_datadb.go @@ -1974,7 +1974,7 @@ func (ms *MongoStorage) RemoveFilterIndexesDrv(id string) (err error) { defer session.Close() err = col.Remove(bson.M{"key": id}) if err == mgo.ErrNotFound { - err = utils.ErrNotFound + err = nil } return } @@ -2042,16 +2042,12 @@ func (ms *MongoStorage) SetFilterReverseIndexesDrv(dbKey string, revIdx map[stri } //RemoveFilterReverseIndexesDrv removes ReverseIndexes for a specific itemID -func (ms *MongoStorage) RemoveFilterReverseIndexesDrv(dbKey, itemID string) (err error) { +func (ms *MongoStorage) RemoveFilterReverseIndexesDrv(dbKey string) (err error) { session, col := ms.conn(colRFI) defer session.Close() - if itemID != "" { - findParam := fmt.Sprintf("value.%s", itemID) - return col.Update(bson.M{"key": dbKey}, bson.M{"$unset": bson.M{findParam: 1}}) - } err = col.Remove(bson.M{"key": dbKey}) if err == mgo.ErrNotFound { - err = utils.ErrNotFound + err = nil } return } diff --git a/engine/storage_redis.go b/engine/storage_redis.go index cc4020f0a..87c3dab51 100755 --- a/engine/storage_redis.go +++ b/engine/storage_redis.go @@ -1411,10 +1411,7 @@ func (rs *RedisStorage) SetFilterIndexesDrv(dbKey string, indexes map[string]uti } func (rs *RedisStorage) RemoveFilterIndexesDrv(id string) (err error) { - if err = rs.Cmd("DEL", id).Err; err != nil { - return err - } - return + return rs.Cmd("DEL", id).Err } //GetFilterReverseIndexesDrv retrieves ReverseIndexes from dataDB @@ -1482,10 +1479,7 @@ func (rs *RedisStorage) SetFilterReverseIndexesDrv(dbKey string, revIdx map[stri } //RemoveFilterReverseIndexesDrv removes ReverseIndexes for a specific itemID -func (rs *RedisStorage) RemoveFilterReverseIndexesDrv(dbKey, itemID string) (err error) { - if itemID != "" { - return rs.Cmd("HDEL", dbKey, itemID).Err - } +func (rs *RedisStorage) RemoveFilterReverseIndexesDrv(dbKey string) (err error) { return rs.Cmd("DEL", dbKey).Err } diff --git a/engine/tp_reader.go b/engine/tp_reader.go index de0a5c20e..eb805a121 100755 --- a/engine/tp_reader.go +++ b/engine/tp_reader.go @@ -2843,7 +2843,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro log.Print("ResourceProfiles:") } for _, tpRsp := range tpr.resProfiles { - if err = tpr.dm.RemoveResourceProfile(tpRsp.Tenant, tpRsp.ID, utils.NonTransactional); err != nil { + if err = tpr.dm.RemoveResourceProfile(tpRsp.Tenant, tpRsp.ID, utils.NonTransactional, false); err != nil { return err } if verbose { @@ -2865,7 +2865,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro log.Print("StatQueueProfiles:") } for _, tpST := range tpr.sqProfiles { - if err = tpr.dm.RemoveStatQueueProfile(tpST.Tenant, tpST.ID, utils.NonTransactional); err != nil { + if err = tpr.dm.RemoveStatQueueProfile(tpST.Tenant, tpST.ID, utils.NonTransactional, false); err != nil { return err } if verbose { @@ -2887,7 +2887,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro log.Print("ThresholdProfiles:") } for _, tpTH := range tpr.thProfiles { - if err = tpr.dm.RemoveThresholdProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional); err != nil { + if err = tpr.dm.RemoveThresholdProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional, false); err != nil { return err } if verbose { @@ -2910,7 +2910,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro log.Print("SupplierProfiles:") } for _, tpTH := range tpr.sppProfiles { - if err = tpr.dm.RemoveSupplierProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional); err != nil { + if err = tpr.dm.RemoveSupplierProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional, false); err != nil { return err } if verbose {