From 714793b7f9f520207e5c626551de07e699d80b74 Mon Sep 17 00:00:00 2001 From: TeoV Date: Sat, 21 Oct 2017 11:51:02 +0300 Subject: [PATCH] Add RemoveRatingProfile in DataManager --- apier/v1/apier.go | 2 +- engine/datamanager.go | 8 ++++++++ engine/onstor_it_test.go | 2 +- engine/storage_interface.go | 2 +- engine/storage_map.go | 3 +-- engine/storage_mongo_datadb.go | 3 +-- engine/storage_redis.go | 3 +-- 7 files changed, 14 insertions(+), 9 deletions(-) diff --git a/apier/v1/apier.go b/apier/v1/apier.go index e28ef523d..b53fe54aa 100644 --- a/apier/v1/apier.go +++ b/apier/v1/apier.go @@ -1618,7 +1618,7 @@ func (self *ApierV1) RemoveRatingProfile(attr AttrRemoveRatingProfile, reply *st return utils.ErrMandatoryIeMissing } _, err := guardian.Guardian.Guard(func() (interface{}, error) { - err := self.DataManager.DataDB().RemoveRatingProfile(attr.GetId(), utils.NonTransactional) + err := self.DataManager.RemoveRatingProfile(attr.GetId(), utils.NonTransactional) if err != nil { return 0, err } diff --git a/engine/datamanager.go b/engine/datamanager.go index 5c2586c6e..294f1d048 100644 --- a/engine/datamanager.go +++ b/engine/datamanager.go @@ -729,3 +729,11 @@ func (dm *DataManager) SetRatingProfile(rpf *RatingProfile, transactionID string return dm.DataDB().SetRatingProfileDrv(rpf) } } + +func (dm *DataManager) RemoveRatingProfile(key string, transactionID string) (err error) { + if err = dm.DataDB().RemoveRatingProfileDrv(key); err != nil { + return + } + cache.RemKey(utils.RATING_PROFILE_PREFIX+key, cacheCommit(transactionID), transactionID) + return +} diff --git a/engine/onstor_it_test.go b/engine/onstor_it_test.go index 6525e3d37..f43a55df6 100644 --- a/engine/onstor_it_test.go +++ b/engine/onstor_it_test.go @@ -1096,7 +1096,7 @@ func testOnStorITCRUDRatingProfile(t *testing.T) { // if err = onStor.DataDB().SelectDatabase(onStorCfg); err != nil { // t.Error(err) // } - if err = onStor.DataDB().RemoveRatingProfile(rpf.Id, utils.NonTransactional); err != nil { + if err = onStor.RemoveRatingProfile(rpf.Id, utils.NonTransactional); err != nil { t.Error(err) } if _, rcvErr := onStor.GetRatingProfile(rpf.Id, true, utils.NonTransactional); rcvErr != utils.ErrNotFound { diff --git a/engine/storage_interface.go b/engine/storage_interface.go index 1fd28b583..9a6438bd0 100755 --- a/engine/storage_interface.go +++ b/engine/storage_interface.go @@ -52,7 +52,7 @@ type DataDB interface { SetRatingPlanDrv(*RatingPlan) error GetRatingProfileDrv(string) (*RatingProfile, error) SetRatingProfileDrv(*RatingProfile) error - RemoveRatingProfile(string, string) error + RemoveRatingProfileDrv(string) error GetDestination(string, bool, string) (*Destination, error) SetDestination(*Destination, string) error RemoveDestination(string, string) error diff --git a/engine/storage_map.go b/engine/storage_map.go index 35e56fe12..df383c26a 100755 --- a/engine/storage_map.go +++ b/engine/storage_map.go @@ -242,13 +242,12 @@ func (ms *MapStorage) SetRatingProfileDrv(rpf *RatingProfile) (err error) { return } -func (ms *MapStorage) RemoveRatingProfile(key string, transactionID string) (err error) { +func (ms *MapStorage) RemoveRatingProfileDrv(key string) (err error) { ms.mu.Lock() defer ms.mu.Unlock() for k := range ms.dict { if strings.HasPrefix(k, key) { delete(ms.dict, key) - cache.RemKey(k, cacheCommit(transactionID), transactionID) response := 0 rpf := &RatingProfile{Id: key} if historyScribe != nil { diff --git a/engine/storage_mongo_datadb.go b/engine/storage_mongo_datadb.go index dc06f2afc..3c0332f1b 100755 --- a/engine/storage_mongo_datadb.go +++ b/engine/storage_mongo_datadb.go @@ -692,7 +692,7 @@ func (ms *MongoStorage) SetRatingProfileDrv(rp *RatingProfile) (err error) { return } -func (ms *MongoStorage) RemoveRatingProfile(key, transactionID string) error { +func (ms *MongoStorage) RemoveRatingProfileDrv(key string) error { session, col := ms.conn(colRpf) defer session.Close() iter := col.Find(bson.M{"id": key}).Select(bson.M{"id": 1}).Iter() @@ -701,7 +701,6 @@ func (ms *MongoStorage) RemoveRatingProfile(key, transactionID string) error { if err := col.Remove(bson.M{"id": result.Id}); err != nil { return err } - cache.RemKey(utils.RATING_PROFILE_PREFIX+key, cacheCommit(transactionID), transactionID) rpf := &RatingProfile{Id: result.Id} if historyScribe != nil { var response int diff --git a/engine/storage_redis.go b/engine/storage_redis.go index 46f65edaa..f1c7851e4 100755 --- a/engine/storage_redis.go +++ b/engine/storage_redis.go @@ -286,7 +286,7 @@ func (rs *RedisStorage) SetRatingProfileDrv(rpf *RatingProfile) (err error) { return } -func (rs *RedisStorage) RemoveRatingProfile(key string, transactionID string) error { +func (rs *RedisStorage) RemoveRatingProfileDrv(key string) error { keys, err := rs.Cmd("KEYS", utils.RATING_PROFILE_PREFIX+key+"*").List() if err != nil { return err @@ -295,7 +295,6 @@ func (rs *RedisStorage) RemoveRatingProfile(key string, transactionID string) er if err = rs.Cmd("DEL", key).Err; err != nil { return err } - cache.RemKey(key, cacheCommit(transactionID), transactionID) rpf := &RatingProfile{Id: key} if historyScribe != nil { response := 0