Remove oldIDx wden ctx is *any when overwriting

This commit is contained in:
adi
2022-12-20 16:52:03 +02:00
committed by Dan Christian Bogos
parent a892ae4986
commit 7914143f5e
2 changed files with 9 additions and 6 deletions

View File

@@ -797,7 +797,7 @@ func (dm *DataManager) SetThresholdProfile(th *ThresholdProfile, withIndex bool)
needsRemove = true
}
}
if needsRemove {
if needsRemove || len(oldTh.FilterIDs) == 0 {
if err = NewFilterIndexer(dm, utils.ThresholdProfilePrefix,
th.Tenant).RemoveItemFromIndex(th.Tenant, th.ID, oldTh.FilterIDs); err != nil {
return
@@ -915,7 +915,7 @@ func (dm *DataManager) SetStatQueueProfile(sqp *StatQueueProfile, withIndex bool
needsRemove = true
}
}
if needsRemove {
if needsRemove || len(oldSts.FilterIDs) == 0 {
if err = NewFilterIndexer(dm, utils.StatQueueProfilePrefix,
sqp.Tenant).RemoveItemFromIndex(sqp.Tenant, sqp.ID, oldSts.FilterIDs); err != nil {
return
@@ -1164,7 +1164,7 @@ func (dm *DataManager) SetResourceProfile(rp *ResourceProfile, withIndex bool) (
needsRemove = true
}
}
if needsRemove {
if needsRemove || len(oldRes.FilterIDs) == 0 {
if err = NewFilterIndexer(dm, utils.ResourceProfilesPrefix,
rp.Tenant).RemoveItemFromIndex(rp.Tenant, rp.ID, oldRes.FilterIDs); err != nil {
return
@@ -1950,12 +1950,13 @@ func (dm *DataManager) SetSupplierProfile(supp *SupplierProfile, withIndex bool)
if withIndex {
if oldSup != nil {
var needsRemove bool
utils.Logger.Crit(fmt.Sprintf("verifica needsRemove pt supp.ID: %v si oldSup.FilterIDs: %v", oldSup.ID, oldSup.FilterIDs))
for _, fltrID := range oldSup.FilterIDs {
if !utils.IsSliceMember(supp.FilterIDs, fltrID) {
needsRemove = true
}
}
if needsRemove {
if needsRemove || len(oldSup.FilterIDs) == 0 {
if err = NewFilterIndexer(dm, utils.SupplierProfilePrefix,
supp.Tenant).RemoveItemFromIndex(supp.Tenant, supp.ID, oldSup.FilterIDs); err != nil {
return
@@ -2221,7 +2222,7 @@ func (dm *DataManager) SetChargerProfile(cpp *ChargerProfile, withIndex bool) (e
needsRemove = true
}
}
if needsRemove {
if needsRemove || len(oldCpp.FilterIDs) == 0 {
if err = NewFilterIndexer(dm, utils.ChargerProfilePrefix,
cpp.Tenant).RemoveItemFromIndex(cpp.Tenant, cpp.ID, oldCpp.FilterIDs); err != nil {
return
@@ -2335,7 +2336,7 @@ func (dm *DataManager) SetDispatcherProfile(dpp *DispatcherProfile, withIndex bo
if oldDpp != nil {
for _, ctx := range oldDpp.Subsystems {
var needsRemove bool
if !utils.IsSliceMember(dpp.Subsystems, ctx) {
if !utils.IsSliceMember(dpp.Subsystems, ctx) || (ctx == utils.META_ANY && len(dpp.FilterIDs) != 0) {
needsRemove = true
} else {
for _, fltrID := range oldDpp.FilterIDs {

View File

@@ -239,7 +239,9 @@ func (rfi *FilterIndexer) RemoveItemFromIndex(tenant, itemID string, oldFilters
if len(oldFilters) == 0 && len(filterIDs) != 0 {
oldFilters = append(oldFilters, utils.META_NONE)
}
filterIDs = append(filterIDs, oldFilters...)
for _, fltrID := range filterIDs {
var fltr *Filter
if fltrID == utils.META_NONE {