mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Add GetActionTriggers in DataManager
This commit is contained in:
committed by
Dan Christian Bogos
parent
935ff50f49
commit
7d98b96816
@@ -260,7 +260,7 @@ func (self *ApierV1) SetAccount(attr utils.AttrSetAccount, reply *string) (err e
|
||||
}
|
||||
|
||||
if attr.ActionTriggersId != "" {
|
||||
atrs, err := self.DataManager.DataDB().GetActionTriggers(attr.ActionTriggersId, false, utils.NonTransactional)
|
||||
atrs, err := self.DataManager.GetActionTriggers(attr.ActionTriggersId, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ func (self *ApierV1) AddAccountActionTriggers(attr AttrAddAccountActionTriggers,
|
||||
account.ActionTriggers = make(engine.ActionTriggers, 0)
|
||||
}
|
||||
for _, actionTriggerID := range *attr.ActionTriggerIDs {
|
||||
atrs, err := self.DataManager.DataDB().GetActionTriggers(actionTriggerID, false, utils.NonTransactional)
|
||||
atrs, err := self.DataManager.GetActionTriggers(actionTriggerID, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
@@ -356,7 +356,7 @@ func (self *ApierV1) RemoveActionTrigger(attr AttrRemoveActionTrigger, reply *st
|
||||
}
|
||||
return err
|
||||
} else {
|
||||
atrs, err := self.DataManager.DataDB().GetActionTriggers(attr.GroupID, false, utils.NonTransactional)
|
||||
atrs, err := self.DataManager.GetActionTriggers(attr.GroupID, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
*reply = err.Error()
|
||||
return err
|
||||
@@ -410,7 +410,7 @@ func (self *ApierV1) SetActionTrigger(attr AttrSetActionTrigger, reply *string)
|
||||
return utils.NewErrMandatoryIeMissing(missing...)
|
||||
}
|
||||
|
||||
atrs, _ := self.DataManager.DataDB().GetActionTriggers(attr.GroupID, false, utils.NonTransactional)
|
||||
atrs, _ := self.DataManager.GetActionTriggers(attr.GroupID, false, utils.NonTransactional)
|
||||
var newAtr *engine.ActionTrigger
|
||||
if attr.UniqueID != "" {
|
||||
//search for exiting one
|
||||
@@ -533,7 +533,7 @@ func (self *ApierV1) GetActionTriggers(attr AttrGetActionTriggers, atrs *engine.
|
||||
var allAttrs engine.ActionTriggers
|
||||
if len(attr.GroupIDs) > 0 {
|
||||
for _, key := range attr.GroupIDs {
|
||||
getAttrs, err := self.DataManager.DataDB().GetActionTriggers(key, false, utils.NonTransactional)
|
||||
getAttrs, err := self.DataManager.GetActionTriggers(key, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -546,7 +546,7 @@ func (self *ApierV1) GetActionTriggers(attr AttrGetActionTriggers, atrs *engine.
|
||||
return err
|
||||
}
|
||||
for _, key := range keys {
|
||||
getAttrs, err := self.DataManager.DataDB().GetActionTriggers(key[len(utils.ACTION_TRIGGER_PREFIX):], false, utils.NonTransactional)
|
||||
getAttrs, err := self.DataManager.GetActionTriggers(key[len(utils.ACTION_TRIGGER_PREFIX):], false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -194,7 +194,7 @@ func (self *ApierV2) SetAccount(attr AttrSetAccount, reply *string) error {
|
||||
ub.ActionTriggers = make(engine.ActionTriggers, 0)
|
||||
}
|
||||
for _, actionTriggerID := range *attr.ActionTriggerIDs {
|
||||
atrs, err := self.DataManager.DataDB().GetActionTriggers(actionTriggerID, false, utils.NonTransactional)
|
||||
atrs, err := self.DataManager.GetActionTriggers(actionTriggerID, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ func (dm *DataManager) CacheDataFromDB(prfx string, ids []string, mustBeCached b
|
||||
case utils.AccountActionPlansPrefix:
|
||||
_, err = dm.DataDB().GetAccountActionPlans(dataID, true, utils.NonTransactional)
|
||||
case utils.ACTION_TRIGGER_PREFIX:
|
||||
_, err = dm.DataDB().GetActionTriggers(dataID, true, utils.NonTransactional)
|
||||
_, err = dm.GetActionTriggers(dataID, true, utils.NonTransactional)
|
||||
case utils.SHARED_GROUP_PREFIX:
|
||||
_, err = dm.DataDB().GetSharedGroup(dataID, true, utils.NonTransactional)
|
||||
case utils.DERIVEDCHARGERS_PREFIX:
|
||||
@@ -494,3 +494,25 @@ func (dm *DataManager) RemoveResourceProfile(tenant, id, transactionID string) (
|
||||
cacheCommit(transactionID), transactionID)
|
||||
return
|
||||
}
|
||||
|
||||
func (dm *DataManager) GetActionTriggers(id string, skipCache bool, transactionID string) (attrs ActionTriggers, err error) {
|
||||
key := utils.ACTION_TRIGGER_PREFIX + id
|
||||
if !skipCache {
|
||||
if x, ok := cache.Get(key); ok {
|
||||
if x == nil {
|
||||
return nil, utils.ErrNotFound
|
||||
}
|
||||
return x.(ActionTriggers), nil
|
||||
}
|
||||
}
|
||||
attrs, err = dm.dataDB.GetActionTriggersDrv(id)
|
||||
if err != nil {
|
||||
if err == utils.ErrNotFound {
|
||||
cache.Set(key, nil, cacheCommit(transactionID), transactionID)
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
cache.Set(key, attrs, cacheCommit(transactionID), transactionID)
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ func TestLoaderITWriteToDatabase(t *testing.T) {
|
||||
}
|
||||
|
||||
for k, atrs := range loader.actionsTriggers {
|
||||
rcv, err := loader.dataStorage.GetActionTriggers(k, true, utils.NonTransactional)
|
||||
rcv, err := loader.dm.GetActionTriggers(k, true, utils.NonTransactional)
|
||||
if err != nil {
|
||||
t.Error("Failed GetActionTriggers: ", err.Error())
|
||||
}
|
||||
|
||||
@@ -1397,13 +1397,13 @@ func testOnStorITCRUDActionTriggers(t *testing.T) {
|
||||
ActivationDate: time.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC).Local()},
|
||||
}
|
||||
atsID := ats[0].ID
|
||||
if _, rcvErr := onStor.DataDB().GetActionTriggers(atsID, true, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
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 {
|
||||
t.Error(err)
|
||||
}
|
||||
if rcv, err := onStor.DataDB().GetActionTriggers(atsID, true, utils.NonTransactional); err != nil {
|
||||
if rcv, err := onStor.GetActionTriggers(atsID, true, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(ats[0], rcv[0]) {
|
||||
t.Errorf("Expecting: %v, received: %v", ats[0], rcv[0])
|
||||
@@ -1416,7 +1416,7 @@ func testOnStorITCRUDActionTriggers(t *testing.T) {
|
||||
// t.Error(rcvErr)
|
||||
// }
|
||||
//
|
||||
if rcv, err := onStor.DataDB().GetActionTriggers(atsID, false, utils.NonTransactional); err != nil {
|
||||
if rcv, err := onStor.GetActionTriggers(atsID, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(ats[0], rcv[0]) {
|
||||
t.Errorf("Expecting: %v, received: %v", ats[0], rcv[0])
|
||||
@@ -1428,7 +1428,7 @@ func testOnStorITCRUDActionTriggers(t *testing.T) {
|
||||
if err := onStor.DataDB().RemoveActionTriggers(atsID, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, rcvErr := onStor.DataDB().GetActionTriggers(atsID, true, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
if _, rcvErr := onStor.GetActionTriggers(atsID, true, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ type DataDB interface {
|
||||
RemoveActions(string, string) error
|
||||
GetSharedGroup(string, bool, string) (*SharedGroup, error)
|
||||
SetSharedGroup(*SharedGroup, string) error
|
||||
GetActionTriggers(string, bool, string) (ActionTriggers, error)
|
||||
GetActionTriggersDrv(string) (ActionTriggers, error)
|
||||
SetActionTriggers(string, ActionTriggers, string) error
|
||||
RemoveActionTriggers(string, string) error
|
||||
GetActionPlan(string, bool, string) (*ActionPlan, error)
|
||||
|
||||
@@ -832,26 +832,15 @@ func (ms *MapStorage) AddLoadHistory(*utils.LoadInstance, int, string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ms *MapStorage) GetActionTriggers(key string, skipCache bool, transactionID string) (atrs ActionTriggers, err error) {
|
||||
func (ms *MapStorage) GetActionTriggersDrv(key string) (atrs ActionTriggers, err error) {
|
||||
ms.mu.RLock()
|
||||
defer ms.mu.RUnlock()
|
||||
cCommit := cacheCommit(transactionID)
|
||||
key = utils.ACTION_TRIGGER_PREFIX + key
|
||||
if !skipCache {
|
||||
if x, ok := cache.Get(key); ok {
|
||||
if x != nil {
|
||||
return x.(ActionTriggers), nil
|
||||
}
|
||||
return nil, utils.ErrNotFound
|
||||
}
|
||||
}
|
||||
if values, ok := ms.dict[key]; ok {
|
||||
err = ms.ms.Unmarshal(values, &atrs)
|
||||
} else {
|
||||
cache.Set(key, nil, cCommit, transactionID)
|
||||
return nil, utils.ErrNotFound
|
||||
}
|
||||
cache.Set(key, atrs, cCommit, transactionID)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -1410,17 +1410,7 @@ func (ms *MongoStorage) AddLoadHistory(ldInst *utils.LoadInstance, loadHistSize
|
||||
return err
|
||||
}
|
||||
|
||||
func (ms *MongoStorage) GetActionTriggers(key string, skipCache bool, transactionID string) (atrs ActionTriggers, err error) {
|
||||
cacheKey := utils.ACTION_TRIGGER_PREFIX + key
|
||||
if !skipCache {
|
||||
if x, ok := cache.Get(cacheKey); ok {
|
||||
if x != nil {
|
||||
return x.(ActionTriggers), nil
|
||||
}
|
||||
return nil, utils.ErrNotFound
|
||||
}
|
||||
}
|
||||
|
||||
func (ms *MongoStorage) GetActionTriggersDrv(key string) (atrs ActionTriggers, err error) {
|
||||
var kv struct {
|
||||
Key string
|
||||
Value ActionTriggers
|
||||
@@ -1429,13 +1419,11 @@ func (ms *MongoStorage) GetActionTriggers(key string, skipCache bool, transactio
|
||||
defer session.Close()
|
||||
if err = col.Find(bson.M{"key": key}).One(&kv); err != nil {
|
||||
if err == mgo.ErrNotFound {
|
||||
cache.Set(cacheKey, nil, cacheCommit(transactionID), transactionID)
|
||||
err = utils.ErrNotFound
|
||||
}
|
||||
return
|
||||
}
|
||||
atrs = kv.Value
|
||||
cache.Set(cacheKey, atrs, cacheCommit(transactionID), transactionID)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -930,20 +930,11 @@ func (rs *RedisStorage) AddLoadHistory(ldInst *utils.LoadInstance, loadHistSize
|
||||
return err
|
||||
}
|
||||
|
||||
func (rs *RedisStorage) GetActionTriggers(key string, skipCache bool, transactionID string) (atrs ActionTriggers, err error) {
|
||||
func (rs *RedisStorage) GetActionTriggersDrv(key string) (atrs ActionTriggers, err error) {
|
||||
key = utils.ACTION_TRIGGER_PREFIX + key
|
||||
if !skipCache {
|
||||
if x, ok := cache.Get(key); ok {
|
||||
if x == nil {
|
||||
return nil, utils.ErrNotFound
|
||||
}
|
||||
return x.(ActionTriggers), nil
|
||||
}
|
||||
}
|
||||
var values []byte
|
||||
if values, err = rs.Cmd("GET", key).Bytes(); err != nil {
|
||||
if err == redis.ErrRespNil { // did not find the destination
|
||||
cache.Set(key, nil, cacheCommit(transactionID), transactionID)
|
||||
err = utils.ErrNotFound
|
||||
}
|
||||
return
|
||||
@@ -951,7 +942,6 @@ func (rs *RedisStorage) GetActionTriggers(key string, skipCache bool, transactio
|
||||
if err = rs.ms.Unmarshal(values, &atrs); err != nil {
|
||||
return
|
||||
}
|
||||
cache.Set(key, atrs, cacheCommit(transactionID), transactionID)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user