From 7b1eb4d46dd255af5d3f398295a062a4bef9032e Mon Sep 17 00:00:00 2001 From: TeoV Date: Thu, 19 Oct 2017 16:10:43 +0300 Subject: [PATCH] Add SetActionTriggers in DataManager --- apier/v1/triggers.go | 4 ++-- engine/datamanager.go | 11 +++++++++++ engine/onstor_it_test.go | 4 ++-- engine/storage_interface.go | 2 +- engine/storage_map.go | 3 +-- engine/storage_mongo_datadb.go | 2 +- engine/storage_redis.go | 2 +- engine/tp_reader.go | 6 +++--- migrator/action_trigger.go | 2 +- 9 files changed, 23 insertions(+), 13 deletions(-) diff --git a/apier/v1/triggers.go b/apier/v1/triggers.go index eecf49e68..7ceb17094 100644 --- a/apier/v1/triggers.go +++ b/apier/v1/triggers.go @@ -369,7 +369,7 @@ func (self *ApierV1) RemoveActionTrigger(attr AttrRemoveActionTrigger, reply *st remainingAtrs = append(remainingAtrs, atr) } // set the cleared list back - err = self.DataManager.DataDB().SetActionTriggers(attr.GroupID, remainingAtrs, utils.NonTransactional) + err = self.DataManager.SetActionTriggers(attr.GroupID, remainingAtrs, utils.NonTransactional) if err != nil { *reply = err.Error() } else { @@ -514,7 +514,7 @@ func (self *ApierV1) SetActionTrigger(attr AttrSetActionTrigger, reply *string) if attr.ActionsID != nil { newAtr.ActionsID = *attr.ActionsID } - if err = self.DataManager.DataDB().SetActionTriggers(attr.GroupID, atrs, utils.NonTransactional); err != nil { + if err = self.DataManager.SetActionTriggers(attr.GroupID, atrs, utils.NonTransactional); err != nil { return } if err = self.DataManager.CacheDataFromDB(utils.ACTION_TRIGGER_PREFIX, []string{attr.GroupID}, true); err != nil { diff --git a/engine/datamanager.go b/engine/datamanager.go index 700d2cf06..de1af1909 100644 --- a/engine/datamanager.go +++ b/engine/datamanager.go @@ -544,3 +544,14 @@ func (dm *DataManager) GetLCR(id string, skipCache bool, transactionID string) ( cache.Set(key, lcr, cacheCommit(transactionID), transactionID) return } + +func (dm *DataManager) SetActionTriggers(key string, attr ActionTriggers, transactionID string) (err error) { + if dm.DataDB().GetStorageType() == utils.MAPSTOR { + if err = dm.DataDB().SetActionTriggersDrv(key, attr); err != nil { + cache.RemKey(utils.ACTION_TRIGGER_PREFIX+key, cacheCommit(transactionID), transactionID) + } + return + } else { + return dm.DataDB().SetActionTriggersDrv(key, attr) + } +} diff --git a/engine/onstor_it_test.go b/engine/onstor_it_test.go index f962f9d8a..2c23feaa6 100644 --- a/engine/onstor_it_test.go +++ b/engine/onstor_it_test.go @@ -556,7 +556,7 @@ func testOnStorITCacheActionTriggers(t *testing.T) { ActivationDate: time.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC).Local()}, } atsID := ats[0].ID - if err := onStor.DataDB().SetActionTriggers(atsID, ats, utils.NonTransactional); err != nil { + if err := onStor.SetActionTriggers(atsID, ats, utils.NonTransactional); err != nil { t.Error(err) } expectedCAt := []string{"atr_testOnStorITCacheActionTrigger"} @@ -1400,7 +1400,7 @@ func testOnStorITCRUDActionTriggers(t *testing.T) { if _, rcvErr := onStor.GetActionTriggers(atsID, true, utils.NonTransactional); rcvErr != utils.ErrNotFound { t.Error(rcvErr) } - if err := onStor.DataDB().SetActionTriggers(atsID, ats, utils.NonTransactional); err != nil { + if err := onStor.SetActionTriggers(atsID, ats, utils.NonTransactional); err != nil { t.Error(err) } if rcv, err := onStor.GetActionTriggers(atsID, true, utils.NonTransactional); err != nil { diff --git a/engine/storage_interface.go b/engine/storage_interface.go index d893941ca..37e61bd50 100755 --- a/engine/storage_interface.go +++ b/engine/storage_interface.go @@ -72,7 +72,7 @@ type DataDB interface { GetSharedGroup(string, bool, string) (*SharedGroup, error) SetSharedGroup(*SharedGroup, string) error GetActionTriggersDrv(string) (ActionTriggers, error) - SetActionTriggers(string, ActionTriggers, string) error + SetActionTriggersDrv(string, ActionTriggers) error RemoveActionTriggersDrv(string) error GetActionPlan(string, bool, string) (*ActionPlan, error) SetActionPlan(string, *ActionPlan, bool, string) error diff --git a/engine/storage_map.go b/engine/storage_map.go index 1ac8cc59c..979ccb0a4 100755 --- a/engine/storage_map.go +++ b/engine/storage_map.go @@ -833,7 +833,7 @@ func (ms *MapStorage) GetActionTriggersDrv(key string) (atrs ActionTriggers, err return } -func (ms *MapStorage) SetActionTriggers(key string, atrs ActionTriggers, transactionID string) (err error) { +func (ms *MapStorage) SetActionTriggersDrv(key string, atrs ActionTriggers) (err error) { ms.mu.Lock() defer ms.mu.Unlock() if len(atrs) == 0 { @@ -843,7 +843,6 @@ func (ms *MapStorage) SetActionTriggers(key string, atrs ActionTriggers, transac } result, err := ms.ms.Marshal(&atrs) ms.dict[utils.ACTION_TRIGGER_PREFIX+key] = result - cache.RemKey(utils.ACTION_TRIGGER_PREFIX+key, cacheCommit(transactionID), transactionID) return } diff --git a/engine/storage_mongo_datadb.go b/engine/storage_mongo_datadb.go index 4210a205d..6b2c12b7b 100755 --- a/engine/storage_mongo_datadb.go +++ b/engine/storage_mongo_datadb.go @@ -1416,7 +1416,7 @@ func (ms *MongoStorage) GetActionTriggersDrv(key string) (atrs ActionTriggers, e return } -func (ms *MongoStorage) SetActionTriggers(key string, atrs ActionTriggers, transactionID string) (err error) { +func (ms *MongoStorage) SetActionTriggersDrv(key string, atrs ActionTriggers) (err error) { session, col := ms.conn(colAtr) defer session.Close() if len(atrs) == 0 { diff --git a/engine/storage_redis.go b/engine/storage_redis.go index 1c4c32108..72c9fd4fc 100755 --- a/engine/storage_redis.go +++ b/engine/storage_redis.go @@ -935,7 +935,7 @@ func (rs *RedisStorage) GetActionTriggersDrv(key string) (atrs ActionTriggers, e return } -func (rs *RedisStorage) SetActionTriggers(key string, atrs ActionTriggers, transactionID string) (err error) { +func (rs *RedisStorage) SetActionTriggersDrv(key string, atrs ActionTriggers) (err error) { if len(atrs) == 0 { // delete the key return rs.Cmd("DEL", utils.ACTION_TRIGGER_PREFIX+key).Err diff --git a/engine/tp_reader.go b/engine/tp_reader.go index 54f63f1f4..e55efa2c1 100755 --- a/engine/tp_reader.go +++ b/engine/tp_reader.go @@ -1012,7 +1012,7 @@ func (tpr *TpReader) LoadAccountActionsFiltered(qriedAA *utils.TPAccountActions) actionIDs = append(actionIDs, atr.ActionsID) } // write action triggers - err = tpr.dm.DataDB().SetActionTriggers(accountAction.ActionTriggersId, actionTriggers, utils.NonTransactional) + err = tpr.dm.SetActionTriggers(accountAction.ActionTriggersId, actionTriggers, utils.NonTransactional) if err != nil { return errors.New(err.Error() + " (SetActionTriggers): " + accountAction.ActionTriggersId) } @@ -1352,7 +1352,7 @@ func (tpr *TpReader) LoadCdrStatsFiltered(tag string, save bool) (err error) { return fmt.Errorf("could not get action triggers for cdr stats id %s: %s", cs.Id, triggerTag) } // write action triggers - err = tpr.dm.DataDB().SetActionTriggers(triggerTag, triggers, utils.NonTransactional) + err = tpr.dm.SetActionTriggers(triggerTag, triggers, utils.NonTransactional) if err != nil { return errors.New(err.Error() + " (SetActionTriggers): " + triggerTag) } @@ -1902,7 +1902,7 @@ func (tpr *TpReader) WriteToDatabase(flush, verbose, disable_reverse bool) (err log.Print("Action Triggers:") } for k, atrs := range tpr.actionsTriggers { - err = tpr.dm.DataDB().SetActionTriggers(k, atrs, utils.NonTransactional) + err = tpr.dm.SetActionTriggers(k, atrs, utils.NonTransactional) if err != nil { return err } diff --git a/migrator/action_trigger.go b/migrator/action_trigger.go index bf1102e5c..852cc0b71 100644 --- a/migrator/action_trigger.go +++ b/migrator/action_trigger.go @@ -70,7 +70,7 @@ func (m *Migrator) migrateActionTriggers() (err error) { } if m.dryRun != true { - if err := m.dm.DataDB().SetActionTriggers(acts[0].ID, acts, utils.NonTransactional); err != nil { + if err := m.dm.SetActionTriggers(acts[0].ID, acts, utils.NonTransactional); err != nil { return err } m.stats[utils.ActionTriggers] += 1