From 084b514b012baa13232fc7b241a4c18fa4724042 Mon Sep 17 00:00:00 2001 From: TeoV Date: Sun, 14 Apr 2019 15:59:51 +0300 Subject: [PATCH] Make TPReader to remove indexes also --- engine/loader_it_test.go | 14 ++++++++++++++ engine/tpreader.go | 37 +++++++++++++++++++------------------ 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/engine/loader_it_test.go b/engine/loader_it_test.go index 32caa47ad..3f786569a 100644 --- a/engine/loader_it_test.go +++ b/engine/loader_it_test.go @@ -367,6 +367,20 @@ func TestLoaderITWriteToDatabase(t *testing.T) { } } + for tenantid, fltr := range loader.filters { + rcv, err := loader.dm.GetFilter(tenantid.Tenant, tenantid.ID, false, false, utils.NonTransactional) + if err != nil { + t.Error("Failed GetFilter: ", err.Error()) + } + filter, err := APItoFilter(fltr, "UTC") + if err != nil { + t.Error(err) + } + if !reflect.DeepEqual(filter, rcv) { + t.Errorf("Expecting: %v, received: %v", filter, rcv) + } + } + for tenantid, rl := range loader.resProfiles { rcv, err := loader.dm.GetResourceProfile(tenantid.Tenant, tenantid.ID, false, false, utils.NonTransactional) if err != nil { diff --git a/engine/tpreader.go b/engine/tpreader.go index ad71d8e3f..576af3b43 100644 --- a/engine/tpreader.go +++ b/engine/tpreader.go @@ -2156,22 +2156,11 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro log.Println("\t", ub.ID) } } - if verbose { - log.Print("Filters:") - } - for _, tpTH := range tpr.filters { - if err = tpr.dm.RemoveFilter(tpTH.Tenant, tpTH.ID, utils.NonTransactional); err != nil { - return err - } - if verbose { - log.Print("\t", tpTH.Tenant) - } - } if verbose { log.Print("ResourceProfiles:") } for _, tpRsp := range tpr.resProfiles { - if err = tpr.dm.RemoveResourceProfile(tpRsp.Tenant, tpRsp.ID, utils.NonTransactional, false); err != nil { + if err = tpr.dm.RemoveResourceProfile(tpRsp.Tenant, tpRsp.ID, utils.NonTransactional, true); err != nil { return err } if verbose { @@ -2193,7 +2182,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, false); err != nil { + if err = tpr.dm.RemoveStatQueueProfile(tpST.Tenant, tpST.ID, utils.NonTransactional, true); err != nil { return err } if verbose { @@ -2215,7 +2204,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, false); err != nil { + if err = tpr.dm.RemoveThresholdProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional, true); err != nil { return err } if verbose { @@ -2238,7 +2227,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, false); err != nil { + if err = tpr.dm.RemoveSupplierProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional, true); err != nil { return err } if verbose { @@ -2251,7 +2240,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro } for _, tpTH := range tpr.attributeProfiles { if err = tpr.dm.RemoveAttributeProfile(tpTH.Tenant, tpTH.ID, - utils.NonTransactional, false); err != nil && err.Error() != utils.ErrNotFound.Error() { + utils.NonTransactional, true); err != nil { return err } if verbose { @@ -2263,7 +2252,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro log.Print("ChargerProfiles:") } for _, tpTH := range tpr.chargerProfiles { - if err = tpr.dm.RemoveChargerProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional, false); err != nil { + if err = tpr.dm.RemoveChargerProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional, true); err != nil { return err } if verbose { @@ -2275,7 +2264,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro log.Print("DispatcherProfiles:") } for _, tpTH := range tpr.dispatcherProfiles { - if err = tpr.dm.RemoveDispatcherProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional, false); err != nil { + if err = tpr.dm.RemoveDispatcherProfile(tpTH.Tenant, tpTH.ID, utils.NonTransactional, true); err != nil { return err } if verbose { @@ -2323,6 +2312,18 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro } } } + //We remove the filters at the end because of indexes + if verbose { + log.Print("Filters:") + } + for _, tpTH := range tpr.filters { + if err = tpr.dm.RemoveFilter(tpTH.Tenant, tpTH.ID, utils.NonTransactional); err != nil { + return err + } + if verbose { + log.Print("\t", tpTH.Tenant) + } + } return }