mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-24 08:38:45 +05:00
SMG - simplified sessionStart handling, returning error from upstream
This commit is contained in:
@@ -18,7 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
package engine
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -639,5 +638,5 @@ func TestEventCostAsCallCost(t *testing.T) {
|
||||
if len(eCC.Timespans) != len(cc.Timespans) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", eCC, cc)
|
||||
}
|
||||
fmt.Printf("Expecting: %s, \nreceived : %s\n", utils.ToJSON(eCC), utils.ToJSON(cc))
|
||||
//fmt.Printf("Expecting: %s, \nreceived : %s\n", utils.ToJSON(eCC), utils.ToJSON(cc))
|
||||
}
|
||||
|
||||
@@ -361,17 +361,17 @@ func (smg *SMGeneric) getSessionIDsForPrefix(prefix string, passiveSessions bool
|
||||
}
|
||||
|
||||
// sessionStart will handle a new session, pass the connectionId so we can communicate on disconnect request
|
||||
func (smg *SMGeneric) sessionStart(evStart SMGenericEvent, clntConn rpcclient.RpcClientConnection) error {
|
||||
func (smg *SMGeneric) sessionStart(evStart SMGenericEvent, clntConn rpcclient.RpcClientConnection) (err error) {
|
||||
cgrID := evStart.GetCGRID(utils.META_DEFAULT)
|
||||
processed, err := guardian.Guardian.Guard(func() (interface{}, error) { // Lock it on CGRID level
|
||||
_, err = guardian.Guardian.Guard(func() (interface{}, error) { // Lock it on CGRID level
|
||||
if pSS := smg.passiveToActive(cgrID); len(pSS) != 0 {
|
||||
return true, nil // ToDo: handle here also debits
|
||||
return nil, nil // ToDo: handle here also debits
|
||||
}
|
||||
var sessionRuns []*engine.SessionRun
|
||||
if err := smg.rals.Call("Responder.GetSessionRuns", evStart.AsStoredCdr(smg.cgrCfg, smg.Timezone), &sessionRuns); err != nil {
|
||||
return true, err
|
||||
return nil, err
|
||||
} else if len(sessionRuns) == 0 {
|
||||
return true, nil
|
||||
return nil, nil
|
||||
}
|
||||
stopDebitChan := make(chan struct{})
|
||||
for _, sessionRun := range sessionRuns {
|
||||
@@ -384,13 +384,9 @@ func (smg *SMGeneric) sessionStart(evStart SMGenericEvent, clntConn rpcclient.Rp
|
||||
go s.debitLoop(smg.cgrCfg.SmGenericConfig.DebitInterval)
|
||||
}
|
||||
}
|
||||
return true, nil
|
||||
return nil, nil
|
||||
}, smg.cgrCfg.LockingTimeout, cgrID)
|
||||
if processed == nil || processed == false {
|
||||
utils.Logger.Err("<SMGeneric> Cannot start session, empty reply")
|
||||
return utils.ErrServerError
|
||||
}
|
||||
return err
|
||||
return
|
||||
}
|
||||
|
||||
// sessionEnd will end a session from outside
|
||||
|
||||
Reference in New Issue
Block a user