Remove tmp key if we get error when we move (from tmp -> normal key)

This commit is contained in:
TeoV
2018-03-05 06:35:47 -05:00
committed by Dan Christian Bogos
parent 1338e43edb
commit ea5022e6ce

View File

@@ -377,93 +377,6 @@ func (self *ApierV1) ComputeFilterIndexes(args utils.ArgsComputeFilterIndexes, r
return nil
}
func (self *ApierV1) ComputeFilterIndexes(args utils.ArgsComputeFilterIndexes, reply *string) error {
transactionID := utils.GenUUID()
//ThresholdProfile Indexes
thdsIndexers, err := self.computeThresholdIndexes(args.Tenant, args.ThresholdIDs, transactionID)
if err != nil {
return utils.APIErrorHandler(err)
}
//StatQueueProfile Indexes
sqpIndexers, err := self.computeStatIndexes(args.Tenant, args.StatIDs, transactionID)
if err != nil {
return utils.APIErrorHandler(err)
}
//ResourceProfile Indexes
rsIndexes, err := self.computeResourceIndexes(args.Tenant, args.ResourceIDs, transactionID)
if err != nil {
return utils.APIErrorHandler(err)
}
//SupplierProfile Indexes
sppIndexes, err := self.computeSupplierIndexes(args.Tenant, args.SupplierIDs, transactionID)
if err != nil {
return utils.APIErrorHandler(err)
}
//AttributeProfile Indexes
attrIndexes, err := self.computeAttributeIndexes(args.Tenant, args.AttributeIDs, transactionID)
if err != nil {
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
}
}
*reply = utils.OK
return nil
}
func (self *ApierV1) computeThresholdIndexes(tenant string, thIDs *[]string, transactionID string) (filterIndexer *engine.FilterIndexer, err error) {
var thresholdIDs []string
thdsIndexers := engine.NewFilterIndexer(self.DataManager, utils.ThresholdProfilePrefix, tenant)