From 1d8194dff1c7f128afad71cfc6781a61cd3623fc Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Wed, 25 Nov 2015 19:50:18 +0200 Subject: [PATCH 1/2] better error and logging from engine --- engine/calldesc.go | 18 +++++++++--------- utils/consts.go | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/engine/calldesc.go b/engine/calldesc.go index a83cb997d..399e96442 100644 --- a/engine/calldesc.go +++ b/engine/calldesc.go @@ -196,7 +196,7 @@ func (cd *CallDescriptor) LoadRatingPlans() (err error) { } //load the rating plans if err != nil || !cd.continousRatingInfos() { - //log.Print("ERR: ", cd.GetKey(cd.Subject), err) + utils.Logger.Err(fmt.Sprintf("Destination %s not authorized for account: %s, subject: %s", cd.Destination, cd.GetAccountKey(), cd.GetKey(cd.Subject))) err = utils.ErrUnauthorizedDestination } return @@ -496,7 +496,7 @@ func (cd *CallDescriptor) getCost() (*CallCost, error) { } err := cd.LoadRatingPlans() if err != nil { - utils.Logger.Err(fmt.Sprintf("error getting cost for key <%s>: %s", cd.GetKey(cd.Subject), err.Error())) + //utils.Logger.Err(fmt.Sprintf("error getting cost for key <%s>: %s", cd.GetKey(cd.Subject), err.Error())) return &CallCost{Cost: -1}, err } timespans := cd.splitInTimeSpans() @@ -616,8 +616,8 @@ func (origCD *CallDescriptor) getMaxSessionDuration(origAcc *Account) (time.Dura func (cd *CallDescriptor) GetMaxSessionDuration() (duration time.Duration, err error) { cd.account = nil // make sure it's not cached if account, err := cd.getAccount(); err != nil || account == nil { - utils.Logger.Err(fmt.Sprintf("Could not get account for <%s>: %s.", cd.GetAccountKey(), err.Error())) - return 0, err + utils.Logger.Err(fmt.Sprintf("Account: %s, not found", cd.GetAccountKey())) + return 0, utils.ErrAccountNotFound } else { if memberIds, err := account.GetUniqueSharedGroupMembers(cd); err == nil { if _, err := Guardian.Guard(func() (interface{}, error) { @@ -673,11 +673,11 @@ func (cd *CallDescriptor) Debit() (cc *CallCost, err error) { cd.account = nil // make sure it's not cached // lock all group members if account, err := cd.getAccount(); err != nil || account == nil { - utils.Logger.Err(fmt.Sprintf("Could not get user balance for <%s>: %s.", cd.GetAccountKey(), err.Error())) - return nil, err + utils.Logger.Err(fmt.Sprintf("Account: %s, not found", cd.GetAccountKey())) + return nil, utils.ErrAccountNotFound } else { if memberIds, err := account.GetUniqueSharedGroupMembers(cd); err == nil { - Guardian.Guard(func() (interface{}, error) { + _, err = Guardian.Guard(func() (interface{}, error) { cc, err = cd.debit(account, false, true) return 0, err }, 0, memberIds...) @@ -695,8 +695,8 @@ func (cd *CallDescriptor) Debit() (cc *CallCost, err error) { func (cd *CallDescriptor) MaxDebit() (cc *CallCost, err error) { cd.account = nil // make sure it's not cached if account, err := cd.getAccount(); err != nil || account == nil { - utils.Logger.Err(fmt.Sprintf("Could not get user balance for <%s>: %s.", cd.GetAccountKey(), err.Error())) - return nil, utils.ErrUnauthorizedDestination + utils.Logger.Err(fmt.Sprintf("Account: %s, not found", cd.GetAccountKey())) + return nil, utils.ErrAccountNotFound } else { //log.Printf("ACC: %+v", account) if memberIds, err := account.GetUniqueSharedGroupMembers(cd); err == nil { diff --git a/utils/consts.go b/utils/consts.go index 7024a73e5..2a58fc381 100644 --- a/utils/consts.go +++ b/utils/consts.go @@ -26,6 +26,7 @@ var ( ErrInvalidPath = errors.New("INVALID_PATH") ErrInvalidKey = errors.New("INVALID_KEY") ErrUnauthorizedDestination = errors.New("UNAUTHORIZED_DESTINATION") + ErrAccountNotFound = errors.New("AccountNotFound") ) const ( From 40fa360ffbce6d96000ffbb8bd5cc6b5bf37eaf8 Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Wed, 25 Nov 2015 19:55:42 +0200 Subject: [PATCH 2/2] fixed tests --- general_tests/auth_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general_tests/auth_test.go b/general_tests/auth_test.go index a47948eb2..d976c5c8e 100644 --- a/general_tests/auth_test.go +++ b/general_tests/auth_test.go @@ -97,7 +97,7 @@ func TestAuthPostpaidNoAcnt(t *testing.T) { Category: "call", Account: "nonexistent", Subject: "testauthpostpaid1", Destination: "4986517174963", SetupTime: time.Date(2015, 8, 27, 11, 26, 0, 0, time.UTC)} var maxSessionTime float64 - if err := rsponder.GetDerivedMaxSessionTime(cdr, &maxSessionTime); err == nil || err != utils.ErrNotFound { + if err := rsponder.GetDerivedMaxSessionTime(cdr, &maxSessionTime); err == nil || err != utils.ErrAccountNotFound { t.Error(err) } }