diff --git a/apier/v1/filter_indexes.go b/apier/v1/filter_indexes.go index 935deefe1..a8f186a7d 100644 --- a/apier/v1/filter_indexes.go +++ b/apier/v1/filter_indexes.go @@ -295,96 +295,81 @@ func (self *ApierV1) ComputeFilterIndexes(args utils.ArgsComputeFilterIndexes, r //ThresholdProfile Indexes thdsIndexers, err := self.computeThresholdIndexes(args.Tenant, args.ThresholdIDs, transactionID) if err != nil { - if err := self.DataManager.RemoveFilterIndexes( - engine.GetDBIndexKey(utils.ThresholdProfilePrefix, args.Tenant, false)); err != nil { - return err - } - if err := self.DataManager.RemoveFilterReverseIndexes( - engine.GetDBIndexKey(utils.ThresholdProfilePrefix, args.Tenant, true)); err != nil { - return err - } return utils.APIErrorHandler(err) } //StatQueueProfile Indexes sqpIndexers, err := self.computeStatIndexes(args.Tenant, args.StatIDs, transactionID) if err != nil { - if err := self.DataManager.RemoveFilterIndexes( - engine.GetDBIndexKey(utils.StatQueueProfilePrefix, args.Tenant, false)); err != nil { - return err - } - if err := self.DataManager.RemoveFilterReverseIndexes( - engine.GetDBIndexKey(utils.StatQueueProfilePrefix, args.Tenant, true)); err != nil { - return err - } return utils.APIErrorHandler(err) } //ResourceProfile Indexes rsIndexes, err := self.computeResourceIndexes(args.Tenant, args.ResourceIDs, transactionID) if err != nil { - if err := self.DataManager.RemoveFilterIndexes( - engine.GetDBIndexKey(utils.ResourceProfilesPrefix, args.Tenant, false)); err != nil { - return err - } - if err := self.DataManager.RemoveFilterReverseIndexes( - engine.GetDBIndexKey(utils.ResourceProfilesPrefix, args.Tenant, true)); err != nil { - return err - } return utils.APIErrorHandler(err) } //SupplierProfile Indexes sppIndexes, err := self.computeSupplierIndexes(args.Tenant, args.SupplierIDs, transactionID) if err != nil { - if err := self.DataManager.RemoveFilterIndexes( - engine.GetDBIndexKey(utils.SupplierProfilePrefix, args.Tenant, false)); err != nil { - return err - } - if err := self.DataManager.RemoveFilterReverseIndexes( - engine.GetDBIndexKey(utils.SupplierProfilePrefix, args.Tenant, true)); err != nil { - return err - } return utils.APIErrorHandler(err) } //AttributeProfile Indexes attrIndexes, err := self.computeAttributeIndexes(args.Tenant, args.AttributeIDs, transactionID) if err != nil { - if err := self.DataManager.RemoveFilterIndexes( - engine.GetDBIndexKey(utils.AttributeProfilePrefix, utils.ConcatenatedKey(args.Tenant, args.Context), false)); err != nil { - return err - } - if err := self.DataManager.RemoveFilterReverseIndexes( - engine.GetDBIndexKey(utils.AttributeProfilePrefix, utils.ConcatenatedKey(args.Tenant, args.Context), true)); err != nil { - return err - } return utils.APIErrorHandler(err) } //Now we move from tmpKey to the right key for each type //ThresholdProfile Indexes if thdsIndexers != nil { if err := thdsIndexers.StoreIndexes(true, transactionID); err != nil { + for _, id := range *args.ThresholdIDs { + if err := thdsIndexers.RemoveItemFromIndex(id); err != nil { + return err + } + } return err } } //StatQueueProfile Indexes if sqpIndexers != nil { if err := sqpIndexers.StoreIndexes(true, transactionID); err != nil { + for _, id := range *args.StatIDs { + if err := thdsIndexers.RemoveItemFromIndex(id); err != nil { + return err + } + } return err } } //ResourceProfile Indexes if rsIndexes != nil { if err := rsIndexes.StoreIndexes(true, transactionID); err != nil { + for _, id := range *args.ResourceIDs { + if err := thdsIndexers.RemoveItemFromIndex(id); err != nil { + return err + } + } return err } } //SupplierProfile Indexes if sppIndexes != nil { if err := sppIndexes.StoreIndexes(true, transactionID); err != nil { + for _, id := range *args.SupplierIDs { + if err := thdsIndexers.RemoveItemFromIndex(id); err != nil { + return err + } + } return err } } //AttributeProfile Indexes if attrIndexes != nil { if err := attrIndexes.StoreIndexes(true, transactionID); err != nil { + for _, id := range *args.AttributeIDs { + if err := thdsIndexers.RemoveItemFromIndex(id); err != nil { + return err + } + } return err } }