diff --git a/agents/astagent.go b/agents/astagent.go
index e9ee08169..6c0664506 100644
--- a/agents/astagent.go
+++ b/agents/astagent.go
@@ -27,13 +27,13 @@ import (
"sync"
"time"
- "github.com/cenkalti/rpc2"
"github.com/cgrates/aringo"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// constants used by AsteriskAgent
@@ -57,14 +57,21 @@ const (
// NewAsteriskAgent constructs a new Asterisk Agent
func NewAsteriskAgent(cgrCfg *config.CGRConfig, astConnIdx int,
- connMgr *engine.ConnManager) *AsteriskAgent {
+ connMgr *engine.ConnManager) (*AsteriskAgent, error) {
sma := &AsteriskAgent{
cgrCfg: cgrCfg,
astConnIdx: astConnIdx,
connMgr: connMgr,
eventsCache: make(map[string]*utils.CGREvent),
}
- return sma
+ srv, err := birpc.NewServiceWithMethodsRename(sma, utils.SessionSv1, true, func(oldFn string) (newFn string) {
+ return strings.TrimPrefix(oldFn, "V1")
+ })
+ if err != nil {
+ return nil, err
+ }
+ sma.ctx = context.WithClient(context.TODO(), srv)
+ return sma, nil
}
// AsteriskAgent used to cominicate with asterisk
@@ -77,6 +84,7 @@ type AsteriskAgent struct {
astErrChan chan error
eventsCache map[string]*utils.CGREvent // used to gather information about events during various phases
evCacheMux sync.RWMutex // Protect eventsCache
+ ctx *context.Context
}
func (sma *AsteriskAgent) connectAsterisk(stopChan <-chan struct{}) (err error) {
@@ -86,7 +94,8 @@ func (sma *AsteriskAgent) connectAsterisk(stopChan <-chan struct{}) (err error)
sma.astConn, err = aringo.NewARInGO(fmt.Sprintf("ws://%s/ari/events?api_key=%s:%s&app=%s",
connCfg.Address, connCfg.User, connCfg.Password, CGRAuthAPP), "http://cgrates.org",
connCfg.User, connCfg.Password, fmt.Sprintf("%s@%s", utils.CGRateS, utils.Version),
- sma.astEvChan, sma.astErrChan, stopChan, connCfg.ConnectAttempts, connCfg.Reconnects, connCfg.MaxReconnectInterval, utils.FibDuration)
+ sma.astEvChan, sma.astErrChan, stopChan, connCfg.ConnectAttempts, connCfg.Reconnects,
+ connCfg.MaxReconnectInterval, utils.FibDuration)
return
}
@@ -170,8 +179,9 @@ func (sma *AsteriskAgent) handleStasisStart(ev *SMAsteriskEvent) {
return
}
var authReply sessions.V1AuthorizeReply
- if err := sma.connMgr.Call(sma.cgrCfg.AsteriskAgentCfg().SessionSConns, sma,
- utils.SessionSv1AuthorizeEvent, authArgs, &authReply); err != nil {
+ if err := sma.connMgr.Call(sma.ctx, sma.cgrCfg.AsteriskAgentCfg().SessionSConns,
+ utils.SessionSv1AuthorizeEvent,
+ authArgs, &authReply); err != nil {
sma.hangupChannel(ev.ChannelID(),
fmt.Sprintf("<%s> error: %s authorizing session for channelID: %s",
utils.AsteriskAgent, err.Error(), ev.ChannelID()))
@@ -263,7 +273,7 @@ func (sma *AsteriskAgent) handleChannelStateChange(ev *SMAsteriskEvent) {
//initit Session
var initReply sessions.V1InitSessionReply
- if err := sma.connMgr.Call(sma.cgrCfg.AsteriskAgentCfg().SessionSConns, sma,
+ if err := sma.connMgr.Call(sma.ctx, sma.cgrCfg.AsteriskAgentCfg().SessionSConns,
utils.SessionSv1InitiateSession,
initSessionArgs, &initReply); err != nil {
sma.hangupChannel(ev.ChannelID(),
@@ -305,14 +315,14 @@ func (sma *AsteriskAgent) handleChannelDestroyed(ev *SMAsteriskEvent) {
}
var reply string
- if err := sma.connMgr.Call(sma.cgrCfg.AsteriskAgentCfg().SessionSConns, sma,
+ if err := sma.connMgr.Call(sma.ctx, sma.cgrCfg.AsteriskAgentCfg().SessionSConns,
utils.SessionSv1TerminateSession,
tsArgs, &reply); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> Error: %s when attempting to terminate session for channelID: %s",
utils.AsteriskAgent, err.Error(), chID))
}
if sma.cgrCfg.AsteriskAgentCfg().CreateCDR {
- if err := sma.connMgr.Call(sma.cgrCfg.AsteriskAgentCfg().SessionSConns, sma,
+ if err := sma.connMgr.Call(sma.ctx, sma.cgrCfg.AsteriskAgentCfg().SessionSConns,
utils.SessionSv1ProcessCDR,
cgrEvDisp, &reply); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> Error: %s when attempting to process CDR for channelID: %s",
@@ -322,13 +332,13 @@ func (sma *AsteriskAgent) handleChannelDestroyed(ev *SMAsteriskEvent) {
}
-// Call implements rpcclient.ClientConnector interface
-func (sma *AsteriskAgent) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface
+func (sma *AsteriskAgent) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.RPCCall(sma, serviceMethod, args, reply)
}
// V1DisconnectSession is internal method to disconnect session in asterisk
-func (sma *AsteriskAgent) V1DisconnectSession(args utils.AttrDisconnectSession, reply *string) error {
+func (sma *AsteriskAgent) V1DisconnectSession(ctx *context.Context, args utils.AttrDisconnectSession, reply *string) error {
channelID := engine.NewMapEvent(args.EventStart).GetStringIgnoreErrors(utils.OriginID)
sma.hangupChannel(channelID, "")
*reply = utils.OK
@@ -336,7 +346,7 @@ func (sma *AsteriskAgent) V1DisconnectSession(args utils.AttrDisconnectSession,
}
// V1GetActiveSessionIDs is internal method to get all active sessions in asterisk
-func (sma *AsteriskAgent) V1GetActiveSessionIDs(ignParam string,
+func (sma *AsteriskAgent) V1GetActiveSessionIDs(ctx *context.Context, ignParam string,
sessionIDs *[]*sessions.SessionID) error {
var slMpIface []map[string]any // decode the result from ari into a slice of map[string]any
if byts, err := sma.astConn.Call(
@@ -364,76 +374,16 @@ func (sma *AsteriskAgent) V1GetActiveSessionIDs(ignParam string,
}
// V1ReAuthorize is used to implement the sessions.BiRPClient interface
-func (*AsteriskAgent) V1ReAuthorize(originID string, reply *string) (err error) {
+func (*AsteriskAgent) V1ReAuthorize(ctx *context.Context, originID string, reply *string) (err error) {
return utils.ErrNotImplemented
}
// V1DisconnectPeer is used to implement the sessions.BiRPClient interface
-func (*AsteriskAgent) V1DisconnectPeer(args *utils.DPRArgs, reply *string) (err error) {
+func (*AsteriskAgent) V1DisconnectPeer(ctx *context.Context, args *utils.DPRArgs, reply *string) (err error) {
return utils.ErrNotImplemented
}
// V1WarnDisconnect is used to implement the sessions.BiRPClient interface
-func (sma *AsteriskAgent) V1WarnDisconnect(args map[string]any, reply *string) (err error) {
+func (sma *AsteriskAgent) V1WarnDisconnect(ctx *context.Context, args map[string]any, reply *string) (err error) {
return utils.ErrNotImplemented
}
-
-// CallBiRPC is part of utils.BiRPCServer interface to help internal connections do calls over rpcclient.ClientConnector interface
-func (sma *AsteriskAgent) CallBiRPC(clnt rpcclient.ClientConnector, serviceMethod string, args any, reply any) error {
- return utils.BiRPCCall(sma, clnt, serviceMethod, args, reply)
-}
-
-// BiRPCv1DisconnectSession is internal method to disconnect session in asterisk
-func (sma *AsteriskAgent) BiRPCv1DisconnectSession(clnt rpcclient.ClientConnector, args utils.AttrDisconnectSession, reply *string) error {
- return sma.V1DisconnectSession(args, reply)
-}
-
-// BiRPCv1GetActiveSessionIDs is internal method to get all active sessions in asterisk
-func (sma *AsteriskAgent) BiRPCv1GetActiveSessionIDs(clnt rpcclient.ClientConnector, ignParam string, sessionIDs *[]*sessions.SessionID) error {
- return sma.V1GetActiveSessionIDs(ignParam, sessionIDs)
-
-}
-
-// BiRPCv1ReAuthorize is used to implement the sessions.BiRPClient interface
-func (sma *AsteriskAgent) BiRPCv1ReAuthorize(clnt rpcclient.ClientConnector, originID string, reply *string) (err error) {
- return sma.V1ReAuthorize(originID, reply)
-}
-
-// BiRPCv1DisconnectPeer is used to implement the sessions.BiRPClient interface
-func (sma *AsteriskAgent) BiRPCv1DisconnectPeer(clnt rpcclient.ClientConnector, args *utils.DPRArgs, reply *string) (err error) {
- return sma.V1DisconnectPeer(args, reply)
-}
-
-// BiRPCv1WarnDisconnect is used to implement the sessions.BiRPClient interface
-func (sma *AsteriskAgent) BiRPCv1WarnDisconnect(clnt rpcclient.ClientConnector, args map[string]any, reply *string) (err error) {
- return sma.V1WarnDisconnect(args, reply)
-}
-
-// BiRPCv1CapsError is used to return error when the caps limit is hit
-func (sma *AsteriskAgent) BiRPCv1CapsError(clnt rpcclient.ClientConnector, args any, reply *string) (err error) {
- return utils.ErrMaxConcurrentRPCExceeded
-}
-
-// Handlers is used to implement the rpcclient.BiRPCConector interface
-func (sma *AsteriskAgent) Handlers() map[string]any {
- return map[string]any{
- utils.SessionSv1DisconnectSession: func(clnt *rpc2.Client, args utils.AttrDisconnectSession, rply *string) error {
- return sma.BiRPCv1DisconnectSession(clnt, args, rply)
- },
- utils.SessionSv1GetActiveSessionIDs: func(clnt *rpc2.Client, args string, rply *[]*sessions.SessionID) error {
- return sma.BiRPCv1GetActiveSessionIDs(clnt, args, rply)
- },
- utils.SessionSv1ReAuthorize: func(clnt *rpc2.Client, args string, rply *string) (err error) {
- return sma.BiRPCv1ReAuthorize(clnt, args, rply)
- },
- utils.SessionSv1DisconnectPeer: func(clnt *rpc2.Client, args *utils.DPRArgs, rply *string) (err error) {
- return sma.BiRPCv1DisconnectPeer(clnt, args, rply)
- },
- utils.SessionSv1WarnDisconnect: func(clnt *rpc2.Client, args map[string]any, rply *string) (err error) {
- return sma.BiRPCv1WarnDisconnect(clnt, args, rply)
- },
- utils.SessionSv1CapsError: func(clnt *rpc2.Client, args any, rply *string) (err error) {
- return sma.BiRPCv1CapsError(clnt, args, rply)
- },
- }
-}
diff --git a/agents/astagent_test.go b/agents/astagent_test.go
index 30017fe9e..813020ef0 100644
--- a/agents/astagent_test.go
+++ b/agents/astagent_test.go
@@ -24,5 +24,5 @@ import (
)
func TestAAsSessionSClientIface(t *testing.T) {
- _ = sessions.BiRPClient(new(AsteriskAgent))
+ _ = sessions.BiRPCClient(new(AsteriskAgent))
}
diff --git a/agents/diam_it_test.go b/agents/diam_it_test.go
index d6f368074..a3c8447c0 100644
--- a/agents/diam_it_test.go
+++ b/agents/diam_it_test.go
@@ -24,7 +24,6 @@ package agents
import (
"flag"
"fmt"
- "net/rpc"
"os/exec"
"path"
"strings"
@@ -32,6 +31,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -48,7 +49,7 @@ var (
daCfgPath, diamConfigDIR string
daCfg *config.CGRConfig
- apierRpc *rpc.Client
+ apierRpc *birpc.Client
diamClnt *DiameterClient
rplyTimeout time.Duration
@@ -282,7 +283,7 @@ func testDiamItApierRpcConn(t *testing.T) {
func testDiamItTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
var loadInst utils.LoadInstance
- if err := apierRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
if isDispatcherActive {
@@ -929,7 +930,7 @@ func testDiamItCCRTerminate(t *testing.T) {
time.Sleep(time.Duration(*waitRater) * time.Millisecond)
var cdrs []*engine.CDR
args := utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaRaw}}}
- if err := apierRpc.Call(utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1014,7 +1015,7 @@ func testDiamItCCRSMS(t *testing.T) {
var cdrs []*engine.CDR
args := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaRaw}, ToRs: []string{utils.MetaSMS}}}
- if err := apierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1093,7 +1094,7 @@ func testDiamItCCRMMS(t *testing.T) {
var cdrs []*engine.CDR
args := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaRaw}, ToRs: []string{utils.MetaMMS}}}
- if err := apierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1113,7 +1114,7 @@ func testDiamInitWithSessionDisconnect(t *testing.T) {
},
}
var reply string
- if err := apierRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -1233,7 +1234,7 @@ func testDiamItRAR(t *testing.T) {
wait.Add(1)
go func() {
var reply string
- if err := apierRpc.Call(utils.SessionSv1ReAuthorize, &utils.SessionFilter{}, &reply); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.SessionSv1ReAuthorize, &utils.SessionFilter{}, &reply); err != nil {
t.Error(err)
}
wait.Done()
@@ -1344,7 +1345,7 @@ func testDiamItDRR(t *testing.T) {
wait.Add(1)
go func() {
var reply string
- if err := apierRpc.Call(utils.SessionSv1DisconnectPeer, &utils.DPRArgs{
+ if err := apierRpc.Call(context.Background(), utils.SessionSv1DisconnectPeer, &utils.DPRArgs{
OriginHost: "INTEGRATION_TESTS",
OriginRealm: "cgrates.org",
DisconnectCause: 1, // BUSY
@@ -1480,7 +1481,7 @@ func testDiamItEmulateTerminate(t *testing.T) {
},
}
- if err := apierRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1496,7 +1497,7 @@ func testDiamItEmulateTerminate(t *testing.T) {
},
}
- if err := apierRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile2, &result); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1513,14 +1514,14 @@ func testDiamItEmulateTerminate(t *testing.T) {
},
}
var reply string
- if err := apierRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.com", Account: "testDiamItEmulateTerminate"}
- if err := apierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != float64(time.Hour) {
t.Errorf("Expected: %f, received: %f", float64(time.Hour), acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -1612,7 +1613,7 @@ func testDiamItEmulateTerminate(t *testing.T) {
t.Errorf("expecting: %s, received: <%s>", eVal, val)
}
- if err := apierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := apierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != float64(time.Hour) {
t.Errorf("Expected: %f, received: %f", float64(time.Hour), acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
diff --git a/agents/diamagent.go b/agents/diamagent.go
index 5c558602e..9ea2a2b87 100644
--- a/agents/diamagent.go
+++ b/agents/diamagent.go
@@ -26,12 +26,12 @@ import (
"sync"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
"github.com/fiorix/go-diameter/v4/diam"
"github.com/fiorix/go-diameter/v4/diam/avp"
"github.com/fiorix/go-diameter/v4/diam/datatype"
@@ -57,6 +57,13 @@ func NewDiameterAgent(cgrCfg *config.CGRConfig, filterS *engine.FilterS,
dpa: make(map[string]chan *diam.Message),
peers: make(map[string]diam.Conn),
}
+ srv, err := birpc.NewServiceWithMethodsRename(da, utils.SessionSv1, true, func(oldFn string) (newFn string) {
+ return strings.TrimPrefix(oldFn, "V1")
+ })
+ if err != nil {
+ return nil, err
+ }
+ da.ctx = context.WithClient(context.TODO(), srv)
dictsPath := cgrCfg.DiameterAgentCfg().DictionariesPath
if len(dictsPath) != 0 {
if err := loadDictionaries(dictsPath, utils.DiameterAgent); err != nil {
@@ -94,6 +101,8 @@ type DiameterAgent struct {
peers map[string]diam.Conn // peer index by OriginHost;OriginRealm
dpa map[string]chan *diam.Message
dpaLck sync.RWMutex
+
+ ctx *context.Context
}
// ListenAndServe is called when DiameterAgent is started, usually from within cmd/cgr-engine
@@ -268,16 +277,20 @@ func (da *DiameterAgent) handleMessage(c diam.Conn, m *diam.Message) {
for _, reqProcessor := range da.cgrCfg.DiameterAgentCfg().RequestProcessors {
var lclProcessed bool
lclProcessed, err = processRequest(
+ da.ctx,
reqProcessor,
NewAgentRequest(
- diamDP, reqVars, cgrRplyNM, rply, opts,
- reqProcessor.Tenant, da.cgrCfg.GeneralCfg().DefaultTenant,
- utils.FirstNonEmpty(reqProcessor.Timezone,
- da.cgrCfg.GeneralCfg().DefaultTimezone),
+ diamDP, reqVars, cgrRplyNM, rply,
+ opts, reqProcessor.Tenant,
+ da.cgrCfg.GeneralCfg().DefaultTenant,
+ utils.FirstNonEmpty(
+ reqProcessor.Timezone,
+ da.cgrCfg.GeneralCfg().DefaultTimezone,
+ ),
da.filterS, nil),
utils.DiameterAgent, da.connMgr,
da.cgrCfg.DiameterAgentCfg().SessionSConns,
- da, da.filterS)
+ da.filterS)
if lclProcessed {
processed = lclProcessed
}
@@ -312,13 +325,13 @@ func (da *DiameterAgent) handleMessage(c diam.Conn, m *diam.Message) {
writeOnConn(c, a)
}
-// Call implements rpcclient.ClientConnector interface
-func (da *DiameterAgent) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface
+func (da *DiameterAgent) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.RPCCall(da, serviceMethod, args, reply)
}
// V1DisconnectSession is part of the sessions.BiRPClient
-func (da *DiameterAgent) V1DisconnectSession(args utils.AttrDisconnectSession, reply *string) (err error) {
+func (da *DiameterAgent) V1DisconnectSession(ctx *context.Context, args utils.AttrDisconnectSession, reply *string) (err error) {
ssID, has := args.EventStart[utils.OriginID]
if !has {
utils.Logger.Info(
@@ -334,14 +347,14 @@ func (da *DiameterAgent) V1DisconnectSession(args utils.AttrDisconnectSession, r
case utils.MetaASR:
return da.sendASR(originID, reply)
case utils.MetaRAR:
- return da.V1ReAuthorize(originID, reply)
+ return da.V1ReAuthorize(ctx, originID, reply)
default:
return fmt.Errorf("Unsupported request type <%s>", da.cgrCfg.DiameterAgentCfg().ForcedDisconnect)
}
}
// V1GetActiveSessionIDs is part of the sessions.BiRPClient
-func (da *DiameterAgent) V1GetActiveSessionIDs(ignParam string,
+func (da *DiameterAgent) V1GetActiveSessionIDs(ctx *context.Context, ignParam string,
sessionIDs *[]*sessions.SessionID) error {
return utils.ErrNotImplemented
}
@@ -383,7 +396,7 @@ func (da *DiameterAgent) sendASR(originID string, reply *string) (err error) {
}
// V1ReAuthorize sends a rar message to diameter client
-func (da *DiameterAgent) V1ReAuthorize(originID string, reply *string) (err error) {
+func (da *DiameterAgent) V1ReAuthorize(ctx *context.Context, originID string, reply *string) (err error) {
if originID == "" {
utils.Logger.Info(
fmt.Sprintf("<%s> cannot send RAR, missing session ID",
@@ -506,7 +519,7 @@ func (da *DiameterAgent) handleDPA(c diam.Conn, m *diam.Message) {
}
// V1DisconnectPeer sends a DPR meseage to diameter client
-func (da *DiameterAgent) V1DisconnectPeer(args *utils.DPRArgs, reply *string) (err error) {
+func (da *DiameterAgent) V1DisconnectPeer(ctx *context.Context, args *utils.DPRArgs, reply *string) (err error) {
if args == nil {
utils.Logger.Info(
fmt.Sprintf("<%s> cannot send DPR, missing arrguments",
@@ -566,67 +579,6 @@ func (da *DiameterAgent) V1DisconnectPeer(args *utils.DPRArgs, reply *string) (e
}
// V1WarnDisconnect is used to implement the sessions.BiRPClient interface
-func (*DiameterAgent) V1WarnDisconnect(args map[string]any, reply *string) (err error) {
+func (*DiameterAgent) V1WarnDisconnect(ctx *context.Context, args map[string]any, reply *string) (err error) {
return utils.ErrNotImplemented
}
-
-// CallBiRPC is part of utils.BiRPCServer interface to help internal connections do calls over rpcclient.ClientConnector interface
-func (da *DiameterAgent) CallBiRPC(clnt rpcclient.ClientConnector, serviceMethod string, args any, reply any) error {
- return utils.BiRPCCall(da, clnt, serviceMethod, args, reply)
-}
-
-// BiRPCv1DisconnectSession is internal method to disconnect session in asterisk
-func (da *DiameterAgent) BiRPCv1DisconnectSession(clnt rpcclient.ClientConnector, args utils.AttrDisconnectSession, reply *string) error {
- return da.V1DisconnectSession(args, reply)
-}
-
-// BiRPCv1GetActiveSessionIDs is internal method to get all active sessions in asterisk
-func (da *DiameterAgent) BiRPCv1GetActiveSessionIDs(clnt rpcclient.ClientConnector, ignParam string,
- sessionIDs *[]*sessions.SessionID) error {
- return da.V1GetActiveSessionIDs(ignParam, sessionIDs)
-
-}
-
-// BiRPCv1ReAuthorize is used to implement the sessions.BiRPClient interface
-func (da *DiameterAgent) BiRPCv1ReAuthorize(clnt rpcclient.ClientConnector, originID string, reply *string) (err error) {
- return da.V1ReAuthorize(originID, reply)
-}
-
-// BiRPCv1DisconnectPeer is used to implement the sessions.BiRPClient interface
-func (da *DiameterAgent) BiRPCv1DisconnectPeer(clnt rpcclient.ClientConnector, args *utils.DPRArgs, reply *string) (err error) {
- return da.V1DisconnectPeer(args, reply)
-}
-
-// BiRPCv1WarnDisconnect is used to implement the sessions.BiRPClient interface
-func (da *DiameterAgent) BiRPCv1WarnDisconnect(clnt rpcclient.ClientConnector, args map[string]any, reply *string) (err error) {
- return da.V1WarnDisconnect(args, reply)
-}
-
-// BiRPCv1CapsError is used to return error when the caps limit is hit
-func (da *DiameterAgent) BiRPCv1CapsError(clnt rpcclient.ClientConnector, args any, reply *string) (err error) {
- return utils.ErrMaxConcurrentRPCExceeded
-}
-
-// Handlers is used to implement the rpcclient.BiRPCConector interface
-func (da *DiameterAgent) Handlers() map[string]any {
- return map[string]any{
- utils.SessionSv1DisconnectSession: func(clnt *rpc2.Client, args utils.AttrDisconnectSession, rply *string) error {
- return da.BiRPCv1DisconnectSession(clnt, args, rply)
- },
- utils.SessionSv1GetActiveSessionIDs: func(clnt *rpc2.Client, args string, rply *[]*sessions.SessionID) error {
- return da.BiRPCv1GetActiveSessionIDs(clnt, args, rply)
- },
- utils.SessionSv1ReAuthorize: func(clnt *rpc2.Client, args string, rply *string) (err error) {
- return da.BiRPCv1ReAuthorize(clnt, args, rply)
- },
- utils.SessionSv1DisconnectPeer: func(clnt *rpc2.Client, args *utils.DPRArgs, rply *string) (err error) {
- return da.BiRPCv1DisconnectPeer(clnt, args, rply)
- },
- utils.SessionSv1WarnDisconnect: func(clnt *rpc2.Client, args map[string]any, rply *string) (err error) {
- return da.BiRPCv1WarnDisconnect(clnt, args, rply)
- },
- utils.SessionSv1CapsError: func(clnt *rpc2.Client, args any, rply *string) (err error) {
- return da.BiRPCv1CapsError(clnt, args, rply)
- },
- }
-}
diff --git a/agents/diamagent_test.go b/agents/diamagent_test.go
index 39fc2b7aa..cb5082567 100644
--- a/agents/diamagent_test.go
+++ b/agents/diamagent_test.go
@@ -22,6 +22,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -30,32 +32,20 @@ import (
)
func TestDAsSessionSClientIface(t *testing.T) {
- _ = sessions.BiRPClient(new(DiameterAgent))
+ _ = sessions.BiRPCClient(new(DiameterAgent))
}
type testMockSessionConn struct {
calls map[string]func(arg any, rply any) error
}
-func (s *testMockSessionConn) Call(method string, arg any, rply any) error {
+func (s *testMockSessionConn) Call(_ *context.Context, method string, arg any, rply any) error {
if call, has := s.calls[method]; has {
return call(arg, rply)
}
return rpcclient.ErrUnsupporteServiceMethod
}
-func (s *testMockSessionConn) CallBiRPC(_ rpcclient.ClientConnector, method string, arg any, rply any) error {
- return s.Call(method, arg, rply)
-}
-
-func (s *testMockSessionConn) Handlers() (b map[string]any) {
- b = make(map[string]any)
- for n, f := range s.calls {
- b[n] = f
- }
- return
-}
-
func TestProcessRequest(t *testing.T) {
data := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil)
@@ -447,9 +437,9 @@ func TestProcessRequest(t *testing.T) {
reqProcessor.Tenant, config.CgrConfig().GeneralCfg().DefaultTenant,
config.CgrConfig().GeneralCfg().DefaultTimezone, filters, nil)
- internalSessionSChan := make(chan rpcclient.ClientConnector, 1)
+ internalSessionSChan := make(chan birpc.ClientConnector, 1)
internalSessionSChan <- sS
- connMgr := engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS): internalSessionSChan,
utils.ConcatenatedKey(rpcclient.BiRPCInternal, utils.MetaSessionS): internalSessionSChan,
})
@@ -458,7 +448,8 @@ func TestProcessRequest(t *testing.T) {
filterS: filters,
connMgr: connMgr,
}
- pr, err := processRequest(reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da, da.filterS)
+ ctx := context.WithClient(context.Background(), da)
+ pr, err := processRequest(ctx, reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da.filterS)
if err != nil {
t.Error(err)
} else if !pr {
@@ -475,7 +466,7 @@ func TestProcessRequest(t *testing.T) {
reqProcessor.Tenant, config.CgrConfig().GeneralCfg().DefaultTenant,
config.CgrConfig().GeneralCfg().DefaultTimezone, filters, nil)
- pr, err = processRequest(reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da, da.filterS)
+ pr, err = processRequest(ctx, reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da.filterS)
if err != nil {
t.Error(err)
} else if !pr {
@@ -492,7 +483,7 @@ func TestProcessRequest(t *testing.T) {
reqProcessor.Tenant, config.CgrConfig().GeneralCfg().DefaultTenant,
config.CgrConfig().GeneralCfg().DefaultTimezone, filters, nil)
- pr, err = processRequest(reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da, da.filterS)
+ pr, err = processRequest(ctx, reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da.filterS)
if err != nil {
t.Error(err)
} else if !pr {
@@ -515,7 +506,7 @@ func TestProcessRequest(t *testing.T) {
reqProcessor.Tenant, config.CgrConfig().GeneralCfg().DefaultTenant,
config.CgrConfig().GeneralCfg().DefaultTimezone, filters, nil)
- pr, err = processRequest(reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da, da.filterS)
+ pr, err = processRequest(ctx, reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da.filterS)
if err != nil {
t.Error(err)
} else if !pr {
@@ -532,7 +523,7 @@ func TestProcessRequest(t *testing.T) {
reqProcessor.Tenant, config.CgrConfig().GeneralCfg().DefaultTenant,
config.CgrConfig().GeneralCfg().DefaultTimezone, filters, nil)
- pr, err = processRequest(reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da, da.filterS)
+ pr, err = processRequest(ctx, reqProcessor, agReq, utils.DiameterAgent, connMgr, da.cgrCfg.DiameterAgentCfg().SessionSConns, da.filterS)
if err != nil {
t.Error(err)
} else if !pr {
diff --git a/agents/dnsagent.go b/agents/dnsagent.go
index 63c54055c..e1403260f 100644
--- a/agents/dnsagent.go
+++ b/agents/dnsagent.go
@@ -24,6 +24,7 @@ import (
"strings"
"sync"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -168,17 +169,20 @@ func (da *DNSAgent) handleQuestion(dnsDP utils.DataProvider, rply *dns.Msg, q *d
for _, reqProcessor := range da.cgrCfg.DNSAgentCfg().RequestProcessors {
var lclProcessed bool
if lclProcessed, err = processRequest(
+ context.TODO(),
reqProcessor,
NewAgentRequest(
dnsDP, reqVars, cgrRplyNM, rplyNM,
opts, reqProcessor.Tenant,
da.cgrCfg.GeneralCfg().DefaultTenant,
- utils.FirstNonEmpty(da.cgrCfg.DNSAgentCfg().Timezone,
- da.cgrCfg.GeneralCfg().DefaultTimezone),
+ utils.FirstNonEmpty(
+ da.cgrCfg.DNSAgentCfg().Timezone,
+ da.cgrCfg.GeneralCfg().DefaultTimezone,
+ ),
da.fltrS, nil),
utils.DNSAgent, da.connMgr,
da.cgrCfg.DNSAgentCfg().SessionSConns,
- nil, da.fltrS); err != nil {
+ da.fltrS); err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> error: %s processing message: %s from %s",
utils.DNSAgent, err.Error(), dnsDP, rmtAddr))
diff --git a/agents/dnsagent_it_test.go b/agents/dnsagent_it_test.go
index 97c985911..eb28ff6cf 100644
--- a/agents/dnsagent_it_test.go
+++ b/agents/dnsagent_it_test.go
@@ -23,11 +23,12 @@ package agents
import (
"crypto/tls"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -44,7 +45,7 @@ var (
dnsCfgPath string
dnsCfgDIR string
dnsCfg *config.CGRConfig
- dnsRPC *rpc.Client
+ dnsRPC *birpc.Client
dnsClnt *dnsConns // so we can cache the connection
sTestsDNS = []func(t *testing.T){
@@ -131,7 +132,7 @@ func testDNSitApierRpcConn(t *testing.T) {
func testDNSitTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "dnsagent")}
var loadInst utils.LoadInstance
- if err := dnsRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := dnsRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
attrs, &loadInst); err != nil {
t.Error(err)
}
diff --git a/agents/fsagent.go b/agents/fsagent.go
index 7585ebefe..37efecdb6 100644
--- a/agents/fsagent.go
+++ b/agents/fsagent.go
@@ -24,24 +24,32 @@ import (
"strings"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/fsock"
- "github.com/cgrates/rpcclient"
)
func NewFSsessions(fsAgentConfig *config.FsAgentCfg,
- timezone string, connMgr *engine.ConnManager) (fsa *FSsessions) {
- return &FSsessions{
+ timezone string, connMgr *engine.ConnManager) (*FSsessions, error) {
+ fsa := &FSsessions{
cfg: fsAgentConfig,
conns: make([]*fsock.FSock, len(fsAgentConfig.EventSocketConns)),
senderPools: make([]*fsock.FSockPool, len(fsAgentConfig.EventSocketConns)),
timezone: timezone,
connMgr: connMgr,
}
+ srv, err := birpc.NewServiceWithMethodsRename(fsa, utils.SessionSv1, true, func(oldFn string) (newFn string) {
+ return strings.TrimPrefix(oldFn, "V1")
+ })
+ if err != nil {
+ return nil, err
+ }
+ fsa.ctx = context.WithClient(context.TODO(), srv)
+ return fsa, nil
}
// FSsessions is the freeswitch session manager
@@ -53,6 +61,7 @@ type FSsessions struct {
senderPools []*fsock.FSockPool // Keep sender pools here
timezone string
connMgr *engine.ConnManager
+ ctx *context.Context
}
func (fsa *FSsessions) createHandlers() map[string][]func(string, int) {
@@ -148,7 +157,9 @@ func (fsa *FSsessions) onChannelPark(fsev FSEvent, connIdx int) {
authArgs := fsev.V1AuthorizeArgs()
authArgs.CGREvent.Event[FsConnID] = connIdx // Attach the connection ID
var authReply sessions.V1AuthorizeReply
- if err := fsa.connMgr.Call(fsa.cfg.SessionSConns, fsa, utils.SessionSv1AuthorizeEvent, authArgs, &authReply); err != nil {
+ if err := fsa.connMgr.Call(fsa.ctx, fsa.cfg.SessionSConns,
+ utils.SessionSv1AuthorizeEvent,
+ authArgs, &authReply); err != nil {
utils.Logger.Err(
fmt.Sprintf("<%s> Could not authorize event %s, error: %s",
utils.FreeSWITCHAgent, fsev.GetUUID(), err.Error()))
@@ -238,7 +249,8 @@ func (fsa *FSsessions) onChannelAnswer(fsev FSEvent, connIdx int) {
initSessionArgs := fsev.V1InitSessionArgs()
initSessionArgs.CGREvent.Event[FsConnID] = connIdx // Attach the connection ID so we can properly disconnect later
var initReply sessions.V1InitSessionReply
- if err := fsa.connMgr.Call(fsa.cfg.SessionSConns, fsa, utils.SessionSv1InitiateSession,
+ if err := fsa.connMgr.Call(fsa.ctx, fsa.cfg.SessionSConns,
+ utils.SessionSv1InitiateSession,
initSessionArgs, &initReply); err != nil {
utils.Logger.Err(
fmt.Sprintf("<%s> could not process answer for event %s, error: %s",
@@ -262,7 +274,8 @@ func (fsa *FSsessions) onChannelHangupComplete(fsev FSEvent, connIdx int) {
if fsev[VarAnswerEpoch] != "0" { // call was answered
terminateSessionArgs := fsev.V1TerminateSessionArgs()
terminateSessionArgs.CGREvent.Event[FsConnID] = connIdx // Attach the connection ID in case we need to create a session and disconnect it
- if err := fsa.connMgr.Call(fsa.cfg.SessionSConns, fsa, utils.SessionSv1TerminateSession,
+ if err := fsa.connMgr.Call(fsa.ctx, fsa.cfg.SessionSConns,
+ utils.SessionSv1TerminateSession,
terminateSessionArgs, &reply); err != nil {
utils.Logger.Err(
fmt.Sprintf("<%s> Could not terminate session with event %s, error: %s",
@@ -274,7 +287,8 @@ func (fsa *FSsessions) onChannelHangupComplete(fsev FSEvent, connIdx int) {
if err != nil {
return
}
- if err := fsa.connMgr.Call(fsa.cfg.SessionSConns, fsa, utils.SessionSv1ProcessCDR,
+ if err := fsa.connMgr.Call(fsa.ctx, fsa.cfg.SessionSConns,
+ utils.SessionSv1ProcessCDR,
cgrEv, &reply); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> Failed processing CGREvent: %s, error: <%s>",
utils.FreeSWITCHAgent, utils.ToJSON(cgrEv), err.Error()))
@@ -374,13 +388,13 @@ func (fsa *FSsessions) Shutdown() (err error) {
return
}
-// Call implements rpcclient.ClientConnector interface
-func (fsa *FSsessions) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface
+func (fsa *FSsessions) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.RPCCall(fsa, serviceMethod, args, reply)
}
// V1DisconnectSession internal method to disconnect session in FreeSWITCH
-func (fsa *FSsessions) V1DisconnectSession(args utils.AttrDisconnectSession, reply *string) (err error) {
+func (fsa *FSsessions) V1DisconnectSession(ctx *context.Context, args utils.AttrDisconnectSession, reply *string) (err error) {
ev := engine.NewMapEvent(args.EventStart)
channelID := ev.GetStringIgnoreErrors(utils.OriginID)
connIdx, err := ev.GetTInt64(FsConnID)
@@ -405,7 +419,7 @@ func (fsa *FSsessions) V1DisconnectSession(args utils.AttrDisconnectSession, rep
}
// V1GetActiveSessionIDs used to return all active sessions
-func (fsa *FSsessions) V1GetActiveSessionIDs(_ string,
+func (fsa *FSsessions) V1GetActiveSessionIDs(ctx *context.Context, _ string,
sessionIDs *[]*sessions.SessionID) (err error) {
var sIDs []*sessions.SessionID
for connIdx, senderPool := range fsa.senderPools {
@@ -444,17 +458,17 @@ func (fsa *FSsessions) Reload() {
}
// V1ReAuthorize is used to implement the sessions.BiRPClient interface
-func (*FSsessions) V1ReAuthorize(originID string, reply *string) (err error) {
+func (*FSsessions) V1ReAuthorize(ctx *context.Context, originID string, reply *string) (err error) {
return utils.ErrNotImplemented
}
// V1DisconnectPeer is used to implement the sessions.BiRPClient interface
-func (*FSsessions) V1DisconnectPeer(args *utils.DPRArgs, reply *string) (err error) {
+func (*FSsessions) V1DisconnectPeer(ctx *context.Context, args *utils.DPRArgs, reply *string) (err error) {
return utils.ErrNotImplemented
}
// V1WarnDisconnect is called when call goes under the minimum duration threshold, so FreeSWITCH can play an announcement message
-func (fsa *FSsessions) V1WarnDisconnect(args map[string]any, reply *string) (err error) {
+func (fsa *FSsessions) V1WarnDisconnect(ctx *context.Context, args map[string]any, reply *string) (err error) {
if fsa.cfg.LowBalanceAnnFile == utils.EmptyString {
*reply = utils.OK
return
@@ -481,64 +495,3 @@ func (fsa *FSsessions) V1WarnDisconnect(args map[string]any, reply *string) (err
*reply = utils.OK
return
}
-
-// CallBiRPC is part of utils.BiRPCServer interface to help internal connections do calls over rpcclient.ClientConnector interface
-func (fsa *FSsessions) CallBiRPC(clnt rpcclient.ClientConnector, serviceMethod string, args any, reply any) error {
- return utils.BiRPCCall(fsa, clnt, serviceMethod, args, reply)
-}
-
-// BiRPCv1DisconnectSession is internal method to disconnect session in asterisk
-func (fsa *FSsessions) BiRPCv1DisconnectSession(clnt rpcclient.ClientConnector, args utils.AttrDisconnectSession, reply *string) error {
- return fsa.V1DisconnectSession(args, reply)
-}
-
-// BiRPCv1GetActiveSessionIDs is internal method to get all active sessions in asterisk
-func (fsa *FSsessions) BiRPCv1GetActiveSessionIDs(clnt rpcclient.ClientConnector, ignParam string,
- sessionIDs *[]*sessions.SessionID) error {
- return fsa.V1GetActiveSessionIDs(ignParam, sessionIDs)
-
-}
-
-// BiRPCv1ReAuthorize is used to implement the sessions.BiRPClient interface
-func (fsa *FSsessions) BiRPCv1ReAuthorize(clnt rpcclient.ClientConnector, originID string, reply *string) (err error) {
- return fsa.V1ReAuthorize(originID, reply)
-}
-
-// BiRPCv1DisconnectPeer is used to implement the sessions.BiRPClient interface
-func (fsa *FSsessions) BiRPCv1DisconnectPeer(clnt rpcclient.ClientConnector, args *utils.DPRArgs, reply *string) (err error) {
- return fsa.V1DisconnectPeer(args, reply)
-}
-
-// BiRPCv1WarnDisconnect is used to implement the sessions.BiRPClient interface
-func (fsa *FSsessions) BiRPCv1WarnDisconnect(clnt rpcclient.ClientConnector, args map[string]any, reply *string) (err error) {
- return fsa.V1WarnDisconnect(args, reply)
-}
-
-// BiRPCv1CapsError is used to return error when the caps limit is hit
-func (fsa *FSsessions) BiRPCv1CapsError(clnt rpcclient.ClientConnector, args any, reply *string) (err error) {
- return utils.ErrMaxConcurrentRPCExceeded
-}
-
-// Handlers is used to implement the rpcclient.BiRPCConector interface
-func (fsa *FSsessions) Handlers() map[string]any {
- return map[string]any{
- utils.SessionSv1DisconnectSession: func(clnt *rpc2.Client, args utils.AttrDisconnectSession, rply *string) error {
- return fsa.BiRPCv1DisconnectSession(clnt, args, rply)
- },
- utils.SessionSv1GetActiveSessionIDs: func(clnt *rpc2.Client, args string, rply *[]*sessions.SessionID) error {
- return fsa.BiRPCv1GetActiveSessionIDs(clnt, args, rply)
- },
- utils.SessionSv1ReAuthorize: func(clnt *rpc2.Client, args string, rply *string) (err error) {
- return fsa.BiRPCv1ReAuthorize(clnt, args, rply)
- },
- utils.SessionSv1DisconnectPeer: func(clnt *rpc2.Client, args *utils.DPRArgs, rply *string) (err error) {
- return fsa.BiRPCv1DisconnectPeer(clnt, args, rply)
- },
- utils.SessionSv1WarnDisconnect: func(clnt *rpc2.Client, args map[string]any, rply *string) (err error) {
- return fsa.BiRPCv1WarnDisconnect(clnt, args, rply)
- },
- utils.SessionSv1CapsError: func(clnt *rpc2.Client, args any, rply *string) (err error) {
- return fsa.BiRPCv1CapsError(clnt, args, rply)
- },
- }
-}
diff --git a/agents/fsagent_test.go b/agents/fsagent_test.go
index 0be8df8b1..8214f5e39 100644
--- a/agents/fsagent_test.go
+++ b/agents/fsagent_test.go
@@ -24,5 +24,5 @@ import (
)
func TestFAsSessionSClientIface(t *testing.T) {
- _ = sessions.BiRPClient(new(FSsessions))
+ _ = sessions.BiRPCClient(new(FSsessions))
}
diff --git a/agents/httpagent.go b/agents/httpagent.go
index 0d4809b5a..15e88de06 100644
--- a/agents/httpagent.go
+++ b/agents/httpagent.go
@@ -22,6 +22,7 @@ import (
"fmt"
"net/http"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -72,9 +73,9 @@ func (ha *HTTPAgent) ServeHTTP(w http.ResponseWriter, req *http.Request) {
utils.FirstNonEmpty(reqProcessor.Timezone,
config.CgrConfig().GeneralCfg().DefaultTimezone),
ha.filterS, nil)
- lclProcessed, err := processRequest(reqProcessor, agReq,
+ lclProcessed, err := processRequest(context.TODO(), reqProcessor, agReq,
utils.HTTPAgent, ha.connMgr, ha.sessionConns,
- nil, agReq.filterS)
+ agReq.filterS)
if err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> error: %s processing request: %s",
diff --git a/agents/httpagent_it_test.go b/agents/httpagent_it_test.go
index 65891a934..375736851 100644
--- a/agents/httpagent_it_test.go
+++ b/agents/httpagent_it_test.go
@@ -28,13 +28,14 @@ import (
"fmt"
"io"
"net/http"
- "net/rpc"
"os"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -44,7 +45,7 @@ var (
haCfgPath string
haCfgDIR string
haCfg *config.CGRConfig
- haRPC *rpc.Client
+ haRPC *birpc.Client
httpC *http.Client // so we can cache the connection
err error
isTls bool
@@ -183,7 +184,7 @@ func testHAitApierRpcConn(t *testing.T) {
func testHAitTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
var loadInst utils.LoadInstance
- if err := haRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := haRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -232,7 +233,7 @@ func testHAitAuth1001(t *testing.T) {
},
}
var reply string
- if err := haRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := haRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -293,7 +294,7 @@ func testHAitCDRmtcall(t *testing.T) {
time.Sleep(50 * time.Millisecond)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}
- if err := haRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := haRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -334,7 +335,7 @@ func testHAitCDRmtcall2(t *testing.T) {
time.Sleep(50 * time.Millisecond)
var cdrs []*engine.ExternalCDR
fltr := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, Accounts: []string{"447700086788"}}
- if err := haRPC.Call(utils.APIerSv2GetCDRs, &fltr, &cdrs); err != nil {
+ if err := haRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &fltr, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
diff --git a/agents/kamagent.go b/agents/kamagent.go
index 49d0d1e44..c6ee74925 100644
--- a/agents/kamagent.go
+++ b/agents/kamagent.go
@@ -26,9 +26,9 @@ import (
"strings"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
- "github.com/cgrates/rpcclient"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/sessions"
@@ -46,15 +46,22 @@ var (
)
func NewKamailioAgent(kaCfg *config.KamAgentCfg,
- connMgr *engine.ConnManager, timezone string) (ka *KamailioAgent) {
- ka = &KamailioAgent{
+ connMgr *engine.ConnManager, timezone string) (*KamailioAgent, error) {
+ ka := &KamailioAgent{
cfg: kaCfg,
connMgr: connMgr,
timezone: timezone,
conns: make([]*kamevapi.KamEvapi, len(kaCfg.EvapiConns)),
activeSessionIDs: make(chan []*sessions.SessionID),
}
- return
+ srv, err := birpc.NewServiceWithMethodsRename(ka, utils.SessionSv1, true, func(oldFn string) (newFn string) {
+ return strings.TrimPrefix(oldFn, "V1")
+ })
+ if err != nil {
+ return nil, err
+ }
+ ka.ctx = context.WithClient(context.TODO(), srv)
+ return ka, nil
}
type KamailioAgent struct {
@@ -63,6 +70,7 @@ type KamailioAgent struct {
timezone string
conns []*kamevapi.KamEvapi
activeSessionIDs chan []*sessions.SessionID
+ ctx *context.Context
}
func (self *KamailioAgent) Connect() (err error) {
@@ -106,7 +114,7 @@ func (self *KamailioAgent) Shutdown() (err error) {
return
}
-// rpcclient.ClientConnector interface
+// birpc.ClientConnector interface
func (ka *KamailioAgent) Call(serviceMethod string, args any, reply any) error {
return utils.RPCCall(ka, serviceMethod, args, reply)
}
@@ -147,7 +155,9 @@ func (ka *KamailioAgent) onCgrAuth(evData []byte, connIdx int) {
var authReply sessions.V1AuthorizeReply
// take the error after calling SessionSv1.AuthorizeEvent
// and send it as parameter to AsKamAuthReply
- err = ka.connMgr.Call(ka.cfg.SessionSConns, ka, utils.SessionSv1AuthorizeEvent, authArgs, &authReply)
+ err = ka.connMgr.Call(ka.ctx, ka.cfg.SessionSConns,
+ utils.SessionSv1AuthorizeEvent,
+ authArgs, &authReply)
if kar, err := kev.AsKamAuthReply(authArgs, &authReply, err); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> failed building auth reply for event: %s, error: %s",
utils.KamailioAgent, kev[utils.OriginID], err.Error()))
@@ -187,7 +197,8 @@ func (ka *KamailioAgent) onCallStart(evData []byte, connIdx int) {
initSessionArgs.CGREvent.Event[EvapiConnID] = connIdx // Attach the connection ID so we can properly disconnect later
var initReply sessions.V1InitSessionReply
- if err := ka.connMgr.Call(ka.cfg.SessionSConns, ka, utils.SessionSv1InitiateSession,
+ if err := ka.connMgr.Call(ka.ctx, ka.cfg.SessionSConns,
+ utils.SessionSv1InitiateSession,
initSessionArgs, &initReply); err != nil {
utils.Logger.Err(
fmt.Sprintf("<%s> could not process answer for event %s, error: %s",
@@ -227,7 +238,8 @@ func (ka *KamailioAgent) onCallEnd(evData []byte, connIdx int) {
}
var reply string
tsArgs.CGREvent.Event[EvapiConnID] = connIdx // Attach the connection ID in case we need to create a session and disconnect it
- if err := ka.connMgr.Call(ka.cfg.SessionSConns, ka, utils.SessionSv1TerminateSession,
+ if err := ka.connMgr.Call(ka.ctx, ka.cfg.SessionSConns,
+ utils.SessionSv1TerminateSession,
tsArgs, &reply); err != nil {
utils.Logger.Err(
fmt.Sprintf("<%s> could not terminate session with event %s, error: %s",
@@ -235,7 +247,8 @@ func (ka *KamailioAgent) onCallEnd(evData []byte, connIdx int) {
// no return here since we want CDR anyhow
}
if ka.cfg.CreateCdr || strings.Index(kev[utils.CGRFlags], utils.MetaCDRs) != -1 {
- if err := ka.connMgr.Call(ka.cfg.SessionSConns, ka, utils.SessionSv1ProcessCDR,
+ if err := ka.connMgr.Call(ka.ctx, ka.cfg.SessionSConns,
+ utils.SessionSv1ProcessCDR,
tsArgs.CGREvent, &reply); err != nil {
utils.Logger.Err(fmt.Sprintf("%s> failed processing CGREvent: %s, error: %s",
utils.KamailioAgent, utils.ToJSON(tsArgs.CGREvent), err.Error()))
@@ -312,7 +325,9 @@ func (ka *KamailioAgent) onCgrProcessMessage(evData []byte, connIdx int) {
procEvArgs.CGREvent.Event[EvapiConnID] = connIdx // Attach the connection ID
var processReply sessions.V1ProcessMessageReply
- err = ka.connMgr.Call(ka.cfg.SessionSConns, ka, utils.SessionSv1ProcessMessage, procEvArgs, &processReply)
+ err = ka.connMgr.Call(ka.ctx, ka.cfg.SessionSConns,
+ utils.SessionSv1ProcessMessage,
+ procEvArgs, &processReply)
// take the error after calling SessionSv1.ProcessMessage
// and send it as parameter to AsKamProcessMessageReply
if kar, err := kev.AsKamProcessMessageReply(procEvArgs, &processReply, err); err != nil {
@@ -357,7 +372,9 @@ func (ka *KamailioAgent) onCgrProcessCDR(evData []byte, connIdx int) {
procCDRArgs.Event[EvapiConnID] = connIdx // Attach the connection ID
var processReply string
- err = ka.connMgr.Call(ka.cfg.SessionSConns, ka, utils.SessionSv1ProcessCDR, procCDRArgs, &processReply)
+ err = ka.connMgr.Call(ka.ctx, ka.cfg.SessionSConns,
+ utils.SessionSv1ProcessCDR,
+ procCDRArgs, &processReply)
// take the error after calling SessionSv1.ProcessCDR
// and send it as parameter to AsKamProcessCDRReply
if kar, err := kev.AsKamProcessCDRReply(procCDRArgs, &processReply, err); err != nil {
@@ -378,7 +395,7 @@ func (self *KamailioAgent) disconnectSession(connIdx int, dscEv *KamSessionDisco
}
// Internal method to disconnect session in Kamailio
-func (ka *KamailioAgent) V1DisconnectSession(args utils.AttrDisconnectSession, reply *string) (err error) {
+func (ka *KamailioAgent) V1DisconnectSession(ctx *context.Context, args utils.AttrDisconnectSession, reply *string) (err error) {
hEntry := utils.IfaceAsString(args.EventStart[KamHashEntry])
hID := utils.IfaceAsString(args.EventStart[KamHashID])
connIdxIface, has := args.EventStart[EvapiConnID]
@@ -408,7 +425,7 @@ func (ka *KamailioAgent) V1DisconnectSession(args utils.AttrDisconnectSession, r
}
// V1GetActiveSessionIDs returns a list of CGRIDs based on active sessions from agent
-func (ka *KamailioAgent) V1GetActiveSessionIDs(ignParam string, sessionIDs *[]*sessions.SessionID) (err error) {
+func (ka *KamailioAgent) V1GetActiveSessionIDs(ctx *context.Context, ignParam string, sessionIDs *[]*sessions.SessionID) (err error) {
kamEv := utils.ToJSON(map[string]string{utils.Event: CGR_DLG_LIST})
var sentDLG int
for i, evapi := range ka.conns {
@@ -445,77 +462,16 @@ func (ka *KamailioAgent) Reload() {
}
// V1ReAuthorize is used to implement the sessions.BiRPClient interface
-func (*KamailioAgent) V1ReAuthorize(originID string, reply *string) (err error) {
+func (*KamailioAgent) V1ReAuthorize(ctx *context.Context, originID string, reply *string) (err error) {
return utils.ErrNotImplemented
}
// V1DisconnectPeer is used to implement the sessions.BiRPClient interface
-func (*KamailioAgent) V1DisconnectPeer(args *utils.DPRArgs, reply *string) (err error) {
+func (*KamailioAgent) V1DisconnectPeer(ctx *context.Context, args *utils.DPRArgs, reply *string) (err error) {
return utils.ErrNotImplemented
}
// V1WarnDisconnect is used to implement the sessions.BiRPClient interface
-func (*KamailioAgent) V1WarnDisconnect(args map[string]any, reply *string) (err error) {
+func (*KamailioAgent) V1WarnDisconnect(ctx *context.Context, args map[string]any, reply *string) (err error) {
return utils.ErrNotImplemented
}
-
-// CallBiRPC is part of utils.BiRPCServer interface to help internal connections do calls over rpcclient.ClientConnector interface
-func (ka *KamailioAgent) CallBiRPC(clnt rpcclient.ClientConnector, serviceMethod string, args any, reply any) error {
- return utils.BiRPCCall(ka, clnt, serviceMethod, args, reply)
-}
-
-// BiRPCv1DisconnectSession is internal method to disconnect session in asterisk
-func (ka *KamailioAgent) BiRPCv1DisconnectSession(clnt rpcclient.ClientConnector, args utils.AttrDisconnectSession, reply *string) error {
- return ka.V1DisconnectSession(args, reply)
-}
-
-// BiRPCv1GetActiveSessionIDs is internal method to get all active sessions in asterisk
-func (ka *KamailioAgent) BiRPCv1GetActiveSessionIDs(clnt rpcclient.ClientConnector, ignParam string,
- sessionIDs *[]*sessions.SessionID) error {
- return ka.V1GetActiveSessionIDs(ignParam, sessionIDs)
-
-}
-
-// BiRPCv1ReAuthorize is used to implement the sessions.BiRPClient interface
-func (ka *KamailioAgent) BiRPCv1ReAuthorize(clnt rpcclient.ClientConnector, originID string, reply *string) (err error) {
- return ka.V1ReAuthorize(originID, reply)
-}
-
-// BiRPCv1DisconnectPeer is used to implement the sessions.BiRPClient interface
-func (ka *KamailioAgent) BiRPCv1DisconnectPeer(clnt rpcclient.ClientConnector, args *utils.DPRArgs, reply *string) (err error) {
- return ka.V1DisconnectPeer(args, reply)
-}
-
-// BiRPCv1WarnDisconnect is used to implement the sessions.BiRPClient interface
-func (ka *KamailioAgent) BiRPCv1WarnDisconnect(clnt rpcclient.ClientConnector, args map[string]any, reply *string) (err error) {
- return ka.V1WarnDisconnect(args, reply)
-}
-
-// BiRPCv1CapsError is used to return error when the caps limit is hit
-func (ka *KamailioAgent) BiRPCv1CapsError(clnt rpcclient.ClientConnector, args any, reply *string) (err error) {
- return utils.ErrMaxConcurrentRPCExceeded
-}
-
-// Handlers is used to implement the rpcclient.BiRPCConector interface
-func (ka *KamailioAgent) Handlers() map[string]any {
- return map[string]any{
- utils.SessionSv1DisconnectSession: func(clnt *rpc2.Client, args utils.AttrDisconnectSession, rply *string) error {
- return ka.BiRPCv1DisconnectSession(clnt, args, rply)
- },
- utils.SessionSv1GetActiveSessionIDs: func(clnt *rpc2.Client, args string, rply *[]*sessions.SessionID) error {
- return ka.BiRPCv1GetActiveSessionIDs(clnt, args, rply)
- },
- utils.SessionSv1ReAuthorize: func(clnt *rpc2.Client, args string, rply *string) (err error) {
- return ka.BiRPCv1ReAuthorize(clnt, args, rply)
- },
- utils.SessionSv1DisconnectPeer: func(clnt *rpc2.Client, args *utils.DPRArgs, rply *string) (err error) {
- return ka.BiRPCv1DisconnectPeer(clnt, args, rply)
- },
- utils.SessionSv1WarnDisconnect: func(clnt *rpc2.Client, args map[string]any, rply *string) (err error) {
- return ka.BiRPCv1WarnDisconnect(clnt, args, rply)
- },
- utils.SessionSv1CapsError: func(clnt *rpc2.Client, args any, rply *string) (err error) {
- return ka.BiRPCv1CapsError(clnt, args, rply)
- },
- }
-}
diff --git a/agents/kamagent_test.go b/agents/kamagent_test.go
index 96ac1fa24..18776dfd1 100644
--- a/agents/kamagent_test.go
+++ b/agents/kamagent_test.go
@@ -24,5 +24,5 @@ import (
)
func TestKAsSessionSClientIface(t *testing.T) {
- _ = sessions.BiRPClient(new(KamailioAgent))
+ _ = sessions.BiRPCClient(new(KamailioAgent))
}
diff --git a/agents/lib_test.go b/agents/lib_test.go
index 0f42e0ec2..296b0206a 100644
--- a/agents/lib_test.go
+++ b/agents/lib_test.go
@@ -21,9 +21,9 @@ package agents
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -35,12 +35,12 @@ var (
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/agents/libagents.go b/agents/libagents.go
index ff0f9ec5c..a34e55c23 100644
--- a/agents/libagents.go
+++ b/agents/libagents.go
@@ -22,16 +22,16 @@ import (
"fmt"
"strings"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
-func processRequest(reqProcessor *config.RequestProcessor, agReq *AgentRequest,
- agentName string, connMgr *engine.ConnManager, sessionsConns []string,
- aConn rpcclient.BiRPCConector, filterS *engine.FilterS) (_ bool, err error) {
+func processRequest(ctx *context.Context, reqProcessor *config.RequestProcessor,
+ agReq *AgentRequest, agentName string, connMgr *engine.ConnManager,
+ sessionsConns []string, filterS *engine.FilterS) (_ bool, err error) {
if pass, err := filterS.Pass(agReq.Tenant,
reqProcessor.Filters, agReq); err != nil || !pass {
return pass, err
@@ -91,7 +91,7 @@ func processRequest(reqProcessor *config.RequestProcessor, agReq *AgentRequest,
reqProcessor.Flags.ParamValue(utils.MetaRoutesMaxCost),
)
rply := new(sessions.V1AuthorizeReply)
- err = connMgr.Call(sessionsConns, aConn, utils.SessionSv1AuthorizeEvent,
+ err = connMgr.Call(ctx, sessionsConns, utils.SessionSv1AuthorizeEvent,
authArgs, rply)
rply.SetMaxUsageNeeded(authArgs.GetMaxUsage)
agReq.setCGRReply(rply, err)
@@ -107,7 +107,7 @@ func processRequest(reqProcessor *config.RequestProcessor, agReq *AgentRequest,
reqProcessor.Flags.Has(utils.MetaAccounts),
cgrEv, reqProcessor.Flags.Has(utils.MetaFD))
rply := new(sessions.V1InitSessionReply)
- err = connMgr.Call(sessionsConns, aConn, utils.SessionSv1InitiateSession,
+ err = connMgr.Call(ctx, sessionsConns, utils.SessionSv1InitiateSession,
initArgs, rply)
rply.SetMaxUsageNeeded(initArgs.InitSession)
agReq.setCGRReply(rply, err)
@@ -119,7 +119,7 @@ func processRequest(reqProcessor *config.RequestProcessor, agReq *AgentRequest,
cgrEv, reqProcessor.Flags.Has(utils.MetaFD))
rply := new(sessions.V1UpdateSessionReply)
rply.SetMaxUsageNeeded(updateArgs.UpdateSession)
- err = connMgr.Call(sessionsConns, aConn, utils.SessionSv1UpdateSession,
+ err = connMgr.Call(ctx, sessionsConns, utils.SessionSv1UpdateSession,
updateArgs, rply)
agReq.setCGRReply(rply, err)
case utils.MetaTerminate:
@@ -132,7 +132,7 @@ func processRequest(reqProcessor *config.RequestProcessor, agReq *AgentRequest,
reqProcessor.Flags.ParamsSlice(utils.MetaStats, utils.MetaIDs),
cgrEv, reqProcessor.Flags.Has(utils.MetaFD))
var rply string
- err = connMgr.Call(sessionsConns, aConn, utils.SessionSv1TerminateSession,
+ err = connMgr.Call(ctx, sessionsConns, utils.SessionSv1TerminateSession,
terminateArgs, &rply)
agReq.setCGRReply(nil, err)
case utils.MetaMessage:
@@ -153,7 +153,7 @@ func processRequest(reqProcessor *config.RequestProcessor, agReq *AgentRequest,
reqProcessor.Flags.ParamValue(utils.MetaRoutesMaxCost),
)
rply := new(sessions.V1ProcessMessageReply)
- err = connMgr.Call(sessionsConns, aConn, utils.SessionSv1ProcessMessage,
+ err = connMgr.Call(ctx, sessionsConns, utils.SessionSv1ProcessMessage,
msgArgs, rply)
if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) {
cgrEv.Event[utils.Usage] = 0 // avoid further debits
@@ -169,7 +169,7 @@ func processRequest(reqProcessor *config.RequestProcessor, agReq *AgentRequest,
CGREvent: cgrEv,
}
rply := new(sessions.V1ProcessEventReply)
- err = connMgr.Call(sessionsConns, aConn, utils.SessionSv1ProcessEvent,
+ err = connMgr.Call(ctx, sessionsConns, utils.SessionSv1ProcessEvent,
evArgs, rply)
if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) {
cgrEv.Event[utils.Usage] = 0 // avoid further debits
@@ -183,7 +183,7 @@ func processRequest(reqProcessor *config.RequestProcessor, agReq *AgentRequest,
if reqProcessor.Flags.GetBool(utils.MetaCDRs) &&
!reqProcessor.Flags.Has(utils.MetaDryRun) {
var rplyCDRs string
- if err = connMgr.Call(sessionsConns, aConn, utils.SessionSv1ProcessCDR,
+ if err = connMgr.Call(ctx, sessionsConns, utils.SessionSv1ProcessCDR,
cgrEv, &rplyCDRs); err != nil {
agReq.CGRReply.Map[utils.Error] = utils.NewLeafNode(err.Error())
}
diff --git a/agents/radagent.go b/agents/radagent.go
index 803f4b5c1..e01ab9cc3 100644
--- a/agents/radagent.go
+++ b/agents/radagent.go
@@ -21,6 +21,7 @@ package agents
import (
"fmt"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -222,7 +223,7 @@ func (ra *RadiusAgent) processRequest(req *radigo.Packet, reqProcessor *config.R
reqProcessor.Flags.ParamValue(utils.MetaRoutesMaxCost),
)
rply := new(sessions.V1AuthorizeReply)
- err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1AuthorizeEvent,
+ err = ra.connMgr.Call(context.TODO(), ra.cgrCfg.RadiusAgentCfg().SessionSConns, utils.SessionSv1AuthorizeEvent,
authArgs, rply)
rply.SetMaxUsageNeeded(authArgs.GetMaxUsage)
agReq.setCGRReply(rply, err)
@@ -238,7 +239,7 @@ func (ra *RadiusAgent) processRequest(req *radigo.Packet, reqProcessor *config.R
reqProcessor.Flags.Has(utils.MetaAccounts),
cgrEv, reqProcessor.Flags.Has(utils.MetaFD))
rply := new(sessions.V1InitSessionReply)
- err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1InitiateSession,
+ err = ra.connMgr.Call(context.TODO(), ra.cgrCfg.RadiusAgentCfg().SessionSConns, utils.SessionSv1InitiateSession,
initArgs, rply)
rply.SetMaxUsageNeeded(initArgs.InitSession)
agReq.setCGRReply(rply, err)
@@ -249,7 +250,7 @@ func (ra *RadiusAgent) processRequest(req *radigo.Packet, reqProcessor *config.R
reqProcessor.Flags.Has(utils.MetaAccounts),
cgrEv, reqProcessor.Flags.Has(utils.MetaFD))
rply := new(sessions.V1UpdateSessionReply)
- err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1UpdateSession,
+ err = ra.connMgr.Call(context.TODO(), ra.cgrCfg.RadiusAgentCfg().SessionSConns, utils.SessionSv1UpdateSession,
updateArgs, rply)
rply.SetMaxUsageNeeded(updateArgs.UpdateSession)
agReq.setCGRReply(rply, err)
@@ -263,7 +264,7 @@ func (ra *RadiusAgent) processRequest(req *radigo.Packet, reqProcessor *config.R
reqProcessor.Flags.ParamsSlice(utils.MetaStats, utils.MetaIDs),
cgrEv, reqProcessor.Flags.Has(utils.MetaFD))
var rply string
- err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1TerminateSession,
+ err = ra.connMgr.Call(context.TODO(), ra.cgrCfg.RadiusAgentCfg().SessionSConns, utils.SessionSv1TerminateSession,
terminateArgs, &rply)
agReq.setCGRReply(nil, err)
case utils.MetaMessage:
@@ -283,7 +284,7 @@ func (ra *RadiusAgent) processRequest(req *radigo.Packet, reqProcessor *config.R
reqProcessor.Flags.ParamValue(utils.MetaRoutesMaxCost),
)
rply := new(sessions.V1ProcessMessageReply)
- err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1ProcessMessage, evArgs, rply)
+ err = ra.connMgr.Call(context.TODO(), ra.cgrCfg.RadiusAgentCfg().SessionSConns, utils.SessionSv1ProcessMessage, evArgs, rply)
if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) {
cgrEv.Event[utils.Usage] = 0 // avoid further debits
} else if evArgs.Debit {
@@ -298,7 +299,7 @@ func (ra *RadiusAgent) processRequest(req *radigo.Packet, reqProcessor *config.R
Paginator: cgrArgs,
}
rply := new(sessions.V1ProcessEventReply)
- err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1ProcessEvent,
+ err = ra.connMgr.Call(context.TODO(), ra.cgrCfg.RadiusAgentCfg().SessionSConns, utils.SessionSv1ProcessEvent,
evArgs, rply)
if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) {
cgrEv.Event[utils.Usage] = 0 // avoid further debits
@@ -317,7 +318,7 @@ func (ra *RadiusAgent) processRequest(req *radigo.Packet, reqProcessor *config.R
// separate request so we can capture the Terminate/Event also here
if reqProcessor.Flags.GetBool(utils.MetaCDRs) {
var rplyCDRs string
- if err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1ProcessCDR,
+ if err = ra.connMgr.Call(context.TODO(), ra.cgrCfg.RadiusAgentCfg().SessionSConns, utils.SessionSv1ProcessCDR,
cgrEv, &rplyCDRs); err != nil {
agReq.CGRReply.Map[utils.Error] = utils.NewLeafNode(err.Error())
}
diff --git a/agents/radagent_it_test.go b/agents/radagent_it_test.go
index 32e774ad8..806efb3ec 100644
--- a/agents/radagent_it_test.go
+++ b/agents/radagent_it_test.go
@@ -23,13 +23,14 @@ package agents
import (
"fmt"
- "net/rpc"
"os/exec"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -42,7 +43,7 @@ var (
raCfgPath string
raCfg *config.CGRConfig
raAuthClnt, raAcctClnt *radigo.Client
- raRPC *rpc.Client
+ raRPC *birpc.Client
sTestsRadius = []func(t *testing.T){
testRAitInitCfg,
@@ -166,7 +167,7 @@ func testRAitApierRpcConn(t *testing.T) {
func testRAitTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
var loadInst utils.LoadInstance
- if err := raRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := raRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
if isDispatcherActive {
@@ -643,7 +644,7 @@ func testRAitAcctStart(t *testing.T) {
expUsage = 3 * time.Hour
}
var aSessions []*sessions.ExternalSession
- if err := raRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := raRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -714,7 +715,7 @@ func testRAitAcctStop(t *testing.T) {
}
// Make sure the sessin was disconnected from SMG
var aSessions []*sessions.ExternalSession
- if err := raRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := raRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -726,7 +727,7 @@ func testRAitAcctStop(t *testing.T) {
time.Sleep(150 * time.Millisecond)
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, DestinationPrefixes: []string{"1002"}}
- if err := raRPC.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := raRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
diff --git a/agents/sipagent.go b/agents/sipagent.go
index d83dee200..61c64fb5c 100644
--- a/agents/sipagent.go
+++ b/agents/sipagent.go
@@ -25,6 +25,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -435,7 +436,7 @@ func (sa *SIPAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamValue(utils.MetaRoutesMaxCost),
)
rply := new(sessions.V1AuthorizeReply)
- err = sa.connMgr.Call(sa.cfg.SIPAgentCfg().SessionSConns, nil, utils.SessionSv1AuthorizeEvent,
+ err = sa.connMgr.Call(context.TODO(), sa.cfg.SIPAgentCfg().SessionSConns, utils.SessionSv1AuthorizeEvent,
authArgs, rply)
rply.SetMaxUsageNeeded(authArgs.GetMaxUsage)
agReq.setCGRReply(rply, err)
@@ -447,7 +448,7 @@ func (sa *SIPAgent) processRequest(reqProcessor *config.RequestProcessor,
}
rply := new(sessions.V1ProcessEventReply)
- err = sa.connMgr.Call(sa.cfg.SIPAgentCfg().SessionSConns, nil, utils.SessionSv1ProcessEvent,
+ err = sa.connMgr.Call(context.TODO(), sa.cfg.SIPAgentCfg().SessionSConns, utils.SessionSv1ProcessEvent,
evArgs, rply)
if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) {
cgrEv.Event[utils.Usage] = 0 // avoid further debits
diff --git a/agents/sipagent_it_test.go b/agents/sipagent_it_test.go
index cf54d7469..c3229b94c 100644
--- a/agents/sipagent_it_test.go
+++ b/agents/sipagent_it_test.go
@@ -23,11 +23,12 @@ package agents
import (
"net"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ var (
saonfigDIR string
saCfgPath string
saCfg *config.CGRConfig
- saRPC *rpc.Client
+ saRPC *birpc.Client
saConn net.Conn
sTestsSIP = []func(t *testing.T){
@@ -126,7 +127,7 @@ func testSAitApierRpcConn(t *testing.T) {
func testSAitTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tut_sip_redirect")}
var loadInst utils.LoadInstance
- if err := saRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := saRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
diff --git a/analyzers/analyzers.go b/analyzers/analyzers.go
index 456173525..0119ee32b 100644
--- a/analyzers/analyzers.go
+++ b/analyzers/analyzers.go
@@ -30,6 +30,7 @@ import (
"github.com/blevesearch/bleve"
"github.com/blevesearch/bleve/search"
"github.com/blevesearch/bleve/search/query"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -144,7 +145,7 @@ type QueryArgs struct {
}
// V1StringQuery returns a list of API that match the query
-func (aS *AnalyzerService) V1StringQuery(args *QueryArgs, reply *[]map[string]any) error {
+func (aS *AnalyzerService) V1StringQuery(ctx *context.Context, args *QueryArgs, reply *[]map[string]any) error {
var q query.Query
if args.HeaderFilters == utils.EmptyString {
q = bleve.NewMatchAllQuery()
diff --git a/analyzers/analyzers_it_test.go b/analyzers/analyzers_it_test.go
index 64232c50c..973cf203b 100644
--- a/analyzers/analyzers_it_test.go
+++ b/analyzers/analyzers_it_test.go
@@ -24,9 +24,6 @@ package analyzers
import (
"errors"
"flag"
- "net"
- "net/rpc"
- "net/rpc/jsonrpc"
"os"
"path"
"reflect"
@@ -34,8 +31,9 @@ import (
"testing"
"time"
- "github.com/cenkalti/rpc2"
- jsonrpc2 "github.com/cenkalti/rpc2/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -45,8 +43,8 @@ import (
var (
anzCfgPath string
anzCfg *config.CGRConfig
- anzRPC *rpc.Client
- anzBiRPC *rpc2.Client
+ anzRPC *birpc.Client
+ anzBiRPC *birpc.BirpcClient
sTestsAlsPrf = []func(t *testing.T){
testAnalyzerSInitCfg,
@@ -66,16 +64,16 @@ var (
var (
dataDir = flag.String("data_dir", "/usr/share/cgrates", "CGR data dir path here")
- waitRater = flag.Int("wait_rater", 100, "Number of miliseconds to wait for rater to start and cache")
+ waitRater = flag.Int("wait_rater", 500, "Number of miliseconds to wait for rater to start and cache")
encoding = flag.String("rpc", utils.MetaJSON, "what encoding whould be uused for rpc comunication")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
@@ -125,24 +123,24 @@ func testAnalyzerSStartEngine(t *testing.T) {
// Connect rpc client to rater
func testAnalyzerSRPCConn(t *testing.T) {
- var err error
+ srv, err := birpc.NewService(new(smock), utils.SessionSv1, true)
+ if err != nil {
+ t.Fatal(err)
+ }
anzRPC, err = newRPCClient(anzCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
if err != nil {
t.Fatal(err)
}
- conn, err := net.Dial(utils.TCP, anzCfg.SessionSCfg().ListenBijson)
+ anzBiRPC, err = utils.NewBiJSONrpcClient(anzCfg.SessionSCfg().ListenBijson, srv)
if err != nil {
t.Fatal(err)
}
- anzBiRPC = rpc2.NewClientWithCodec(jsonrpc2.NewJSONCodec(conn))
- anzBiRPC.Handle(utils.SessionSv1DisconnectPeer, func(clnt *rpc2.Client, args any, rply *string) (err error) { return utils.ErrNotFound })
- go anzBiRPC.Run()
}
func testAnalyzerSLoadTarrifPlans(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := anzRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := anzRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -200,7 +198,7 @@ func testAnalyzerSChargerSv1ProcessEvent(t *testing.T) {
},
}
- if err := anzRPC.Call(utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
+ if err := anzRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
t.Fatal(err)
}
sort.Slice(result2, func(i, j int) bool {
@@ -216,7 +214,7 @@ func testAnalyzerSV1Search(t *testing.T) {
// need to wait in order for the log gorutine to execute
time.Sleep(10 * time.Millisecond)
var result []map[string]any
- if err := anzRPC.Call(utils.AnalyzerSv1StringQuery, &QueryArgs{HeaderFilters: `+RequestEncoding:\*internal +RequestMethod:AttributeSv1\.ProcessEvent`}, &result); err != nil {
+ if err := anzRPC.Call(context.Background(), utils.AnalyzerSv1StringQuery, &QueryArgs{HeaderFilters: `+RequestEncoding:\*internal +RequestMethod:AttributeSv1\.ProcessEvent`}, &result); err != nil {
t.Error(err)
} else if len(result) != 1 {
t.Errorf("Unexpected result: %s", utils.ToJSON(result))
@@ -225,7 +223,7 @@ func testAnalyzerSV1Search(t *testing.T) {
func testAnalyzerSV1Search2(t *testing.T) {
var result []map[string]any
- if err := anzRPC.Call(utils.AnalyzerSv1StringQuery, &QueryArgs{HeaderFilters: `+RequestEncoding:\*json +RequestMethod:ChargerSv1\.ProcessEvent`}, &result); err != nil {
+ if err := anzRPC.Call(context.Background(), utils.AnalyzerSv1StringQuery, &QueryArgs{HeaderFilters: `+RequestEncoding:\*json +RequestMethod:ChargerSv1\.ProcessEvent`}, &result); err != nil {
t.Error(err)
} else if len(result) != 1 {
t.Errorf("Unexpected result: %s", utils.ToJSON(result))
@@ -234,7 +232,7 @@ func testAnalyzerSV1Search2(t *testing.T) {
func testAnalyzerSV1SearchWithContentFilters(t *testing.T) {
var result []map[string]any
- if err := anzRPC.Call(utils.AnalyzerSv1StringQuery, &QueryArgs{
+ if err := anzRPC.Call(context.Background(), utils.AnalyzerSv1StringQuery, &QueryArgs{
HeaderFilters: `+RequestEncoding:\*json`,
ContentFilters: []string{"*string:~*req.Event.Account:1010"},
}, &result); err != nil {
@@ -246,15 +244,15 @@ func testAnalyzerSV1SearchWithContentFilters(t *testing.T) {
func testAnalyzerSV1BirPCSession(t *testing.T) {
var rply string
- anzBiRPC.Call(utils.SessionSv1STIRIdentity,
+ anzBiRPC.Call(context.Background(), utils.SessionSv1STIRIdentity,
&sessions.V1STIRIdentityArgs{}, &rply) // only call to register the birpc
- if err := anzRPC.Call(utils.SessionSv1DisconnectPeer, &utils.DPRArgs{}, &rply); err == nil ||
+ if err := anzRPC.Call(context.Background(), utils.SessionSv1DisconnectPeer, &utils.DPRArgs{}, &rply); err == nil ||
err.Error() != utils.ErrPartiallyExecuted.Error() {
t.Fatal(err)
}
time.Sleep(10 * time.Second)
var result []map[string]any
- if err := anzRPC.Call(utils.AnalyzerSv1StringQuery, &QueryArgs{HeaderFilters: `+RequestEncoding:\*birpc_json +RequestMethod:"SessionSv1.DisconnectPeer"`}, &result); err != nil {
+ if err := anzRPC.Call(context.Background(), utils.AnalyzerSv1StringQuery, &QueryArgs{HeaderFilters: `+RequestEncoding:\*birpc_json +RequestMethod:"SessionSv1.DisconnectPeer"`}, &result); err != nil {
t.Error(err)
} else if len(result) != 1 {
t.Errorf("Unexpected result: %s", utils.ToJSON(result))
@@ -268,3 +266,10 @@ func testAnalyzerSKillEngine(t *testing.T) {
t.Fatal(err)
}
}
+
+type smock struct{}
+
+func (*smock) DisconnectPeer(ctx *context.Context,
+ args *utils.AttrDisconnectSession, reply *string) error {
+ return utils.ErrNotFound
+}
diff --git a/analyzers/analyzers_test.go b/analyzers/analyzers_test.go
index fabe493a6..463ef4bc0 100644
--- a/analyzers/analyzers_test.go
+++ b/analyzers/analyzers_test.go
@@ -29,6 +29,7 @@ import (
"github.com/blevesearch/bleve"
"github.com/blevesearch/bleve/search"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -255,13 +256,19 @@ func TestAnalyzersV1Search(t *testing.T) {
t.Fatal(err)
}
reply := []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{HeaderFilters: `"` + utils.CoreSv1Ping + `"`}, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: `"` + utils.CoreSv1Ping + `"`,
+ }, &reply); err != nil {
t.Fatal(err)
} else if len(reply) != 4 {
t.Errorf("Expected 4 hits received: %v", len(reply))
}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{HeaderFilters: "RequestMethod:" + `"` + utils.CoreSv1Ping + `"`}, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestMethod:" + `"` + utils.CoreSv1Ping + `"`,
+ }, &reply); err != nil {
t.Fatal(err)
} else if len(reply) != 4 {
t.Errorf("Expected 4 hits received: %v", len(reply))
@@ -280,57 +287,70 @@ func TestAnalyzersV1Search(t *testing.T) {
"ReplyError": nil,
}}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{HeaderFilters: utils.RequestDuration + ":>=" + strconv.FormatInt(int64(time.Hour), 10)}, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: utils.RequestDuration + ":>=" + strconv.FormatInt(int64(time.Hour), 10),
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{HeaderFilters: utils.RequestStartTime + ":<=\"" + t1.Add(-23*time.Hour).UTC().Format(time.RFC3339) + "\""}, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: utils.RequestStartTime + ":<=\"" + t1.Add(-23*time.Hour).UTC().Format(time.RFC3339) + "\"",
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{HeaderFilters: "RequestEncoding:*gob"}, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestEncoding:*gob",
- ContentFilters: []string{"*string:~*rep:Pong"},
- }, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ ContentFilters: []string{"*string:~*rep:Pong"},
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestEncoding:*gob",
- ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*attributes"},
- }, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*attributes"},
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestEncoding:*gob",
- ContentFilters: []string{"*gt:~*hdr.RequestDuration:1m"},
- }, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ ContentFilters: []string{"*gt:~*hdr.RequestDuration:1m"},
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestEncoding:*gob",
- ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*attributes"},
- }, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*attributes"},
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
@@ -348,9 +368,10 @@ func TestAnalyzersV1Search(t *testing.T) {
"ReplyError": nil,
}}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{
- ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*ees"},
- }, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*ees"},
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
@@ -358,35 +379,39 @@ func TestAnalyzersV1Search(t *testing.T) {
expRply = []map[string]any{}
reply = []map[string]any{}
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestEncoding:*gob",
- ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*cdrs"},
- }, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*cdrs"},
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestEncoding:*gob",
- ContentFilters: []string{"*notstring:~*req.APIOpts.EventSource:*attributes"},
- }, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ ContentFilters: []string{"*notstring:~*req.APIOpts.EventSource:*attributes"},
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
- if err = anz.V1StringQuery(&QueryArgs{
- ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*sessions"},
- }, &reply); err != nil {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ ContentFilters: []string{"*string:~*req.APIOpts.EventSource:*sessions"},
+ }, &reply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expRply, reply) {
t.Errorf("Expected %s received: %s", utils.ToJSON(expRply), utils.ToJSON(reply))
}
expErr := utils.ErrPrefixNotErrNotImplemented("*type")
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestEncoding:*gob",
- ContentFilters: []string{"*type:~*opts.EventSource:*cdrs"},
- }, &reply); err == nil || err.Error() != expErr.Error() {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ ContentFilters: []string{"*type:~*opts.EventSource:*cdrs"},
+ }, &reply); err == nil || err.Error() != expErr.Error() {
t.Errorf("Expected error: %s,received:%v", expErr, err)
}
@@ -405,10 +430,11 @@ func TestAnalyzersV1Search(t *testing.T) {
}
expErr = new(json.SyntaxError)
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestMethod:" + utils.AttributeSv1Ping,
- ContentFilters: []string{"*type:~*opts.EventSource:*cdrs"},
- }, &reply); err == nil || err.Error() != expErr.Error() {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestMethod:" + utils.AttributeSv1Ping,
+ ContentFilters: []string{"*type:~*opts.EventSource:*cdrs"},
+ }, &reply); err == nil || err.Error() != expErr.Error() {
t.Errorf("Expected error: %s,received:%v", expErr, err)
}
if err = anz.db.Index(utils.ConcatenatedKey(utils.AttributeSv1Ping, strconv.FormatInt(sTime.Unix(), 10)),
@@ -423,17 +449,21 @@ func TestAnalyzersV1Search(t *testing.T) {
}); err != nil {
t.Fatal(err)
}
- if err = anz.V1StringQuery(&QueryArgs{
- HeaderFilters: "RequestMethod:" + utils.AttributeSv1Ping,
- ContentFilters: []string{"*type:~*opts.EventSource:*cdrs"},
- }, &reply); err == nil || err.Error() != expErr.Error() {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestMethod:" + utils.AttributeSv1Ping,
+ ContentFilters: []string{"*type:~*opts.EventSource:*cdrs"},
+ }, &reply); err == nil || err.Error() != expErr.Error() {
t.Errorf("Expected error: %s,received:%v", expErr, err)
}
if err = anz.db.Close(); err != nil {
t.Fatal(err)
}
- if err = anz.V1StringQuery(&QueryArgs{HeaderFilters: "RequestEncoding:*gob"}, &reply); err != bleve.ErrorIndexClosed {
+ if err = anz.V1StringQuery(context.Background(),
+ &QueryArgs{
+ HeaderFilters: "RequestEncoding:*gob",
+ }, &reply); err != bleve.ErrorIndexClosed {
t.Errorf("Expected error: %v,received: %+v", bleve.ErrorIndexClosed, err)
}
if err := os.RemoveAll(cfg.AnalyzerSCfg().DBPath); err != nil {
diff --git a/analyzers/codec.go b/analyzers/codec.go
index b9caf1f7d..50f6513a0 100644
--- a/analyzers/codec.go
+++ b/analyzers/codec.go
@@ -19,14 +19,13 @@ along with this program. If not, see
package analyzers
import (
- "net/rpc"
"sync"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
)
-func NewAnalyzerServerCodec(sc rpc.ServerCodec, aS *AnalyzerService, enc, from, to string) rpc.ServerCodec {
+func NewAnalyzerServerCodec(sc birpc.ServerCodec, aS *AnalyzerService, enc, from, to string) birpc.ServerCodec {
return &AnalyzerServerCodec{
sc: sc,
reqs: make(map[uint64]*rpcAPI),
@@ -38,7 +37,7 @@ func NewAnalyzerServerCodec(sc rpc.ServerCodec, aS *AnalyzerService, enc, from,
}
type AnalyzerServerCodec struct {
- sc rpc.ServerCodec
+ sc birpc.ServerCodec
// keep the API in memory because the write is async
reqs map[uint64]*rpcAPI
@@ -50,7 +49,7 @@ type AnalyzerServerCodec struct {
to string
}
-func (c *AnalyzerServerCodec) ReadRequestHeader(r *rpc.Request) (err error) {
+func (c *AnalyzerServerCodec) ReadRequestHeader(r *birpc.Request) (err error) {
err = c.sc.ReadRequestHeader(r)
c.reqsLk.Lock()
c.reqIdx = r.Seq
@@ -71,7 +70,7 @@ func (c *AnalyzerServerCodec) ReadRequestBody(x any) (err error) {
return
}
-func (c *AnalyzerServerCodec) WriteResponse(r *rpc.Response, x any) error {
+func (c *AnalyzerServerCodec) WriteResponse(r *birpc.Response, x any) error {
c.reqsLk.Lock()
api := c.reqs[r.Seq]
delete(c.reqs, r.Seq)
@@ -82,7 +81,7 @@ func (c *AnalyzerServerCodec) WriteResponse(r *rpc.Response, x any) error {
func (c *AnalyzerServerCodec) Close() error { return c.sc.Close() }
-func NewAnalyzerBiRPCCodec(sc rpc2.Codec, aS *AnalyzerService, enc, from, to string) rpc2.Codec {
+func NewAnalyzerBiRPCCodec(sc birpc.BirpcCodec, aS *AnalyzerService, enc, from, to string) birpc.BirpcCodec {
return &AnalyzerBiRPCCodec{
sc: sc,
reqs: make(map[uint64]*rpcAPI),
@@ -95,7 +94,7 @@ func NewAnalyzerBiRPCCodec(sc rpc2.Codec, aS *AnalyzerService, enc, from, to str
}
type AnalyzerBiRPCCodec struct {
- sc rpc2.Codec
+ sc birpc.BirpcCodec
// keep the API in memory because the write is async
reqs map[uint64]*rpcAPI
@@ -113,14 +112,14 @@ type AnalyzerBiRPCCodec struct {
// ReadHeader must read a message and populate either the request
// or the response by inspecting the incoming message.
-func (c *AnalyzerBiRPCCodec) ReadHeader(req *rpc2.Request, resp *rpc2.Response) (err error) {
+func (c *AnalyzerBiRPCCodec) ReadHeader(req *birpc.Request, resp *birpc.Response) (err error) {
err = c.sc.ReadHeader(req, resp)
- if req.Method != "" {
+ if req.ServiceMethod != "" {
c.reqsLk.Lock()
c.reqIdx = req.Seq
c.reqs[c.reqIdx] = &rpcAPI{
ID: req.Seq,
- Method: req.Method,
+ Method: req.ServiceMethod,
StartTime: time.Now(),
}
c.reqsLk.Unlock()
@@ -154,12 +153,12 @@ func (c *AnalyzerBiRPCCodec) ReadResponseBody(x any) (err error) {
}
// WriteRequest must be safe for concurrent use by multiple goroutines.
-func (c *AnalyzerBiRPCCodec) WriteRequest(req *rpc2.Request, x any) error {
+func (c *AnalyzerBiRPCCodec) WriteRequest(req *birpc.Request, x any) error {
c.repsLk.Lock()
c.repIdx = req.Seq
c.reps[c.repIdx] = &rpcAPI{
ID: req.Seq,
- Method: req.Method,
+ Method: req.ServiceMethod,
StartTime: time.Now(),
}
c.repsLk.Unlock()
@@ -167,7 +166,7 @@ func (c *AnalyzerBiRPCCodec) WriteRequest(req *rpc2.Request, x any) error {
}
// WriteResponse must be safe for concurrent use by multiple goroutines.
-func (c *AnalyzerBiRPCCodec) WriteResponse(r *rpc2.Response, x any) error {
+func (c *AnalyzerBiRPCCodec) WriteResponse(r *birpc.Response, x any) error {
c.reqsLk.Lock()
api := c.reqs[r.Seq]
delete(c.reqs, r.Seq)
diff --git a/analyzers/codec_test.go b/analyzers/codec_test.go
index 478b2aa81..fef50a59b 100644
--- a/analyzers/codec_test.go
+++ b/analyzers/codec_test.go
@@ -19,14 +19,13 @@ along with this program. If not, see
package analyzers
import (
- "net/rpc"
"os"
"reflect"
"runtime"
"testing"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/rpcclient"
@@ -34,7 +33,7 @@ import (
type mockServerCodec struct{}
-func (c *mockServerCodec) ReadRequestHeader(r *rpc.Request) (err error) {
+func (c *mockServerCodec) ReadRequestHeader(r *birpc.Request) (err error) {
r.Seq = 0
r.ServiceMethod = utils.CoreSv1Ping
return
@@ -43,7 +42,7 @@ func (c *mockServerCodec) ReadRequestHeader(r *rpc.Request) (err error) {
func (c *mockServerCodec) ReadRequestBody(x any) (err error) {
return
}
-func (c *mockServerCodec) WriteResponse(r *rpc.Response, x any) error {
+func (c *mockServerCodec) WriteResponse(r *birpc.Response, x any) error {
return nil
}
func (c *mockServerCodec) Close() error { return nil }
@@ -64,8 +63,8 @@ func TestNewServerCodec(t *testing.T) {
}
codec := NewAnalyzerServerCodec(new(mockServerCodec), anz, utils.MetaJSON, "127.0.0.1:5565", "127.0.0.1:2012")
- r := new(rpc.Request)
- expR := &rpc.Request{
+ r := new(birpc.Request)
+ expR := &birpc.Request{
Seq: 0,
ServiceMethod: utils.CoreSv1Ping,
}
@@ -78,10 +77,9 @@ func TestNewServerCodec(t *testing.T) {
if err = codec.ReadRequestBody("args"); err != nil {
t.Fatal(err)
}
- if err = codec.WriteResponse(&rpc.Response{
- Error: "error",
- Seq: 0,
- ServiceMethod: utils.CoreSv1Ping,
+ if err = codec.WriteResponse(&birpc.Response{
+ Error: "error",
+ Seq: 0,
}, "reply"); err != nil {
t.Fatal(err)
}
@@ -102,16 +100,16 @@ func TestNewServerCodec(t *testing.T) {
type mockBiRPCCodec struct{}
-func (mockBiRPCCodec) ReadHeader(r *rpc2.Request, _ *rpc2.Response) error {
+func (mockBiRPCCodec) ReadHeader(r *birpc.Request, _ *birpc.Response) error {
r.Seq = 0
- r.Method = utils.CoreSv1Ping
+ r.ServiceMethod = utils.CoreSv1Ping
return nil
}
-func (mockBiRPCCodec) ReadRequestBody(any) error { return nil }
-func (mockBiRPCCodec) ReadResponseBody(any) error { return nil }
-func (mockBiRPCCodec) WriteRequest(*rpc2.Request, any) error { return nil }
-func (mockBiRPCCodec) WriteResponse(*rpc2.Response, any) error { return nil }
-func (mockBiRPCCodec) Close() error { return nil }
+func (mockBiRPCCodec) ReadRequestBody(any) error { return nil }
+func (mockBiRPCCodec) ReadResponseBody(any) error { return nil }
+func (mockBiRPCCodec) WriteRequest(*birpc.Request, any) error { return nil }
+func (mockBiRPCCodec) WriteResponse(*birpc.Response, any) error { return nil }
+func (mockBiRPCCodec) Close() error { return nil }
func TestNewBiRPCCodec(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
@@ -129,10 +127,10 @@ func TestNewBiRPCCodec(t *testing.T) {
}
codec := NewAnalyzerBiRPCCodec(new(mockBiRPCCodec), anz, rpcclient.BiRPCJSON, "127.0.0.1:5565", "127.0.0.1:2012")
- r := new(rpc2.Request)
- expR := &rpc2.Request{
- Seq: 0,
- Method: utils.CoreSv1Ping,
+ r := new(birpc.Request)
+ expR := &birpc.Request{
+ Seq: 0,
+ ServiceMethod: utils.CoreSv1Ping,
}
if err = codec.ReadHeader(r, nil); err != nil {
t.Fatal(err)
@@ -143,7 +141,7 @@ func TestNewBiRPCCodec(t *testing.T) {
if err = codec.ReadRequestBody("args"); err != nil {
t.Fatal(err)
}
- if err = codec.WriteResponse(&rpc2.Response{
+ if err = codec.WriteResponse(&birpc.Response{
Error: "error",
Seq: 0,
}, "reply"); err != nil {
@@ -166,16 +164,16 @@ func TestNewBiRPCCodec(t *testing.T) {
type mockBiRPCCodec2 struct{}
-func (mockBiRPCCodec2) ReadHeader(_ *rpc2.Request, r *rpc2.Response) error {
+func (mockBiRPCCodec2) ReadHeader(_ *birpc.Request, r *birpc.Response) error {
r.Seq = 0
r.Error = "error"
return nil
}
-func (mockBiRPCCodec2) ReadRequestBody(any) error { return nil }
-func (mockBiRPCCodec2) ReadResponseBody(any) error { return nil }
-func (mockBiRPCCodec2) WriteRequest(*rpc2.Request, any) error { return nil }
-func (mockBiRPCCodec2) WriteResponse(*rpc2.Response, any) error { return nil }
-func (mockBiRPCCodec2) Close() error { return nil }
+func (mockBiRPCCodec2) ReadRequestBody(any) error { return nil }
+func (mockBiRPCCodec2) ReadResponseBody(any) error { return nil }
+func (mockBiRPCCodec2) WriteRequest(*birpc.Request, any) error { return nil }
+func (mockBiRPCCodec2) WriteResponse(*birpc.Response, any) error { return nil }
+func (mockBiRPCCodec2) Close() error { return nil }
func TestNewBiRPCCodec2(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
@@ -193,16 +191,16 @@ func TestNewBiRPCCodec2(t *testing.T) {
}
codec := NewAnalyzerBiRPCCodec(new(mockBiRPCCodec2), anz, rpcclient.BiRPCJSON, "127.0.0.1:5565", "127.0.0.1:2012")
- if err = codec.WriteRequest(&rpc2.Request{Seq: 0, Method: utils.CoreSv1Ping}, "args"); err != nil {
+ if err = codec.WriteRequest(&birpc.Request{Seq: 0, ServiceMethod: utils.CoreSv1Ping}, "args"); err != nil {
t.Fatal(err)
}
- r := new(rpc2.Response)
- expR := &rpc2.Response{
+ r := new(birpc.Response)
+ expR := &birpc.Response{
Seq: 0,
Error: "error",
}
- if err = codec.ReadHeader(&rpc2.Request{}, r); err != nil {
+ if err = codec.ReadHeader(&birpc.Request{}, r); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(r, expR) {
t.Errorf("Expected: %v ,received:%v", expR, r)
diff --git a/analyzers/connector.go b/analyzers/connector.go
index 585749b7f..c9cb3bf7f 100644
--- a/analyzers/connector.go
+++ b/analyzers/connector.go
@@ -21,10 +21,11 @@ package analyzers
import (
"time"
- "github.com/cgrates/rpcclient"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
)
-func (aS *AnalyzerService) NewAnalyzerConnector(sc rpcclient.ClientConnector, enc, from, to string) rpcclient.ClientConnector {
+func (aS *AnalyzerService) NewAnalyzerConnector(sc birpc.ClientConnector, enc, from, to string) birpc.ClientConnector {
return &AnalyzerConnector{
conn: sc,
aS: aS,
@@ -35,7 +36,7 @@ func (aS *AnalyzerService) NewAnalyzerConnector(sc rpcclient.ClientConnector, en
}
type AnalyzerConnector struct {
- conn rpcclient.ClientConnector
+ conn birpc.ClientConnector
aS *AnalyzerService
enc string
@@ -43,46 +44,9 @@ type AnalyzerConnector struct {
to string
}
-func (c *AnalyzerConnector) Call(serviceMethod string, args, reply any) (err error) {
+func (c *AnalyzerConnector) Call(ctx *context.Context, serviceMethod string, args, reply any) (err error) {
sTime := time.Now()
- err = c.conn.Call(serviceMethod, args, reply)
+ err = c.conn.Call(ctx, serviceMethod, args, reply)
go c.aS.logTrafic(0, serviceMethod, args, reply, err, c.enc, c.from, c.to, sTime, time.Now())
return
}
-
-func (aS *AnalyzerService) NewAnalyzerBiRPCConnector(sc rpcclient.BiRPCConector, enc, from, to string) rpcclient.BiRPCConector {
- return &AnalyzerBiRPCConnector{
- conn: sc,
- aS: aS,
- enc: enc,
- from: from,
- to: to,
- }
-}
-
-type AnalyzerBiRPCConnector struct {
- conn rpcclient.BiRPCConector
-
- aS *AnalyzerService
- enc string
- from string
- to string
-}
-
-func (c *AnalyzerBiRPCConnector) Call(serviceMethod string, args, reply any) (err error) {
- sTime := time.Now()
- err = c.conn.Call(serviceMethod, args, reply)
- go c.aS.logTrafic(0, serviceMethod, args, reply, err, c.enc, c.from, c.to, sTime, time.Now())
- return
-}
-
-func (c *AnalyzerBiRPCConnector) CallBiRPC(cl rpcclient.ClientConnector, serviceMethod string, args, reply any) (err error) {
- sTime := time.Now()
- err = c.conn.CallBiRPC(cl, serviceMethod, args, reply)
- go c.aS.logTrafic(0, serviceMethod, args, reply, err, c.enc, c.from, c.to, sTime, time.Now())
- return
-}
-
-func (c *AnalyzerBiRPCConnector) Handlers() map[string]any {
- return c.conn.Handlers()
-}
diff --git a/analyzers/connector_test.go b/analyzers/connector_test.go
index 6d65dd5db..03b0e1bab 100644
--- a/analyzers/connector_test.go
+++ b/analyzers/connector_test.go
@@ -21,19 +21,18 @@ package analyzers
import (
"errors"
"os"
- "reflect"
"runtime"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
type mockConnector struct{}
-func (c *mockConnector) Call(_ string, _, _ any) (err error) {
+func (c *mockConnector) Call(_ *context.Context, _ string, _, _ any) (err error) {
return errors.New("error")
}
func TestNewAnalyzeConnector(t *testing.T) {
@@ -51,7 +50,7 @@ func TestNewAnalyzeConnector(t *testing.T) {
t.Fatal(err)
}
rpc := anz.NewAnalyzerConnector(new(mockConnector), utils.MetaJSON, "127.0.0.1:5565", "127.0.0.1:2012")
- if err = rpc.Call(utils.CoreSv1Ping, "args", "reply"); err == nil || err.Error() != "error" {
+ if err = rpc.Call(context.Background(), utils.CoreSv1Ping, "args", "reply"); err == nil || err.Error() != "error" {
t.Errorf("Expected 'error' received %v", err)
}
time.Sleep(100 * time.Millisecond)
@@ -65,72 +64,3 @@ func TestNewAnalyzeConnector(t *testing.T) {
t.Fatal(err)
}
}
-
-func (c *mockConnector) CallBiRPC(cl rpcclient.ClientConnector, serviceMethod string, args, reply any) (err error) {
- return c.Call(serviceMethod, args, reply)
-}
-func (c *mockConnector) Handlers() map[string]any { return make(map[string]any) }
-func TestNewAnalyzeBiRPCConnector1(t *testing.T) {
- cfg := config.NewDefaultCGRConfig()
-
- cfg.AnalyzerSCfg().DBPath = "/tmp/analyzers"
- if err := os.RemoveAll(cfg.AnalyzerSCfg().DBPath); err != nil {
- t.Fatal(err)
- }
- if err := os.MkdirAll(cfg.AnalyzerSCfg().DBPath, 0700); err != nil {
- t.Fatal(err)
- }
- anz, err := NewAnalyzerService(cfg)
- if err != nil {
- t.Fatal(err)
- }
- rpc := anz.NewAnalyzerBiRPCConnector(new(mockConnector), utils.MetaJSON, "127.0.0.1:5565", "127.0.0.1:2012")
- if err = rpc.Call(utils.CoreSv1Ping, "args", "reply"); err == nil || err.Error() != "error" {
- t.Errorf("Expected 'error' received %v", err)
- }
- time.Sleep(100 * time.Millisecond)
- runtime.Gosched()
- if cnt, err := anz.db.DocCount(); err != nil {
- t.Fatal(err)
- } else if cnt != 1 {
- t.Errorf("Expected only one document received:%v", cnt)
- }
- if err := os.RemoveAll(cfg.AnalyzerSCfg().DBPath); err != nil {
- t.Fatal(err)
- }
-}
-
-func TestNewAnalyzeBiRPCConnector2(t *testing.T) {
- cfg := config.NewDefaultCGRConfig()
-
- cfg.AnalyzerSCfg().DBPath = "/tmp/analyzers"
- if err := os.RemoveAll(cfg.AnalyzerSCfg().DBPath); err != nil {
- t.Fatal(err)
- }
- if err := os.MkdirAll(cfg.AnalyzerSCfg().DBPath, 0700); err != nil {
- t.Fatal(err)
- }
- anz, err := NewAnalyzerService(cfg)
- if err != nil {
- t.Fatal(err)
- }
- rpc := anz.NewAnalyzerBiRPCConnector(new(mockConnector), utils.MetaJSON, "127.0.0.1:5565", "127.0.0.1:2012")
- if err = rpc.CallBiRPC(nil, utils.CoreSv1Ping, "args", "reply"); err == nil || err.Error() != "error" {
- t.Errorf("Expected 'error' received %v", err)
- }
- time.Sleep(100 * time.Millisecond)
- runtime.Gosched()
- if cnt, err := anz.db.DocCount(); err != nil {
- t.Fatal(err)
- } else if cnt != 1 {
- t.Errorf("Expected only one document received:%v", cnt)
- }
- if err := os.RemoveAll(cfg.AnalyzerSCfg().DBPath); err != nil {
- t.Fatal(err)
- }
-
- exp := make(map[string]any)
- if rply := rpc.Handlers(); !reflect.DeepEqual(rply, exp) {
- t.Errorf("Expected: %v ,received:%v", exp, rply)
- }
-}
diff --git a/apier/v1/accounts.go b/apier/v1/accounts.go
index f8f647225..34d7d13c8 100644
--- a/apier/v1/accounts.go
+++ b/apier/v1/accounts.go
@@ -24,6 +24,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/guardian"
@@ -37,7 +38,7 @@ type AccountActionTiming struct {
NextExecTime time.Time // Next execution time
}
-func (apierSv1 *APIerSv1) GetAccountActionPlan(attrs *utils.TenantAccount, reply *[]*AccountActionTiming) error {
+func (apierSv1 *APIerSv1) GetAccountActionPlan(ctx *context.Context, attrs *utils.TenantAccount, reply *[]*AccountActionTiming) error {
if missing := utils.MissingStructFields(attrs, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(strings.Join(missing, ","), "")
}
@@ -88,7 +89,7 @@ type AttrRemoveActionTiming struct {
}
// Removes an ActionTimings or parts of it depending on filters being set
-func (apierSv1 *APIerSv1) RemoveActionTiming(attrs *AttrRemoveActionTiming, reply *string) (err error) {
+func (apierSv1 *APIerSv1) RemoveActionTiming(ctx *context.Context, attrs *AttrRemoveActionTiming, reply *string) (err error) {
if missing := utils.MissingStructFields(attrs, []string{"ActionPlanId"}); len(missing) != 0 { // Only mandatory ActionPlanId
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -142,7 +143,7 @@ func (apierSv1 *APIerSv1) RemoveActionTiming(attrs *AttrRemoveActionTiming, repl
if err != nil {
return err
}
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionPlanIDs: []string{attrs.ActionPlanId},
}, reply); err != nil {
@@ -154,7 +155,7 @@ func (apierSv1 *APIerSv1) RemoveActionTiming(attrs *AttrRemoveActionTiming, repl
}
}
if len(remAcntAPids) != 0 {
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
AccountActionPlanIDs: remAcntAPids,
}, reply); err != nil {
@@ -178,7 +179,7 @@ func (apierSv1 *APIerSv1) RemoveActionTiming(attrs *AttrRemoveActionTiming, repl
}
// SetAccount adds a new account into dataDb. If already defined, returns success.
-func (apierSv1 *APIerSv1) SetAccount(attr *utils.AttrSetAccount, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetAccount(ctx *context.Context, attr *utils.AttrSetAccount, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -255,7 +256,7 @@ func (apierSv1 *APIerSv1) SetAccount(attr *utils.AttrSetAccount, reply *string)
if err := apierSv1.DataManager.SetAccountActionPlans(accID, acntAPids, true); err != nil {
return err
}
- return apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ return apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
AccountActionPlanIDs: []string{accID},
ActionPlanIDs: apIDs,
@@ -296,7 +297,7 @@ func (apierSv1 *APIerSv1) SetAccount(attr *utils.AttrSetAccount, reply *string)
return nil
}
-func (apierSv1 *APIerSv1) RemoveAccount(attr *utils.AttrRemoveAccount, reply *string) (err error) {
+func (apierSv1 *APIerSv1) RemoveAccount(ctx *context.Context, attr *utils.AttrRemoveAccount, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -343,7 +344,7 @@ func (apierSv1 *APIerSv1) RemoveAccount(attr *utils.AttrRemoveAccount, reply *st
err.Error() != utils.ErrNotFound.Error() {
return err
}
- if err = apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err = apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
AccountActionPlanIDs: []string{accID},
}, reply); err != nil {
@@ -353,7 +354,7 @@ func (apierSv1 *APIerSv1) RemoveAccount(attr *utils.AttrRemoveAccount, reply *st
return nil
}
-func (apierSv1 *APIerSv1) GetAccounts(attr *utils.AttrGetAccounts, reply *[]any) error {
+func (apierSv1 *APIerSv1) GetAccounts(ctx *context.Context, attr *utils.AttrGetAccounts, reply *[]any) error {
tnt := attr.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -401,7 +402,7 @@ func (apierSv1 *APIerSv1) GetAccounts(attr *utils.AttrGetAccounts, reply *[]any)
}
// GetAccount returns the account
-func (apierSv1 *APIerSv1) GetAccount(attr *utils.AttrGetAccount, reply *any) error {
+func (apierSv1 *APIerSv1) GetAccount(ctx *context.Context, attr *utils.AttrGetAccount, reply *any) error {
tnt := attr.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -427,10 +428,10 @@ type AttrAddBalance struct {
Cdrlog bool
}
-func (apierSv1 *APIerSv1) AddBalance(attr *AttrAddBalance, reply *string) error {
+func (apierSv1 *APIerSv1) AddBalance(ctx *context.Context, attr *AttrAddBalance, reply *string) error {
return apierSv1.modifyBalance(utils.MetaTopUp, attr, reply)
}
-func (apierSv1 *APIerSv1) DebitBalance(attr *AttrAddBalance, reply *string) error {
+func (apierSv1 *APIerSv1) DebitBalance(ctx *context.Context, attr *AttrAddBalance, reply *string) error {
return apierSv1.modifyBalance(utils.MetaDebit, attr, reply)
}
@@ -511,7 +512,7 @@ func (apierSv1 *APIerSv1) modifyBalance(aType string, attr *AttrAddBalance, repl
// SetBalance sets the balance for the given account
// if the account is not already created it will create the account also
-func (apierSv1 *APIerSv1) SetBalance(attr *utils.AttrSetBalance, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetBalance(ctx *context.Context, attr *utils.AttrSetBalance, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField, utils.BalanceType}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -589,7 +590,7 @@ func (apierSv1 *APIerSv1) SetBalance(attr *utils.AttrSetBalance, reply *string)
// SetBalances sets multiple balances for the given account
// if the account is not already created it will create the account also
-func (apierSv1 *APIerSv1) SetBalances(attr *utils.AttrSetBalances, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetBalances(ctx *context.Context, attr *utils.AttrSetBalances, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField, utils.BalancesFld}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -672,7 +673,7 @@ func (apierSv1 *APIerSv1) SetBalances(attr *utils.AttrSetBalances, reply *string
}
// RemoveBalances remove the matching balances for the account
-func (apierSv1 *APIerSv1) RemoveBalances(attr *utils.AttrSetBalance, reply *string) (err error) {
+func (apierSv1 *APIerSv1) RemoveBalances(ctx *context.Context, attr *utils.AttrSetBalance, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField, utils.BalanceType}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -710,7 +711,7 @@ func (apierSv1 *APIerSv1) RemoveBalances(attr *utils.AttrSetBalance, reply *stri
return nil
}
-func (apierSv1 *APIerSv1) GetAccountsCount(attr *utils.TenantWithAPIOpts, reply *int) (err error) {
+func (apierSv1 *APIerSv1) GetAccountsCount(ctx *context.Context, attr *utils.TenantWithAPIOpts, reply *int) (err error) {
tnt := attr.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
diff --git a/apier/v1/accounts_it_test.go b/apier/v1/accounts_it_test.go
index a24cc10f5..4c47a5d55 100644
--- a/apier/v1/accounts_it_test.go
+++ b/apier/v1/accounts_it_test.go
@@ -21,12 +21,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ var (
accExist bool
accCfgPath string
accCfg *config.CGRConfig
- accRPC *rpc.Client
+ accRPC *birpc.Client
accAcount = "refundAcc"
accTenant = "cgrates.org"
accBallID = "Balance1"
@@ -164,7 +165,7 @@ func testAccountBalance(t *testing.T, sracc, srten, balType string, expected flo
Tenant: srten,
Account: sracc,
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[balType].GetTotalValue(); rply != expected {
t.Errorf("Expecting: %v, received: %v",
@@ -178,7 +179,7 @@ func testBalanceIfExists(t *testing.T, acc, ten, balType, balID string) (has boo
Tenant: ten,
Account: acc,
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
return false
}
@@ -203,7 +204,7 @@ func testAccITAddVoiceBalance(t *testing.T) {
},
}
var reply string
- if err := accRPC.Call(utils.APIerSv2SetBalance, &attrSetBalance, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2SetBalance, &attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -224,13 +225,13 @@ func testAccITSetBalanceTimingIds(t *testing.T) {
Time: "15:00:00Z",
}
var reply string
- if err := accRPC.Call(utils.APIerSv1SetTPTiming, &tpTiming, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetTPTiming, &tpTiming, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
- if err := accRPC.Call(utils.APIerSv1LoadTariffPlanFromStorDb,
+ if err := accRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromStorDb,
&AttrLoadTpFromStorDb{TPid: "TEST_TPID1"}, &reply); err != nil {
t.Errorf("Got error on %s: %+v", utils.APIerSv1LoadTariffPlanFromStorDb, err.Error())
} else if reply != utils.OK {
@@ -246,7 +247,7 @@ func testAccITSetBalanceTimingIds(t *testing.T) {
utils.TimingIDs: "Timing",
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, args, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, args, &reply); err != nil {
t.Error("Got error on SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling SetBalance received: %s", reply)
@@ -269,7 +270,7 @@ func testAccITSetBalanceTimingIds(t *testing.T) {
EndTime: "",
},
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
}
@@ -287,7 +288,7 @@ func testAccITSetBalanceTimingIds(t *testing.T) {
func testAccITDebitBalance(t *testing.T) {
time.Sleep(5 * time.Second)
var reply string
- if err := accRPC.Call(utils.APIerSv1DebitBalance, &AttrAddBalance{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1DebitBalance, &AttrAddBalance{
Tenant: accTenant,
Account: accAcount,
BalanceType: utils.MetaVoice,
@@ -309,7 +310,7 @@ func testAccITDebitBalance(t *testing.T) {
func testAccITDebitBalanceWithoutTenant(t *testing.T) {
var reply string
- if err := accRPC.Call(utils.APIerSv1DebitBalance, &AttrAddBalance{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1DebitBalance, &AttrAddBalance{
Account: accAcount,
BalanceType: utils.MetaVoice,
Value: 0,
@@ -337,7 +338,7 @@ func testAccITAddBalance(t *testing.T) {
Value: 1.5,
Cdrlog: true,
}
- if err := accRPC.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -346,7 +347,7 @@ func testAccITAddBalance(t *testing.T) {
// verify the cdr from CdrLog
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Sources: []string{utils.CDRLog}}
- if err := accRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -361,7 +362,7 @@ func testAccITAddBalanceWithoutTenant(t *testing.T) {
Value: 1.5,
Cdrlog: true,
}
- if err := accRPC.Call(utils.APIerSv1AddBalance, &attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1AddBalance, &attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -370,7 +371,7 @@ func testAccITAddBalanceWithoutTenant(t *testing.T) {
// verify the cdr from CdrLog
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Sources: []string{utils.CDRLog}}
- if err := accRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -380,7 +381,7 @@ func testAccITsetBalanceWithUUid(t *testing.T) {
var reply string
acnt := utils.AttrSetAccount{Tenant: "cgrates.org", Account: "test", ExtraOptions: map[string]bool{utils.Disabled: true}}
- if err := accRPC.Call(utils.APIerSv1SetAccount, acnt, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetAccount, acnt, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -393,7 +394,7 @@ func testAccITsetBalanceWithUUid(t *testing.T) {
Value: 1,
Balance: map[string]any{"UUID": "37b54e1a-e1e6-4df6-a9a5-d97b4552f2f6"},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, attrs, &reply); err == nil || err.Error() != "PARTIALLY_EXECUTED" {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, attrs, &reply); err == nil || err.Error() != "PARTIALLY_EXECUTED" {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
}
@@ -407,7 +408,7 @@ func testAccITsetBalanceWithUUid(t *testing.T) {
utils.ID: "balance1",
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetBalance received: %s", reply)
@@ -418,7 +419,7 @@ func testAccITsetBalanceWithUUid(t *testing.T) {
Account: "test",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &account); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &account); err != nil {
t.Error(err)
} else if account.BalanceMap["*sms"][0].Weight != 20 {
t.Error("Balance is not set in account")
@@ -433,9 +434,9 @@ func testAccITsetBalanceWithUUid(t *testing.T) {
utils.UUID: balUuid,
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, attrs2, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, attrs2, &reply); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
- } else if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &account); err != nil {
+ } else if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &account); err != nil {
t.Error(err)
} else if account.BalanceMap["*sms"][0].Value != 4 || len(account.BalanceMap["*sms"]) != 1 {
t.Error("Balance is not set in account")
@@ -454,7 +455,7 @@ func testAccITSetBalance(t *testing.T) {
},
Cdrlog: true,
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetBalance received: %s", reply)
@@ -463,7 +464,7 @@ func testAccITSetBalance(t *testing.T) {
// verify the cdr from CdrLog
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Sources: []string{utils.CDRLog}}
- if err := accRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 3 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -481,7 +482,7 @@ func testAccITSetBalanceWithoutTenant(t *testing.T) {
},
Cdrlog: true,
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, &attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, &attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetBalance received: %s", reply)
@@ -490,7 +491,7 @@ func testAccITSetBalanceWithoutTenant(t *testing.T) {
// verify the cdr from CdrLog
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Sources: []string{utils.CDRLog}}
- if err := accRPC.Call(utils.APIerSv1GetCDRs, &req, &cdrs); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1GetCDRs, &req, &cdrs); err != nil {
t.Error(err)
} else if len(cdrs) != 4 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -515,7 +516,7 @@ func testAccITSetBalanceWithExtraData(t *testing.T) {
Cdrlog: true,
ActionExtraData: &extraDataMap,
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetBalance received: %s", reply)
@@ -524,7 +525,7 @@ func testAccITSetBalanceWithExtraData(t *testing.T) {
// verify the cdr from CdrLog
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Sources: []string{utils.CDRLog}, Accounts: []string{"testAccITSetBalanceWithExtraData"}}
- if err := accRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -550,7 +551,7 @@ func testAccITSetBalanceWithExtraData2(t *testing.T) {
Cdrlog: true,
ActionExtraData: &extraDataMap,
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetBalance received: %s", reply)
@@ -559,7 +560,7 @@ func testAccITSetBalanceWithExtraData2(t *testing.T) {
// verify the cdr from CdrLog
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Sources: []string{utils.CDRLog}, Accounts: []string{"testAccITSetBalanceWithExtraData2"}}
- if err := accRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -577,7 +578,7 @@ func testAccITAddBalanceWithNegative(t *testing.T) {
Account: "AddBalanceWithNegative",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err.Error() != utils.ErrNotFound.Error() {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -589,7 +590,7 @@ func testAccITAddBalanceWithNegative(t *testing.T) {
BalanceType: utils.MetaMonetary,
Value: -3.5,
}
- if err := accRPC.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -601,13 +602,13 @@ func testAccITAddBalanceWithNegative(t *testing.T) {
Tenant: "cgrates.org",
Account: "AddBalanceWithNegative",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != 3.5 {
t.Errorf("Unexpected balance received : %+v", acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
- if err := accRPC.Call(utils.APIerSv1DebitBalance, &AttrAddBalance{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1DebitBalance, &AttrAddBalance{
Tenant: "cgrates.org",
Account: "AddBalanceWithNegative",
BalanceType: utils.MetaMonetary,
@@ -618,13 +619,13 @@ func testAccITAddBalanceWithNegative(t *testing.T) {
t.Errorf("Received: %s", reply)
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != 1.5 {
t.Errorf("Unexpected balance received : %+v", acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
- if err := accRPC.Call(utils.APIerSv1DebitBalance, &AttrAddBalance{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1DebitBalance, &AttrAddBalance{
Tenant: "cgrates.org",
Account: "AddBalanceWithNegative",
BalanceType: utils.MetaMonetary,
@@ -635,7 +636,7 @@ func testAccITAddBalanceWithNegative(t *testing.T) {
t.Errorf("Received: %s", reply)
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != 0.5 {
t.Errorf("Unexpected balance received : %+v", acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -650,7 +651,7 @@ func testAccITGetDisabledAccounts(t *testing.T) {
acnt4 := utils.AttrSetAccount{Tenant: "cgrates.org", Account: "account4", ExtraOptions: map[string]bool{utils.Disabled: true}}
for _, account := range []utils.AttrSetAccount{acnt1, acnt2, acnt3, acnt4} {
- if err := accRPC.Call(utils.APIerSv1SetAccount, account, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetAccount, account, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -658,7 +659,7 @@ func testAccITGetDisabledAccounts(t *testing.T) {
}
var acnts []*engine.Account
- if err := accRPC.Call(utils.APIerSv2GetAccounts, &utils.AttrGetAccounts{Tenant: "cgrates.org", Filter: map[string]bool{utils.Disabled: true}},
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccounts, &utils.AttrGetAccounts{Tenant: "cgrates.org", Filter: map[string]bool{utils.Disabled: true}},
&acnts); err != nil {
t.Error(err)
} else if len(acnts) != 4 {
@@ -674,7 +675,7 @@ func testAccITGetDisabledAccountsWithoutTenant(t *testing.T) {
acnt4 := utils.AttrSetAccount{Account: "account4", ExtraOptions: map[string]bool{utils.Disabled: true}}
for _, account := range []utils.AttrSetAccount{acnt1, acnt2, acnt3, acnt4} {
- if err := accRPC.Call(utils.APIerSv1SetAccount, account, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetAccount, account, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -682,7 +683,7 @@ func testAccITGetDisabledAccountsWithoutTenant(t *testing.T) {
}
var acnts []*engine.Account
- if err := accRPC.Call(utils.APIerSv2GetAccounts, &utils.AttrGetAccounts{Filter: map[string]bool{utils.Disabled: true}},
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccounts, &utils.AttrGetAccounts{Filter: map[string]bool{utils.Disabled: true}},
&acnts); err != nil {
t.Error(err)
} else if len(acnts) != 4 {
@@ -693,13 +694,13 @@ func testAccITGetDisabledAccountsWithoutTenant(t *testing.T) {
func testAccITRemoveAccountWithoutTenant(t *testing.T) {
var reply string
acnt1 := utils.AttrSetAccount{Account: "randomAccount"}
- if err := accRPC.Call(utils.APIerSv1SetAccount, acnt1, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetAccount, acnt1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
}
var result *engine.Account
- if err := accRPC.Call(utils.APIerSv2GetAccount,
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Account: "randomAccount"},
&result); err != nil {
t.Fatal(err)
@@ -707,14 +708,14 @@ func testAccITRemoveAccountWithoutTenant(t *testing.T) {
t.Errorf("Expected %+v, received %+v", "cgrates.org:randomAccount", result.ID)
}
- if err := accRPC.Call(utils.APIerSv1RemoveAccount,
+ if err := accRPC.Call(context.Background(), utils.APIerSv1RemoveAccount,
&utils.AttrRemoveAccount{Account: "randomAccount"},
&reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.RemoveAccount received: %s", reply)
}
- if err := accRPC.Call(utils.APIerSv2GetAccount,
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Account: "randomAccount"},
&result); err == nil || utils.ErrNotFound.Error() != err.Error() {
t.Error(err)
@@ -726,7 +727,7 @@ func testAccITCountAccounts(t *testing.T) {
args := &utils.TenantWithAPIOpts{
Tenant: "cgrates.org",
}
- if err := accRPC.Call(utils.APIerSv1GetAccountsCount, &args, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &args, &reply); err != nil {
t.Error(err)
} else if reply != 12 {
t.Errorf("Expecting: %v, received: %v", 12, reply)
@@ -734,7 +735,7 @@ func testAccITCountAccounts(t *testing.T) {
}
func testAccITCountAccountsWithoutTenant(t *testing.T) {
var reply int
- if err := accRPC.Call(utils.APIerSv1GetAccountsCount,
+ if err := accRPC.Call(context.Background(), utils.APIerSv1GetAccountsCount,
&utils.TenantIDWithAPIOpts{},
&reply); err != nil {
t.Error(err)
@@ -760,7 +761,7 @@ func testAccITSetBalanceWithVaslue0(t *testing.T) {
utils.Weight: 10,
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, args, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, args, &reply); err != nil {
t.Error("Got error on SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling SetBalance received: %s", reply)
@@ -771,7 +772,7 @@ func testAccITSetBalanceWithVaslue0(t *testing.T) {
Tenant: accTenant,
Account: "testAccSetBalance",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
}
@@ -801,7 +802,7 @@ func testAccITSetBalanceWithVaslueInMap(t *testing.T) {
utils.Value: 2,
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, args, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, args, &reply); err != nil {
t.Error("Got error on SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling SetBalance received: %s", reply)
@@ -812,7 +813,7 @@ func testAccITSetBalanceWithVaslueInMap(t *testing.T) {
Tenant: accTenant,
Account: "testAccSetBalance",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
}
@@ -837,7 +838,7 @@ func testAccITAddBalanceWithValue0(t *testing.T) {
Account: "testAccAddBalance",
BalanceType: utils.MetaMonetary,
}
- if err := accRPC.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -848,7 +849,7 @@ func testAccITAddBalanceWithValue0(t *testing.T) {
Tenant: accTenant,
Account: "testAccAddBalance",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
}
@@ -873,7 +874,7 @@ func testAccITAddBalanceWithValueInMap(t *testing.T) {
utils.Value: 1.5,
},
}
- if err := accRPC.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -884,7 +885,7 @@ func testAccITAddBalanceWithValueInMap(t *testing.T) {
Tenant: accTenant,
Account: "testAccAddBalance",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
}
@@ -904,7 +905,7 @@ func testAccITTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{
FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
var loadInst utils.LoadInstance
- if err := accRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := accRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
attrs, &loadInst); err != nil {
t.Error(err)
}
@@ -924,7 +925,7 @@ func testAccITAddBalanceWithDestinations(t *testing.T) {
utils.Value: 2,
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, args, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, args, &reply); err != nil {
t.Error("Got error on SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling SetBalance received: %s", reply)
@@ -935,7 +936,7 @@ func testAccITAddBalanceWithDestinations(t *testing.T) {
Tenant: accTenant,
Account: "testAccITAddBalanceWithDestinations",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
}
@@ -973,7 +974,7 @@ func testAccITAddBalanceWithDestinations(t *testing.T) {
},
}
var cc engine.CallCost
- if err := accRPC.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
+ if err := accRPC.Call(context.Background(), utils.ResponderMaxDebit, cd, &cc); err != nil {
t.Error("Got error on Responder.Debit: ", err.Error())
} else if cc.GetDuration() != 0 {
t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
@@ -992,7 +993,7 @@ func testAccITAddBalanceWithDestinations(t *testing.T) {
TimeEnd: tStart.Add(time.Nanosecond),
},
}
- if err := accRPC.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
+ if err := accRPC.Call(context.Background(), utils.ResponderMaxDebit, cd, &cc); err != nil {
t.Error("Got error on Responder.Debit: ", err.Error())
} else if cc.GetDuration() != 1 {
t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
@@ -1011,7 +1012,7 @@ func testAccITAccountWithTriggers(t *testing.T) {
utils.Value: 5,
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, args, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, args, &reply); err != nil {
t.Error("Got error on SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling SetBalance received: %s", reply)
@@ -1024,7 +1025,7 @@ func testAccITAccountWithTriggers(t *testing.T) {
{Identifier: utils.MetaResetTriggers},
}}
- if err := accRPC.Call(utils.APIerSv2SetActions, topupAction, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2SetActions, topupAction, &reply); err != nil {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -1036,7 +1037,7 @@ func testAccITAccountWithTriggers(t *testing.T) {
BalanceType: utils.MetaMonetary, Units: "5", Weight: 10.0},
}}
- if err := accRPC.Call(utils.APIerSv2SetActions, actTrigger, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2SetActions, actTrigger, &reply); err != nil {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -1044,7 +1045,7 @@ func testAccITAccountWithTriggers(t *testing.T) {
attrsAddTrigger := &AttrAddActionTrigger{Tenant: "cgrates.org", Account: "testAccITAccountWithTriggers", BalanceType: utils.MetaMonetary,
ThresholdType: "*min_balance", ThresholdValue: 2, Weight: 10, ActionsId: "ACT_TRIGGER"}
- if err := accRPC.Call(utils.APIerSv1AddTriggeredAction, attrsAddTrigger, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1AddTriggeredAction, attrsAddTrigger, &reply); err != nil {
t.Error("Got error on APIerSv1.AddTriggeredAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddTriggeredAction received: %s", reply)
@@ -1056,7 +1057,7 @@ func testAccITAccountWithTriggers(t *testing.T) {
Account: "testAccITAccountWithTriggers",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
} else {
for _, value := range acnt.BalanceMap[utils.MetaMonetary] {
@@ -1080,7 +1081,7 @@ func testAccITAccountWithTriggers(t *testing.T) {
}
// Debit balance will trigger the Trigger from the account
- if err := accRPC.Call(utils.APIerSv1DebitBalance, &AttrAddBalance{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1DebitBalance, &AttrAddBalance{
Tenant: "cgrates.org",
Account: "testAccITAccountWithTriggers",
BalanceType: utils.MetaMonetary,
@@ -1091,7 +1092,7 @@ func testAccITAccountWithTriggers(t *testing.T) {
t.Errorf("Received: %s", reply)
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
} else {
for _, value := range acnt.BalanceMap[utils.MetaMonetary] {
@@ -1117,14 +1118,14 @@ func testAccITAccountWithTriggers(t *testing.T) {
// execute the action that topup_reset the balance and reset the trigger
attrsEA := &utils.AttrExecuteAction{Tenant: "cgrates.org", Account: "testAccITAccountWithTriggers",
ActionsId: "TOPUP_WITH_RESET_TRIGGER"}
- if err := accRPC.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
acnt = engine.Account{}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
} else {
for _, value := range acnt.BalanceMap[utils.MetaMonetary] {
@@ -1157,7 +1158,7 @@ func testAccITAccountMonthlyEstimated(t *testing.T) {
BalanceType: utils.MetaMonetary, Units: "5", Weight: 10.0},
}}
- if err := accRPC.Call(utils.APIerSv2SetActions, topupAction, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2SetActions, topupAction, &reply); err != nil {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -1174,7 +1175,7 @@ func testAccITAccountMonthlyEstimated(t *testing.T) {
TimingID: utils.MetaMonthlyEstimated,
}},
}
- if err := accRPC.Call(utils.APIerSv1SetActionPlan, &atms1, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &atms1, &reply); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply)
@@ -1185,7 +1186,7 @@ func testAccITAccountMonthlyEstimated(t *testing.T) {
ReloadScheduler: true,
ActionPlanID: "ATMS_1",
}
- if err := accRPC.Call(utils.APIerSv1SetAccount, acnt1, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetAccount, acnt1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -1195,7 +1196,7 @@ func testAccITAccountMonthlyEstimated(t *testing.T) {
accIDsStrMp := utils.StringMap{
"cgrates.org:testAccITAccountMonthlyEstimated": true,
}
- if err := accRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := accRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: "ATMS_1"}, &aps); err != nil {
t.Error(err)
} else if len(aps) != 1 {
@@ -1246,7 +1247,7 @@ func testAccITMultipleBalance(t *testing.T) {
},
}
var reply string
- if err := accRPC.Call(utils.APIerSv1SetBalances, &attrSetBalance, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalances, &attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -1257,7 +1258,7 @@ func testAccITMultipleBalance(t *testing.T) {
Tenant: "cgrates.org",
Account: "testAccITMultipleBalance",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaVoice]) != 2 {
t.Errorf("Expected %+v, received: %+v", 2, len(acnt.BalanceMap[utils.MetaVoice]))
@@ -1301,7 +1302,7 @@ func testAccITMultipleBalanceWithoutTenant(t *testing.T) {
},
}
var reply string
- if err := accRPC.Call(utils.APIerSv1SetBalances, &attrSetBalance, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalances, &attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -1311,7 +1312,7 @@ func testAccITMultipleBalanceWithoutTenant(t *testing.T) {
attrs := &utils.AttrGetAccount{
Account: "testAccITMultipleBalance",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaVoice]) != 2 {
t.Errorf("Expected %+v, received: %+v", 2, len(acnt.BalanceMap[utils.MetaVoice]))
@@ -1326,7 +1327,7 @@ func testAccITMultipleBalanceWithoutTenant(t *testing.T) {
func testAccITRemoveBalances(t *testing.T) {
var reply string
- if err := accRPC.Call(utils.APIerSv1RemoveBalances,
+ if err := accRPC.Call(context.Background(), utils.APIerSv1RemoveBalances,
&utils.AttrSetBalance{Account: "testAccITMultipleBalance", BalanceType: utils.MetaVoice},
&reply); err != nil {
t.Error(err)
@@ -1339,7 +1340,7 @@ func testAccITRemoveBalances(t *testing.T) {
Value: 1.5,
Cdrlog: true,
}
- if err := accRPC.Call(utils.APIerSv1AddBalance, &attrs, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1AddBalance, &attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -1360,7 +1361,7 @@ func testAccITAddVoiceBalanceWithDestinations(t *testing.T) {
utils.Value: time.Hour,
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, args, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, args, &reply); err != nil {
t.Error("Got error on SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling SetBalance received: %s", reply)
@@ -1371,7 +1372,7 @@ func testAccITAddVoiceBalanceWithDestinations(t *testing.T) {
Tenant: "cgrates.com",
Account: "testAccITAddVoiceBalanceWithDestinations",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
}
@@ -1411,7 +1412,7 @@ func testAccITAddVoiceBalanceWithDestinations(t *testing.T) {
},
}
var rply time.Duration
- if err := accRPC.Call(utils.ResponderGetMaxSessionTime, cd, &rply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.ResponderGetMaxSessionTime, cd, &rply); err != nil {
t.Error("Got error on Responder.Debit: ", err.Error())
} else if rply != 0 {
t.Errorf("Expecting %+v, received: %+v", 0, rply)
@@ -1430,7 +1431,7 @@ func testAccITSetBalanceWithTimeSuffix(t *testing.T) {
utils.Value: "120ms",
},
}
- if err := accRPC.Call(utils.APIerSv1SetBalance, args, &reply); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetBalance, args, &reply); err != nil {
t.Error("Got error on SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling SetBalance received: %s", reply)
@@ -1441,7 +1442,7 @@ func testAccITSetBalanceWithTimeSuffix(t *testing.T) {
Tenant: accTenant,
Account: "testAccSetBalanceTimeSuffix",
}
- if err := accRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Fatal(err)
}
diff --git a/apier/v1/accounts_test.go b/apier/v1/accounts_test.go
index 42ac5c3ae..3b874b6a4 100644
--- a/apier/v1/accounts_test.go
+++ b/apier/v1/accounts_test.go
@@ -21,6 +21,7 @@ package v1
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -77,31 +78,31 @@ func TestGetAccountIds(t *testing.T) {
func TestGetAccounts(t *testing.T) {
var accounts []any
var attrs utils.AttrGetAccounts
- if err := apierAcnts.GetAccounts(&utils.AttrGetAccounts{Tenant: "cgrates.org"}, &accounts); err != nil {
+ if err := apierAcnts.GetAccounts(context.Background(), &utils.AttrGetAccounts{Tenant: "cgrates.org"}, &accounts); err != nil {
t.Error("Unexpected error", err.Error())
} else if len(accounts) != 3 {
t.Errorf("Accounts returned: %+v", accounts)
}
attrs = utils.AttrGetAccounts{Tenant: "itsyscom.com"}
- if err := apierAcnts.GetAccounts(&attrs, &accounts); err != nil {
+ if err := apierAcnts.GetAccounts(context.Background(), &attrs, &accounts); err != nil {
t.Error("Unexpected error", err.Error())
} else if len(accounts) != 2 {
t.Errorf("Accounts returned: %+v", accounts)
}
attrs = utils.AttrGetAccounts{Tenant: "cgrates.org", AccountIDs: []string{"account1"}}
- if err := apierAcnts.GetAccounts(&attrs, &accounts); err != nil {
+ if err := apierAcnts.GetAccounts(context.Background(), &attrs, &accounts); err != nil {
t.Error("Unexpected error", err.Error())
} else if len(accounts) != 1 {
t.Errorf("Accounts returned: %+v", accounts)
}
attrs = utils.AttrGetAccounts{Tenant: "itsyscom.com", AccountIDs: []string{"INVALID"}}
- if err := apierAcnts.GetAccounts(&attrs, &accounts); err != nil {
+ if err := apierAcnts.GetAccounts(context.Background(), &attrs, &accounts); err != nil {
t.Error("Unexpected error", err.Error())
} else if len(accounts) != 0 {
t.Errorf("Accounts returned: %+v", accounts)
}
attrs = utils.AttrGetAccounts{Tenant: "INVALID"}
- if err := apierAcnts.GetAccounts(&attrs, &accounts); err != nil {
+ if err := apierAcnts.GetAccounts(context.Background(), &attrs, &accounts); err != nil {
t.Error("Unexpected error", err.Error())
} else if len(accounts) != 0 {
t.Errorf("Accounts returned: %+v", accounts)
diff --git a/apier/v1/analyzer.go b/apier/v1/analyzer.go
index 13da468fb..7b4ab17d5 100644
--- a/apier/v1/analyzer.go
+++ b/apier/v1/analyzer.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/analyzers"
"github.com/cgrates/cgrates/utils"
)
@@ -33,19 +34,19 @@ type AnalyzerSv1 struct {
aS *analyzers.AnalyzerService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (aSv1 *AnalyzerSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (aSv1 *AnalyzerSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(aSv1, serviceMethod, args, reply)
}
// Ping return pong if the service is active
-func (aSv1 *AnalyzerSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (aSv1 *AnalyzerSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
// StringQuery returns a list of API that match the query
-func (aSv1 *AnalyzerSv1) StringQuery(search *analyzers.QueryArgs, reply *[]map[string]any) error {
- return aSv1.aS.V1StringQuery(search, reply)
+func (aSv1 *AnalyzerSv1) StringQuery(ctx *context.Context, search *analyzers.QueryArgs, reply *[]map[string]any) error {
+ return aSv1.aS.V1StringQuery(ctx, search, reply)
}
diff --git a/apier/v1/api_interfaces.go b/apier/v1/api_interfaces.go
index 80481603c..de4d3e720 100644
--- a/apier/v1/api_interfaces.go
+++ b/apier/v1/api_interfaces.go
@@ -21,6 +21,7 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
@@ -30,235 +31,235 @@ import (
)
type ThresholdSv1Interface interface {
- GetThresholdIDs(tenant *utils.TenantWithAPIOpts, tIDs *[]string) error
- GetThresholdsForEvent(args *utils.CGREvent, reply *engine.Thresholds) error
- GetThreshold(tntID *utils.TenantIDWithAPIOpts, t *engine.Threshold) error
- ProcessEvent(args *utils.CGREvent, tIDs *[]string) error
- Ping(ign *utils.CGREvent, reply *string) error
+ GetThresholdIDs(ctx *context.Context, tenant *utils.TenantWithAPIOpts, tIDs *[]string) error
+ GetThresholdsForEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.Thresholds) error
+ GetThreshold(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, t *engine.Threshold) error
+ ProcessEvent(ctx *context.Context, args *utils.CGREvent, tIDs *[]string) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type StatSv1Interface interface {
- GetQueueIDs(tenant *utils.TenantWithAPIOpts, qIDs *[]string) error
- ProcessEvent(args *utils.CGREvent, reply *[]string) error
- GetStatQueuesForEvent(args *utils.CGREvent, reply *[]string) (err error)
- GetQueueStringMetrics(args *utils.TenantIDWithAPIOpts, reply *map[string]string) (err error)
- GetQueueFloatMetrics(args *utils.TenantIDWithAPIOpts, reply *map[string]float64) (err error)
- Ping(ign *utils.CGREvent, reply *string) error
+ GetQueueIDs(ctx *context.Context, tenant *utils.TenantWithAPIOpts, qIDs *[]string) error
+ ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) error
+ GetStatQueuesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) (err error)
+ GetQueueStringMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *map[string]string) (err error)
+ GetQueueFloatMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *map[string]float64) (err error)
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type ResourceSv1Interface interface {
- GetResourcesForEvent(args *utils.CGREvent, reply *engine.Resources) error
- AuthorizeResources(args *utils.CGREvent, reply *string) error
- AllocateResources(args *utils.CGREvent, reply *string) error
- ReleaseResources(args *utils.CGREvent, reply *string) error
- GetResource(args *utils.TenantIDWithAPIOpts, reply *engine.Resource) error
- GetResourceWithConfig(args *utils.TenantIDWithAPIOpts, reply *engine.ResourceWithConfig) error
- Ping(ign *utils.CGREvent, reply *string) error
+ GetResourcesForEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.Resources) error
+ AuthorizeResources(ctx *context.Context, args *utils.CGREvent, reply *string) error
+ AllocateResources(ctx *context.Context, args *utils.CGREvent, reply *string) error
+ ReleaseResources(ctx *context.Context, args *utils.CGREvent, reply *string) error
+ GetResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Resource) error
+ GetResourceWithConfig(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ResourceWithConfig) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type RouteSv1Interface interface {
- GetRoutes(args *utils.CGREvent, reply *engine.SortedRoutesList) error
- GetRouteProfilesForEvent(args *utils.CGREvent, reply *[]*engine.RouteProfile) error
- GetRoutesList(args *utils.CGREvent, reply *[]string) error
- Ping(ign *utils.CGREvent, reply *string) error
+ GetRoutes(ctx *context.Context, args *utils.CGREvent, reply *engine.SortedRoutesList) error
+ GetRouteProfilesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]*engine.RouteProfile) error
+ GetRoutesList(ctx *context.Context, args *utils.CGREvent, reply *[]string) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type AttributeSv1Interface interface {
- GetAttributeForEvent(args *utils.CGREvent, reply *engine.AttributeProfile) (err error)
- ProcessEvent(args *utils.CGREvent, reply *engine.AttrSProcessEventReply) error
- Ping(ign *utils.CGREvent, reply *string) error
+ GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.AttributeProfile) (err error)
+ ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.AttrSProcessEventReply) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type ChargerSv1Interface interface {
- Ping(ign *utils.CGREvent, reply *string) error
- GetChargersForEvent(cgrEv *utils.CGREvent, reply *engine.ChargerProfiles) error
- ProcessEvent(args *utils.CGREvent, reply *[]*engine.ChrgSProcessEventReply) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
+ GetChargersForEvent(ctx *context.Context, cgrEv *utils.CGREvent, reply *engine.ChargerProfiles) error
+ ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *[]*engine.ChrgSProcessEventReply) error
}
type SessionSv1Interface interface {
- AuthorizeEvent(args *sessions.V1AuthorizeArgs, rply *sessions.V1AuthorizeReply) error
- AuthorizeEventWithDigest(args *sessions.V1AuthorizeArgs, rply *sessions.V1AuthorizeReplyWithDigest) error
- InitiateSession(args *sessions.V1InitSessionArgs, rply *sessions.V1InitSessionReply) error
- InitiateSessionWithDigest(args *sessions.V1InitSessionArgs, rply *sessions.V1InitReplyWithDigest) error
- UpdateSession(args *sessions.V1UpdateSessionArgs, rply *sessions.V1UpdateSessionReply) error
- SyncSessions(args *utils.TenantWithAPIOpts, rply *string) error
- TerminateSession(args *sessions.V1TerminateSessionArgs, rply *string) error
- ProcessCDR(cgrEv *utils.CGREvent, rply *string) error
- ProcessMessage(args *sessions.V1ProcessMessageArgs, rply *sessions.V1ProcessMessageReply) error
- ProcessEvent(args *sessions.V1ProcessEventArgs, rply *sessions.V1ProcessEventReply) error
- GetCost(args *sessions.V1ProcessEventArgs, rply *sessions.V1GetCostReply) error
- GetActiveSessions(args *utils.SessionFilter, rply *[]*sessions.ExternalSession) error
- GetActiveSessionsCount(args *utils.SessionFilter, rply *int) error
- ForceDisconnect(args *utils.SessionFilter, rply *string) error
- GetPassiveSessions(args *utils.SessionFilter, rply *[]*sessions.ExternalSession) error
- GetPassiveSessionsCount(args *utils.SessionFilter, rply *int) error
- Ping(ign *utils.CGREvent, reply *string) error
- ReplicateSessions(args *dispatchers.ArgsReplicateSessionsWithAPIOpts, rply *string) error
- SetPassiveSession(args *sessions.Session, reply *string) error
- ActivateSessions(args *utils.SessionIDsWithArgsDispatcher, reply *string) error
- DeactivateSessions(args *utils.SessionIDsWithArgsDispatcher, reply *string) error
+ AuthorizeEvent(ctx *context.Context, args *sessions.V1AuthorizeArgs, rply *sessions.V1AuthorizeReply) error
+ AuthorizeEventWithDigest(ctx *context.Context, args *sessions.V1AuthorizeArgs, rply *sessions.V1AuthorizeReplyWithDigest) error
+ InitiateSession(ctx *context.Context, args *sessions.V1InitSessionArgs, rply *sessions.V1InitSessionReply) error
+ InitiateSessionWithDigest(ctx *context.Context, args *sessions.V1InitSessionArgs, rply *sessions.V1InitReplyWithDigest) error
+ UpdateSession(ctx *context.Context, args *sessions.V1UpdateSessionArgs, rply *sessions.V1UpdateSessionReply) error
+ SyncSessions(ctx *context.Context, args *utils.TenantWithAPIOpts, rply *string) error
+ TerminateSession(ctx *context.Context, args *sessions.V1TerminateSessionArgs, rply *string) error
+ ProcessCDR(ctx *context.Context, cgrEv *utils.CGREvent, rply *string) error
+ ProcessMessage(ctx *context.Context, args *sessions.V1ProcessMessageArgs, rply *sessions.V1ProcessMessageReply) error
+ ProcessEvent(ctx *context.Context, args *sessions.V1ProcessEventArgs, rply *sessions.V1ProcessEventReply) error
+ GetCost(ctx *context.Context, args *sessions.V1ProcessEventArgs, rply *sessions.V1GetCostReply) error
+ GetActiveSessions(ctx *context.Context, args *utils.SessionFilter, rply *[]*sessions.ExternalSession) error
+ GetActiveSessionsCount(ctx *context.Context, args *utils.SessionFilter, rply *int) error
+ ForceDisconnect(ctx *context.Context, args *utils.SessionFilter, rply *string) error
+ GetPassiveSessions(ctx *context.Context, args *utils.SessionFilter, rply *[]*sessions.ExternalSession) error
+ GetPassiveSessionsCount(ctx *context.Context, args *utils.SessionFilter, rply *int) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
+ ReplicateSessions(ctx *context.Context, args *dispatchers.ArgsReplicateSessionsWithAPIOpts, rply *string) error
+ SetPassiveSession(ctx *context.Context, args *sessions.Session, reply *string) error
+ ActivateSessions(ctx *context.Context, args *utils.SessionIDsWithArgsDispatcher, reply *string) error
+ DeactivateSessions(ctx *context.Context, args *utils.SessionIDsWithArgsDispatcher, reply *string) error
- STIRAuthenticate(args *sessions.V1STIRAuthenticateArgs, reply *string) error
- STIRIdentity(args *sessions.V1STIRIdentityArgs, reply *string) error
+ STIRAuthenticate(ctx *context.Context, args *sessions.V1STIRAuthenticateArgs, reply *string) error
+ STIRIdentity(ctx *context.Context, args *sessions.V1STIRIdentityArgs, reply *string) error
}
type ResponderInterface interface {
- GetCost(arg *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) (err error)
- Debit(arg *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) (err error)
- MaxDebit(arg *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) (err error)
- RefundIncrements(arg *engine.CallDescriptorWithAPIOpts, reply *engine.Account) (err error)
- RefundRounding(arg *engine.CallDescriptorWithAPIOpts, reply *engine.Account) (err error)
- GetMaxSessionTime(arg *engine.CallDescriptorWithAPIOpts, reply *time.Duration) (err error)
- GetCostOnRatingPlans(arg *utils.GetCostOnRatingPlansArgs, reply *map[string]any) (err error)
- GetMaxSessionTimeOnAccounts(arg *utils.GetMaxSessionTimeOnAccountsArgs, reply *map[string]any) (err error)
- Shutdown(arg *utils.TenantWithAPIOpts, reply *string) (err error)
- Ping(ign *utils.CGREvent, reply *string) error
+ GetCost(ctx *context.Context, arg *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) (err error)
+ Debit(ctx *context.Context, arg *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) (err error)
+ MaxDebit(ctx *context.Context, arg *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) (err error)
+ RefundIncrements(ctx *context.Context, arg *engine.CallDescriptorWithAPIOpts, reply *engine.Account) (err error)
+ RefundRounding(ctx *context.Context, arg *engine.CallDescriptorWithAPIOpts, reply *engine.Account) (err error)
+ GetMaxSessionTime(ctx *context.Context, arg *engine.CallDescriptorWithAPIOpts, reply *time.Duration) (err error)
+ GetCostOnRatingPlans(ctx *context.Context, arg *utils.GetCostOnRatingPlansArgs, reply *map[string]any) (err error)
+ GetMaxSessionTimeOnAccounts(ctx *context.Context, arg *utils.GetMaxSessionTimeOnAccountsArgs, reply *map[string]any) (err error)
+ Shutdown(ctx *context.Context, arg *utils.TenantWithAPIOpts, reply *string) (err error)
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type CacheSv1Interface interface {
- GetItemIDs(args *utils.ArgsGetCacheItemIDsWithAPIOpts, reply *[]string) error
- HasItem(args *utils.ArgsGetCacheItemWithAPIOpts, reply *bool) error
- GetItemExpiryTime(args *utils.ArgsGetCacheItemWithAPIOpts, reply *time.Time) error
- RemoveItem(args *utils.ArgsGetCacheItemWithAPIOpts, reply *string) error
- RemoveItems(args *utils.AttrReloadCacheWithAPIOpts, reply *string) error
- Clear(cacheIDs *utils.AttrCacheIDsWithAPIOpts, reply *string) error
- GetCacheStats(cacheIDs *utils.AttrCacheIDsWithAPIOpts, rply *map[string]*ltcache.CacheStats) error
- PrecacheStatus(cacheIDs *utils.AttrCacheIDsWithAPIOpts, rply *map[string]string) error
- HasGroup(args *utils.ArgsGetGroupWithAPIOpts, rply *bool) error
- GetGroupItemIDs(args *utils.ArgsGetGroupWithAPIOpts, rply *[]string) error
- RemoveGroup(args *utils.ArgsGetGroupWithAPIOpts, rply *string) error
- ReloadCache(attrs *utils.AttrReloadCacheWithAPIOpts, reply *string) error
- LoadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *string) error
- ReplicateSet(args *utils.ArgCacheReplicateSet, reply *string) (err error)
- ReplicateRemove(args *utils.ArgCacheReplicateRemove, reply *string) (err error)
- Ping(ign *utils.CGREvent, reply *string) error
+ GetItemIDs(ctx *context.Context, args *utils.ArgsGetCacheItemIDsWithAPIOpts, reply *[]string) error
+ HasItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts, reply *bool) error
+ GetItemExpiryTime(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts, reply *time.Time) error
+ RemoveItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts, reply *string) error
+ RemoveItems(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) error
+ Clear(ctx *context.Context, cacheIDs *utils.AttrCacheIDsWithAPIOpts, reply *string) error
+ GetCacheStats(ctx *context.Context, cacheIDs *utils.AttrCacheIDsWithAPIOpts, rply *map[string]*ltcache.CacheStats) error
+ PrecacheStatus(ctx *context.Context, cacheIDs *utils.AttrCacheIDsWithAPIOpts, rply *map[string]string) error
+ HasGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts, rply *bool) error
+ GetGroupItemIDs(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts, rply *[]string) error
+ RemoveGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts, rply *string) error
+ ReloadCache(ctx *context.Context, attrs *utils.AttrReloadCacheWithAPIOpts, reply *string) error
+ LoadCache(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) error
+ ReplicateSet(ctx *context.Context, args *utils.ArgCacheReplicateSet, reply *string) (err error)
+ ReplicateRemove(ctx *context.Context, args *utils.ArgCacheReplicateRemove, reply *string) (err error)
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type GuardianSv1Interface interface {
- RemoteLock(attr *dispatchers.AttrRemoteLockWithAPIOpts, reply *string) (err error)
- RemoteUnlock(refID *dispatchers.AttrRemoteUnlockWithAPIOpts, reply *[]string) (err error)
- Ping(ign *utils.CGREvent, reply *string) error
+ RemoteLock(ctx *context.Context, attr *dispatchers.AttrRemoteLockWithAPIOpts, reply *string) (err error)
+ RemoteUnlock(ctx *context.Context, refID *dispatchers.AttrRemoteUnlockWithAPIOpts, reply *[]string) (err error)
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type SchedulerSv1Interface interface {
- Reload(arg *utils.CGREvent, reply *string) error
- Ping(ign *utils.CGREvent, reply *string) error
- ExecuteActions(attr *utils.AttrsExecuteActions, reply *string) error
- ExecuteActionPlans(attr *utils.AttrsExecuteActionPlans, reply *string) error
+ Reload(ctx *context.Context, arg *utils.CGREvent, reply *string) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
+ ExecuteActions(ctx *context.Context, attr *utils.AttrsExecuteActions, reply *string) error
+ ExecuteActionPlans(ctx *context.Context, attr *utils.AttrsExecuteActionPlans, reply *string) error
}
type CDRsV1Interface interface {
- ProcessCDR(cdr *engine.CDRWithAPIOpts, reply *string) error
- ProcessEvent(arg *engine.ArgV1ProcessEvent, reply *string) error
- ProcessExternalCDR(cdr *engine.ExternalCDRWithAPIOpts, reply *string) error
- RateCDRs(arg *engine.ArgRateCDRs, reply *string) error
- StoreSessionCost(attr *engine.AttrCDRSStoreSMCost, reply *string) error
- GetCDRsCount(args *utils.RPCCDRsFilterWithAPIOpts, reply *int64) error
- GetCDRs(args *utils.RPCCDRsFilterWithAPIOpts, reply *[]*engine.CDR) error
- Ping(ign *utils.CGREvent, reply *string) error
+ ProcessCDR(ctx *context.Context, cdr *engine.CDRWithAPIOpts, reply *string) error
+ ProcessEvent(ctx *context.Context, arg *engine.ArgV1ProcessEvent, reply *string) error
+ ProcessExternalCDR(ctx *context.Context, cdr *engine.ExternalCDRWithAPIOpts, reply *string) error
+ RateCDRs(ctx *context.Context, arg *engine.ArgRateCDRs, reply *string) error
+ StoreSessionCost(ctx *context.Context, attr *engine.AttrCDRSStoreSMCost, reply *string) error
+ GetCDRsCount(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, reply *int64) error
+ GetCDRs(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, reply *[]*engine.CDR) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type ServiceManagerV1Interface interface {
- StartService(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error
- StopService(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error
- ServiceStatus(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error
- Ping(ign *utils.CGREvent, reply *string) error
+ StartService(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error
+ StopService(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error
+ ServiceStatus(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type RALsV1Interface interface {
- GetRatingPlansCost(arg *utils.RatingPlanCostArg, reply *dispatchers.RatingPlanCost) error
- Ping(ign *utils.CGREvent, reply *string) error
+ GetRatingPlansCost(ctx *context.Context, arg *utils.RatingPlanCostArg, reply *dispatchers.RatingPlanCost) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
}
type ConfigSv1Interface interface {
- GetConfig(section *config.SectionWithAPIOpts, reply *map[string]any) (err error)
- ReloadConfig(section *config.ReloadArgs, reply *string) (err error)
- SetConfig(args *config.SetConfigArgs, reply *string) (err error)
- SetConfigFromJSON(args *config.SetConfigFromJSONArgs, reply *string) (err error)
- GetConfigAsJSON(args *config.SectionWithAPIOpts, reply *string) (err error)
+ GetConfig(ctx *context.Context, section *config.SectionWithAPIOpts, reply *map[string]any) (err error)
+ ReloadConfig(ctx *context.Context, section *config.ReloadArgs, reply *string) (err error)
+ SetConfig(ctx *context.Context, args *config.SetConfigArgs, reply *string) (err error)
+ SetConfigFromJSON(ctx *context.Context, args *config.SetConfigFromJSONArgs, reply *string) (err error)
+ GetConfigAsJSON(ctx *context.Context, args *config.SectionWithAPIOpts, reply *string) (err error)
}
type CoreSv1Interface interface {
- Status(arg *utils.TenantWithAPIOpts, reply *map[string]any) error
- Ping(ign *utils.CGREvent, reply *string) error
- Sleep(arg *utils.DurationArgs, reply *string) error
+ Status(ctx *context.Context, arg *utils.TenantWithAPIOpts, reply *map[string]any) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
+ Sleep(ctx *context.Context, arg *utils.DurationArgs, reply *string) error
}
type ReplicatorSv1Interface interface {
- Ping(ign *utils.CGREvent, reply *string) error
- GetAccount(args *utils.StringWithAPIOpts, reply *engine.Account) error
- GetDestination(key *utils.StringWithAPIOpts, reply *engine.Destination) error
- GetReverseDestination(key *utils.StringWithAPIOpts, reply *[]string) error
- GetStatQueue(tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) error
- GetFilter(tntID *utils.TenantIDWithAPIOpts, reply *engine.Filter) error
- GetThreshold(tntID *utils.TenantIDWithAPIOpts, reply *engine.Threshold) error
- GetThresholdProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) error
- GetStatQueueProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) error
- GetTiming(id *utils.StringWithAPIOpts, reply *utils.TPTiming) error
- GetResource(tntID *utils.TenantIDWithAPIOpts, reply *engine.Resource) error
- GetResourceProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) error
- GetActionTriggers(id *utils.StringWithAPIOpts, reply *engine.ActionTriggers) error
- GetSharedGroup(id *utils.StringWithAPIOpts, reply *engine.SharedGroup) error
- GetActions(id *utils.StringWithAPIOpts, reply *engine.Actions) error
- GetActionPlan(id *utils.StringWithAPIOpts, reply *engine.ActionPlan) error
- GetAllActionPlans(_ *utils.StringWithAPIOpts, reply *map[string]*engine.ActionPlan) error
- GetAccountActionPlans(id *utils.StringWithAPIOpts, reply *[]string) error
- GetRatingPlan(id *utils.StringWithAPIOpts, reply *engine.RatingPlan) error
- GetRatingProfile(id *utils.StringWithAPIOpts, reply *engine.RatingProfile) error
- GetRouteProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) error
- GetAttributeProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) error
- GetChargerProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) error
- GetDispatcherProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) error
- GetDispatcherHost(tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) error
- GetItemLoadIDs(itemID *utils.StringWithAPIOpts, reply *map[string]int64) error
- SetThresholdProfile(th *engine.ThresholdProfileWithAPIOpts, reply *string) error
- SetThreshold(th *engine.ThresholdWithAPIOpts, reply *string) error
- SetAccount(acc *engine.AccountWithAPIOpts, reply *string) error
- SetDestination(dst *engine.DestinationWithAPIOpts, reply *string) error
- SetReverseDestination(dst *engine.DestinationWithAPIOpts, reply *string) error
- SetStatQueue(ssq *engine.StatQueueWithAPIOpts, reply *string) error
- SetFilter(fltr *engine.FilterWithAPIOpts, reply *string) error
- SetStatQueueProfile(sq *engine.StatQueueProfileWithAPIOpts, reply *string) error
- SetTiming(tm *utils.TPTimingWithAPIOpts, reply *string) error
- SetResource(rs *engine.ResourceWithAPIOpts, reply *string) error
- SetResourceProfile(rs *engine.ResourceProfileWithAPIOpts, reply *string) error
- SetActionTriggers(args *engine.SetActionTriggersArgWithAPIOpts, reply *string) error
- SetSharedGroup(shg *engine.SharedGroupWithAPIOpts, reply *string) error
- SetActions(args *engine.SetActionsArgsWithAPIOpts, reply *string) error
- SetRatingPlan(rp *engine.RatingPlanWithAPIOpts, reply *string) error
- SetRatingProfile(rp *engine.RatingProfileWithAPIOpts, reply *string) error
- SetRouteProfile(sp *engine.RouteProfileWithAPIOpts, reply *string) error
- SetAttributeProfile(ap *engine.AttributeProfileWithAPIOpts, reply *string) error
- SetChargerProfile(cp *engine.ChargerProfileWithAPIOpts, reply *string) error
- SetDispatcherProfile(dpp *engine.DispatcherProfileWithAPIOpts, reply *string) error
- SetActionPlan(args *engine.SetActionPlanArgWithAPIOpts, reply *string) error
- SetAccountActionPlans(args *engine.SetAccountActionPlansArgWithAPIOpts, reply *string) error
- SetDispatcherHost(dpp *engine.DispatcherHostWithAPIOpts, reply *string) error
- RemoveThreshold(args *utils.TenantIDWithAPIOpts, reply *string) error
- SetLoadIDs(args *utils.LoadIDsWithAPIOpts, reply *string) error
- RemoveDestination(id *utils.StringWithAPIOpts, reply *string) error
- RemoveAccount(id *utils.StringWithAPIOpts, reply *string) error
- RemoveStatQueue(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveFilter(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveThresholdProfile(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveStatQueueProfile(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveTiming(id *utils.StringWithAPIOpts, reply *string) error
- RemoveResource(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveResourceProfile(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveActionTriggers(id *utils.StringWithAPIOpts, reply *string) error
- RemoveSharedGroup(id *utils.StringWithAPIOpts, reply *string) error
- RemoveActions(id *utils.StringWithAPIOpts, reply *string) error
- RemoveActionPlan(id *utils.StringWithAPIOpts, reply *string) error
- RemAccountActionPlans(args *engine.RemAccountActionPlansArgsWithAPIOpts, reply *string) error
- RemoveRatingPlan(id *utils.StringWithAPIOpts, reply *string) error
- RemoveRatingProfile(id *utils.StringWithAPIOpts, reply *string) error
- RemoveRouteProfile(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveAttributeProfile(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveChargerProfile(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveDispatcherProfile(args *utils.TenantIDWithAPIOpts, reply *string) error
- RemoveDispatcherHost(args *utils.TenantIDWithAPIOpts, reply *string) error
+ Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error
+ GetAccount(ctx *context.Context, args *utils.StringWithAPIOpts, reply *engine.Account) error
+ GetDestination(ctx *context.Context, key *utils.StringWithAPIOpts, reply *engine.Destination) error
+ GetReverseDestination(ctx *context.Context, key *utils.StringWithAPIOpts, reply *[]string) error
+ GetStatQueue(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) error
+ GetFilter(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Filter) error
+ GetThreshold(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Threshold) error
+ GetThresholdProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) error
+ GetStatQueueProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) error
+ GetTiming(ctx *context.Context, id *utils.StringWithAPIOpts, reply *utils.TPTiming) error
+ GetResource(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Resource) error
+ GetResourceProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) error
+ GetActionTriggers(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.ActionTriggers) error
+ GetSharedGroup(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.SharedGroup) error
+ GetActions(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.Actions) error
+ GetActionPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.ActionPlan) error
+ GetAllActionPlans(ctx *context.Context, _ *utils.StringWithAPIOpts, reply *map[string]*engine.ActionPlan) error
+ GetAccountActionPlans(ctx *context.Context, id *utils.StringWithAPIOpts, reply *[]string) error
+ GetRatingPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.RatingPlan) error
+ GetRatingProfile(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.RatingProfile) error
+ GetRouteProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) error
+ GetAttributeProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) error
+ GetChargerProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) error
+ GetDispatcherProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) error
+ GetDispatcherHost(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) error
+ GetItemLoadIDs(ctx *context.Context, itemID *utils.StringWithAPIOpts, reply *map[string]int64) error
+ SetThresholdProfile(ctx *context.Context, th *engine.ThresholdProfileWithAPIOpts, reply *string) error
+ SetThreshold(ctx *context.Context, th *engine.ThresholdWithAPIOpts, reply *string) error
+ SetAccount(ctx *context.Context, acc *engine.AccountWithAPIOpts, reply *string) error
+ SetDestination(ctx *context.Context, dst *engine.DestinationWithAPIOpts, reply *string) error
+ SetReverseDestination(ctx *context.Context, dst *engine.DestinationWithAPIOpts, reply *string) error
+ SetStatQueue(ctx *context.Context, ssq *engine.StatQueueWithAPIOpts, reply *string) error
+ SetFilter(ctx *context.Context, fltr *engine.FilterWithAPIOpts, reply *string) error
+ SetStatQueueProfile(ctx *context.Context, sq *engine.StatQueueProfileWithAPIOpts, reply *string) error
+ SetTiming(ctx *context.Context, tm *utils.TPTimingWithAPIOpts, reply *string) error
+ SetResource(ctx *context.Context, rs *engine.ResourceWithAPIOpts, reply *string) error
+ SetResourceProfile(ctx *context.Context, rs *engine.ResourceProfileWithAPIOpts, reply *string) error
+ SetActionTriggers(ctx *context.Context, args *engine.SetActionTriggersArgWithAPIOpts, reply *string) error
+ SetSharedGroup(ctx *context.Context, shg *engine.SharedGroupWithAPIOpts, reply *string) error
+ SetActions(ctx *context.Context, args *engine.SetActionsArgsWithAPIOpts, reply *string) error
+ SetRatingPlan(ctx *context.Context, rp *engine.RatingPlanWithAPIOpts, reply *string) error
+ SetRatingProfile(ctx *context.Context, rp *engine.RatingProfileWithAPIOpts, reply *string) error
+ SetRouteProfile(ctx *context.Context, sp *engine.RouteProfileWithAPIOpts, reply *string) error
+ SetAttributeProfile(ctx *context.Context, ap *engine.AttributeProfileWithAPIOpts, reply *string) error
+ SetChargerProfile(ctx *context.Context, cp *engine.ChargerProfileWithAPIOpts, reply *string) error
+ SetDispatcherProfile(ctx *context.Context, dpp *engine.DispatcherProfileWithAPIOpts, reply *string) error
+ SetActionPlan(ctx *context.Context, args *engine.SetActionPlanArgWithAPIOpts, reply *string) error
+ SetAccountActionPlans(ctx *context.Context, args *engine.SetAccountActionPlansArgWithAPIOpts, reply *string) error
+ SetDispatcherHost(ctx *context.Context, dpp *engine.DispatcherHostWithAPIOpts, reply *string) error
+ RemoveThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ SetLoadIDs(ctx *context.Context, args *utils.LoadIDsWithAPIOpts, reply *string) error
+ RemoveDestination(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemoveAccount(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemoveStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveTiming(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemoveResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveResourceProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveActionTriggers(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemoveSharedGroup(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemoveActions(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemoveActionPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemAccountActionPlans(ctx *context.Context, args *engine.RemAccountActionPlansArgsWithAPIOpts, reply *string) error
+ RemoveRatingPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemoveRatingProfile(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) error
+ RemoveRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveAttributeProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveChargerProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveDispatcherProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
+ RemoveDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error
- GetIndexes(args *utils.GetIndexesArg, reply *map[string]utils.StringSet) error
- SetIndexes(args *utils.SetIndexesArg, reply *string) error
- RemoveIndexes(args *utils.GetIndexesArg, reply *string) error
+ GetIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *map[string]utils.StringSet) error
+ SetIndexes(ctx *context.Context, args *utils.SetIndexesArg, reply *string) error
+ RemoveIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *string) error
}
diff --git a/apier/v1/apier.go b/apier/v1/apier.go
index 81888491a..f85d05787 100644
--- a/apier/v1/apier.go
+++ b/apier/v1/apier.go
@@ -28,6 +28,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/ees"
"github.com/cgrates/cgrates/engine"
@@ -55,13 +56,13 @@ type APIerSv1 struct {
ResponderChan chan *engine.Responder
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (apierSv1 *APIerSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (apierSv1 *APIerSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(apierSv1, serviceMethod, args, reply)
}
-func (apierSv1 *APIerSv1) GetDestination(dstId *string, reply *engine.Destination) error {
+func (apierSv1 *APIerSv1) GetDestination(ctx *context.Context, dstId *string, reply *engine.Destination) error {
if dst, err := apierSv1.DataManager.GetDestination(*dstId, true, true, utils.NonTransactional); err != nil {
return utils.ErrNotFound
} else {
@@ -75,7 +76,7 @@ type AttrRemoveDestination struct {
Prefixes []string
}
-func (apierSv1 *APIerSv1) RemoveDestination(attr *AttrRemoveDestination, reply *string) (err error) {
+func (apierSv1 *APIerSv1) RemoveDestination(ctx *context.Context, attr *AttrRemoveDestination, reply *string) (err error) {
for _, dstID := range attr.DestinationIDs {
var oldDst *engine.Destination
if oldDst, err = apierSv1.DataManager.GetDestination(dstID, true, true,
@@ -100,7 +101,7 @@ func (apierSv1 *APIerSv1) RemoveDestination(attr *AttrRemoveDestination, reply *
if err = apierSv1.DataManager.UpdateReverseDestination(oldDst, newDst, utils.NonTransactional); err != nil {
return
}
- if err = apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err = apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ReverseDestinationIDs: oldDst.Prefixes,
DestinationIDs: []string{dstID},
@@ -113,7 +114,7 @@ func (apierSv1 *APIerSv1) RemoveDestination(attr *AttrRemoveDestination, reply *
if err = apierSv1.DataManager.RemoveDestination(dstID, utils.NonTransactional); err != nil {
return
}
- if err = apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err = apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ReverseDestinationIDs: oldDst.Prefixes,
DestinationIDs: []string{dstID},
@@ -126,7 +127,7 @@ func (apierSv1 *APIerSv1) RemoveDestination(attr *AttrRemoveDestination, reply *
}
// GetReverseDestination retrieves revese destination list for a prefix
-func (apierSv1 *APIerSv1) GetReverseDestination(prefix *string, reply *[]string) (err error) {
+func (apierSv1 *APIerSv1) GetReverseDestination(ctx *context.Context, prefix *string, reply *[]string) (err error) {
if *prefix == utils.EmptyString {
return utils.NewErrMandatoryIeMissing("prefix")
}
@@ -139,7 +140,7 @@ func (apierSv1 *APIerSv1) GetReverseDestination(prefix *string, reply *[]string)
}
// ComputeReverseDestinations will rebuild complete reverse destinations data
-func (apierSv1 *APIerSv1) ComputeReverseDestinations(ignr *string, reply *string) (err error) {
+func (apierSv1 *APIerSv1) ComputeReverseDestinations(ctx *context.Context, ignr *string, reply *string) (err error) {
if err = apierSv1.DataManager.RebuildReverseForPrefix(utils.ReverseDestinationPrefix); err != nil {
return
}
@@ -148,11 +149,11 @@ func (apierSv1 *APIerSv1) ComputeReverseDestinations(ignr *string, reply *string
}
// ComputeAccountActionPlans will rebuild complete reverse accountActions data
-func (apierSv1 *APIerSv1) ComputeAccountActionPlans(tnt *utils.TenantWithAPIOpts, reply *string) (err error) {
+func (apierSv1 *APIerSv1) ComputeAccountActionPlans(ctx *context.Context, tnt *utils.TenantWithAPIOpts, reply *string) (err error) {
if err = apierSv1.DataManager.RebuildReverseForPrefix(utils.AccountActionPlansPrefix); err != nil {
return
}
- return apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ return apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
Tenant: tnt.Tenant,
CacheIDs: []string{utils.CacheAccountActionPlans},
@@ -160,7 +161,7 @@ func (apierSv1 *APIerSv1) ComputeAccountActionPlans(tnt *utils.TenantWithAPIOpts
}, reply)
}
-func (apierSv1 *APIerSv1) GetSharedGroup(sgId *string, reply *engine.SharedGroup) error {
+func (apierSv1 *APIerSv1) GetSharedGroup(ctx *context.Context, sgId *string, reply *engine.SharedGroup) error {
if sg, err := apierSv1.DataManager.GetSharedGroup(*sgId, false, utils.NonTransactional); err != nil && err != utils.ErrNotFound { // Not found is not an error here
return err
} else {
@@ -171,7 +172,7 @@ func (apierSv1 *APIerSv1) GetSharedGroup(sgId *string, reply *engine.SharedGroup
return nil
}
-func (apierSv1 *APIerSv1) SetDestination(attrs *utils.AttrSetDestination, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetDestination(ctx *context.Context, attrs *utils.AttrSetDestination, reply *string) (err error) {
if missing := utils.MissingStructFields(attrs, []string{"Id", "Prefixes"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -190,7 +191,7 @@ func (apierSv1 *APIerSv1) SetDestination(attrs *utils.AttrSetDestination, reply
if err = apierSv1.DataManager.UpdateReverseDestination(oldDest, dest, utils.NonTransactional); err != nil {
return
}
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ReverseDestinationIDs: dest.Prefixes,
DestinationIDs: []string{attrs.Id},
@@ -201,7 +202,7 @@ func (apierSv1 *APIerSv1) SetDestination(attrs *utils.AttrSetDestination, reply
return nil
}
-func (apierSv1 *APIerSv1) GetRatingPlan(rplnId *string, reply *engine.RatingPlan) error {
+func (apierSv1 *APIerSv1) GetRatingPlan(ctx *context.Context, rplnId *string, reply *engine.RatingPlan) error {
rpln, err := apierSv1.DataManager.GetRatingPlan(*rplnId, false, utils.NonTransactional)
if err != nil {
if err.Error() == utils.ErrNotFound.Error() {
@@ -213,7 +214,7 @@ func (apierSv1 *APIerSv1) GetRatingPlan(rplnId *string, reply *engine.RatingPlan
return nil
}
-func (apierSv1 *APIerSv1) RemoveRatingPlan(ID *string, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveRatingPlan(ctx *context.Context, ID *string, reply *string) error {
if len(*ID) == 0 {
return utils.NewErrMandatoryIeMissing("ID")
}
@@ -221,7 +222,7 @@ func (apierSv1 *APIerSv1) RemoveRatingPlan(ID *string, reply *string) error {
if err != nil {
return utils.NewErrServerError(err)
}
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
RatingPlanIDs: []string{*ID},
}, reply); err != nil {
@@ -235,7 +236,7 @@ func (apierSv1 *APIerSv1) RemoveRatingPlan(ID *string, reply *string) error {
return nil
}
-func (apierSv1 *APIerSv1) ExecuteAction(attr *utils.AttrExecuteAction, reply *string) error {
+func (apierSv1 *APIerSv1) ExecuteAction(ctx *context.Context, attr *utils.AttrExecuteAction, reply *string) error {
at := &engine.ActionTiming{
ActionsID: attr.ActionsId,
}
@@ -260,7 +261,7 @@ type AttrLoadDestination struct {
}
// Load destinations from storDb into dataDb.
-func (apierSv1 *APIerSv1) LoadDestination(attrs *AttrLoadDestination, reply *string) error {
+func (apierSv1 *APIerSv1) LoadDestination(ctx *context.Context, attrs *AttrLoadDestination, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -276,7 +277,7 @@ func (apierSv1 *APIerSv1) LoadDestination(attrs *AttrLoadDestination, reply *str
} else if !loaded {
return utils.ErrNotFound
}
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
DestinationIDs: []string{attrs.ID},
}, reply); err != nil {
@@ -292,7 +293,7 @@ type AttrLoadRatingPlan struct {
}
// Process dependencies and load a specific rating plan from storDb into dataDb.
-func (apierSv1 *APIerSv1) LoadRatingPlan(attrs *AttrLoadRatingPlan, reply *string) error {
+func (apierSv1 *APIerSv1) LoadRatingPlan(ctx *context.Context, attrs *AttrLoadRatingPlan, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -313,7 +314,7 @@ func (apierSv1 *APIerSv1) LoadRatingPlan(attrs *AttrLoadRatingPlan, reply *strin
}
// Process dependencies and load a specific rating profile from storDb into dataDb.
-func (apierSv1 *APIerSv1) LoadRatingProfile(attrs *utils.TPRatingProfile, reply *string) error {
+func (apierSv1 *APIerSv1) LoadRatingProfile(ctx *context.Context, attrs *utils.TPRatingProfile, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -346,7 +347,7 @@ type AttrLoadSharedGroup struct {
}
// Load destinations from storDb into dataDb.
-func (apierSv1 *APIerSv1) LoadSharedGroup(attrs *AttrLoadSharedGroup, reply *string) error {
+func (apierSv1 *APIerSv1) LoadSharedGroup(ctx *context.Context, attrs *AttrLoadSharedGroup, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -373,7 +374,7 @@ type AttrLoadTpFromStorDb struct {
}
// Loads complete data in a TP from storDb
-func (apierSv1 *APIerSv1) LoadTariffPlanFromStorDb(attrs *AttrLoadTpFromStorDb, reply *string) error {
+func (apierSv1 *APIerSv1) LoadTariffPlanFromStorDb(ctx *context.Context, attrs *AttrLoadTpFromStorDb, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -422,7 +423,7 @@ func (apierSv1 *APIerSv1) LoadTariffPlanFromStorDb(attrs *AttrLoadTpFromStorDb,
return nil
}
-func (apierSv1 *APIerSv1) ImportTariffPlanFromFolder(attrs *utils.AttrImportTPFromFolder, reply *string) error {
+func (apierSv1 *APIerSv1) ImportTariffPlanFromFolder(ctx *context.Context, attrs *utils.AttrImportTPFromFolder, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "FolderPath"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -453,7 +454,7 @@ func (apierSv1 *APIerSv1) ImportTariffPlanFromFolder(attrs *utils.AttrImportTPFr
}
// SetRatingProfile sets a specific rating profile working with data directly in the DataDB without involving storDb
-func (apierSv1 *APIerSv1) SetRatingProfile(attrs *utils.AttrSetRatingProfile, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetRatingProfile(ctx *context.Context, attrs *utils.AttrSetRatingProfile, reply *string) (err error) {
if missing := utils.MissingStructFields(attrs, []string{"Subject", "RatingPlanActivations"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -512,7 +513,7 @@ func (apierSv1 *APIerSv1) SetRatingProfile(attrs *utils.AttrSetRatingProfile, re
}
// GetRatingProfileIDs returns list of resourceProfile IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetRatingProfileIDs(args *utils.PaginatorWithTenant, rsPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetRatingProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, rsPrfIDs *[]string) error {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -533,7 +534,7 @@ func (apierSv1 *APIerSv1) GetRatingProfileIDs(args *utils.PaginatorWithTenant, r
return nil
}
-func (apierSv1 *APIerSv1) GetRatingProfile(attrs *utils.AttrGetRatingProfile, reply *engine.RatingProfile) (err error) {
+func (apierSv1 *APIerSv1) GetRatingProfile(ctx *context.Context, attrs *utils.AttrGetRatingProfile, reply *engine.RatingProfile) (err error) {
if missing := utils.MissingStructFields(attrs, []string{utils.Category, utils.Subject}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -581,7 +582,7 @@ type V1TPAction struct {
Weight float64 // Action's weight
}
-func (apierSv1 *APIerSv1) SetActions(attrs *V1AttrSetActions, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetActions(ctx *context.Context, attrs *V1AttrSetActions, reply *string) (err error) {
if missing := utils.MissingStructFields(attrs, []string{"ActionsId", "Actions"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -648,7 +649,7 @@ func (apierSv1 *APIerSv1) SetActions(attrs *V1AttrSetActions, reply *string) (er
return utils.NewErrServerError(err)
}
//CacheReload
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionIDs: []string{attrs.ActionsId},
}, reply); err != nil {
@@ -663,7 +664,7 @@ func (apierSv1 *APIerSv1) SetActions(attrs *V1AttrSetActions, reply *string) (er
}
// Retrieves actions attached to specific ActionsId within cache
-func (apierSv1 *APIerSv1) GetActions(actsId *string, reply *[]*utils.TPAction) error {
+func (apierSv1 *APIerSv1) GetActions(ctx *context.Context, actsId *string, reply *[]*utils.TPAction) error {
if len(*actsId) == 0 {
return fmt.Errorf("%s ActionsId: %s", utils.ErrMandatoryIeMissing.Error(), *actsId)
}
@@ -753,7 +754,7 @@ func (attr *AttrActionPlan) getRITiming(dm *engine.DataManager) (timing *engine.
return
}
-func (apierSv1 *APIerSv1) SetActionPlan(attrs *AttrSetActionPlan, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetActionPlan(ctx *context.Context, attrs *AttrSetActionPlan, reply *string) (err error) {
if missing := utils.MissingStructFields(attrs, []string{"Id", "ActionPlan"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -795,7 +796,7 @@ func (apierSv1 *APIerSv1) SetActionPlan(attrs *AttrSetActionPlan, reply *string)
if err := apierSv1.DataManager.SetActionPlan(ap.Id, ap, true, utils.NonTransactional); err != nil {
return utils.NewErrServerError(err)
}
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionPlanIDs: []string{ap.Id},
}, reply); err != nil {
@@ -807,7 +808,7 @@ func (apierSv1 *APIerSv1) SetActionPlan(attrs *AttrSetActionPlan, reply *string)
}
}
if len(prevAccountIDs) != 0 {
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
AccountActionPlanIDs: prevAccountIDs.Slice(),
}, reply); err != nil {
@@ -950,7 +951,7 @@ type AttrGetActionPlan struct {
ID string
}
-func (apierSv1 *APIerSv1) GetActionPlan(attr *AttrGetActionPlan, reply *[]*engine.ActionPlan) error {
+func (apierSv1 *APIerSv1) GetActionPlan(ctx *context.Context, attr *AttrGetActionPlan, reply *[]*engine.ActionPlan) error {
var result []*engine.ActionPlan
if attr.ID == "" || attr.ID == "*" {
result = make([]*engine.ActionPlan, 0)
@@ -972,7 +973,7 @@ func (apierSv1 *APIerSv1) GetActionPlan(attr *AttrGetActionPlan, reply *[]*engin
return nil
}
-func (apierSv1 *APIerSv1) RemoveActionPlan(attr *AttrGetActionPlan, reply *string) (err error) {
+func (apierSv1 *APIerSv1) RemoveActionPlan(ctx *context.Context, attr *AttrGetActionPlan, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{"ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -992,7 +993,7 @@ func (apierSv1 *APIerSv1) RemoveActionPlan(attr *AttrGetActionPlan, reply *strin
}
}
if len(prevAccountIDs) != 0 {
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
AccountActionPlanIDs: prevAccountIDs.Slice(),
}, reply); err != nil {
@@ -1008,7 +1009,7 @@ func (apierSv1 *APIerSv1) RemoveActionPlan(attr *AttrGetActionPlan, reply *strin
}
// Process dependencies and load a specific AccountActions profile from storDb into dataDb.
-func (apierSv1 *APIerSv1) LoadAccountActions(attrs *utils.TPAccountActions, reply *string) error {
+func (apierSv1 *APIerSv1) LoadAccountActions(ctx *context.Context, attrs *utils.TPAccountActions, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -1034,7 +1035,7 @@ func (apierSv1 *APIerSv1) LoadAccountActions(attrs *utils.TPAccountActions, repl
return nil
}
-func (apierSv1 *APIerSv1) LoadTariffPlanFromFolder(attrs *utils.AttrLoadTpFromFolder, reply *string) error {
+func (apierSv1 *APIerSv1) LoadTariffPlanFromFolder(ctx *context.Context, attrs *utils.AttrLoadTpFromFolder, reply *string) error {
// verify if FolderPath is present
if len(attrs.FolderPath) == 0 {
return fmt.Errorf("%s:%s", utils.ErrMandatoryIeMissing.Error(), "FolderPath")
@@ -1106,7 +1107,7 @@ func (apierSv1 *APIerSv1) LoadTariffPlanFromFolder(attrs *utils.AttrLoadTpFromFo
// RemoveTPFromFolder will load the tarrifplan from folder into TpReader object
// and will delete if from database
-func (apierSv1 *APIerSv1) RemoveTPFromFolder(attrs *utils.AttrLoadTpFromFolder, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPFromFolder(ctx *context.Context, attrs *utils.AttrLoadTpFromFolder, reply *string) error {
// verify if FolderPath is present
if len(attrs.FolderPath) == 0 {
return fmt.Errorf("%s:%s", utils.ErrMandatoryIeMissing.Error(), "FolderPath")
@@ -1178,7 +1179,7 @@ func (apierSv1 *APIerSv1) RemoveTPFromFolder(attrs *utils.AttrLoadTpFromFolder,
// RemoveTPFromStorDB will load the tarrifplan from StorDB into TpReader object
// and will delete if from database
-func (apierSv1 *APIerSv1) RemoveTPFromStorDB(attrs *AttrLoadTpFromStorDb, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPFromStorDB(ctx *context.Context, attrs *AttrLoadTpFromStorDb, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -1254,7 +1255,7 @@ func (arrp *AttrRemoveRatingProfile) GetId() (result string) {
return
}
-func (apierSv1 *APIerSv1) RemoveRatingProfile(attr *AttrRemoveRatingProfile, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveRatingProfile(ctx *context.Context, attr *AttrRemoveRatingProfile, reply *string) error {
if attr.Tenant == utils.EmptyString {
attr.Tenant = apierSv1.Config.GeneralCfg().DefaultTenant
}
@@ -1281,7 +1282,7 @@ func (apierSv1 *APIerSv1) RemoveRatingProfile(attr *AttrRemoveRatingProfile, rep
return nil
}
-func (apierSv1 *APIerSv1) GetLoadHistory(attrs *utils.Paginator, reply *[]*utils.LoadInstance) error {
+func (apierSv1 *APIerSv1) GetLoadHistory(ctx *context.Context, attrs *utils.Paginator, reply *[]*utils.LoadInstance) error {
nrItems := -1
offset := 0
if attrs.Offset != nil { // For offset we need full data
@@ -1313,7 +1314,7 @@ type AttrRemoveActions struct {
ActionIDs []string
}
-func (apierSv1 *APIerSv1) RemoveActions(attr *AttrRemoveActions, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveActions(ctx *context.Context, attr *AttrRemoveActions, reply *string) error {
if attr.ActionIDs == nil {
err := utils.ErrNotFound
*reply = err.Error()
@@ -1364,7 +1365,7 @@ func (apierSv1 *APIerSv1) RemoveActions(attr *AttrRemoveActions, reply *string)
}
}
//CacheReload
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionIDs: attr.ActionIDs,
}, reply); err != nil {
@@ -1385,7 +1386,7 @@ type ArgsReplyFailedPosts struct {
}
// ReplayFailedPosts will repost failed requests found in the FailedRequestsInDir
-func (apierSv1 *APIerSv1) ReplayFailedPosts(args *ArgsReplyFailedPosts, reply *string) (err error) {
+func (apierSv1 *APIerSv1) ReplayFailedPosts(ctx *context.Context, args *ArgsReplyFailedPosts, reply *string) (err error) {
failedReqsInDir := apierSv1.Config.GeneralCfg().FailedPostsDir
if args.FailedRequestsInDir != nil && *args.FailedRequestsInDir != "" {
failedReqsInDir = *args.FailedRequestsInDir
@@ -1434,7 +1435,7 @@ func (apierSv1 *APIerSv1) ReplayFailedPosts(args *ArgsReplyFailedPosts, reply *s
return nil
}
-func (apierSv1 *APIerSv1) GetLoadIDs(args *string, reply *map[string]int64) (err error) {
+func (apierSv1 *APIerSv1) GetLoadIDs(ctx *context.Context, args *string, reply *map[string]int64) (err error) {
var loadIDs map[string]int64
if loadIDs, err = apierSv1.DataManager.GetItemLoadIDs(*args, false); err != nil {
return
@@ -1448,7 +1449,7 @@ type LoadTimeArgs struct {
Item string
}
-func (apierSv1 *APIerSv1) GetLoadTimes(args *LoadTimeArgs, reply *map[string]string) (err error) {
+func (apierSv1 *APIerSv1) GetLoadTimes(ctx *context.Context, args *LoadTimeArgs, reply *map[string]string) (err error) {
if loadIDs, err := apierSv1.DataManager.GetItemLoadIDs(args.Item, false); err != nil {
return err
} else {
@@ -1465,7 +1466,7 @@ func (apierSv1 *APIerSv1) GetLoadTimes(args *LoadTimeArgs, reply *map[string]str
return
}
-func (apierSv1 *APIerSv1) ComputeActionPlanIndexes(_ string, reply *string) (err error) {
+func (apierSv1 *APIerSv1) ComputeActionPlanIndexes(ctx *context.Context, _ string, reply *string) (err error) {
if err = apierSv1.DataManager.RebuildReverseForPrefix(utils.AccountActionPlansPrefix); err != nil {
return err
}
@@ -1474,7 +1475,7 @@ func (apierSv1 *APIerSv1) ComputeActionPlanIndexes(_ string, reply *string) (err
}
// GetActionPlanIDs returns list of ActionPlan IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetActionPlanIDs(args *utils.PaginatorWithTenant, attrPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetActionPlanIDs(ctx *context.Context, args *utils.PaginatorWithTenant, attrPrfIDs *[]string) error {
prfx := utils.ActionPlanPrefix
keys, err := apierSv1.DataManager.DataDB().GetKeysForPrefix(utils.ActionPlanPrefix)
if err != nil {
@@ -1492,7 +1493,7 @@ func (apierSv1 *APIerSv1) GetActionPlanIDs(args *utils.PaginatorWithTenant, attr
}
// GetRatingPlanIDs returns list of RatingPlan IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetRatingPlanIDs(args *utils.PaginatorWithTenant, attrPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetRatingPlanIDs(ctx *context.Context, args *utils.PaginatorWithTenant, attrPrfIDs *[]string) error {
prfx := utils.RatingPlanPrefix
keys, err := apierSv1.DataManager.DataDB().GetKeysForPrefix(utils.RatingPlanPrefix)
if err != nil {
@@ -1529,13 +1530,13 @@ func (apierSv1 *APIerSv1) ListenAndServe(stopChan chan struct{}) {
}
// Ping return pong if the service is active
-func (apierSv1 *APIerSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (apierSv1 *APIerSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
// ExportToFolder export specific items (or all items if items is empty) from DataDB back to CSV
-func (apierSv1 *APIerSv1) ExportToFolder(arg *utils.ArgExportToFolder, reply *string) error {
+func (apierSv1 *APIerSv1) ExportToFolder(ctx *context.Context, arg *utils.ArgExportToFolder, reply *string) error {
// if items is empty we need to export all items
if len(arg.Items) == 0 {
arg.Items = []string{utils.MetaAttributes, utils.MetaChargers, utils.MetaDispatchers,
@@ -1893,7 +1894,7 @@ func (apierSv1 *APIerSv1) ExportToFolder(arg *utils.ArgExportToFolder, reply *st
return nil
}
-func (apierSv1 *APIerSv1) ExportCDRs(args *utils.ArgExportCDRs, reply *map[string]any) (err error) {
+func (apierSv1 *APIerSv1) ExportCDRs(ctx *context.Context, args *utils.ArgExportCDRs, reply *map[string]any) (err error) {
if len(apierSv1.Config.ApierCfg().EEsConns) == 0 {
return utils.NewErrNotConnected(utils.EEs)
}
@@ -1917,7 +1918,8 @@ func (apierSv1 *APIerSv1) ExportCDRs(args *utils.ArgExportCDRs, reply *map[strin
if args.Verbose {
argCdr.CGREvent.APIOpts[utils.OptsEEsVerbose] = struct{}{}
}
- if err := apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().EEsConns, nil, utils.EeSv1ProcessEvent,
+ if err := apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().EEsConns,
+ utils.EeSv1ProcessEvent,
argCdr, &rplyCdr); err != nil {
utils.Logger.Warning(fmt.Sprintf("<%s> error: <%s> processing event: <%s> with <%s>",
utils.ApierS, err.Error(), utils.ToJSON(cdr.AsCGREvent()), utils.EEs))
diff --git a/apier/v1/apier2_it_test.go b/apier/v1/apier2_it_test.go
index d95a39725..1ea57ec0e 100644
--- a/apier/v1/apier2_it_test.go
+++ b/apier/v1/apier2_it_test.go
@@ -22,7 +22,6 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"os/exec"
"path"
"reflect"
@@ -30,6 +29,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/scheduler"
"github.com/cgrates/cgrates/config"
@@ -41,7 +42,7 @@ import (
var (
apierCfgPath string
apierCfg *config.CGRConfig
- apierRPC *rpc.Client
+ apierRPC *birpc.Client
APIerSv2ConfigDIR string //run tests for specific configuration
sTestsAPIer = []func(t *testing.T){
@@ -147,7 +148,7 @@ func testAPIerRPCConn(t *testing.T) {
func testAPIerLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := apierRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -187,7 +188,7 @@ func testAPIerVerifyAttributesAfterLoad(t *testing.T) {
}
eAttrPrf.Compile()
var attrReply *engine.AttributeProfile
- if err := apierRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := apierRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err != nil {
t.Error(err)
}
@@ -207,7 +208,7 @@ func testAPIerVerifyAttributesAfterLoad(t *testing.T) {
func testAPIerRemoveTPFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := apierRPC.Call(utils.APIerSv1RemoveTPFromFolder, attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1RemoveTPFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -215,13 +216,13 @@ func testAPIerRemoveTPFromFolder(t *testing.T) {
func testAPIerAfterDelete(t *testing.T) {
var reply *engine.AttributeProfile
- if err := apierRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1001_SIMPLEAUTH"}}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
}
var replyTh *engine.ThresholdProfile
- if err := apierRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &replyTh); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -241,7 +242,7 @@ func testAPIerVerifyAttributesAfterDelete(t *testing.T) {
},
}
var attrReply *engine.AttributeProfile
- if err := apierRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := apierRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -256,7 +257,7 @@ func testAPIerGetRatingPlanCost(t *testing.T) {
Usage: "1h",
}
var reply dispatchers.RatingPlanCost
- if err := apierRPC.Call(utils.RALsV1GetRatingPlansCost, arg, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.RALsV1GetRatingPlansCost, arg, &reply); err != nil {
t.Error(err)
} else if reply.RatingPlanID != "RP_1001" {
t.Error("Unexpected RatingPlanID: ", reply.RatingPlanID)
@@ -278,7 +279,7 @@ func testAPIerGetRatingPlanCost2(t *testing.T) {
Usage: "1h",
}
var reply dispatchers.RatingPlanCost
- if err := apierRPC.Call(utils.RALsV1GetRatingPlansCost, arg, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.RALsV1GetRatingPlansCost, arg, &reply); err != nil {
t.Error(err)
} else if reply.RatingPlanID != "RP_1001" {
t.Error("Unexpected RatingPlanID: ", reply.RatingPlanID)
@@ -297,7 +298,7 @@ func testAPIerGetRatingPlanCost3(t *testing.T) {
Usage: "1h",
}
var reply dispatchers.RatingPlanCost
- if err := apierRPC.Call(utils.RALsV1GetRatingPlansCost, arg, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.RALsV1GetRatingPlansCost, arg, &reply); err != nil {
t.Error(err)
} else if reply.RatingPlanID != "RP_1002" {
t.Error("Unexpected RatingPlanID: ", reply.RatingPlanID)
@@ -310,7 +311,7 @@ func testAPIerGetRatingPlanCost3(t *testing.T) {
func testAPIerGetActionPlanIDs(t *testing.T) {
var reply []string
- if err := apierRPC.Call(utils.APIerSv1GetActionPlanIDs,
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetActionPlanIDs,
&utils.PaginatorWithTenant{Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -324,7 +325,7 @@ func testAPIerGetActionPlanIDs(t *testing.T) {
func testAPIerGetRatingPlanIDs(t *testing.T) {
var reply []string
expected := []string{"RP_1002_LOW", "RP_1003", "RP_1001", "RP_MMS", "RP_SMS", "RP_1002"}
- if err := apierRPC.Call(utils.APIerSv1GetRatingPlanIDs,
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetRatingPlanIDs,
&utils.PaginatorWithTenant{Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -350,7 +351,7 @@ func testAPIerSetActionPlanDfltTime(t *testing.T) {
},
ReloadScheduler: true,
}
- if err := apierRPC.Call(utils.APIerSv1SetActionPlan, &hourlyAP, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &hourlyAP, &reply1); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply1 != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply1)
@@ -366,7 +367,7 @@ func testAPIerSetActionPlanDfltTime(t *testing.T) {
},
ReloadScheduler: true,
}
- if err := apierRPC.Call(utils.APIerSv1SetActionPlan, &dailyAP, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &dailyAP, &reply1); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply1 != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply1)
@@ -382,7 +383,7 @@ func testAPIerSetActionPlanDfltTime(t *testing.T) {
},
ReloadScheduler: true,
}
- if err := apierRPC.Call(utils.APIerSv1SetActionPlan, &weeklyAP, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &weeklyAP, &reply1); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply1 != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply1)
@@ -398,13 +399,13 @@ func testAPIerSetActionPlanDfltTime(t *testing.T) {
},
ReloadScheduler: true,
}
- if err := apierRPC.Call(utils.APIerSv1SetActionPlan, &monthlyAP, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &monthlyAP, &reply1); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply1 != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply1)
}
var rply []*scheduler.ScheduledAction
- if err := apierRPC.Call(utils.APIerSv1GetScheduledActions,
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetScheduledActions,
scheduler.ArgsGetScheduledActions{}, &rply); err != nil {
t.Error("Unexpected error: ", err)
} else {
@@ -445,7 +446,7 @@ func testAPIerSetActionPlanDfltTime(t *testing.T) {
func testAPIerLoadRatingPlan(t *testing.T) {
attrs := utils.AttrSetDestination{Id: "DEST_CUSTOM", Prefixes: []string{"+4986517174963", "+4986517174960"}}
var reply string
- if err := apierRPC.Call(utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
t.Error("Unexpected error", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -454,7 +455,7 @@ func testAPIerLoadRatingPlan(t *testing.T) {
rt := &utils.TPRateRALs{TPid: "TP_SAMPLE", ID: "SAMPLE_RATE_ID", RateSlots: []*utils.RateSlot{
{ConnectFee: 0, Rate: 0, RateUnit: "1s", RateIncrement: "1s", GroupIntervalStart: "0s"},
}}
- if err := apierRPC.Call(utils.APIerSv1SetTPRate, rt, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetTPRate, rt, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRate: ", reply)
@@ -464,7 +465,7 @@ func testAPIerLoadRatingPlan(t *testing.T) {
{DestinationId: "DEST_CUSTOM", RateId: "SAMPLE_RATE_ID",
RoundingMethod: "*up", RoundingDecimals: 4},
}}
- if err := apierRPC.Call(utils.APIerSv1SetTPDestinationRate, dr, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetTPDestinationRate, dr, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPDestinationRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPDestinationRate: ", reply)
@@ -476,13 +477,13 @@ func testAPIerLoadRatingPlan(t *testing.T) {
Weight: 10},
}}
- if err := apierRPC.Call(utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingPlan: ", reply)
}
- if err := apierRPC.Call(utils.APIerSv1LoadRatingPlan, &AttrLoadRatingPlan{TPid: "TP_SAMPLE", RatingPlanId: "RPl_SAMPLE_RATING_PLAN"}, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1LoadRatingPlan, &AttrLoadRatingPlan{TPid: "TP_SAMPLE", RatingPlanId: "RPl_SAMPLE_RATING_PLAN"}, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.LoadRatingPlan got reply: ", reply)
@@ -490,7 +491,7 @@ func testAPIerLoadRatingPlan(t *testing.T) {
rpRply := new(engine.RatingPlan)
rplnId := "RPl_SAMPLE_RATING_PLAN"
- if err := apierRPC.Call(utils.APIerSv1GetRatingPlan, &rplnId, rpRply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetRatingPlan, &rplnId, rpRply); err != nil {
t.Error("Got error on APIerSv1.GetRatingPlan: ", err.Error())
}
@@ -503,7 +504,7 @@ func testAPIerLoadRatingPlan2(t *testing.T) {
{DestinationId: "DST_NOT_FOUND", RateId: "SAMPLE_RATE_ID",
RoundingMethod: "*up", RoundingDecimals: 4},
}}
- if err := apierRPC.Call(utils.APIerSv1SetTPDestinationRate, dr, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetTPDestinationRate, dr, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPDestinationRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPDestinationRate: ", reply)
@@ -515,13 +516,13 @@ func testAPIerLoadRatingPlan2(t *testing.T) {
Weight: 10},
}}
- if err := apierRPC.Call(utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingPlan: ", reply)
}
- if err := apierRPC.Call(utils.APIerSv1LoadRatingPlan,
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1LoadRatingPlan,
&AttrLoadRatingPlan{TPid: "TP_SAMPLE", RatingPlanId: "RPL_WITH_ERROR"}, &reply); err == nil {
t.Error("Expected to get error: ", err)
}
@@ -543,14 +544,14 @@ func testAPIerLoadRatingProfile(t *testing.T) {
}},
}
// add a TPRatingProfile
- if err := apierRPC.Call(utils.APIerSv1SetTPRatingProfile, rpf, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, rpf, &reply); err != nil {
t.Error(err)
}
// load the TPRatingProfile into dataDB
argsRPrf := &utils.TPRatingProfile{
TPid: "TP_SAMPLE", LoadId: "TP_SAMPLE",
Tenant: "cgrates.org", Category: "call", Subject: "*any"}
- if err := apierRPC.Call(utils.APIerSv1LoadRatingProfile, argsRPrf, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1LoadRatingProfile, argsRPrf, &reply); err != nil {
t.Error(err)
}
@@ -571,7 +572,7 @@ func testAPIerLoadRatingProfile(t *testing.T) {
},
},
}
- if err := apierRPC.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
t.Errorf("Got error on APIerSv1.GetRatingProfile: %+v", err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Calling APIerSv1.GetRatingProfile expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
@@ -584,13 +585,13 @@ func testAPIerLoadRatingProfile(t *testing.T) {
Weight: 10},
}}
- if err := apierRPC.Call(utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingPlan: ", reply)
}
- if err := apierRPC.Call(utils.APIerSv1LoadRatingPlan, &AttrLoadRatingPlan{TPid: "TP_SAMPLE", RatingPlanId: "RPl_SAMPLE_RATING_PLAN2"}, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1LoadRatingPlan, &AttrLoadRatingPlan{TPid: "TP_SAMPLE", RatingPlanId: "RPl_SAMPLE_RATING_PLAN2"}, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.LoadRatingPlan got reply: ", reply)
@@ -617,13 +618,13 @@ func testAPIerLoadRatingProfile(t *testing.T) {
},
}
- if err := apierRPC.Call(utils.APIerSv1SetTPRatingProfile, rpf, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, rpf, &reply); err != nil {
t.Error(err)
}
// load the TPRatingProfile into dataDB
// because the RatingProfile exists the RatingPlanActivations will be merged
- if err := apierRPC.Call(utils.APIerSv1LoadRatingProfile, argsRPrf, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1LoadRatingProfile, argsRPrf, &reply); err != nil {
t.Error(err)
}
actTime2, err := utils.ParseTimeDetectLayout("2012-02-02T00:00:00Z", utils.EmptyString)
@@ -643,7 +644,7 @@ func testAPIerLoadRatingProfile(t *testing.T) {
},
},
}
- if err := apierRPC.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
t.Errorf("Got error on APIerSv1.GetRatingProfile: %+v", err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Calling APIerSv1.GetRatingProfile expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
@@ -654,12 +655,12 @@ func testAPIerLoadRatingProfile(t *testing.T) {
func testAPIerLoadFromFolderAccountAction(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := apierRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
attrs2 := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "account_action_from_tutorial")}
- if err := apierRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs2, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs2, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -668,7 +669,7 @@ func testAPIerLoadFromFolderAccountAction(t *testing.T) {
Tenant: "cgrates.org",
Account: "AccountWithAPFromTutorial",
}
- if err := apierRPC.Call(utils.APIerSv2GetAccount, attrAcnt, &acnt); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcnt, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != 10.0 {
t.Errorf("Expecting: %v, received: %v",
@@ -695,7 +696,7 @@ func testApierSetAndRemoveRatingProfileAnySubject(t *testing.T) {
Overwrite: true,
}
var reply string
- if err := apierRPC.Call(utils.APIerSv1SetRatingProfile, rpf, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetRatingProfile, rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.SetRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetRatingProfile got reply: ", reply)
@@ -713,13 +714,13 @@ func testApierSetAndRemoveRatingProfileAnySubject(t *testing.T) {
attrGetRatingPlan := &utils.AttrGetRatingProfile{
Tenant: "cgrates.org", Category: "sms", Subject: utils.MetaAny}
var rpl engine.RatingProfile
- if err := apierRPC.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
t.Errorf("Got error on APIerSv1.GetRatingProfile: %+v", err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Calling APIerSv1.GetRatingProfile expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
}
- if err := apierRPC.Call(utils.APIerSv1RemoveRatingProfile, &AttrRemoveRatingProfile{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1RemoveRatingProfile, &AttrRemoveRatingProfile{
Tenant: "cgrates.org",
Category: "sms",
Subject: utils.MetaAny,
@@ -729,7 +730,7 @@ func testApierSetAndRemoveRatingProfileAnySubject(t *testing.T) {
t.Errorf("Expected: %s, received: %s ", utils.OK, reply)
}
- if err := apierRPC.Call(utils.APIerSv1GetRatingProfile,
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile,
attrGetRatingPlan, &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %v, \n but received %v", utils.ErrNotFound, err)
}
diff --git a/apier/v1/apier_it_test.go b/apier/v1/apier_it_test.go
index 3d829a5d4..ba1ea7aac 100644
--- a/apier/v1/apier_it_test.go
+++ b/apier/v1/apier_it_test.go
@@ -24,7 +24,6 @@ import (
"encoding/json"
"fmt"
"net/http"
- "net/rpc"
"net/url"
"os"
"path"
@@ -34,6 +33,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/ees"
@@ -63,7 +64,7 @@ README:
var (
cfgPath string
cfg *config.CGRConfig
- rater *rpc.Client
+ rater *birpc.Client
APIerSv1ConfigDIR string
apierTests = []func(t *testing.T){
@@ -264,33 +265,33 @@ func testApierTPTiming(t *testing.T) {
}
var reply string
for _, tm := range []*utils.ApierTPTiming{tmAlways, tmAsap, tmAlways2} {
- if err := rater.Call(utils.APIerSv1SetTPTiming, &tm, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPTiming, &tm, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPTiming: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPTiming: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPTiming, &tmAlways, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPTiming, &tmAlways, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPTiming: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPTiming got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPTiming, new(utils.ApierTPTiming), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPTiming, new(utils.ApierTPTiming), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPTiming, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID Years Months MonthDays WeekDays Time]" {
t.Error("Calling APIerSv1.SetTPTiming got unexpected error: ", err.Error())
}
// Test get
var rplyTmAlways2 *utils.ApierTPTiming
- if err := rater.Call(utils.APIerSv1GetTPTiming, &AttrGetTPTiming{tmAlways2.TPid, tmAlways2.ID}, &rplyTmAlways2); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPTiming, &AttrGetTPTiming{tmAlways2.TPid, tmAlways2.ID}, &rplyTmAlways2); err != nil {
t.Error("Calling APIerSv1.GetTPTiming, got error: ", err.Error())
} else if !reflect.DeepEqual(tmAlways2, rplyTmAlways2) {
t.Errorf("Calling APIerSv1.GetTPTiming expected: %v, received: %v", tmAlways, rplyTmAlways2)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPTiming, AttrGetTPTiming{tmAlways2.TPid, tmAlways2.ID}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPTiming, AttrGetTPTiming{tmAlways2.TPid, tmAlways2.ID}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPTiming, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPTiming received: ", reply)
@@ -298,7 +299,7 @@ func testApierTPTiming(t *testing.T) {
// Test getIds
var rplyTmIds []string
expectedTmIds := []string{"ALWAYS", "ASAP"}
- if err := rater.Call(utils.APIerSv1GetTPTimingIds, &AttrGetTPTimingIds{tmAlways.TPid, utils.PaginatorWithSearch{}}, &rplyTmIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPTimingIds, &AttrGetTPTimingIds{tmAlways.TPid, utils.PaginatorWithSearch{}}, &rplyTmIds); err != nil {
t.Error("Calling APIerSv1.GetTPTimingIds, got error: ", err.Error())
}
sort.Strings(expectedTmIds)
@@ -318,33 +319,33 @@ func testApierTPDestination(t *testing.T) {
*dstDe2 = *dstDe // Data which we use for remove, still keeping the sample data to check proper loading
dstDe2.ID = "GERMANY2"
for _, dst := range []*utils.TPDestination{dstDe, dstDeMobile, dstFs, dstDe2} {
- if err := rater.Call(utils.APIerSv1SetTPDestination, dst, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPDestination, dst, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPDestination: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPDestination: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPDestination, dstDe2, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPDestination, dstDe2, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPDestination: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPDestination got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPDestination, new(utils.TPDestination), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPDestination, new(utils.TPDestination), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPDestination, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID Prefixes]" {
t.Error("Calling APIerSv1.SetTPDestination got unexpected error: ", err.Error())
}
// Test get
var rplyDstDe2 *utils.TPDestination
- if err := rater.Call(utils.APIerSv1GetTPDestination, &AttrGetTPDestination{dstDe2.TPid, dstDe2.ID}, &rplyDstDe2); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPDestination, &AttrGetTPDestination{dstDe2.TPid, dstDe2.ID}, &rplyDstDe2); err != nil {
t.Error("Calling APIerSv1.GetTPDestination, got error: ", err.Error())
} else if !reflect.DeepEqual(dstDe2, rplyDstDe2) {
t.Errorf("Calling APIerSv1.GetTPDestination expected: %v, received: %v", dstDe2, rplyDstDe2)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPDestination, &AttrGetTPDestination{dstDe2.TPid, dstDe2.ID}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPDestination, &AttrGetTPDestination{dstDe2.TPid, dstDe2.ID}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPTiming, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPTiming received: ", reply)
@@ -352,7 +353,7 @@ func testApierTPDestination(t *testing.T) {
// Test getIds
var rplyDstIds []string
expectedDstIds := []string{"FS_USERS", "GERMANY", "GERMANY_MOBILE"}
- if err := rater.Call(utils.APIerSv1GetTPDestinationIDs, &AttrGetTPDestinationIds{TPid: dstDe.TPid}, &rplyDstIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPDestinationIDs, &AttrGetTPDestinationIds{TPid: dstDe.TPid}, &rplyDstIds); err != nil {
t.Error("Calling APIerSv1.GetTPDestinationIDs, got error: ", err.Error())
}
sort.Strings(expectedDstIds)
@@ -372,33 +373,33 @@ func testApierTPRate(t *testing.T) {
*rt2 = *rt
rt2.ID = "RT_FS_USERS2"
for _, r := range []*utils.TPRateRALs{rt, rt2} {
- if err := rater.Call(utils.APIerSv1SetTPRate, r, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRate, r, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRate: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPRate, rt2, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRate, rt2, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPRate got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPRate, new(utils.TPRateRALs), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRate, new(utils.TPRateRALs), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPDestination, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID RateSlots]" {
t.Error("Calling APIerSv1.SetTPRate got unexpected error: ", err.Error())
}
// Test get
var rplyRt2 *utils.TPRateRALs
- if err := rater.Call(utils.APIerSv1GetTPRate, &AttrGetTPRate{rt2.TPid, rt2.ID}, &rplyRt2); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPRate, &AttrGetTPRate{rt2.TPid, rt2.ID}, &rplyRt2); err != nil {
t.Error("Calling APIerSv1.GetTPRate, got error: ", err.Error())
} else if !reflect.DeepEqual(rt2, rplyRt2) {
t.Errorf("Calling APIerSv1.GetTPRate expected: %+v, received: %+v", rt2, rplyRt2)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPRate, &AttrGetTPRate{rt2.TPid, rt2.ID}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPRate, &AttrGetTPRate{rt2.TPid, rt2.ID}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPRate, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPRate received: ", reply)
@@ -406,7 +407,7 @@ func testApierTPRate(t *testing.T) {
// Test getIds
var rplyRtIds []string
expectedRtIds := []string{"RT_FS_USERS"}
- if err := rater.Call(utils.APIerSv1GetTPRateIds, &AttrGetTPRateIds{rt.TPid, utils.PaginatorWithSearch{}}, &rplyRtIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPRateIds, &AttrGetTPRateIds{rt.TPid, utils.PaginatorWithSearch{}}, &rplyRtIds); err != nil {
t.Error("Calling APIerSv1.GetTPRateIds, got error: ", err.Error())
} else if !reflect.DeepEqual(expectedRtIds, rplyRtIds) {
t.Errorf("Calling APIerSv1.GetTPDestinationIDs expected: %v, received: %v", expectedRtIds, rplyRtIds)
@@ -426,33 +427,33 @@ func testApierTPDestinationRate(t *testing.T) {
*dr2 = *dr
dr2.ID = utils.TestSQL
for _, d := range []*utils.TPDestinationRate{dr, dr2, drDe} {
- if err := rater.Call(utils.APIerSv1SetTPDestinationRate, d, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPDestinationRate, d, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPDestinationRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPDestinationRate: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPDestinationRate, dr2, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPDestinationRate, dr2, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPDestinationRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPDestinationRate got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPDestinationRate, new(utils.TPDestinationRate), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPDestinationRate, new(utils.TPDestinationRate), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPDestination, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID DestinationRates]" {
t.Error("Calling APIerSv1.SetTPDestinationRate got unexpected error: ", err.Error())
}
// Test get
var rplyDr2 *utils.TPDestinationRate
- if err := rater.Call(utils.APIerSv1GetTPDestinationRate, &AttrGetTPDestinationRate{dr2.TPid, dr2.ID, utils.Paginator{}}, &rplyDr2); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPDestinationRate, &AttrGetTPDestinationRate{dr2.TPid, dr2.ID, utils.Paginator{}}, &rplyDr2); err != nil {
t.Error("Calling APIerSv1.GetTPDestinationRate, got error: ", err.Error())
} else if !reflect.DeepEqual(dr2, rplyDr2) {
t.Errorf("Calling APIerSv1.GetTPDestinationRate expected: %v, received: %v", dr2, rplyDr2)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPDestinationRate, &AttrGetTPDestinationRate{dr2.TPid, dr2.ID, utils.Paginator{}}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPDestinationRate, &AttrGetTPDestinationRate{dr2.TPid, dr2.ID, utils.Paginator{}}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPRate, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPRate received: ", reply)
@@ -460,7 +461,7 @@ func testApierTPDestinationRate(t *testing.T) {
// Test getIds
var rplyDrIds []string
expectedDrIds := []string{"DR_FREESWITCH_USERS"}
- if err := rater.Call(utils.APIerSv1GetTPDestinationRateIds, &AttrTPDestinationRateIds{dr.TPid, utils.PaginatorWithSearch{}}, &rplyDrIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPDestinationRateIds, &AttrTPDestinationRateIds{dr.TPid, utils.PaginatorWithSearch{}}, &rplyDrIds); err != nil {
t.Error("Calling APIerSv1.GetTPDestinationRateIds, got error: ", err.Error())
} else if !reflect.DeepEqual(expectedDrIds, rplyDrIds) {
t.Errorf("Calling APIerSv1.GetTPDestinationRateIds expected: %v, received: %v", expectedDrIds, rplyDrIds)
@@ -477,33 +478,33 @@ func testApierTPRatingPlan(t *testing.T) {
*rpTst = *rp
rpTst.ID = utils.TestSQL
for _, rpl := range []*utils.TPRatingPlan{rp, rpTst} {
- if err := rater.Call(utils.APIerSv1SetTPRatingPlan, rpl, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, rpl, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingPlan: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPRatingPlan, rpTst, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, rpTst, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPRatingPlan got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPRatingPlan, new(utils.TPRatingPlan), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, new(utils.TPRatingPlan), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPRatingPlan, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID RatingPlanBindings]" {
t.Error("Calling APIerSv1.SetTPRatingPlan got unexpected error: ", err.Error())
}
// Test get
var rplyRpTst *utils.TPRatingPlan
- if err := rater.Call(utils.APIerSv1GetTPRatingPlan, &AttrGetTPRatingPlan{TPid: rpTst.TPid, ID: rpTst.ID}, &rplyRpTst); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPRatingPlan, &AttrGetTPRatingPlan{TPid: rpTst.TPid, ID: rpTst.ID}, &rplyRpTst); err != nil {
t.Error("Calling APIerSv1.GetTPRatingPlan, got error: ", err.Error())
} else if !reflect.DeepEqual(rpTst, rplyRpTst) {
t.Errorf("Calling APIerSv1.GetTPRatingPlan expected: %v, received: %v", rpTst, rplyRpTst)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPRatingPlan, &AttrGetTPRatingPlan{TPid: rpTst.TPid, ID: rpTst.ID}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPRatingPlan, &AttrGetTPRatingPlan{TPid: rpTst.TPid, ID: rpTst.ID}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPRatingPlan, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPRatingPlan received: ", reply)
@@ -511,7 +512,7 @@ func testApierTPRatingPlan(t *testing.T) {
// Test getIds
var rplyRpIds []string
expectedRpIds := []string{"RETAIL1"}
- if err := rater.Call(utils.APIerSv1GetTPRatingPlanIds, &AttrGetTPRatingPlanIds{rp.TPid, utils.PaginatorWithSearch{}}, &rplyRpIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPRatingPlanIds, &AttrGetTPRatingPlanIds{rp.TPid, utils.PaginatorWithSearch{}}, &rplyRpIds); err != nil {
t.Error("Calling APIerSv1.GetTPRatingPlanIds, got error: ", err.Error())
} else if !reflect.DeepEqual(expectedRpIds, rplyRpIds) {
t.Errorf("Calling APIerSv1.GetTPRatingPlanIds expected: %v, received: %v", expectedRpIds, rplyRpIds)
@@ -537,33 +538,33 @@ func testApierTPRatingProfile(t *testing.T) {
*rpfTst = *rpf
rpfTst.Subject = utils.TestSQL
for _, rp := range []*utils.TPRatingProfile{rpf, rpfTst} {
- if err := rater.Call(utils.APIerSv1SetTPRatingProfile, rp, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, rp, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingProfile: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPRatingProfile, rpfTst, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, rpfTst, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPRatingProfile got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPRatingProfile, new(utils.TPRatingProfile), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, new(utils.TPRatingProfile), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPRatingProfile, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid LoadId Category Subject RatingPlanActivations]" {
t.Error("Calling APIerSv1.SetTPRatingProfile got unexpected error: ", err.Error())
}
// Test get
var rplyRpf *utils.TPRatingProfile
- if err := rater.Call(utils.APIerSv1GetTPRatingProfile, &AttrGetTPRatingProfile{TPid: rpfTst.TPid, RatingProfileID: utils.ConcatenatedKey(rpfTst.LoadId, rpfTst.Tenant, rpfTst.Category, rpfTst.Subject)}, &rplyRpf); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPRatingProfile, &AttrGetTPRatingProfile{TPid: rpfTst.TPid, RatingProfileID: utils.ConcatenatedKey(rpfTst.LoadId, rpfTst.Tenant, rpfTst.Category, rpfTst.Subject)}, &rplyRpf); err != nil {
t.Error("Calling APIerSv1.GetTPRatingProfiles, got error: ", err.Error())
} else if !reflect.DeepEqual(rpfTst, rplyRpf) {
t.Errorf("Calling APIerSv1.GetTPRatingProfiles expected: %v, received: %v", rpfTst, rplyRpf)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPRatingProfile, &AttrGetTPRatingProfile{TPid: rpfTst.TPid, RatingProfileID: utils.ConcatenatedKey(rpfTst.LoadId, rpfTst.Tenant, rpfTst.Category, rpfTst.Subject)}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPRatingProfile, &AttrGetTPRatingProfile{TPid: rpfTst.TPid, RatingProfileID: utils.ConcatenatedKey(rpfTst.LoadId, rpfTst.Tenant, rpfTst.Category, rpfTst.Subject)}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPRatingProfile, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPRatingProfile received: ", reply)
@@ -571,7 +572,7 @@ func testApierTPRatingProfile(t *testing.T) {
// Test getLoadIds
var rplyRpIds []string
expectedRpIds := []string{utils.TestSQL}
- if err := rater.Call(utils.APIerSv1GetTPRatingProfileLoadIds, &utils.AttrTPRatingProfileIds{TPid: rpf.TPid}, &rplyRpIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPRatingProfileLoadIds, &utils.AttrTPRatingProfileIds{TPid: rpf.TPid}, &rplyRpIds); err != nil {
t.Error("Calling APIerSv1.GetTPRatingProfileLoadIds, got error: ", err.Error())
} else if !reflect.DeepEqual(expectedRpIds, rplyRpIds) {
t.Errorf("Calling APIerSv1.GetTPRatingProfileLoadIds expected: %v, received: %v", expectedRpIds, rplyRpIds)
@@ -596,33 +597,33 @@ func testApierTPActions(t *testing.T) {
*actTst = *act
actTst.ID = utils.TestSQL
for _, ac := range []*utils.TPActions{act, actWarn, actTst, actLog} {
- if err := rater.Call(utils.APIerSv1SetTPActions, ac, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActions, ac, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPActions: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPActions: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPActions, actTst, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActions, actTst, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPActions: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPActions got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPActions, new(utils.TPActions), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActions, new(utils.TPActions), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPActions, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID Actions]" {
t.Error("Calling APIerSv1.SetTPActions got unexpected error: ", err.Error())
}
// Test get
var rplyActs *utils.TPActions
- if err := rater.Call(utils.APIerSv1GetTPActions, &AttrGetTPActions{TPid: actTst.TPid, ID: actTst.ID}, &rplyActs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPActions, &AttrGetTPActions{TPid: actTst.TPid, ID: actTst.ID}, &rplyActs); err != nil {
t.Error("Calling APIerSv1.GetTPActions, got error: ", err.Error())
} else if !reflect.DeepEqual(actTst, rplyActs) {
t.Errorf("Calling APIerSv1.GetTPActions expected: %v, received: %v", actTst, rplyActs)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPActions, &AttrGetTPActions{TPid: actTst.TPid, ID: actTst.ID}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPActions, &AttrGetTPActions{TPid: actTst.TPid, ID: actTst.ID}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPActions, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPActions received: ", reply)
@@ -630,7 +631,7 @@ func testApierTPActions(t *testing.T) {
// Test getIds
var rplyIds []string
expectedIds := []string{"LOG_BALANCE", "PREPAID_10", "WARN_VIA_HTTP"}
- if err := rater.Call(utils.APIerSv1GetTPActionIds, &AttrGetTPActionIds{TPid: actTst.TPid}, &rplyIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPActionIds, &AttrGetTPActionIds{TPid: actTst.TPid}, &rplyIds); err != nil {
t.Error("Calling APIerSv1.GetTPActionIds, got error: ", err.Error())
}
sort.Strings(expectedIds)
@@ -649,33 +650,33 @@ func testApierTPActionPlan(t *testing.T) {
*atTst = *at
atTst.ID = utils.TestSQL
for _, act := range []*utils.TPActionPlan{at, atTst} {
- if err := rater.Call(utils.APIerSv1SetTPActionPlan, act, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActionPlan, act, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPActionPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPActionPlan: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPActionPlan, atTst, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActionPlan, atTst, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPActionPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPActionPlan got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPActionPlan, new(utils.TPActionPlan), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActionPlan, new(utils.TPActionPlan), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPActionPlan, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID ActionPlan]" {
t.Error("Calling APIerSv1.SetTPActionPlan got unexpected error: ", err.Error())
}
// Test get
var rplyActs *utils.TPActionPlan
- if err := rater.Call(utils.APIerSv1GetTPActionPlan, &AttrGetTPActionPlan{TPid: atTst.TPid, ID: atTst.ID}, &rplyActs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPActionPlan, &AttrGetTPActionPlan{TPid: atTst.TPid, ID: atTst.ID}, &rplyActs); err != nil {
t.Error("Calling APIerSv1.GetTPActionPlan, got error: ", err.Error())
} else if !reflect.DeepEqual(atTst, rplyActs) {
t.Errorf("Calling APIerSv1.GetTPActionPlan expected: %v, received: %v", atTst, rplyActs)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPActionPlan, &AttrGetTPActionPlan{TPid: atTst.TPid, ID: atTst.ID}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPActionPlan, &AttrGetTPActionPlan{TPid: atTst.TPid, ID: atTst.ID}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPActionPlan, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPActionPlan received: ", reply)
@@ -683,7 +684,7 @@ func testApierTPActionPlan(t *testing.T) {
// Test getIds
var rplyIds []string
expectedIds := []string{"PREPAID_10"}
- if err := rater.Call(utils.APIerSv1GetTPActionPlanIds, &AttrGetTPActionPlanIds{TPid: atTst.TPid}, &rplyIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPActionPlanIds, &AttrGetTPActionPlanIds{TPid: atTst.TPid}, &rplyIds); err != nil {
t.Error("Calling APIerSv1.GetTPActionPlanIds, got error: ", err.Error())
} else if !reflect.DeepEqual(expectedIds, rplyIds) {
t.Errorf("Calling APIerSv1.GetTPActionPlanIds expected: %v, received: %v", expectedIds, rplyIds)
@@ -710,33 +711,33 @@ func testApierTPActionTriggers(t *testing.T) {
atTst.ID = utils.TestSQL
atTst.ActionTriggers[0].Id = utils.TestSQL
for _, act := range []*utils.TPActionTriggers{at, atTst} {
- if err := rater.Call(utils.APIerSv1SetTPActionTriggers, act, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActionTriggers, act, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPActionTriggers: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPActionTriggers: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPActionTriggers, atTst, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActionTriggers, atTst, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPActionTriggers: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPActionTriggers got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPActionTriggers, new(utils.TPActionTriggers), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPActionTriggers, new(utils.TPActionTriggers), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPActionTriggers, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID]" {
t.Error("Calling APIerSv1.SetTPActionTriggers got unexpected error: ", err.Error())
}
// Test get
var rplyActs *utils.TPActionTriggers
- if err := rater.Call(utils.APIerSv1GetTPActionTriggers, &AttrGetTPActionTriggers{TPid: atTst.TPid, ID: atTst.ID}, &rplyActs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPActionTriggers, &AttrGetTPActionTriggers{TPid: atTst.TPid, ID: atTst.ID}, &rplyActs); err != nil {
t.Errorf("Calling APIerSv1.GetTPActionTriggers %s, got error: %s", atTst.ID, err.Error())
} else if !reflect.DeepEqual(atTst, rplyActs) {
t.Errorf("Calling APIerSv1.GetTPActionTriggers expected: %+v, received: %+v", utils.ToJSON(atTst), utils.ToJSON(rplyActs))
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPActionTriggers, &AttrGetTPActionTriggers{TPid: atTst.TPid, ID: atTst.ID}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPActionTriggers, &AttrGetTPActionTriggers{TPid: atTst.TPid, ID: atTst.ID}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPActionTriggers, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPActionTriggers received: ", reply)
@@ -744,7 +745,7 @@ func testApierTPActionTriggers(t *testing.T) {
// Test getIds
var rplyIds []string
expectedIds := []string{"STANDARD_TRIGGERS"}
- if err := rater.Call(utils.APIerSv1GetTPActionTriggerIds, &AttrGetTPActionTriggerIds{TPid: atTst.TPid}, &rplyIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPActionTriggerIds, &AttrGetTPActionTriggerIds{TPid: atTst.TPid}, &rplyIds); err != nil {
t.Error("Calling APIerSv1.GetTPActionTriggerIds, got error: ", err.Error())
} else if !reflect.DeepEqual(expectedIds, rplyIds) {
t.Errorf("Calling APIerSv1.GetTPActionTriggerIds expected: %v, received: %v", expectedIds, rplyIds)
@@ -768,33 +769,33 @@ func testApierTPAccountActions(t *testing.T) {
*aaTst = *aa1
aaTst.Account = utils.TestSQL
for _, aact := range []*utils.TPAccountActions{aa1, aa2, aa3, aa4, aa5, aaTst} {
- if err := rater.Call(utils.APIerSv1SetTPAccountActions, aact, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPAccountActions, aact, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPAccountActions: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPAccountActions: ", reply)
}
}
// Check second set
- if err := rater.Call(utils.APIerSv1SetTPAccountActions, aaTst, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPAccountActions, aaTst, &reply); err != nil {
t.Error("Got error on second APIerSv1.SetTPAccountActions: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetTPAccountActions got reply: ", reply)
}
// Check missing params
- if err := rater.Call(utils.APIerSv1SetTPAccountActions, new(utils.TPAccountActions), &reply); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetTPAccountActions, new(utils.TPAccountActions), &reply); err == nil {
t.Error("Calling APIerSv1.SetTPAccountActions, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid LoadId Account ActionPlanId]" {
t.Error("Calling APIerSv1.SetTPAccountActions got unexpected error: ", err.Error())
}
// Test get
var rplyaa *utils.TPAccountActions
- if err := rater.Call(utils.APIerSv1GetTPAccountActions, &AttrGetTPAccountActions{TPid: aaTst.TPid, AccountActionsId: aaTst.GetId()}, &rplyaa); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPAccountActions, &AttrGetTPAccountActions{TPid: aaTst.TPid, AccountActionsId: aaTst.GetId()}, &rplyaa); err != nil {
t.Error("Calling APIerSv1.GetTPAccountActions, got error: ", err.Error())
} else if !reflect.DeepEqual(aaTst, rplyaa) {
t.Errorf("Calling APIerSv1.GetTPAccountActions expected: %v, received: %v", aaTst, rplyaa)
}
// Test remove
- if err := rater.Call(utils.APIerSv1RemoveTPAccountActions, &AttrGetTPAccountActions{TPid: aaTst.TPid, AccountActionsId: aaTst.GetId()}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveTPAccountActions, &AttrGetTPAccountActions{TPid: aaTst.TPid, AccountActionsId: aaTst.GetId()}, &reply); err != nil {
t.Error("Calling APIerSv1.RemoveTPAccountActions, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.RemoveTPAccountActions received: ", reply)
@@ -802,7 +803,7 @@ func testApierTPAccountActions(t *testing.T) {
// Test getLoadIds
var rplyRpIds []string
expectedRpIds := []string{utils.TestSQL}
- if err := rater.Call(utils.APIerSv1GetTPAccountActionLoadIds, &AttrGetTPAccountActionIds{TPid: aaTst.TPid}, &rplyRpIds); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetTPAccountActionLoadIds, &AttrGetTPAccountActionIds{TPid: aaTst.TPid}, &rplyRpIds); err != nil {
t.Error("Calling APIerSv1.GetTPAccountActionLoadIds, got error: ", err.Error())
} else if !reflect.DeepEqual(expectedRpIds, rplyRpIds) {
t.Errorf("Calling APIerSv1.GetTPAccountActionLoadIds expected: %v, received: %v", expectedRpIds, rplyRpIds)
@@ -812,7 +813,7 @@ func testApierTPAccountActions(t *testing.T) {
// Test here LoadRatingPlan
func testApierLoadRatingPlan(t *testing.T) {
var reply string
- if err := rater.Call(utils.APIerSv1LoadRatingPlan, &AttrLoadRatingPlan{TPid: utils.TestSQL, RatingPlanId: "RETAIL1"}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadRatingPlan, &AttrLoadRatingPlan{TPid: utils.TestSQL, RatingPlanId: "RETAIL1"}, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.LoadRatingPlan got reply: ", reply)
@@ -825,7 +826,7 @@ func testApierLoadRatingProfile(t *testing.T) {
rpf := &utils.TPRatingProfile{
TPid: utils.TestSQL, LoadId: utils.TestSQL,
Tenant: "cgrates.org", Category: "call", Subject: "*any"}
- if err := rater.Call(utils.APIerSv1LoadRatingProfile, &rpf, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadRatingProfile, &rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.LoadRatingProfile got reply: ", reply)
@@ -837,7 +838,7 @@ func testApierLoadRatingProfileWithoutTenant(t *testing.T) {
rpf := &utils.TPRatingProfile{
TPid: utils.TestSQL, LoadId: utils.TestSQL,
Category: "call", Subject: "*any"}
- if err := rater.Call(utils.APIerSv1LoadRatingProfile, &rpf, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadRatingProfile, &rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.LoadRatingProfile got reply: ", reply)
@@ -850,14 +851,14 @@ func testApierLoadAccountActions(t *testing.T) {
expectedStats := engine.GetDefaultEmptyCacheStats() // Make sure nothing in cache so far
expectedStats[utils.CacheLoadIDs].Items = 2 // we loaded the ratingprofiles
expectedStats[utils.CacheRPCConnections].Items = 1
- if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v,\n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
}
var reply string
aa1 := &utils.TPAccountActions{TPid: utils.TestSQL, LoadId: utils.TestSQL, Tenant: "cgrates.org", Account: "1001"}
- if err := rater.Call(utils.APIerSv1LoadAccountActions, aa1, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadAccountActions, aa1, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadAccountActions: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.LoadAccountActions got reply: ", reply)
@@ -868,7 +869,7 @@ func testApierLoadAccountActions(t *testing.T) {
expectedStats[utils.CacheActions].Items = 1
expectedStats[utils.CacheLoadIDs].Items = 6
expectedStats[utils.CacheRPCConnections].Items = 1
- if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v, \n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
@@ -879,7 +880,7 @@ func testApierLoadAccountActions(t *testing.T) {
func testApierReloadScheduler(t *testing.T) {
var reply string
// Simple test that command is executed without errors
- if err := rater.Call(utils.SchedulerSv1Reload, utils.StringWithAPIOpts{}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.SchedulerSv1Reload, utils.StringWithAPIOpts{}, &reply); err != nil {
t.Error("Got error on SchedulerSv1.Reload: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling SchedulerSv1.Reload got reply: ", reply)
@@ -892,7 +893,7 @@ func testApierSetRatingProfile(t *testing.T) {
rpa := &utils.TPRatingActivation{ActivationTime: "2012-01-01T00:00:00Z", RatingPlanId: "RETAIL1", FallbackSubjects: "dan2"}
rpf := &utils.AttrSetRatingProfile{Tenant: "cgrates.org", Category: "call",
Subject: "dan", RatingPlanActivations: []*utils.TPRatingActivation{rpa}}
- if err := rater.Call(utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.SetRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetRatingProfile got reply: ", reply)
@@ -905,13 +906,13 @@ func testApierSetRatingProfile(t *testing.T) {
expectedStats[utils.CacheRatingProfiles].Items = 1
expectedStats[utils.CacheRPCConnections].Items = 1
expectedStats[utils.CacheLoadIDs].Items = 6
- if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v, received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
}
// Calling the second time should not raise EXISTS
- if err := rater.Call(utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
t.Error("Unexpected result on duplication: ", err.Error())
}
// Make sure rates were loaded for account dan
@@ -932,14 +933,14 @@ func testApierSetRatingProfile(t *testing.T) {
}
var cc engine.CallCost
// Simple test that command is executed without errors
- if err := rater.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+ if err := rater.Call(context.Background(), utils.ResponderGetCost, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.Cost != 0 {
t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
}
expectedStats[utils.CacheRatingPlans].Items = 1
expectedStats[utils.CacheReverseDestinations].Items = 10
- if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v, received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
@@ -969,24 +970,24 @@ func testAPIerSv1GetRatingProfile(t *testing.T) {
},
},
}
- if err := rater.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
t.Errorf("Got error on APIerSv1.GetRatingProfile: %+v", err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Calling APIerSv1.GetRatingProfile expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
}
attrGetRatingPlan.Subject = utils.EmptyString
- if err := rater.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err == nil {
t.Errorf("Expected error on APIerSv1.GetRatingProfile, received : %+v", rpl)
}
attrGetRatingPlan.Subject = "dan"
attrGetRatingPlan.Tenant = "other_tenant"
- if err := rater.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err.Error() != utils.ErrNotFound.Error() {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error on APIerSv1.GetRatingProfile, received : %+v", err)
}
expectedIds := []string{"call:dan", "call:*any"}
var result []string
- if err := rater.Call(utils.APIerSv1GetRatingProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expectedIds) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
@@ -996,7 +997,7 @@ func testAPIerSv1GetRatingProfile(t *testing.T) {
func testAPIerSv1GetRatingProfileIDsWithoutTenant(t *testing.T) {
expectedIds := []string{"call:dan", "call:*any"}
var result []string
- if err := rater.Call(utils.APIerSv1GetRatingProfileIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfileIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else {
sort.Strings(expectedIds)
@@ -1030,7 +1031,7 @@ func testAPIerSv1GetRatingProfileWithoutTenant(t *testing.T) {
},
},
}
- if err := rater.Call(utils.APIerSv1GetRatingProfile, &attrGetRatingPlan, &rpl); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfile, &attrGetRatingPlan, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Calling APIerSv1.GetRatingProfile expected: %+v \n, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
@@ -1040,14 +1041,14 @@ func testAPIerSv1GetRatingProfileWithoutTenant(t *testing.T) {
func testApierGetActionTrigger(t *testing.T) {
//nothing to get from database
var atrs *engine.ActionTriggers
- if err := rater.Call(utils.APIerSv1GetActionTriggers,
+ if err := rater.Call(context.Background(), utils.APIerSv1GetActionTriggers,
&AttrGetActionTriggers{GroupIDs: []string{"TEST_ID1"}}, &atrs); err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
//set an ActionTrigger in database
var reply string
- if err := rater.Call(utils.APIerSv1SetActionTrigger,
+ if err := rater.Call(context.Background(), utils.APIerSv1SetActionTrigger,
AttrSetActionTrigger{
GroupID: "TEST_ID1",
UniqueID: "TEST_ID2",
@@ -1063,7 +1064,7 @@ func testApierGetActionTrigger(t *testing.T) {
Balance: &engine.BalanceFilter{},
},
}
- if err := rater.Call(utils.APIerSv1GetActionTriggers,
+ if err := rater.Call(context.Background(), utils.APIerSv1GetActionTriggers,
&AttrGetActionTriggers{GroupIDs: []string{"TEST_ID1"}}, &atrs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(newActTrg, atrs) {
@@ -1071,7 +1072,7 @@ func testApierGetActionTrigger(t *testing.T) {
}
//remove the ActionTrigger from dataBase
- if err := rater.Call(utils.APIerSv1RemoveActionTrigger,
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveActionTrigger,
&AttrRemoveActionTrigger{GroupID: "TEST_ID1"}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -1079,7 +1080,7 @@ func testApierGetActionTrigger(t *testing.T) {
}
//nothing to get from dataBase
- if err := rater.Call(utils.APIerSv1GetActionTriggers,
+ if err := rater.Call(context.Background(), utils.APIerSv1GetActionTriggers,
&AttrGetActionTriggers{GroupIDs: []string{"TEST_ID1"}}, &atrs); err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -1090,7 +1091,7 @@ func testApierReloadCache(t *testing.T) {
var reply string
arc := new(utils.AttrReloadCacheWithAPIOpts)
// Simple test that command is executed without errors
- if err := rater.Call(utils.CacheSv1ReloadCache, arc, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1ReloadCache, arc, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
@@ -1105,7 +1106,7 @@ func testApierReloadCache(t *testing.T) {
expectedStats[utils.CacheReverseDestinations].Items = 10
expectedStats[utils.CacheLoadIDs].Items = 6
expectedStats[utils.CacheRPCConnections].Items = 1
- if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v,\n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
@@ -1117,7 +1118,7 @@ func testApierGetDestination(t *testing.T) {
reply := new(engine.Destination)
dstId := "GERMANY_MOBILE"
expectedReply := &engine.Destination{Id: dstId, Prefixes: []string{"+4915", "+4916", "+4917"}}
- if err := rater.Call(utils.APIerSv1GetDestination, &dstId, reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetDestination, &dstId, reply); err != nil {
t.Error("Got error on APIerSv1.GetDestination: ", err.Error())
} else if !reflect.DeepEqual(expectedReply, reply) {
t.Errorf("Calling APIerSv1.GetDestination expected: %v, received: %v", expectedReply, reply)
@@ -1128,7 +1129,7 @@ func testApierGetDestination(t *testing.T) {
func testApierGetRatingPlan(t *testing.T) {
reply := new(engine.RatingPlan)
rplnId := "RETAIL1"
- if err := rater.Call(utils.APIerSv1GetRatingPlan, &rplnId, reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingPlan, &rplnId, reply); err != nil {
t.Error("Got error on APIerSv1.GetRatingPlan: ", err.Error())
}
// Check parts of info received since a full one is not possible due to unique map keys inside reply
@@ -1154,7 +1155,7 @@ func testApierRemoveRatingPlan(t *testing.T) {
rplnId := "RETAIL1"
var reply string
- err := rater.Call(utils.APIerSv1RemoveRatingPlan, &rplnId, &reply)
+ err := rater.Call(context.Background(), utils.APIerSv1RemoveRatingPlan, &rplnId, &reply)
if err != nil {
t.Error(err)
}
@@ -1163,7 +1164,7 @@ func testApierRemoveRatingPlan(t *testing.T) {
}
//get rating plan (the one that was removed. should return 'err not found')
var ratingPlan *engine.RatingPlan
- err = rater.Call(utils.APIerSv1GetRatingPlan, &rplnId, ratingPlan)
+ err = rater.Call(context.Background(), utils.APIerSv1GetRatingPlan, &rplnId, ratingPlan)
if err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting error: %s, received: %v", utils.ErrNotFound, err)
}
@@ -1173,43 +1174,43 @@ func testApierRemoveRatingPlan(t *testing.T) {
func testApierAddBalance(t *testing.T) {
var reply string
attrs := &AttrAddBalance{Tenant: "cgrates.org", Account: "1001", BalanceType: utils.MetaMonetary, Value: 1.5}
- if err := rater.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan", BalanceType: utils.MetaMonetary, Value: 1.5}
- if err := rater.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan2", BalanceType: utils.MetaMonetary, Value: 1.5}
- if err := rater.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan3", BalanceType: utils.MetaMonetary, Value: 1.5}
- if err := rater.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan3", BalanceType: utils.MetaMonetary, Value: 2.1}
- if err := rater.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan6", BalanceType: utils.MetaMonetary, Value: 2.1}
- if err := rater.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan6", BalanceType: utils.MetaMonetary, Value: 1, Overwrite: true}
- if err := rater.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -1222,7 +1223,7 @@ func testApierExecuteAction(t *testing.T) {
var reply string
// Add balance to a previously known account
attrs := utils.AttrExecuteAction{Tenant: "cgrates.org", Account: "dan2", ActionsId: "PREPAID_10"}
- if err := rater.Call(utils.APIerSv1ExecuteAction, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1ExecuteAction, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -1230,7 +1231,7 @@ func testApierExecuteAction(t *testing.T) {
reply2 := utils.EmptyString
// Add balance to an account which does n exist
attrs = utils.AttrExecuteAction{Tenant: "cgrates.org", Account: "dan2", ActionsId: "DUMMY_ACTION"}
- if err := rater.Call(utils.APIerSv1ExecuteAction, attrs, &reply2); err == nil || reply2 == utils.OK {
+ if err := rater.Call(context.Background(), utils.APIerSv1ExecuteAction, attrs, &reply2); err == nil || reply2 == utils.OK {
t.Error("Expecting error on APIerSv1.ExecuteAction.", err, reply2)
}
}
@@ -1239,7 +1240,7 @@ func testApierExecuteActionWithoutTenant(t *testing.T) {
var reply string
// Add balance to a previously known account
attrs := utils.AttrExecuteAction{Account: "dan2", ActionsId: "PREPAID_10"}
- if err := rater.Call(utils.APIerSv1ExecuteAction, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1ExecuteAction, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -1247,7 +1248,7 @@ func testApierExecuteActionWithoutTenant(t *testing.T) {
reply2 := utils.EmptyString
// Add balance to an account which does n exist
attrs = utils.AttrExecuteAction{Account: "dan2", ActionsId: "DUMMY_ACTION"}
- if err := rater.Call(utils.APIerSv1ExecuteAction, attrs, &reply2); err == nil || reply2 == utils.OK {
+ if err := rater.Call(context.Background(), utils.APIerSv1ExecuteAction, attrs, &reply2); err == nil || reply2 == utils.OK {
t.Error("Expecting error on APIerSv1.ExecuteAction.", err, reply2)
}
}
@@ -1256,13 +1257,13 @@ func testApierSetActions(t *testing.T) {
act1 := &V1TPAction{Identifier: utils.MetaTopUpReset, BalanceType: utils.MetaMonetary, Units: 75.0, ExpiryTime: utils.MetaUnlimited, Weight: 20.0}
attrs1 := &V1AttrSetActions{ActionsId: "ACTS_1", Actions: []*V1TPAction{act1}}
reply1 := utils.EmptyString
- if err := rater.Call(utils.APIerSv1SetActions, &attrs1, &reply1); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetActions, &attrs1, &reply1); err != nil {
t.Error("Got error on APIerSv1.SetActions: ", err.Error())
} else if reply1 != utils.OK {
t.Errorf("Calling APIerSv1.SetActions received: %s", reply1)
}
// Calling the second time should raise EXISTS
- if err := rater.Call(utils.APIerSv1SetActions, &attrs1, &reply1); err == nil || err.Error() != "EXISTS" {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetActions, &attrs1, &reply1); err == nil || err.Error() != "EXISTS" {
t.Error("Unexpected result on duplication: ", err.Error())
}
}
@@ -1274,7 +1275,7 @@ func testApierGetActions(t *testing.T) {
BalanceDisabled: "false", ExpiryTime: utils.MetaUnlimited, Weight: 20.0}}
var reply []*utils.TPAction
- if err := rater.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply); err != nil {
t.Error("Got error on APIerSv1.GetActions: ", err.Error())
} else if !reflect.DeepEqual(expectActs, reply) {
t.Errorf("Expected: %v, received: %v", utils.ToJSON(expectActs), utils.ToJSON(reply))
@@ -1285,13 +1286,13 @@ func testApierSetActionPlan(t *testing.T) {
atm1 := &AttrActionPlan{ActionsId: "ACTS_1", MonthDays: "1", Time: "00:00:00", Weight: 20.0}
atms1 := &AttrSetActionPlan{Id: "ATMS_1", ActionPlan: []*AttrActionPlan{atm1}}
reply1 := utils.EmptyString
- if err := rater.Call(utils.APIerSv1SetActionPlan, &atms1, &reply1); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetActionPlan, &atms1, &reply1); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply1 != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply1)
}
// Calling the second time should raise EXISTS
- if err := rater.Call(utils.APIerSv1SetActionPlan, &atms1, &reply1); err == nil || err.Error() != "EXISTS" {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetActionPlan, &atms1, &reply1); err == nil || err.Error() != "EXISTS" {
t.Error("Unexpected result on duplication: ", err.Error())
}
}
@@ -1300,7 +1301,7 @@ func testApierSetActionPlan(t *testing.T) {
func testApierAddTriggeredAction(t *testing.T) {
var reply string
attrs := &AttrAddBalance{Tenant: "cgrates.org", Account: "dan32", BalanceType: utils.MetaMonetary, Value: 1.5}
- if err := rater.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -1308,7 +1309,7 @@ func testApierAddTriggeredAction(t *testing.T) {
// Add balance to a previously known account
attrsAddTrigger := &AttrAddActionTrigger{Tenant: "cgrates.org", Account: "dan32", BalanceType: utils.MetaMonetary,
ThresholdType: "*min_balance", ThresholdValue: 2, BalanceDestinationIds: utils.MetaAny, Weight: 10, ActionsId: "WARN_VIA_HTTP"}
- if err := rater.Call(utils.APIerSv1AddTriggeredAction, attrsAddTrigger, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddTriggeredAction, attrsAddTrigger, &reply); err != nil {
t.Error("Got error on APIerSv1.AddTriggeredAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddTriggeredAction received: %s", reply)
@@ -1318,7 +1319,7 @@ func testApierAddTriggeredAction(t *testing.T) {
*attrs2 = *attrsAddTrigger
attrs2.Account = "dan10" // Does not exist so it should error when adding triggers on it
// Add trigger to an account which does n exist
- if err := rater.Call(utils.APIerSv1AddTriggeredAction, attrs2, &reply2); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddTriggeredAction, attrs2, &reply2); err == nil {
t.Error("Expecting error on APIerSv1.AddTriggeredAction.", err, reply2)
}
}
@@ -1327,7 +1328,7 @@ func testApierAddTriggeredAction(t *testing.T) {
func testApierGetAccountActionTriggers(t *testing.T) {
var reply engine.ActionTriggers
req := utils.TenantAccount{Tenant: "cgrates.org", Account: "dan32"}
- if err := rater.Call(utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionTimings: ", err.Error())
} else if len(reply) != 1 || reply[0].ActionsID != "WARN_VIA_HTTP" {
t.Errorf("Unexpected action triggers received %v", reply)
@@ -1338,7 +1339,7 @@ func testApierAddTriggeredAction2(t *testing.T) {
var reply string
// Add balance to a previously known account
attrs := &AttrAddAccountActionTriggers{ActionTriggerIDs: []string{"STANDARD_TRIGGERS"}, Tenant: "cgrates.org", Account: "dan2"}
- if err := rater.Call(utils.APIerSv1AddAccountActionTriggers, &attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddAccountActionTriggers, &attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddAccountActionTriggers: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddAccountActionTriggers received: %s", reply)
@@ -1348,7 +1349,7 @@ func testApierAddTriggeredAction2(t *testing.T) {
*attrs2 = *attrs
attrs2.Account = "dan10" // Does not exist so it should error when adding triggers on it
// Add trigger to an account which does n exist
- if err := rater.Call(utils.APIerSv1AddAccountActionTriggers, &attrs2, &reply2); err == nil || reply2 == utils.OK {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddAccountActionTriggers, &attrs2, &reply2); err == nil || reply2 == utils.OK {
t.Error("Expecting error on APIerSv1.AddAccountActionTriggers.", err, reply2)
}
}
@@ -1357,7 +1358,7 @@ func testApierAddTriggeredAction2(t *testing.T) {
func testApierGetAccountActionTriggers2(t *testing.T) {
var reply engine.ActionTriggers
req := utils.TenantAccount{Tenant: "cgrates.org", Account: "dan2"}
- if err := rater.Call(utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionTimings: ", err.Error())
} else if len(reply) != 1 || reply[0].ActionsID != "LOG_BALANCE" {
t.Errorf("Unexpected action triggers received %v", reply)
@@ -1369,7 +1370,7 @@ func testApierSetAccountActionTriggers(t *testing.T) {
// Test first get so we can steal the id which we need to remove
var reply engine.ActionTriggers
req := utils.TenantAccount{Tenant: "cgrates.org", Account: "dan2"}
- if err := rater.Call(utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionTimings: ", err.Error())
} else if len(reply) != 1 || reply[0].ActionsID != "LOG_BALANCE" {
for _, atr := range reply {
@@ -1388,17 +1389,17 @@ func testApierSetAccountActionTriggers(t *testing.T) {
},
},
}
- if err := rater.Call(utils.APIerSv1ResetAccountActionTriggers, setReq, &setReply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1ResetAccountActionTriggers, setReq, &setReply); err != nil {
t.Error("Got error on APIerSv1.ResetActionTiming: ", err.Error())
} else if setReply != utils.OK {
t.Error("Unexpected answer received", setReply)
}
- if err := rater.Call(utils.APIerSv1SetAccountActionTriggers, setReq, &setReply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetAccountActionTriggers, setReq, &setReply); err != nil {
t.Error("Got error on APIerSv1.RemoveActionTiming: ", err.Error())
} else if setReply != utils.OK {
t.Error("Unexpected answer received", setReply)
}
- if err := rater.Call(utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionTriggers: ", err.Error())
} else if len(reply) != 1 || reply[0].ActivationDate != time.Date(2016, 2, 5, 18, 0, 0, 0, time.UTC) {
t.Errorf("Unexpected action triggers received %+v", reply[0])
@@ -1410,7 +1411,7 @@ func testApierRemAccountActionTriggers(t *testing.T) {
// Test first get so we can steal the id which we need to remove
var reply engine.ActionTriggers
req := utils.TenantAccount{Tenant: "cgrates.org", Account: "dan2"}
- if err := rater.Call(utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionTimings: ", err.Error())
} else if len(reply) != 1 || reply[0].ActionsID != "LOG_BALANCE" {
for _, atr := range reply {
@@ -1420,17 +1421,17 @@ func testApierRemAccountActionTriggers(t *testing.T) {
}
var rmReply string
rmReq := AttrRemoveAccountActionTriggers{Tenant: "cgrates.org", Account: "dan2", UniqueID: reply[0].UniqueID}
- if err := rater.Call(utils.APIerSv1ResetAccountActionTriggers, rmReq, &rmReply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1ResetAccountActionTriggers, rmReq, &rmReply); err != nil {
t.Error("Got error on APIerSv1.ResetActionTiming: ", err.Error())
} else if rmReply != utils.OK {
t.Error("Unexpected answer received", rmReply)
}
- if err := rater.Call(utils.APIerSv1RemoveAccountActionTriggers, rmReq, &rmReply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveAccountActionTriggers, rmReq, &rmReply); err != nil {
t.Error("Got error on APIerSv1.RemoveActionTiming: ", err.Error())
} else if rmReply != utils.OK {
t.Error("Unexpected answer received", rmReply)
}
- if err := rater.Call(utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionTriggers, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionTriggers: ", err.Error())
} else if len(reply) != 0 {
t.Errorf("Unexpected action triggers received %+v", reply[0])
@@ -1441,7 +1442,7 @@ func testApierRemAccountActionTriggers(t *testing.T) {
func testApierSetAccount(t *testing.T) {
var reply string
attrs := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan7", ActionPlanID: "ATMS_1", ReloadScheduler: true}
- if err := rater.Call(utils.APIerSv1SetAccount, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -1451,7 +1452,7 @@ func testApierSetAccount(t *testing.T) {
*attrs2 = *attrs
attrs2.ActionPlanID = "DUMMY_DATA" // Does not exist so it should error when adding triggers on it
// Add account with actions timing which does not exist
- if err := rater.Call(utils.APIerSv1SetAccount, attrs2, &reply2); err == nil || reply2 == utils.OK { // OK is not welcomed
+ if err := rater.Call(context.Background(), utils.APIerSv1SetAccount, attrs2, &reply2); err == nil || reply2 == utils.OK { // OK is not welcomed
t.Error("Expecting error on APIerSv1.SetAccount.", err, reply2)
}
}
@@ -1460,7 +1461,7 @@ func testApierSetAccount(t *testing.T) {
func testApierGetAccountActionPlan(t *testing.T) {
var reply []*AccountActionTiming
req := utils.TenantAccount{Tenant: "cgrates.org", Account: "dan7"}
- if err := rater.Call(utils.APIerSv1GetAccountActionPlan, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionPlan, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionPlan: ", err.Error())
} else if len(reply) != 1 {
t.Error("Unexpected action plan received: ", utils.ToJSON(reply))
@@ -1474,7 +1475,7 @@ func testApierGetAccountActionPlan(t *testing.T) {
func testApierGetAccountActionPlanWithoutTenant(t *testing.T) {
var reply []*AccountActionTiming
req := utils.TenantAccount{Account: "dan7"}
- if err := rater.Call(utils.APIerSv1GetAccountActionPlan, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionPlan, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionPlan: ", err.Error())
} else if len(reply) != 1 {
t.Error("Unexpected action plan received: ", utils.ToJSON(reply))
@@ -1488,7 +1489,7 @@ func testApierGetAccountActionPlanWithoutTenant(t *testing.T) {
// Make sure we have scheduled actions
func testApierITGetScheduledActionsForAccount(t *testing.T) {
var rply []*scheduler.ScheduledAction
- if err := rater.Call(utils.APIerSv1GetScheduledActions,
+ if err := rater.Call(context.Background(), utils.APIerSv1GetScheduledActions,
scheduler.ArgsGetScheduledActions{
Tenant: utils.StringPointer("cgrates.org"),
Account: utils.StringPointer("dan7")}, &rply); err != nil {
@@ -1502,14 +1503,14 @@ func testApierITGetScheduledActionsForAccount(t *testing.T) {
func testApierRemUniqueIDActionTiming(t *testing.T) {
var rmReply string
rmReq := AttrRemoveActionTiming{ActionPlanId: "ATMS_1", Tenant: "cgrates.org", Account: "dan4"}
- if err := rater.Call(utils.APIerSv1RemoveActionTiming, &rmReq, &rmReply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveActionTiming, &rmReq, &rmReply); err != nil {
t.Error("Got error on APIerSv1.RemoveActionTiming: ", err.Error())
} else if rmReply != utils.OK {
t.Error("Unexpected answer received", rmReply)
}
var reply []*AccountActionTiming
req := utils.TenantAccount{Tenant: "cgrates.org", Account: "dan4"}
- if err := rater.Call(utils.APIerSv1GetAccountActionPlan, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionPlan, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionPlan: ", err.Error())
} else if len(reply) != 0 {
t.Error("Action timings was not removed")
@@ -1519,14 +1520,14 @@ func testApierRemUniqueIDActionTiming(t *testing.T) {
func testApierRemUniqueIDActionTimingWithoutTenant(t *testing.T) {
var rmReply string
rmReq := AttrRemoveActionTiming{ActionPlanId: "ATMS_1", Account: "dan4"}
- if err := rater.Call(utils.APIerSv1RemoveActionTiming, &rmReq, &rmReply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveActionTiming, &rmReq, &rmReply); err != nil {
t.Error("Got error on APIerSv1.RemoveActionTiming: ", err.Error())
} else if rmReply != utils.OK {
t.Error("Unexpected answer received", rmReply)
}
var reply []*AccountActionTiming
req := utils.TenantAccount{Account: "dan4"}
- if err := rater.Call(utils.APIerSv1GetAccountActionPlan, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetAccountActionPlan, &req, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccountActionPlan: ", err.Error())
} else if len(reply) != 0 {
t.Error("Action timings was not removed")
@@ -1537,32 +1538,32 @@ func testApierRemUniqueIDActionTimingWithoutTenant(t *testing.T) {
func testApierGetAccount(t *testing.T) {
var reply *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := rater.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() != 11.5 { // We expect 11.5 since we have added in the previous test 1.5
t.Errorf("Calling APIerSv1.GetBalance expected: 11.5, received: %f", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan"}
- if err := rater.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() != 1.5 {
t.Errorf("Calling APIerSv1.GetAccount expected: 1.5, received: %f", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
// The one we have topped up though executeAction
attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan2"}
- if err := rater.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() != 11.5 {
t.Errorf("Calling APIerSv1.GetAccount expected: 10, received: %f", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan3"}
- if err := rater.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() != 3.6 {
t.Errorf("Calling APIerSv1.GetAccount expected: 3.6, received: %f", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan6"}
- if err := rater.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() != 1 {
t.Errorf("Calling APIerSv1.GetAccount expected: 1, received: %f", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -1573,13 +1574,13 @@ func testApierGetAccount(t *testing.T) {
func testApierTriggersExecute(t *testing.T) {
var reply string
attrs := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan8", ReloadScheduler: true}
- if err := rater.Call(utils.APIerSv1SetAccount, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
}
attrAddBlnc := &AttrAddBalance{Tenant: "cgrates.org", Account: "1008", BalanceType: utils.MetaMonetary, Value: 2}
- if err := rater.Call(utils.APIerSv1AddBalance, attrAddBlnc, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1AddBalance, attrAddBlnc, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -1591,7 +1592,7 @@ func testApierResetDataBeforeLoadFromFolder(t *testing.T) {
testApierInitDataDb(t)
var reply string
// Simple test that command is executed without errors
- if err := rater.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := rater.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error(err)
@@ -1600,7 +1601,7 @@ func testApierResetDataBeforeLoadFromFolder(t *testing.T) {
}
var rcvStats map[string]*ltcache.CacheStats
expectedStats := engine.GetDefaultEmptyCacheStats()
- err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats)
+ err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats)
if err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(rcvStats, expectedStats) {
@@ -1612,16 +1613,16 @@ func testApierResetDataBeforeLoadFromFolder(t *testing.T) {
func testApierLoadTariffPlanFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: utils.EmptyString}
- if err := rater.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err == nil || !strings.HasPrefix(err.Error(), utils.ErrMandatoryIeMissing.Error()) {
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err == nil || !strings.HasPrefix(err.Error(), utils.ErrMandatoryIeMissing.Error()) {
t.Error(err)
}
attrs = &utils.AttrLoadTpFromFolder{FolderPath: "/INVALID/"}
- if err := rater.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err == nil || err.Error() != utils.ErrInvalidPath.Error() {
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err == nil || err.Error() != utils.ErrInvalidPath.Error() {
t.Error(err)
}
// Simple test that command is executed without errors
attrs = &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")}
- if err := rater.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadTariffPlanFromFolder: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.LoadTariffPlanFromFolder got reply: ", reply)
@@ -1632,12 +1633,12 @@ func testApierLoadTariffPlanFromFolder(t *testing.T) {
// For now just test that they execute without errors
func testApierComputeReverse(t *testing.T) {
var reply string
- if err := rater.Call(utils.APIerSv1ComputeReverseDestinations, utils.EmptyString, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1ComputeReverseDestinations, utils.EmptyString, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Received: ", reply)
}
- if err := rater.Call(utils.APIerSv1ComputeAccountActionPlans, new(utils.TenantWithAPIOpts), &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1ComputeAccountActionPlans, new(utils.TenantWithAPIOpts), &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Received: ", reply)
@@ -1654,14 +1655,14 @@ func testApierResetDataAfterLoadFromFolder(t *testing.T) {
expStats[utils.CacheDestinations].Items = 3
expStats[utils.CacheLoadIDs].Items = 18
expStats[utils.CacheRPCConnections].Items = 2
- if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v,\n received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
}
var reply string
// Simple test that command is executed without errors
- if err := rater.Call(utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -1697,7 +1698,7 @@ func testApierResetDataAfterLoadFromFolder(t *testing.T) {
expStats[utils.CacheReverseFilterIndexes].Items = 10
expStats[utils.CacheReverseFilterIndexes].Groups = 7
- if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v, \n received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
@@ -1716,7 +1717,7 @@ func testApierSetChargerS(t *testing.T) {
},
}
var result string
- if err := rater.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1728,7 +1729,7 @@ func testApierSetChargerS(t *testing.T) {
func testApierGetAccountAfterLoad(t *testing.T) {
var reply *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := rater.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() != 13 {
t.Errorf("Calling APIerSv1.GetBalance expected: 13, received: %v \n\n for:%s", reply.BalanceMap[utils.MetaMonetary].GetTotalValue(), utils.ToJSON(reply))
@@ -1753,7 +1754,7 @@ func testApierResponderGetCost(t *testing.T) {
}
var cc engine.CallCost
// Simple test that command is executed without errors
- if err := rater.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+ if err := rater.Call(context.Background(), utils.ResponderGetCost, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.Cost != 90.0 {
t.Errorf("Calling Responder.GetCost got callcost: %v", cc)
@@ -1773,10 +1774,10 @@ func testApierMaxDebitInexistentAcnt(t *testing.T) {
TimeEnd: time.Date(2014, 3, 27, 10, 42, 26, 0, time.UTC).Add(10 * time.Second),
},
}
- if err := rater.Call(utils.ResponderMaxDebit, cd, cc); err == nil {
+ if err := rater.Call(context.Background(), utils.ResponderMaxDebit, cd, cc); err == nil {
t.Error(err.Error())
}
- if err := rater.Call(utils.ResponderDebit, cd, cc); err == nil {
+ if err := rater.Call(context.Background(), utils.ResponderDebit, cd, cc); err == nil {
t.Error(err.Error())
}
}
@@ -1803,7 +1804,7 @@ func testApierCdrServer(t *testing.T) {
func testApierITGetCdrs(t *testing.T) {
var reply []*engine.ExternalCDR
req := utils.AttrGetCdrs{MediationRunIds: []string{utils.MetaDefault}}
- if err := rater.Call(utils.APIerSv1GetCDRs, &req, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetCDRs, &req, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
@@ -1820,14 +1821,14 @@ func testApierITProcessCdr(t *testing.T) {
Usage: 10 * time.Second, ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}, Cost: 1.01,
},
}
- if err := rater.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.ExternalCDR
req := utils.AttrGetCdrs{MediationRunIds: []string{utils.MetaDefault}}
- if err := rater.Call(utils.APIerSv1GetCDRs, &req, &cdrs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 3 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1839,12 +1840,12 @@ func testApierGetCallCostLog(t *testing.T) {
var cc engine.EventCost
var attrs utils.AttrGetCallCost
// Simple test that command is executed without errors
- if err := rater.Call(utils.APIerSv1GetEventCost, &attrs, &cc); err == nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetEventCost, &attrs, &cc); err == nil {
t.Error("Failed to detect missing fields in APIerSv1.GetCallCostLog")
}
attrs.CgrId = "dummyid"
attrs.RunId = "default"
- if err := rater.Call(utils.APIerSv1GetEventCost, &attrs, &cc); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetEventCost, &attrs, &cc); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error("APIerSv1.GetCallCostLog: should return NOT_FOUND, got:", err)
}
tm := time.Now().Truncate(time.Millisecond).UTC()
@@ -1871,7 +1872,7 @@ func testApierGetCallCostLog(t *testing.T) {
},
}
var reply string
- if err := rater.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -1901,7 +1902,7 @@ func testApierGetCallCostLog(t *testing.T) {
}
attrs.CgrId = "Cdr1"
attrs.RunId = utils.EmptyString
- if err := rater.Call(utils.APIerSv1GetEventCost, &attrs, &cc); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetEventCost, &attrs, &cc); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, cc) {
t.Errorf("Expecting %s ,received %s", utils.ToJSON(expected), utils.ToJSON(cc))
@@ -1911,30 +1912,30 @@ func testApierGetCallCostLog(t *testing.T) {
func testApierITSetDestination(t *testing.T) {
attrs := utils.AttrSetDestination{Id: "TEST_SET_DESTINATION", Prefixes: []string{"+4986517174963", "+4986517174960"}}
var reply string
- if err := rater.Call(utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
t.Error("Unexpected error", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
- if err := rater.Call(utils.APIerSv1SetDestination, &attrs, &reply); err == nil || err.Error() != "EXISTS" { // Second time without overwrite should generate error
+ if err := rater.Call(context.Background(), utils.APIerSv1SetDestination, &attrs, &reply); err == nil || err.Error() != "EXISTS" { // Second time without overwrite should generate error
t.Error("Unexpected error", err.Error())
}
attrs = utils.AttrSetDestination{Id: "TEST_SET_DESTINATION", Prefixes: []string{"+4986517174963", "+4986517174964"}, Overwrite: true}
- if err := rater.Call(utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
t.Error("Unexpected error", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
eDestination := engine.Destination{Id: attrs.Id, Prefixes: attrs.Prefixes}
var rcvDestination engine.Destination
- if err := rater.Call(utils.APIerSv1GetDestination, &attrs.Id, &rcvDestination); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetDestination, &attrs.Id, &rcvDestination); err != nil {
t.Error("Unexpected error", err.Error())
} else if !reflect.DeepEqual(eDestination, rcvDestination) {
t.Errorf("Expecting: %+v, received: %+v", eDestination, rcvDestination)
}
eRcvIDs := []string{attrs.Id}
var rcvIDs []string
- if err := rater.Call(utils.APIerSv1GetReverseDestination, &attrs.Prefixes[0], &rcvIDs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetReverseDestination, &attrs.Prefixes[0], &rcvIDs); err != nil {
t.Error("Unexpected error", err.Error())
} else if !reflect.DeepEqual(eRcvIDs, rcvIDs) {
t.Errorf("Expecting: %+v, received: %+v", eRcvIDs, rcvIDs)
@@ -1943,7 +1944,7 @@ func testApierITSetDestination(t *testing.T) {
func testApierITGetScheduledActions(t *testing.T) {
var rply []*scheduler.ScheduledAction
- if err := rater.Call(utils.APIerSv1GetScheduledActions, scheduler.ArgsGetScheduledActions{}, &rply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetScheduledActions, scheduler.ArgsGetScheduledActions{}, &rply); err != nil {
t.Error("Unexpected error: ", err)
}
}
@@ -1952,7 +1953,7 @@ func testApierITGetDataCost(t *testing.T) {
attrs := AttrGetDataCost{Category: "data", Tenant: "cgrates.org",
Subject: "1001", AnswerTime: utils.MetaNow, Usage: 640113}
var rply *engine.DataCost
- if err := rater.Call(utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if rply.Cost != 128.0240 {
t.Errorf("Unexpected cost received: %f", rply.Cost)
@@ -1963,7 +1964,7 @@ func testApierITGetCost(t *testing.T) {
attrs := AttrGetCost{Category: "data", Tenant: "cgrates.org",
Subject: "1001", AnswerTime: utils.MetaNow, Usage: "640113"}
var rply *engine.EventCost
- if err := rater.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 128.0240 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -1986,7 +1987,7 @@ func testApierInitStorDb2(t *testing.T) {
func testApierReloadCache2(t *testing.T) {
var reply string
// Simple test that command is executed without errors
- if err := rater.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := rater.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
@@ -1998,7 +1999,7 @@ func testApierReloadCache2(t *testing.T) {
func testApierReloadScheduler2(t *testing.T) {
var reply string
// Simple test that command is executed without errors
- if err := rater.Call(utils.SchedulerSv1Reload, utils.StringWithAPIOpts{}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.SchedulerSv1Reload, utils.StringWithAPIOpts{}, &reply); err != nil {
t.Error("Got error on SchedulerSv1.Reload: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling SchedulerSv1.Reload got reply: ", reply)
@@ -2007,7 +2008,7 @@ func testApierReloadScheduler2(t *testing.T) {
func testApierImportTPFromFolderPath(t *testing.T) {
var reply string
- if err := rater.Call(utils.APIerSv1ImportTariffPlanFromFolder,
+ if err := rater.Call(context.Background(), utils.APIerSv1ImportTariffPlanFromFolder,
utils.AttrImportTPFromFolder{TPid: "TEST_TPID2",
FolderPath: "/usr/share/cgrates/tariffplans/oldtutorial"}, &reply); err != nil {
t.Error("Got error on APIerSv1.ImportTarrifPlanFromFolder: ", err.Error())
@@ -2019,7 +2020,7 @@ func testApierImportTPFromFolderPath(t *testing.T) {
func testApierLoadTariffPlanFromStorDbDryRun(t *testing.T) {
var reply string
- if err := rater.Call(utils.APIerSv1LoadTariffPlanFromStorDb,
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromStorDb,
&AttrLoadTpFromStorDb{TPid: "TEST_TPID2", DryRun: true}, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadTariffPlanFromStorDb: ", err.Error())
} else if reply != utils.OK {
@@ -2030,7 +2031,7 @@ func testApierLoadTariffPlanFromStorDbDryRun(t *testing.T) {
func testApierGetCacheStats2(t *testing.T) {
var rcvStats map[string]*ltcache.CacheStats
expectedStats := engine.GetDefaultEmptyCacheStats()
- err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats)
+ err := rater.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats)
if err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
@@ -2040,7 +2041,7 @@ func testApierGetCacheStats2(t *testing.T) {
func testApierLoadTariffPlanFromStorDb(t *testing.T) {
var reply string
- if err := rater.Call(utils.APIerSv1LoadTariffPlanFromStorDb,
+ if err := rater.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromStorDb,
&AttrLoadTpFromStorDb{TPid: "TEST_TPID2"}, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadTariffPlanFromStorDb: ", err.Error())
} else if reply != utils.OK {
@@ -2050,41 +2051,41 @@ func testApierLoadTariffPlanFromStorDb(t *testing.T) {
func testApierStartStopServiceStatus(t *testing.T) {
var reply string
- if err := rater.Call(utils.ServiceManagerV1ServiceStatus, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
+ if err := rater.Call(context.Background(), utils.ServiceManagerV1ServiceStatus, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
&reply); err != nil {
t.Error(err)
} else if reply != utils.RunningCaps {
t.Errorf("Received: <%s>", reply)
}
- if err := rater.Call(utils.ServiceManagerV1StopService, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: "INVALID"}},
+ if err := rater.Call(context.Background(), utils.ServiceManagerV1StopService, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: "INVALID"}},
&reply); err == nil || err.Error() != utils.UnsupportedServiceIDCaps {
t.Error(err)
}
- if err := rater.Call(utils.ServiceManagerV1StopService, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
+ if err := rater.Call(context.Background(), utils.ServiceManagerV1StopService, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
&reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: <%s>", reply)
}
- if err := rater.Call(utils.ServiceManagerV1ServiceStatus, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
+ if err := rater.Call(context.Background(), utils.ServiceManagerV1ServiceStatus, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
&reply); err != nil {
t.Error(err)
} else if reply != utils.StoppedCaps {
t.Errorf("Received: <%s>", reply)
}
- if err := rater.Call(utils.ServiceManagerV1StartService, &dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
+ if err := rater.Call(context.Background(), utils.ServiceManagerV1StartService, &dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
&reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: <%s>", reply)
}
- if err := rater.Call(utils.ServiceManagerV1ServiceStatus, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
+ if err := rater.Call(context.Background(), utils.ServiceManagerV1ServiceStatus, dispatchers.ArgStartServiceWithAPIOpts{ArgStartService: servmanager.ArgStartService{ServiceID: utils.MetaScheduler}},
&reply); err != nil {
t.Error(err)
} else if reply != utils.RunningCaps {
t.Errorf("Received: <%s>", reply)
}
- if err := rater.Call(utils.SchedulerSv1Reload, utils.StringWithAPIOpts{}, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.SchedulerSv1Reload, utils.StringWithAPIOpts{}, &reply); err != nil {
t.Error("Got error on SchedulerSv1.Reload: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling SchedulerSv1.Reload got reply: ", reply)
@@ -2095,14 +2096,14 @@ func testApierSetRatingProfileWithoutTenant(t *testing.T) {
var reply string
rpa := &utils.TPRatingActivation{ActivationTime: "2012-01-01T00:00:00Z", RatingPlanId: "RETAIL1", FallbackSubjects: "dan4"}
rpf := &utils.AttrSetRatingProfile{Category: utils.Call, Subject: "dan3", RatingPlanActivations: []*utils.TPRatingActivation{rpa}}
- if err := rater.Call(utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.SetRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetRatingProfile got reply: ", reply)
}
expectedID := utils.ConcatenatedKey(utils.MetaOut, "cgrates.org", utils.Call, "dan3")
var result *engine.RatingProfile
- if err := rater.Call(utils.APIerSv1GetRatingProfile,
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfile,
&utils.AttrGetRatingProfile{Category: utils.Call, Subject: "dan3"},
&result); err != nil {
t.Error(err)
@@ -2113,7 +2114,7 @@ func testApierSetRatingProfileWithoutTenant(t *testing.T) {
func testApierRemoveRatingProfilesWithoutTenant(t *testing.T) {
var reply string
- if err := rater.Call(utils.APIerSv1RemoveRatingProfile, &AttrRemoveRatingProfile{
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveRatingProfile, &AttrRemoveRatingProfile{
Category: utils.Call,
Subject: "dan3",
}, &reply); err != nil {
@@ -2122,7 +2123,7 @@ func testApierRemoveRatingProfilesWithoutTenant(t *testing.T) {
t.Errorf("Expected: %s, received: %s ", utils.OK, reply)
}
var result *engine.RatingProfile
- if err := rater.Call(utils.APIerSv1GetRatingProfile,
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfile,
&utils.AttrGetRatingProfile{Category: utils.Call, Subject: "dan3"},
&result); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -2155,7 +2156,7 @@ func testApierReplayFldPosts(t *testing.T) {
t.Error(err)
}
var reply string
- if err := rater.Call(utils.APIerSv1ReplayFailedPosts, &args, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1ReplayFailedPosts, &args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply: ", reply)
@@ -2183,7 +2184,7 @@ func testApierReplayFldPosts(t *testing.T) {
if err != nil {
t.Error(err)
}
- if err := rater.Call(utils.APIerSv1ReplayFailedPosts, &args, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1ReplayFailedPosts, &args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply: ", reply)
@@ -2234,7 +2235,7 @@ func testApierReplayFldPosts(t *testing.T) {
func testApierGetDataDBVesions(t *testing.T) {
var reply *engine.Versions
- if err := rater.Call(utils.APIerSv1GetDataDBVersions, utils.StringPointer(utils.EmptyString), &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetDataDBVersions, utils.StringPointer(utils.EmptyString), &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(engine.CurrentDataDBVersions(), *reply) {
t.Errorf("Expecting : %+v, received: %+v", engine.CurrentDataDBVersions(), *reply)
@@ -2243,7 +2244,7 @@ func testApierGetDataDBVesions(t *testing.T) {
func testApierGetStorDBVesions(t *testing.T) {
var reply *engine.Versions
- if err := rater.Call(utils.APIerSv1GetStorDBVersions, utils.StringPointer(utils.EmptyString), &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetStorDBVersions, utils.StringPointer(utils.EmptyString), &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(engine.CurrentStorDBVersions(), *reply) {
t.Errorf("Expecting : %+v, received: %+v", engine.CurrentStorDBVersions(), *reply)
@@ -2252,7 +2253,7 @@ func testApierGetStorDBVesions(t *testing.T) {
func testApierBackwardsCompatible(t *testing.T) {
var reply string
- if err := rater.Call("ApierV1.Ping", new(utils.CGREvent), &reply); err != nil {
+ if err := rater.Call(context.Background(), "ApierV1.Ping", new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Expecting : %+v, received: %+v", utils.Pong, reply)
@@ -2283,7 +2284,7 @@ func testRatingProfileCachingMetaNone(t *testing.T) {
}
// set the profile
var result string
- if err := rater.Call(utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2293,7 +2294,7 @@ func testRatingProfileCachingMetaNone(t *testing.T) {
CacheID: utils.CacheRatingProfiles,
ItemID: "*out:cgrates.org:call:dan",
}
- if err := rater.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false, received:%v", reply)
@@ -2303,7 +2304,7 @@ func testRatingProfileCachingMetaNone(t *testing.T) {
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheRatingProfiles,
}
- if err := rater.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
+ if err := rater.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err.Error(), rcvKeys)
@@ -2312,7 +2313,7 @@ func testRatingProfileCachingMetaNone(t *testing.T) {
//check in dataManager
expected := []string{"call:dan"}
var rcvIDs []string
- if err := rater.Call(utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcvIDs) {
t.Errorf("Expecting : %+v, received: %+v", expected, rcvIDs)
@@ -2334,7 +2335,7 @@ func testRatingProfileCachingMetaLoad(t *testing.T) {
}
// set the profile
var result string
- if err := rater.Call(utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2344,7 +2345,7 @@ func testRatingProfileCachingMetaLoad(t *testing.T) {
CacheID: utils.CacheRatingProfiles,
ItemID: "*out:cgrates.org:call:dan",
}
- if err := rater.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: true, received:%v", reply)
@@ -2355,7 +2356,7 @@ func testRatingProfileCachingMetaLoad(t *testing.T) {
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheRatingProfiles,
}
- if err := rater.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(rcvKeys, expectedIDs) {
t.Errorf("Expecting : %+v, received: %+v", expectedIDs, rcvKeys)
@@ -2364,14 +2365,14 @@ func testRatingProfileCachingMetaLoad(t *testing.T) {
//check in dataManager
expected := []string{"call:dan"}
var rcvIDs []string
- if err := rater.Call(utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcvIDs) {
t.Errorf("Expecting : %+v, received: %+v", expected, rcvIDs)
}
//remove from cache and DataManager the profile
var resp string
- if err := rater.Call(utils.APIerSv1RemoveRatingProfile,
+ if err := rater.Call(context.Background(), utils.APIerSv1RemoveRatingProfile,
AttrRemoveRatingProfile{
Tenant: rpf.Tenant,
Category: rpf.Category,
@@ -2386,20 +2387,20 @@ func testRatingProfileCachingMetaLoad(t *testing.T) {
CacheID: utils.CacheRatingProfiles,
ItemID: "*out:cgrates.org:call:dan",
}
- if err := rater.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false, received:%v", reply)
}
- if err := rater.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
+ if err := rater.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err, rcvKeys)
}
//check in dataManager
- if err := rater.Call(utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err == nil ||
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err, rcvIDs)
@@ -2422,7 +2423,7 @@ func testRatingProfileCachingMetaReload1(t *testing.T) {
}
// set the profile
var result string
- if err := rater.Call(utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2432,7 +2433,7 @@ func testRatingProfileCachingMetaReload1(t *testing.T) {
CacheID: utils.CacheRatingProfiles,
ItemID: "*out:cgrates.org:call:dan",
}
- if err := rater.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false, received:%v", reply)
@@ -2442,7 +2443,7 @@ func testRatingProfileCachingMetaReload1(t *testing.T) {
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheRatingProfiles,
}
- if err := rater.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
+ if err := rater.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err, rcvKeys)
@@ -2451,7 +2452,7 @@ func testRatingProfileCachingMetaReload1(t *testing.T) {
//check in dataManager
expected := []string{"call:dan"}
var rcvIDs []string
- if err := rater.Call(utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcvIDs) {
t.Errorf("Expecting : %+v, received: %+v", expected, rcvIDs)
@@ -2482,14 +2483,14 @@ func testRatingProfileCachingMetaReload2(t *testing.T) {
}
// set the profile
var result string
- if err := rater.Call(utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.RatingProfile
- if err := rater.Call(utils.APIerSv1GetRatingProfile, &utils.AttrGetRatingProfile{
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfile, &utils.AttrGetRatingProfile{
Tenant: "cgrates.org", Category: "call", Subject: "dan"}, &reply); err != nil {
t.Fatal(err)
}
@@ -2502,13 +2503,13 @@ func testRatingProfileCachingMetaReload2(t *testing.T) {
rpf.RatingPlanActivations[0].FallbackSubjects = "dan3"
expected.RatingPlanActivations[0].FallbackKeys[0] = "*out:cgrates.org:call:dan3"
// set the profile
- if err := rater.Call(utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := rater.Call(utils.APIerSv1GetRatingProfile, &utils.AttrGetRatingProfile{
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfile, &utils.AttrGetRatingProfile{
Tenant: "cgrates.org", Category: "call", Subject: "dan"}, &reply); err != nil {
t.Fatal(err)
}
@@ -2532,7 +2533,7 @@ func testRatingProfileCachingMetaRemove(t *testing.T) {
}
// set the profile
var result string
- if err := rater.Call(utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2542,7 +2543,7 @@ func testRatingProfileCachingMetaRemove(t *testing.T) {
CacheID: utils.CacheRatingProfiles,
ItemID: "*out:cgrates.org:call:dan",
}
- if err := rater.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: true, received:%v", reply)
@@ -2553,7 +2554,7 @@ func testRatingProfileCachingMetaRemove(t *testing.T) {
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheRatingProfiles,
}
- if err := rater.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(rcvKeys, expectedIDs) {
t.Errorf("Expecting : %+v, received: %+v", expectedIDs, rcvKeys)
@@ -2573,19 +2574,19 @@ func testRatingProfileCachingMetaRemove(t *testing.T) {
APIOpts: map[string]any{utils.CacheOpt: utils.MetaRemove},
}
// set the profile
- if err := rater.Call(utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1SetRatingProfile, rpf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := rater.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := rater.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false, received:%v", reply)
}
- if err := rater.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
+ if err := rater.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err.Error(), rcvKeys)
@@ -2594,7 +2595,7 @@ func testRatingProfileCachingMetaRemove(t *testing.T) {
//check in dataManager
expected := []string{"call:dan"}
var rcvIDs []string
- if err := rater.Call(utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
+ if err := rater.Call(context.Background(), utils.APIerSv1GetRatingProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcvIDs) {
t.Errorf("Expecting : %+v, received: %+v", expected, rcvIDs)
diff --git a/apier/v1/attributes.go b/apier/v1/attributes.go
index d95ce6b6e..f7927c06c 100644
--- a/apier/v1/attributes.go
+++ b/apier/v1/attributes.go
@@ -21,12 +21,13 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// GetAttributeProfile returns an Attribute Profile
-func (apierSv1 *APIerSv1) GetAttributeProfile(arg *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) (err error) {
+func (apierSv1 *APIerSv1) GetAttributeProfile(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) (err error) {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -46,7 +47,7 @@ func (apierSv1 *APIerSv1) GetAttributeProfile(arg *utils.TenantIDWithAPIOpts, re
}
// GetAttributeProfileIDs returns list of attributeProfile IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetAttributeProfileIDs(args *utils.PaginatorWithTenant, attrPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetAttributeProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, attrPrfIDs *[]string) error {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -69,7 +70,7 @@ func (apierSv1 *APIerSv1) GetAttributeProfileIDs(args *utils.PaginatorWithTenant
// GetAttributeProfileCount sets in reply var the total number of AttributeProfileIDs registered for a tenant
// returns ErrNotFound in case of 0 AttributeProfileIDs
-func (apierSv1 *APIerSv1) GetAttributeProfileCount(args *utils.TenantWithAPIOpts, reply *int) (err error) {
+func (apierSv1 *APIerSv1) GetAttributeProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -87,7 +88,7 @@ func (apierSv1 *APIerSv1) GetAttributeProfileCount(args *utils.TenantWithAPIOpts
}
// SetAttributeProfile add/update a new Attribute Profile
-func (apierSv1 *APIerSv1) SetAttributeProfile(alsWrp *engine.AttributeProfileWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) SetAttributeProfile(ctx *context.Context, alsWrp *engine.AttributeProfileWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(alsWrp.AttributeProfile, []string{utils.ID, utils.Attributes}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -124,7 +125,7 @@ func (apierSv1 *APIerSv1) SetAttributeProfile(alsWrp *engine.AttributeProfileWit
}
// RemoveAttributeProfile remove a specific Attribute Profile
-func (apierSv1 *APIerSv1) RemoveAttributeProfile(arg *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveAttributeProfile(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -157,26 +158,26 @@ type AttributeSv1 struct {
attrS *engine.AttributeService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (alSv1 *AttributeSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (alSv1 *AttributeSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(alSv1, serviceMethod, args, reply)
}
// GetAttributeForEvent returns matching AttributeProfile for Event
-func (alSv1 *AttributeSv1) GetAttributeForEvent(args *utils.CGREvent,
+func (alSv1 *AttributeSv1) GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.AttributeProfile) (err error) {
- return alSv1.attrS.V1GetAttributeForEvent(args, reply)
+ return alSv1.attrS.V1GetAttributeForEvent(ctx, args, reply)
}
// ProcessEvent will replace event fields with the ones in matching AttributeProfile
-func (alSv1 *AttributeSv1) ProcessEvent(args *utils.CGREvent,
+func (alSv1 *AttributeSv1) ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.AttrSProcessEventReply) error {
- return alSv1.attrS.V1ProcessEvent(args, reply)
+ return alSv1.attrS.V1ProcessEvent(ctx, args, reply)
}
// Ping return pong if the service is active
-func (alSv1 *AttributeSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (alSv1 *AttributeSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v1/attributes_it_test.go b/apier/v1/attributes_it_test.go
index 80674b86b..7ae859337 100644
--- a/apier/v1/attributes_it_test.go
+++ b/apier/v1/attributes_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
alsPrfCfgPath string
alsPrfCfg *config.CGRConfig
- attrSRPC *rpc.Client
+ attrSRPC *birpc.Client
alsPrf *engine.AttributeProfileWithAPIOpts
alsPrfConfigDIR string //run tests for specific configuration
@@ -166,7 +167,7 @@ func testAttributeSRPCConn(t *testing.T) {
func testAttributeSGetAlsPrfBeforeSet(t *testing.T) {
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -176,7 +177,7 @@ func testAttributeSGetAlsPrfBeforeSet(t *testing.T) {
func testAttributeSLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := attrSRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -224,7 +225,7 @@ func testAttributeSGetAttributeForEvent(t *testing.T) {
}
eAttrPrf.Compile()
var attrReply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err != nil {
t.Fatal(err)
}
@@ -236,7 +237,7 @@ func testAttributeSGetAttributeForEvent(t *testing.T) {
ev.Tenant = utils.EmptyString
ev.ID = "randomID"
- if err := attrSRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err != nil {
t.Fatal(err)
}
@@ -278,13 +279,13 @@ func testAttributeSGetAttributeForEventNotFound(t *testing.T) {
}
eAttrPrf2.Compile()
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, eAttrPrf2, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, eAttrPrf2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_3"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -293,7 +294,7 @@ func testAttributeSGetAttributeForEventNotFound(t *testing.T) {
t.Errorf("Expecting : %+v, received: %+v", eAttrPrf2, reply)
}
var attrReply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -330,13 +331,13 @@ func testAttributeSGetAttributeForEventWithMetaAnyContext(t *testing.T) {
}
eAttrPrf2.Compile()
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, eAttrPrf2, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, eAttrPrf2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_2"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -345,7 +346,7 @@ func testAttributeSGetAttributeForEventWithMetaAnyContext(t *testing.T) {
t.Errorf("Expecting : %+v, received: %+v", eAttrPrf2.AttributeProfile, reply)
}
var attrReply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err != nil {
t.Fatal(err)
}
@@ -385,7 +386,7 @@ func testAttributeSProcessEvent(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
} else {
@@ -400,7 +401,7 @@ func testAttributeSProcessEvent(t *testing.T) {
ev.Tenant = ""
ev.ID = "randomID"
eRply.ID = "randomID"
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
} else {
@@ -426,7 +427,7 @@ func testAttributeSProcessEventNotFound(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -447,7 +448,7 @@ func testAttributeSProcessEventMissing(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err == nil ||
err.Error() != "MANDATORY_IE_MISSING: [Category]" {
t.Error(err)
@@ -492,7 +493,7 @@ func testAttributeSProcessEventWithNoneSubstitute(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -515,7 +516,7 @@ func testAttributeSProcessEventWithNoneSubstitute(t *testing.T) {
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
}
@@ -564,7 +565,7 @@ func testAttributeSProcessEventWithNoneSubstitute2(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -601,7 +602,7 @@ func testAttributeSProcessEventWithNoneSubstitute2(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRply, &rplyEv) &&
@@ -650,7 +651,7 @@ func testAttributeSProcessEventWithNoneSubstitute3(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -672,7 +673,7 @@ func testAttributeSProcessEventWithNoneSubstitute3(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRply, &rplyEv) {
@@ -702,7 +703,7 @@ func testAttributeSProcessEventWithHeader(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -735,7 +736,7 @@ func testAttributeSProcessEventWithHeader(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
attrArgs, &rplyEv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRply, &rplyEv) {
@@ -766,7 +767,7 @@ func testAttributeSProcessEventWithHeader(t *testing.T) {
// },
// }
// var result string
-// if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+// if err := attrSRPC.Call(context.Background(),utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
// t.Error(err)
// } else if result != utils.OK {
// t.Error("Unexpected reply returned", result)
@@ -791,14 +792,14 @@ func testAttributeSProcessEventWithHeader(t *testing.T) {
// Weight: 5,
// },
// }
-// if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
+// if err := attrSRPC.Call(context.Background(),utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
// t.Error(err)
// } else if result != utils.OK {
// t.Error("Unexpected reply returned", result)
// }
// var reply *engine.AttributeProfile
-// if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+// if err := attrSRPC.Call(context.Background(),utils.APIerSv1GetAttributeProfile,
// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_SENTRY_IP"}}, &reply); err != nil {
// t.Fatal(err)
// }
@@ -807,7 +808,7 @@ func testAttributeSProcessEventWithHeader(t *testing.T) {
// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, reply)
// }
-// if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+// if err := attrSRPC.Call(context.Background(),utils.APIerSv1GetAttributeProfile,
// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_SENTRY_NUMBER"}}, &reply); err != nil {
// t.Fatal(err)
// }
@@ -845,7 +846,7 @@ func testAttributeSProcessEventWithHeader(t *testing.T) {
// },
// }
// var rplyEv engine.AttrSProcessEventReply
-// if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+// if err := attrSRPC.Call(context.Background(),utils.AttributeSv1ProcessEvent,
// attrArgs, &rplyEv); err != nil {
// t.Error(err)
// } else if !reflect.DeepEqual(eRply, &rplyEv) {
@@ -857,17 +858,17 @@ func testAttributeSProcessEventWithHeader(t *testing.T) {
func testAttributeSGetAttPrfIDs(t *testing.T) {
expected := []string{"ATTR_2", "ATTR_PASS", "ATTR_1", "ATTR_3", "ATTR_Header", "AttributeWithNonSubstitute"}
var result []string
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{
Tenant: "cgrates.org",
Paginator: utils.Paginator{Limit: utils.IntPointer(10)},
}, &result); err != nil {
@@ -899,11 +900,11 @@ func testAttributeSSetAlsPrfBrokenReference(t *testing.T) {
}
var result string
expErr := "SERVER_ERROR: broken reference to filter: for item with ID: cgrates.org:ApierTest"
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err == nil || err.Error() != expErr {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err == nil || err.Error() != expErr {
t.Fatalf("Expected error: %q, received: %q", expErr, err)
}
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -932,13 +933,13 @@ func testAttributeSSetAlsPrf(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -961,13 +962,13 @@ func testAttributeSUpdateAlsPrf(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -983,7 +984,7 @@ func testAttributeSUpdateAlsPrf(t *testing.T) {
func testAttributeSRemAlsPrf(t *testing.T) {
var resp string
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: alsPrf.Tenant, ID: alsPrf.ID}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -993,14 +994,14 @@ func testAttributeSRemAlsPrf(t *testing.T) {
return
}
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
// remove twice shoud return not found
resp = ""
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: alsPrf.Tenant, ID: alsPrf.ID}}, &resp); err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error: %v received: %v", utils.ErrNotFound, err)
}
@@ -1033,13 +1034,13 @@ func testAttributeSSetAlsPrf2(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "golant", ID: "ATTR_972587832508_SESSIONAUTH"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -1075,7 +1076,7 @@ func testAttributeSSetAlsPrf3(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err == nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err == nil {
t.Error(err)
}
}
@@ -1104,14 +1105,14 @@ func testAttributeSSetAlsPrf4(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err == nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err == nil {
t.Error(err)
}
}
func testAttributeSPing(t *testing.T) {
var resp string
- if err := attrSRPC.Call(utils.AttributeSv1Ping, new(utils.CGREvent), &resp); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1Ping, new(utils.CGREvent), &resp); err != nil {
t.Error(err)
} else if resp != utils.Pong {
t.Error("Unexpected reply returned", resp)
@@ -1139,7 +1140,7 @@ func testAttributeSProcessEventWithSearchAndReplace(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1171,7 +1172,7 @@ func testAttributeSProcessEventWithSearchAndReplace(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
attrArgs, &rplyEv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRply, &rplyEv) {
@@ -1237,17 +1238,17 @@ func testAttributeSProcessWithMultipleRuns(t *testing.T) {
}
// Add attribute in DM
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf3, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf3, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1281,7 +1282,7 @@ func testAttributeSProcessWithMultipleRuns(t *testing.T) {
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
attrArgs, &rplyEv); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(eRply.MatchedProfiles, rplyEv.MatchedProfiles) {
@@ -1352,17 +1353,17 @@ func testAttributeSProcessWithMultipleRuns2(t *testing.T) {
}
// Add attributeProfiles
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf3, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf3, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1397,7 +1398,7 @@ func testAttributeSProcessWithMultipleRuns2(t *testing.T) {
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
attrArgs, &rplyEv); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(eRply.MatchedProfiles, rplyEv.MatchedProfiles) {
@@ -1413,20 +1414,20 @@ func testAttributeSProcessWithMultipleRuns2(t *testing.T) {
func testAttributeSGetAttributeProfileIDsCount(t *testing.T) {
var reply int
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{}, &reply); err != nil {
t.Error(err)
} else if reply != 7 {
t.Errorf("Expecting: 7, received: %+v", reply)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if reply != 7 {
t.Errorf("Expecting: 7, received: %+v", reply)
}
var resp string
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "ATTR_1",
@@ -1438,13 +1439,13 @@ func testAttributeSGetAttributeProfileIDsCount(t *testing.T) {
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if reply != 6 {
t.Errorf("Expecting: 6, received: %+v", reply)
}
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "ATTR_2",
@@ -1456,13 +1457,13 @@ func testAttributeSGetAttributeProfileIDsCount(t *testing.T) {
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if reply != 5 {
t.Errorf("Expecting: 5, received: %+v", reply)
}
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "ATTR_3",
@@ -1474,13 +1475,13 @@ func testAttributeSGetAttributeProfileIDsCount(t *testing.T) {
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if reply != 4 {
t.Errorf("Expecting: 4, received: %+v", reply)
}
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "ATTR_Header",
@@ -1492,13 +1493,13 @@ func testAttributeSGetAttributeProfileIDsCount(t *testing.T) {
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if reply != 3 {
t.Errorf("Expecting: 3, received: %+v", reply)
}
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "ATTR_PASS",
@@ -1510,13 +1511,13 @@ func testAttributeSGetAttributeProfileIDsCount(t *testing.T) {
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if reply != 2 {
t.Errorf("Expecting: 2, received: %+v", reply)
}
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "ATTR_Search_and_replace",
@@ -1529,13 +1530,13 @@ func testAttributeSGetAttributeProfileIDsCount(t *testing.T) {
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if reply != 1 {
t.Errorf("Expecting: 1, received: %+v", reply)
}
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "AttributeWithNonSubstitute",
@@ -1548,7 +1549,7 @@ func testAttributeSGetAttributeProfileIDsCount(t *testing.T) {
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileCount,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -1586,7 +1587,7 @@ func testAttributeSCachingMetaNone(t *testing.T) {
}
// set the profile
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1596,7 +1597,7 @@ func testAttributeSCachingMetaNone(t *testing.T) {
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
- if err := attrSRPC.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false, received:%v", reply)
@@ -1606,7 +1607,7 @@ func testAttributeSCachingMetaNone(t *testing.T) {
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheAttributeProfiles,
}
- if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err.Error(), rcvKeys)
@@ -1615,7 +1616,7 @@ func testAttributeSCachingMetaNone(t *testing.T) {
//check in dataManager
expected := []string{"ATTR_1"}
var rcvIDs []string
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcvIDs) {
t.Errorf("Expecting : %+v, received: %+v", expected, rcvIDs)
@@ -1647,7 +1648,7 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
}
// set the profile
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1657,7 +1658,7 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
- if err := attrSRPC.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: true, received:%v", reply)
@@ -1668,7 +1669,7 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheAttributeProfiles,
}
- if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(rcvKeys, expectedIDs) {
t.Errorf("Expecting : %+v, received: %+v", expectedIDs, rcvKeys)
@@ -1679,7 +1680,7 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
CacheID: utils.CacheAttributeFilterIndexes,
}
expectedIDs = []string{"cgrates.org:*sessions:*string:*req.InitialField:InitialValue"}
- if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(rcvKeys, expectedIDs) {
t.Errorf("Expecting : %+v, received: %+v", expectedIDs, rcvKeys)
@@ -1688,14 +1689,14 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
//check in dataManager
expected := []string{"ATTR_1"}
var rcvIDs []string
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcvIDs) {
t.Errorf("Expecting : %+v, received: %+v", expected, rcvIDs)
}
//remove from cache and DataManager the profile
var resp string
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: attrPrf1.Tenant, ID: attrPrf1.ID},
APIOpts: map[string]any{
utils.CacheOpt: utils.MetaRemove,
@@ -1709,20 +1710,20 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
- if err := attrSRPC.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false, received:%v", reply)
}
- if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err, rcvKeys)
}
//check in dataManager
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err == nil ||
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err, rcvIDs)
@@ -1754,7 +1755,7 @@ func testAttributeSCachingMetaReload1(t *testing.T) {
}
// set the profile
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1764,7 +1765,7 @@ func testAttributeSCachingMetaReload1(t *testing.T) {
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
- if err := attrSRPC.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false, received:%v", reply)
@@ -1774,7 +1775,7 @@ func testAttributeSCachingMetaReload1(t *testing.T) {
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheAttributeProfiles,
}
- if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err, rcvKeys)
@@ -1783,7 +1784,7 @@ func testAttributeSCachingMetaReload1(t *testing.T) {
//check in dataManager
expected := []string{"ATTR_1"}
var rcvIDs []string
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcvIDs) {
t.Errorf("Expecting : %+v, received: %+v", expected, rcvIDs)
@@ -1815,14 +1816,14 @@ func testAttributeSCachingMetaReload2(t *testing.T) {
}
// set the profile
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -1856,13 +1857,13 @@ func testAttributeSCachingMetaReload2(t *testing.T) {
},
}
// set the profile
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -1898,7 +1899,7 @@ func testAttributeSCachingMetaRemove(t *testing.T) {
}
// set the profile
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1908,7 +1909,7 @@ func testAttributeSCachingMetaRemove(t *testing.T) {
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
- if err := attrSRPC.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: true, received:%v", reply)
@@ -1919,7 +1920,7 @@ func testAttributeSCachingMetaRemove(t *testing.T) {
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheAttributeProfiles,
}
- if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(rcvKeys, expectedIDs) {
t.Errorf("Expecting : %+v, received: %+v", expectedIDs, rcvKeys)
@@ -1949,19 +1950,19 @@ func testAttributeSCachingMetaRemove(t *testing.T) {
},
}
// set the profile
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := attrSRPC.Call(utils.CacheSv1HasItem, argsCache, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1HasItem, argsCache, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false, received:%v", reply)
}
- if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ",
utils.ErrNotFound, err.Error(), rcvKeys)
@@ -1970,7 +1971,7 @@ func testAttributeSCachingMetaRemove(t *testing.T) {
//check in dataManager
expected := []string{"ATTR_1"}
var rcvIDs []string
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &rcvIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcvIDs) {
t.Errorf("Expecting : %+v, received: %+v", expected, rcvIDs)
@@ -1996,7 +1997,7 @@ func testAttributeSSetAttributeWithEmptyPath(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, eAttrPrf2, &result); err == nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, eAttrPrf2, &result); err == nil {
t.Errorf("Expected error received nil")
}
}
@@ -2026,7 +2027,7 @@ func testAttributeSCacheOpts(t *testing.T) {
}
// set the profile
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2054,14 +2055,14 @@ func testAttributeSSetAlsPrfWithoutTenant(t *testing.T) {
},
}
alsPrf.Compile()
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
alsPrf.AttributeProfile.Tenant = "cgrates.org"
var result *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "ApierTest1"}},
&result); err != nil {
t.Error(err)
@@ -2072,7 +2073,7 @@ func testAttributeSSetAlsPrfWithoutTenant(t *testing.T) {
func testAttributeSRmvAlsPrfWithoutTenant(t *testing.T) {
var reply string
- if err := attrSRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "ApierTest1"}},
&reply); err != nil {
t.Error(err)
@@ -2080,7 +2081,7 @@ func testAttributeSRmvAlsPrfWithoutTenant(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
var result *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "ApierTest1"}},
&result); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -2100,7 +2101,7 @@ func testAttributeSCacheTestProcessEventNotFound(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -2119,7 +2120,7 @@ func testAttributeSCacheTestProcessEventFound(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrSRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrSRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
}
@@ -2146,7 +2147,7 @@ func testAttributeSCacheTestSetProfile(t *testing.T) {
}
// set the profile
var result string
- if err := attrSRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2159,7 +2160,7 @@ func testAttributeSCacheTestReload(t *testing.T) {
AttributeProfileIDs: []string{"cgrates.org:ATTR_CACHE"},
}
var reply string
- if err := attrSRPC.Call(utils.CacheSv1ReloadCache, cache, &reply); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.CacheSv1ReloadCache, cache, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
diff --git a/apier/v1/auth.go b/apier/v1/auth.go
index c2d4a86ee..15c3f6f61 100644
--- a/apier/v1/auth.go
+++ b/apier/v1/auth.go
@@ -22,12 +22,13 @@ import (
"strconv"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// Returns MaxUsage (for calls in seconds), -1 for no limit
-func (apierSv1 *APIerSv1) GetMaxUsage(usageRecord *engine.UsageRecordWithAPIOpts, maxUsage *int64) error {
+func (apierSv1 *APIerSv1) GetMaxUsage(ctx *context.Context, usageRecord *engine.UsageRecordWithAPIOpts, maxUsage *int64) error {
if apierSv1.Responder == nil {
return utils.NewErrNotConnected(utils.RALService)
}
@@ -58,10 +59,11 @@ func (apierSv1 *APIerSv1) GetMaxUsage(usageRecord *engine.UsageRecordWithAPIOpts
return utils.NewErrServerError(err)
}
var maxDur time.Duration
- if err := apierSv1.Responder.GetMaxSessionTime(&engine.CallDescriptorWithAPIOpts{
- CallDescriptor: cd,
- APIOpts: usageRecord.APIOpts,
- }, &maxDur); err != nil {
+ if err := apierSv1.Responder.GetMaxSessionTime(ctx,
+ &engine.CallDescriptorWithAPIOpts{
+ CallDescriptor: cd,
+ APIOpts: usageRecord.APIOpts,
+ }, &maxDur); err != nil {
return err
}
if maxDur == time.Duration(-1) {
diff --git a/apier/v1/cache_replication_it_test.go b/apier/v1/cache_replication_it_test.go
index 397c025f5..2069a0be0 100644
--- a/apier/v1/cache_replication_it_test.go
+++ b/apier/v1/cache_replication_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,10 +38,10 @@ import (
var (
engine1Cfg *config.CGRConfig
- engine1RPC *rpc.Client
+ engine1RPC *birpc.Client
engine1CfgPath string
engine2Cfg *config.CGRConfig
- engine2RPC *rpc.Client
+ engine2RPC *birpc.Client
engine2CfgPath string
sTestsCacheSReplicate = []func(t *testing.T){
@@ -117,7 +118,7 @@ func testCacheSReplicateRpcConn(t *testing.T) {
func testCacheSReplicateLoadTariffPlanFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := engine2RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := engine2RPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond)
@@ -150,7 +151,7 @@ func testCacheSReplicateProcessAttributes(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := engine1RPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := engine1RPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
} else {
@@ -161,7 +162,7 @@ func testCacheSReplicateProcessAttributes(t *testing.T) {
utils.ToJSON(eRply), utils.ToJSON(rplyEv))
}
}
- if err := engine2RPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := engine2RPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
} else {
diff --git a/apier/v1/caches.go b/apier/v1/caches.go
index 1202e98b8..5cab6d0c7 100644
--- a/apier/v1/caches.go
+++ b/apier/v1/caches.go
@@ -21,6 +21,7 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -36,110 +37,110 @@ type CacheSv1 struct {
}
// GetItemIDs returns the IDs for cacheID with given prefix
-func (chSv1 *CacheSv1) GetItemIDs(args *utils.ArgsGetCacheItemIDsWithAPIOpts,
+func (chSv1 *CacheSv1) GetItemIDs(ctx *context.Context, args *utils.ArgsGetCacheItemIDsWithAPIOpts,
reply *[]string) error {
- return chSv1.cacheS.V1GetItemIDs(args, reply)
+ return chSv1.cacheS.V1GetItemIDs(ctx, args, reply)
}
// HasItem verifies the existence of an Item in cache
-func (chSv1 *CacheSv1) HasItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chSv1 *CacheSv1) HasItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *bool) error {
- return chSv1.cacheS.V1HasItem(args, reply)
+ return chSv1.cacheS.V1HasItem(ctx, args, reply)
}
// GetItem returns an Item from the cache
-func (chSv1 *CacheSv1) GetItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chSv1 *CacheSv1) GetItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *any) error {
- return chSv1.cacheS.V1GetItem(args, reply)
+ return chSv1.cacheS.V1GetItem(ctx, args, reply)
}
// GetItemWithRemote returns an Item from local or remote cache
-func (chSv1 *CacheSv1) GetItemWithRemote(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chSv1 *CacheSv1) GetItemWithRemote(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *any) error {
- return chSv1.cacheS.V1GetItemWithRemote(args, reply)
+ return chSv1.cacheS.V1GetItemWithRemote(ctx, args, reply)
}
// GetItemExpiryTime returns the expiryTime for an item
-func (chSv1 *CacheSv1) GetItemExpiryTime(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chSv1 *CacheSv1) GetItemExpiryTime(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *time.Time) error {
- return chSv1.cacheS.V1GetItemExpiryTime(args, reply)
+ return chSv1.cacheS.V1GetItemExpiryTime(ctx, args, reply)
}
// RemoveItem removes the Item with ID from cache
-func (chSv1 *CacheSv1) RemoveItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chSv1 *CacheSv1) RemoveItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *string) error {
- return chSv1.cacheS.V1RemoveItem(args, reply)
+ return chSv1.cacheS.V1RemoveItem(ctx, args, reply)
}
// RemoveItems removes the Items with ID from cache
-func (chSv1 *CacheSv1) RemoveItems(args *utils.AttrReloadCacheWithAPIOpts,
+func (chSv1 *CacheSv1) RemoveItems(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts,
reply *string) error {
- return chSv1.cacheS.V1RemoveItems(args, reply)
+ return chSv1.cacheS.V1RemoveItems(ctx, args, reply)
}
// Clear will clear partitions in the cache (nil fol all, empty slice for none)
-func (chSv1 *CacheSv1) Clear(args *utils.AttrCacheIDsWithAPIOpts,
+func (chSv1 *CacheSv1) Clear(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts,
reply *string) error {
- return chSv1.cacheS.V1Clear(args, reply)
+ return chSv1.cacheS.V1Clear(ctx, args, reply)
}
// GetCacheStats returns CacheStats filtered by cacheIDs
-func (chSv1 *CacheSv1) GetCacheStats(args *utils.AttrCacheIDsWithAPIOpts,
+func (chSv1 *CacheSv1) GetCacheStats(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts,
rply *map[string]*ltcache.CacheStats) error {
- return chSv1.cacheS.V1GetCacheStats(args, rply)
+ return chSv1.cacheS.V1GetCacheStats(ctx, args, rply)
}
// PrecacheStatus checks status of active precache processes
-func (chSv1 *CacheSv1) PrecacheStatus(args *utils.AttrCacheIDsWithAPIOpts, rply *map[string]string) error {
- return chSv1.cacheS.V1PrecacheStatus(args, rply)
+func (chSv1 *CacheSv1) PrecacheStatus(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts, rply *map[string]string) error {
+ return chSv1.cacheS.V1PrecacheStatus(ctx, args, rply)
}
// HasGroup checks existence of a group in cache
-func (chSv1 *CacheSv1) HasGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (chSv1 *CacheSv1) HasGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
rply *bool) (err error) {
- return chSv1.cacheS.V1HasGroup(args, rply)
+ return chSv1.cacheS.V1HasGroup(ctx, args, rply)
}
// GetGroupItemIDs returns a list of itemIDs in a cache group
-func (chSv1 *CacheSv1) GetGroupItemIDs(args *utils.ArgsGetGroupWithAPIOpts,
+func (chSv1 *CacheSv1) GetGroupItemIDs(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
rply *[]string) (err error) {
- return chSv1.cacheS.V1GetGroupItemIDs(args, rply)
+ return chSv1.cacheS.V1GetGroupItemIDs(ctx, args, rply)
}
// RemoveGroup will remove a group and all items belonging to it from cache
-func (chSv1 *CacheSv1) RemoveGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (chSv1 *CacheSv1) RemoveGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
rply *string) (err error) {
- return chSv1.cacheS.V1RemoveGroup(args, rply)
+ return chSv1.cacheS.V1RemoveGroup(ctx, args, rply)
}
// ReloadCache reloads cache from DB for a prefix or completely
-func (chSv1 *CacheSv1) ReloadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
- return chSv1.cacheS.V1ReloadCache(args, reply)
+func (chSv1 *CacheSv1) ReloadCache(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+ return chSv1.cacheS.V1ReloadCache(ctx, args, reply)
}
// LoadCache loads cache from DB for a prefix or completely
-func (chSv1 *CacheSv1) LoadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
- return chSv1.cacheS.V1LoadCache(args, reply)
+func (chSv1 *CacheSv1) LoadCache(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+ return chSv1.cacheS.V1LoadCache(ctx, args, reply)
}
// Ping used to determinate if component is active
-func (chSv1 *CacheSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (chSv1 *CacheSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
// ReplicateSet replicate an item
-func (chSv1 *CacheSv1) ReplicateSet(args *utils.ArgCacheReplicateSet, reply *string) (err error) {
- return chSv1.cacheS.V1ReplicateSet(args, reply)
+func (chSv1 *CacheSv1) ReplicateSet(ctx *context.Context, args *utils.ArgCacheReplicateSet, reply *string) (err error) {
+ return chSv1.cacheS.V1ReplicateSet(ctx, args, reply)
}
// ReplicateRemove remove an item
-func (chSv1 *CacheSv1) ReplicateRemove(args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
- return chSv1.cacheS.V1ReplicateRemove(args, reply)
+func (chSv1 *CacheSv1) ReplicateRemove(ctx *context.Context, args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
+ return chSv1.cacheS.V1ReplicateRemove(ctx, args, reply)
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (chSv1 *CacheSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (chSv1 *CacheSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(chSv1, serviceMethod, args, reply)
}
diff --git a/apier/v1/caches_it_test.go b/apier/v1/caches_it_test.go
index 96bd8ae13..5cdb00ae5 100644
--- a/apier/v1/caches_it_test.go
+++ b/apier/v1/caches_it_test.go
@@ -21,12 +21,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -35,7 +36,7 @@ import (
var (
chcCfg *config.CGRConfig
- chcRPC *rpc.Client
+ chcRPC *birpc.Client
chcCfgPath string
cacheConfigDIR string
@@ -121,7 +122,7 @@ func testCacheSRpcConn(t *testing.T) {
func testCacheSLoadTariffPlanFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")}
- if err := chcRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond)
@@ -134,14 +135,14 @@ func testCacheSAfterLoadFromFolder(t *testing.T) {
expStats[utils.CacheDestinations].Items = 3
expStats[utils.CacheLoadIDs].Items = 18
expStats[utils.CacheRPCConnections].Items = 2
- if err := chcRPC.Call(utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v, \n received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
}
reply := ""
// Simple test that command is executed without errors
- if err := chcRPC.Call(utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -177,7 +178,7 @@ func testCacheSAfterLoadFromFolder(t *testing.T) {
expStats[utils.CacheReverseFilterIndexes].Items = 10
expStats[utils.CacheReverseFilterIndexes].Groups = 7
- if err := chcRPC.Call(utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v,\n received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
@@ -186,7 +187,7 @@ func testCacheSAfterLoadFromFolder(t *testing.T) {
func testCacheSFlush(t *testing.T) {
reply := ""
- if err := chcRPC.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
@@ -195,7 +196,7 @@ func testCacheSFlush(t *testing.T) {
}
var rcvStats map[string]*ltcache.CacheStats
expStats := engine.GetDefaultEmptyCacheStats()
- if err := chcRPC.Call(utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
@@ -207,7 +208,7 @@ func testCacheSReload(t *testing.T) {
expStats := engine.GetDefaultEmptyCacheStats()
reply := ""
// Simple test that command is executed without errors
- if err := chcRPC.Call(utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -245,7 +246,7 @@ func testCacheSReload(t *testing.T) {
expStats[utils.CacheReverseFilterIndexes].Items = 10
expStats[utils.CacheReverseFilterIndexes].Groups = 7
- if err := chcRPC.Call(utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
t.Error(err)
}
rcvStats[utils.MetaAPIBan].Items = 0
@@ -261,7 +262,7 @@ func testCacheSGetItemIDs(t *testing.T) {
CacheID: utils.CacheThresholdProfiles,
ItemIDPrefix: "NotExistent",
}
- if err := chcRPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ", utils.ErrNotFound, err.Error(), rcvKeys)
}
@@ -269,7 +270,7 @@ func testCacheSGetItemIDs(t *testing.T) {
argsAPI = utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheThresholdProfiles,
}
- if err := chcRPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
}
if !reflect.DeepEqual(expKeys, rcvKeys) {
@@ -284,7 +285,7 @@ func testCacheSHasItem(t *testing.T) {
CacheID: utils.CacheThresholdProfiles,
ItemID: "NotExistent",
}
- if err := chcRPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: %v , received:%v", expected, reply)
@@ -295,7 +296,7 @@ func testCacheSHasItem(t *testing.T) {
CacheID: utils.CacheThresholdProfiles,
ItemID: "cgrates.org:Threshold1",
}
- if err := chcRPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: %v , received:%v", expected, reply)
@@ -309,7 +310,7 @@ func testCacheSGetItemExpiryTime(t *testing.T) {
CacheID: utils.CacheThresholdProfiles,
ItemID: "NotExistent",
}
- if err := chcRPC.Call(utils.CacheSv1GetItemExpiryTime, argsAPI, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetItemExpiryTime, argsAPI, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ", utils.ErrNotFound, err.Error(), reply)
}
@@ -318,7 +319,7 @@ func testCacheSGetItemExpiryTime(t *testing.T) {
CacheID: utils.CacheThresholdProfiles,
ItemID: "cgrates.org:Threshold1",
}
- if err := chcRPC.Call(utils.CacheSv1GetItemExpiryTime, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetItemExpiryTime, argsAPI, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, reply) {
t.Errorf("Expected: %v , received:%v", expected, reply)
@@ -327,7 +328,7 @@ func testCacheSGetItemExpiryTime(t *testing.T) {
func testCacheSReloadCache(t *testing.T) {
var reply string
- if err := chcRPC.Call(utils.CacheSv1ReloadCache, new(utils.AttrReloadCacheWithAPIOpts), &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1ReloadCache, new(utils.AttrReloadCacheWithAPIOpts), &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
@@ -340,18 +341,18 @@ func testCacheSRemoveItem(t *testing.T) {
CacheID: utils.CacheThresholdProfiles,
ItemID: "cgrates.org:Threshold1",
}
- if err := chcRPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: %v , received:%v", true, reply)
}
var remReply string
- if err := chcRPC.Call(utils.CacheSv1RemoveItem, argsAPI, &remReply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1RemoveItem, argsAPI, &remReply); err != nil {
t.Error(err)
} else if remReply != utils.OK {
t.Errorf("Expected: %v , received:%v", utils.OK, remReply)
}
- if err := chcRPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: %v , received:%v", false, reply)
@@ -364,7 +365,7 @@ func testCacheSRemoveItems(t *testing.T) {
// argsAPI2 := utils.ArgsGetCacheItemIDs{
// CacheID: utils.CacheStatQueueProfiles,
// }
- // if err := chcRPC.Call(utils.CacheSv1GetItemIDs, argsAPI2, &rcvKeys); err != nil {
+ // if err := chcRPC.Call(context.Background(),utils.CacheSv1GetItemIDs, argsAPI2, &rcvKeys); err != nil {
// t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
// }
// if !reflect.DeepEqual(expKeys, rcvKeys) {
@@ -376,7 +377,7 @@ func testCacheSRemoveItems(t *testing.T) {
ItemID: "cgrates.org:Stats1",
}
- if err := chcRPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: %v , received:%v", true, reply)
@@ -386,13 +387,13 @@ func testCacheSRemoveItems(t *testing.T) {
ItemID: "cgrates.org:ROUTE_1",
}
- if err := chcRPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: %v , received:%v", true, reply)
}
var remReply string
- if err := chcRPC.Call(utils.CacheSv1RemoveItems, &utils.AttrReloadCacheWithAPIOpts{
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1RemoveItems, &utils.AttrReloadCacheWithAPIOpts{
APIOpts: make(map[string]any),
Tenant: "cgrates.org",
StatsQueueProfileIDs: []string{"cgrates.org:Stats1"},
@@ -402,7 +403,7 @@ func testCacheSRemoveItems(t *testing.T) {
} else if remReply != utils.OK {
t.Errorf("Expected: %v , received:%v", utils.OK, remReply)
}
- if err := chcRPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: %v , received:%v", false, reply)
@@ -413,7 +414,7 @@ func testCacheSRemoveItems(t *testing.T) {
ItemID: "cgrates.org:Stats1",
}
- if err := chcRPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: %v , received:%v", false, reply)
@@ -422,14 +423,14 @@ func testCacheSRemoveItems(t *testing.T) {
func testCacheSClear(t *testing.T) {
reply := ""
- if err := chcRPC.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{}, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
}
var rcvStats map[string]*ltcache.CacheStats
expStats := engine.GetDefaultEmptyCacheStats()
- if err := chcRPC.Call(utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
@@ -442,7 +443,7 @@ func testCacheSPrecacheStatus(t *testing.T) {
for k := range utils.CachePartitions {
expected[k] = utils.MetaReady
}
- if err := chcRPC.Call(utils.CacheSv1PrecacheStatus, &utils.AttrCacheIDsWithAPIOpts{}, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1PrecacheStatus, &utils.AttrCacheIDsWithAPIOpts{}, &reply); err != nil {
t.Fatal(err)
}
reply[utils.MetaAPIBan] = utils.MetaReady // do not check the status for this partition
@@ -454,7 +455,7 @@ func testCacheSPrecacheStatus(t *testing.T) {
func testCacheSPing(t *testing.T) {
var reply string
expected := utils.Pong
- if err := chcRPC.Call(utils.CacheSv1Ping, &utils.CGREvent{}, &reply); err != nil {
+ if err := chcRPC.Call(context.Background(), utils.CacheSv1Ping, &utils.CGREvent{}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, reply) {
t.Errorf("Expected: %v , received:%v", utils.ToJSON(expected), utils.ToJSON(reply))
diff --git a/apier/v1/caches_test.go b/apier/v1/caches_test.go
index 655d81563..7b335747c 100644
--- a/apier/v1/caches_test.go
+++ b/apier/v1/caches_test.go
@@ -20,6 +20,7 @@ package v1
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -35,7 +36,7 @@ func TestCacheLoadCache(t *testing.T) {
cache := NewCacheSv1(ch)
var reply string
- if err := cache.LoadCache(utils.NewAttrReloadCacheWithOpts(),
+ if err := cache.LoadCache(context.Background(), utils.NewAttrReloadCacheWithOpts(),
&reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -48,7 +49,7 @@ func TestCacheLoadCache(t *testing.T) {
},
}
var replyStr []string
- if err := cache.GetItemIDs(argsGetItem,
+ if err := cache.GetItemIDs(context.Background(), argsGetItem,
&replyStr); err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
@@ -64,7 +65,7 @@ func TestCacheReloadCache(t *testing.T) {
cache := NewCacheSv1(ch)
var reply string
- if err := cache.ReloadCache(utils.NewAttrReloadCacheWithOpts(),
+ if err := cache.ReloadCache(context.Background(), utils.NewAttrReloadCacheWithOpts(),
&reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -77,7 +78,7 @@ func TestCacheReloadCache(t *testing.T) {
},
}
var replyStr []string
- if err := cache.GetItemIDs(argsGetItem,
+ if err := cache.GetItemIDs(context.Background(), argsGetItem,
&replyStr); err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
@@ -99,7 +100,7 @@ func TestCacheSetAndRemoveItems(t *testing.T) {
"cgrates.org:TestCacheSetAndRemoveItems2", "cgrates.org:TestCacheSetAndRemoveItems3"},
}
var reply string
- if err := cache.RemoveItems(argsRemItm, &reply); err != nil {
+ if err := cache.RemoveItems(context.Background(), argsRemItm, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected replyBool returned")
@@ -112,19 +113,19 @@ func TestCacheSetAndRemoveItems(t *testing.T) {
},
}
var replyBool bool
- if err := cache.HasItem(argsHasItem, &replyBool); err != nil {
+ if err := cache.HasItem(context.Background(), argsHasItem, &replyBool); err != nil {
t.Error(err)
} else if replyBool {
t.Errorf("Unexpected replyBool returned")
}
argsHasItem.ArgsGetCacheItem.ItemID = "cgrates.org:TestCacheSetAndRemoveItems2"
- if err := cache.HasItem(argsHasItem, &replyBool); err != nil {
+ if err := cache.HasItem(context.Background(), argsHasItem, &replyBool); err != nil {
t.Error(err)
} else if replyBool {
t.Errorf("Unexpected replyBool returned")
}
argsHasItem.ArgsGetCacheItem.ItemID = "cgrates.org:TestCacheSetAndRemoveItems3"
- if err := cache.HasItem(argsHasItem, &replyBool); err != nil {
+ if err := cache.HasItem(context.Background(), argsHasItem, &replyBool); err != nil {
t.Error(err)
} else if replyBool {
t.Errorf("Unexpected replyBool returned")
@@ -136,7 +137,7 @@ func TestCacheSetAndRemoveItems(t *testing.T) {
},
}
var replyStr []string
- if err := cache.GetItemIDs(argsGetItem, &replyStr); err == nil || err != utils.ErrNotFound {
+ if err := cache.GetItemIDs(context.Background(), argsGetItem, &replyStr); err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
}
diff --git a/apier/v1/caps_it_test.go b/apier/v1/caps_it_test.go
index ff0b3bb46..ee056082e 100644
--- a/apier/v1/caps_it_test.go
+++ b/apier/v1/caps_it_test.go
@@ -26,15 +26,14 @@ import (
"fmt"
"io"
"net/http"
- "net/rpc"
"path"
"strings"
"sync"
"testing"
"time"
- "github.com/cenkalti/rpc2"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -43,8 +42,8 @@ import (
var (
capsCfgPath string
capsCfg *config.CGRConfig
- capsRPC *rpc.Client
- capsBiRPC *rpc2.Client
+ capsRPC *birpc.Client
+ capsBiRPC *birpc.BirpcClient
capsConfigDIR string //run tests for specific configuration
sTestsCaps = []func(t *testing.T){
@@ -121,7 +120,7 @@ func testCapsBusyAPIs(t *testing.T) {
go func() {
defer wg.Done()
var resp string
- if err := capsRPC.Call(utils.CoreSv1Sleep,
+ if err := capsRPC.Call(context.Background(), utils.CoreSv1Sleep,
&utils.DurationArgs{Duration: 10 * time.Millisecond},
&resp); err != nil {
lock.Lock()
@@ -147,7 +146,7 @@ func testCapsQueueAPIs(t *testing.T) {
go func() {
defer wg.Done()
var resp string
- if err := capsRPC.Call(utils.CoreSv1Sleep,
+ if err := capsRPC.Call(context.Background(), utils.CoreSv1Sleep,
&utils.DurationArgs{Duration: 10 * time.Millisecond},
&resp); err != nil {
t.Error(err)
@@ -227,8 +226,10 @@ func testCapsOnBiJSONBusy(t *testing.T) {
go func() {
defer wg.Done()
var resp string
- if err := capsBiRPC.Call(utils.SessionSv1Sleep, &utils.DurationArgs{
- Duration: 10 * time.Millisecond}, &resp); err != nil {
+ if err := capsBiRPC.Call(context.Background(), utils.SessionSv1Sleep,
+ &utils.DurationArgs{
+ Duration: 10 * time.Millisecond,
+ }, &resp); err != nil {
errChan <- err
lock.Lock()
failedAPIs++
@@ -268,7 +269,7 @@ func testCapsOnBiJSONQueue(t *testing.T) {
go func() {
defer wg.Done()
var resp string
- if err := capsBiRPC.Call(utils.SessionSv1Sleep,
+ if err := capsBiRPC.Call(context.Background(), utils.SessionSv1Sleep,
&utils.DurationArgs{Duration: 10 * time.Millisecond},
&resp); err != nil {
t.Error(err)
@@ -312,7 +313,7 @@ func benchmarkInit(b *testing.B, cfgDir string) {
func benchmarkCall(b *testing.B) {
var rply map[string]any
for i := 0; i < b.N; i++ {
- if err := capsRPC.Call(utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
+ if err := capsRPC.Call(context.Background(), utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
b.Error(err)
}
}
diff --git a/apier/v1/cdrs.go b/apier/v1/cdrs.go
index 613b7c9e6..cc365f809 100644
--- a/apier/v1/cdrs.go
+++ b/apier/v1/cdrs.go
@@ -19,12 +19,13 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// Retrieves the callCost out of CGR logDb
-func (apierSv1 *APIerSv1) GetEventCost(attrs *utils.AttrGetCallCost, reply *engine.EventCost) error {
+func (apierSv1 *APIerSv1) GetEventCost(ctx *context.Context, attrs *utils.AttrGetCallCost, reply *engine.EventCost) error {
if attrs.CgrId == utils.EmptyString {
return utils.NewErrMandatoryIeMissing("CgrId")
}
@@ -50,7 +51,7 @@ func (apierSv1 *APIerSv1) GetEventCost(attrs *utils.AttrGetCallCost, reply *engi
}
// Retrieves CDRs based on the filters
-func (apierSv1 *APIerSv1) GetCDRs(attrs *utils.AttrGetCdrs, reply *[]*engine.ExternalCDR) error {
+func (apierSv1 *APIerSv1) GetCDRs(ctx *context.Context, attrs *utils.AttrGetCdrs, reply *[]*engine.ExternalCDR) error {
cdrsFltr, err := attrs.AsCDRsFilter(apierSv1.Config.GeneralCfg().DefaultTimezone)
if err != nil {
return utils.NewErrServerError(err)
@@ -68,7 +69,7 @@ func (apierSv1 *APIerSv1) GetCDRs(attrs *utils.AttrGetCdrs, reply *[]*engine.Ext
}
// New way of removing CDRs
-func (apierSv1 *APIerSv1) RemoveCDRs(attrs *utils.RPCCDRsFilter, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveCDRs(ctx *context.Context, attrs *utils.RPCCDRsFilter, reply *string) error {
cdrsFilter, err := attrs.AsCDRsFilter(apierSv1.Config.GeneralCfg().DefaultTimezone)
if err != nil {
return utils.NewErrServerError(err)
@@ -90,39 +91,39 @@ type CDRsV1 struct {
}
// ProcessCDR will process a CDR in CGRateS internal format
-func (cdrSv1 *CDRsV1) ProcessCDR(cdr *engine.CDRWithAPIOpts, reply *string) error {
- return cdrSv1.CDRs.V1ProcessCDR(cdr, reply)
+func (cdrSv1 *CDRsV1) ProcessCDR(ctx *context.Context, cdr *engine.CDRWithAPIOpts, reply *string) error {
+ return cdrSv1.CDRs.V1ProcessCDR(ctx, cdr, reply)
}
// ProcessEvent will process an Event based on the flags attached
-func (cdrSv1 *CDRsV1) ProcessEvent(arg *engine.ArgV1ProcessEvent, reply *string) error {
- return cdrSv1.CDRs.V1ProcessEvent(arg, reply)
+func (cdrSv1 *CDRsV1) ProcessEvent(ctx *context.Context, arg *engine.ArgV1ProcessEvent, reply *string) error {
+ return cdrSv1.CDRs.V1ProcessEvent(ctx, arg, reply)
}
// ProcessExternalCDR will process a CDR in external format
-func (cdrSv1 *CDRsV1) ProcessExternalCDR(cdr *engine.ExternalCDRWithAPIOpts, reply *string) error {
- return cdrSv1.CDRs.V1ProcessExternalCDR(cdr, reply)
+func (cdrSv1 *CDRsV1) ProcessExternalCDR(ctx *context.Context, cdr *engine.ExternalCDRWithAPIOpts, reply *string) error {
+ return cdrSv1.CDRs.V1ProcessExternalCDR(ctx, cdr, reply)
}
// RateCDRs can re-/rate remotely CDRs
-func (cdrSv1 *CDRsV1) RateCDRs(arg *engine.ArgRateCDRs, reply *string) error {
- return cdrSv1.CDRs.V1RateCDRs(arg, reply)
+func (cdrSv1 *CDRsV1) RateCDRs(ctx *context.Context, arg *engine.ArgRateCDRs, reply *string) error {
+ return cdrSv1.CDRs.V1RateCDRs(ctx, arg, reply)
}
// StoreSMCost will store
-func (cdrSv1 *CDRsV1) StoreSessionCost(attr *engine.AttrCDRSStoreSMCost, reply *string) error {
- return cdrSv1.CDRs.V1StoreSessionCost(attr, reply)
+func (cdrSv1 *CDRsV1) StoreSessionCost(ctx *context.Context, attr *engine.AttrCDRSStoreSMCost, reply *string) error {
+ return cdrSv1.CDRs.V1StoreSessionCost(ctx, attr, reply)
}
-func (cdrSv1 *CDRsV1) GetCDRsCount(args *utils.RPCCDRsFilterWithAPIOpts, reply *int64) error {
- return cdrSv1.CDRs.V1CountCDRs(args, reply)
+func (cdrSv1 *CDRsV1) GetCDRsCount(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, reply *int64) error {
+ return cdrSv1.CDRs.V1GetCDRsCount(ctx, args, reply)
}
-func (cdrSv1 *CDRsV1) GetCDRs(args *utils.RPCCDRsFilterWithAPIOpts, reply *[]*engine.CDR) error {
- return cdrSv1.CDRs.V1GetCDRs(*args, reply)
+func (cdrSv1 *CDRsV1) GetCDRs(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, reply *[]*engine.CDR) error {
+ return cdrSv1.CDRs.V1GetCDRs(ctx, *args, reply)
}
-func (cdrSv1 *CDRsV1) Ping(ign *utils.CGREvent, reply *string) error {
+func (cdrSv1 *CDRsV1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v1/cdrs_it_test.go b/apier/v1/cdrs_it_test.go
index b709998d9..60b5a836b 100644
--- a/apier/v1/cdrs_it_test.go
+++ b/apier/v1/cdrs_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -34,7 +35,7 @@ import (
var (
cdrsCfgPath string
cdrsCfg *config.CGRConfig
- cdrsRpc *rpc.Client
+ cdrsRpc *birpc.Client
cdrsConfDIR string // run the tests for specific configuration
sTestsCDRsIT = []func(t *testing.T){
@@ -117,7 +118,7 @@ func testV1CDRsRpcConn(t *testing.T) {
func testV1CDRsLoadTariffPlanFromFolder(t *testing.T) {
var loadInst string
- if err := cdrsRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder,
&utils.AttrLoadTpFromFolder{FolderPath: path.Join(
*dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
t.Error(err)
@@ -141,7 +142,7 @@ func testV1CDRsProcessEventWithRefund(t *testing.T) {
},
}
var reply string
- if err := cdrsRpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("received: %s", reply)
@@ -156,13 +157,13 @@ func testV1CDRsProcessEventWithRefund(t *testing.T) {
utils.Weight: 10,
},
}
- if err := cdrsRpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("received: <%s>", reply)
}
expectedVoice := 300000000000.0
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
@@ -182,13 +183,13 @@ func testV1CDRsProcessEventWithRefund(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.ExternalCDR
- if err := cdrsRpc.Call(utils.APIerSv1GetCDRs, &utils.AttrGetCdrs{}, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetCDRs, &utils.AttrGetCdrs{}, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -197,7 +198,7 @@ func testV1CDRsProcessEventWithRefund(t *testing.T) {
t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
}
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if blc1 := acnt.GetBalanceWithID(utils.MetaVoice, "BALANCE1"); blc1.Value != 0 {
t.Errorf("Balance1 is: %s", utils.ToIJSON(blc1))
@@ -205,10 +206,10 @@ func testV1CDRsProcessEventWithRefund(t *testing.T) {
t.Errorf("Balance2 is: %s", utils.ToIJSON(blc2))
}
// without re-rate we should be denied
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err == nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err == nil {
t.Error("should receive error here")
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if blc1 := acnt.GetBalanceWithID(utils.MetaVoice, "BALANCE1"); blc1.Value != 0 {
t.Errorf("Balance1 is: %s", utils.ToIJSON(blc1))
@@ -230,12 +231,12 @@ func testV1CDRsProcessEventWithRefund(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if blc1 := acnt.GetBalanceWithID(utils.MetaVoice, "BALANCE1"); blc1.Value != 60000000000 {
t.Errorf("Balance1 is: %s", utils.ToIJSON(blc1))
@@ -261,14 +262,14 @@ func testV1CDRsRefundOutOfSessionCost(t *testing.T) {
},
}
var reply string
- if err := cdrsRpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("received: %s", reply)
}
exp := 123.0
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != exp {
t.Errorf("Expecting: %v, received: %v", exp, rply)
@@ -354,7 +355,7 @@ func testV1CDRsRefundOutOfSessionCost(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.CDRsV1StoreSessionCost,
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1StoreSessionCost,
attr, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -377,7 +378,7 @@ func testV1CDRsRefundOutOfSessionCost(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -386,7 +387,7 @@ func testV1CDRsRefundOutOfSessionCost(t *testing.T) {
// Initial the balance was 123.0
// after refunc the balance become 123.0+2.3=125.3
exp = 124.0454
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != exp {
t.Errorf("Expecting: %v, received: %v", exp, rply)
@@ -410,14 +411,14 @@ func testV1CDRsRefundCDR(t *testing.T) {
},
}
var reply string
- if err := cdrsRpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("received: %s", reply)
}
exp := 123.0
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != exp {
t.Errorf("Expecting: %v, received: %v", exp, rply)
@@ -510,7 +511,7 @@ func testV1CDRsRefundCDR(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -519,7 +520,7 @@ func testV1CDRsRefundCDR(t *testing.T) {
// Initial the balance was 123.0
// after refund the balance become 123.0 + 2.3 = 125.3
exp = 125.3
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != exp {
t.Errorf("Expecting: %v, received: %v", exp, rply)
@@ -528,7 +529,7 @@ func testV1CDRsRefundCDR(t *testing.T) {
func testV1CDRsLoadTariffPlanFromFolderSMS(t *testing.T) {
var loadInst string
- if err := cdrsRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder,
&utils.AttrLoadTpFromFolder{FolderPath: path.Join(
*dataDir, "tariffplans", "tutorial")}, &loadInst); err != nil {
t.Error(err)
@@ -544,7 +545,7 @@ func testV1CDRsAddBalanceForSMS(t *testing.T) {
BalanceType: utils.MetaSMS,
Value: 1000,
}
- if err := cdrsRpc.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -556,7 +557,7 @@ func testV1CDRsAddBalanceForSMS(t *testing.T) {
BalanceType: utils.MetaMonetary,
Value: 10,
}
- if err := cdrsRpc.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -568,7 +569,7 @@ func testV1CDRsAddBalanceForSMS(t *testing.T) {
Account: "testV1CDRsAddBalanceForSMS",
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaSMS]) != 1 {
t.Errorf("Expecting: %v, received: %v", 1, len(acnt.BalanceMap[utils.MetaSMS]))
@@ -598,13 +599,13 @@ func testV1CDRsAddBalanceForSMS(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaSMS]) != 1 {
t.Errorf("Expecting: %v, received: %v", 1, len(acnt.BalanceMap[utils.MetaSMS]))
diff --git a/apier/v1/chargers.go b/apier/v1/chargers.go
index a26ab73c8..d23c4e7fa 100644
--- a/apier/v1/chargers.go
+++ b/apier/v1/chargers.go
@@ -21,12 +21,13 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// GetChargerProfile returns a Charger Profile
-func (apierSv1 *APIerSv1) GetChargerProfile(arg *utils.TenantID, reply *engine.ChargerProfile) error {
+func (apierSv1 *APIerSv1) GetChargerProfile(ctx *context.Context, arg *utils.TenantID, reply *engine.ChargerProfile) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -43,7 +44,7 @@ func (apierSv1 *APIerSv1) GetChargerProfile(arg *utils.TenantID, reply *engine.C
}
// GetChargerProfileIDs returns list of chargerProfile IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetChargerProfileIDs(args *utils.PaginatorWithTenant, chPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetChargerProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, chPrfIDs *[]string) error {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -70,7 +71,7 @@ type ChargerWithAPIOpts struct {
}
// SetChargerProfile add/update a new Charger Profile
-func (apierSv1 *APIerSv1) SetChargerProfile(arg *ChargerWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) SetChargerProfile(ctx *context.Context, arg *ChargerWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(arg.ChargerProfile, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -94,7 +95,7 @@ func (apierSv1 *APIerSv1) SetChargerProfile(arg *ChargerWithAPIOpts, reply *stri
}
// RemoveChargerProfile remove a specific Charger Profile
-func (apierSv1 *APIerSv1) RemoveChargerProfile(arg *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveChargerProfile(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -128,25 +129,25 @@ type ChargerSv1 struct {
cS *engine.ChargerService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (cSv1 *ChargerSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (cSv1 *ChargerSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(cSv1, serviceMethod, args, reply)
}
-func (cSv1 *ChargerSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (cSv1 *ChargerSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
// GetChargerForEvent returns matching ChargerProfile for Event
-func (cSv1 *ChargerSv1) GetChargersForEvent(cgrEv *utils.CGREvent,
+func (cSv1 *ChargerSv1) GetChargersForEvent(ctx *context.Context, cgrEv *utils.CGREvent,
reply *engine.ChargerProfiles) error {
- return cSv1.cS.V1GetChargersForEvent(cgrEv, reply)
+ return cSv1.cS.V1GetChargersForEvent(ctx, cgrEv, reply)
}
// ProcessEvent
-func (cSv1 *ChargerSv1) ProcessEvent(args *utils.CGREvent,
+func (cSv1 *ChargerSv1) ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *[]*engine.ChrgSProcessEventReply) error {
- return cSv1.cS.V1ProcessEvent(args, reply)
+ return cSv1.cS.V1ProcessEvent(ctx, args, reply)
}
diff --git a/apier/v1/chargers_it_test.go b/apier/v1/chargers_it_test.go
index 094ad253c..bd75cb7b8 100644
--- a/apier/v1/chargers_it_test.go
+++ b/apier/v1/chargers_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
chargerCfgPath string
chargerCfg *config.CGRConfig
- chargerRPC *rpc.Client
+ chargerRPC *birpc.Client
chargerProfile *ChargerWithAPIOpts
chargerConfigDIR string //run tests for specific configuration
@@ -179,7 +180,7 @@ func testChargerSLoadAddCharger(t *testing.T) {
}
var result string
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -198,7 +199,7 @@ func testChargerSLoadAddCharger(t *testing.T) {
},
}
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -218,7 +219,7 @@ func testChargerSLoadAddCharger(t *testing.T) {
},
}
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -243,7 +244,7 @@ func testChargerSLoadAddCharger(t *testing.T) {
Weight: 10,
},
}
- if err := chargerRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -265,12 +266,12 @@ func testChargerSGetChargersForEvent(t *testing.T) {
},
}
var result *engine.ChargerProfiles
- if err := chargerRPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
chargerEvent[1], &result); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := chargerRPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
chargerEvent[0], &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result, chargerProfiles) {
@@ -291,7 +292,7 @@ func testChargerSGetChargersForEvent(t *testing.T) {
},
}
chargerEvent[0].Tenant = utils.EmptyString
- if err := chargerRPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
chargerEvent[0], &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result, chargerProfiles) {
@@ -301,7 +302,7 @@ func testChargerSGetChargersForEvent(t *testing.T) {
func testChargerSGetChargersForEvent2(t *testing.T) {
var result *engine.ChargerProfiles
- if err := chargerRPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
&utils.CGREvent{ // matching Charger1
Tenant: utils.EmptyString,
ID: "event1",
@@ -339,11 +340,11 @@ func testChargerSProcessEvent(t *testing.T) {
},
}
var result []*engine.ChrgSProcessEventReply
- if err := chargerRPC.Call(utils.ChargerSv1ProcessEvent, chargerEvent[1], &result); err == nil ||
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, chargerEvent[1], &result); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := chargerRPC.Call(utils.ChargerSv1ProcessEvent, chargerEvent[0], &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, chargerEvent[0], &result); err != nil {
t.Error(err)
} else if utils.ToJSON(result) != utils.ToJSON(processedEv) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(processedEv), utils.ToJSON(result))
@@ -371,7 +372,7 @@ func testChargerSProcessEvent(t *testing.T) {
},
},
}
- if err := chargerRPC.Call(utils.ChargerSv1ProcessEvent, chargerEvent[2], &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, chargerEvent[2], &result); err != nil {
t.Fatal(err)
}
sort.Strings(result[0].AlteredFields)
@@ -380,7 +381,7 @@ func testChargerSProcessEvent(t *testing.T) {
}
chargerEvent[2].Tenant = utils.EmptyString
- if err := chargerRPC.Call(utils.ChargerSv1ProcessEvent, chargerEvent[2], &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, chargerEvent[2], &result); err != nil {
t.Fatal(err)
}
sort.Strings(result[0].AlteredFields)
@@ -406,23 +407,23 @@ func testChargerSSetChargerProfile(t *testing.T) {
}
var result string
expErr := "SERVER_ERROR: broken reference to filter: <*wrong:inline> for item with ID: cgrates.org:ApierTest"
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err == nil || err.Error() != expErr {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err == nil || err.Error() != expErr {
t.Fatalf("Expected error: %q, received: %v", expErr, err)
}
var reply *engine.ChargerProfile
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
}
chargerProfile.FilterIDs = []string{"*string:~*req.Account:1001", "*string:~*opts.Account:1002"}
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
@@ -433,17 +434,17 @@ func testChargerSSetChargerProfile(t *testing.T) {
func testChargerSGetChargerProfileIDs(t *testing.T) {
expected := []string{"Charger1", "Charger2", "ApierTest", "ChargerNotMatching"}
var result []string
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfileIDs, utils.PaginatorWithTenant{}, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfileIDs, utils.PaginatorWithTenant{
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, utils.PaginatorWithTenant{
Tenant: "cgrates.org",
Paginator: utils.Paginator{Limit: utils.IntPointer(1)},
}, &result); err != nil {
@@ -456,13 +457,13 @@ func testChargerSGetChargerProfileIDs(t *testing.T) {
func testChargerSUpdateChargerProfile(t *testing.T) {
chargerProfile.RunID = "*rated"
var result string
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.ChargerProfile
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
@@ -472,19 +473,19 @@ func testChargerSUpdateChargerProfile(t *testing.T) {
func testChargerSRemChargerProfile(t *testing.T) {
var resp string
- if err := chargerRPC.Call(utils.APIerSv1RemoveChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1RemoveChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
var reply *engine.AttributeProfile
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := chargerRPC.Call(utils.APIerSv1RemoveChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1RemoveChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &resp); err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error: %v received: %v", utils.ErrNotFound, err)
}
@@ -492,7 +493,7 @@ func testChargerSRemChargerProfile(t *testing.T) {
func testChargerSPing(t *testing.T) {
var resp string
- if err := chargerRPC.Call(utils.ChargerSv1Ping, new(utils.CGREvent), &resp); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1Ping, new(utils.CGREvent), &resp); err != nil {
t.Error(err)
} else if resp != utils.Pong {
t.Error("Unexpected reply returned", resp)
@@ -514,7 +515,7 @@ func testChargerSProcessWithNotFoundAttribute(t *testing.T) {
},
}
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -552,7 +553,7 @@ func testChargerSProcessWithNotFoundAttribute(t *testing.T) {
processedEv[0].AttributeSProfiles = nil
}
var rply []*engine.ChrgSProcessEventReply
- if err := chargerRPC.Call(utils.ChargerSv1ProcessEvent, ev, &rply); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, ev, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, processedEv) {
t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(processedEv), utils.ToJSON(rply))
@@ -581,13 +582,13 @@ func testChargerSProccessEventWithProcceSRunS(t *testing.T) {
},
}
var result string
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.ChargerProfile
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
@@ -623,7 +624,7 @@ func testChargerSProccessEventWithProcceSRunS(t *testing.T) {
APIOpts: map[string]any{utils.OptsAttributesProcessRuns: 1},
}
var result2 []*engine.ChrgSProcessEventReply
- if err := chargerRPC.Call(utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
t.Error(err)
} else if utils.ToJSON(result2) != utils.ToJSON(processedEv) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
@@ -645,14 +646,14 @@ func testChargerSSetChargerProfileWithoutTenant(t *testing.T) {
},
}
var reply string
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
chargerProfile.ChargerProfile.Tenant = "cgrates.org"
var result *engine.ChargerProfile
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{ID: "randomID"},
&result); err != nil {
t.Error(err)
@@ -663,7 +664,7 @@ func testChargerSSetChargerProfileWithoutTenant(t *testing.T) {
func testChargerSRemChargerProfileWithoutTenant(t *testing.T) {
var reply string
- if err := chargerRPC.Call(utils.APIerSv1RemoveChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1RemoveChargerProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "randomID"}},
&reply); err != nil {
t.Error(err)
@@ -671,7 +672,7 @@ func testChargerSRemChargerProfileWithoutTenant(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
var result *engine.ChargerProfile
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{ID: "randomID"},
&result); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -680,7 +681,7 @@ func testChargerSRemChargerProfileWithoutTenant(t *testing.T) {
func testChargerSCacheTestGetNotFound(t *testing.T) {
var reply *engine.ChargerProfile
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "CHARGERS_CACHE"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -689,7 +690,7 @@ func testChargerSCacheTestGetNotFound(t *testing.T) {
func testChargerSCacheTestGetFound(t *testing.T) {
var reply *engine.ChargerProfile
- if err := chargerRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "CHARGERS_CACHE"}, &reply); err != nil {
t.Fatal(err)
}
@@ -706,7 +707,7 @@ func testChargerSCacheTestSet(t *testing.T) {
},
}
var reply string
- if err := chargerRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -718,7 +719,7 @@ func testChargerSCacheReload(t *testing.T) {
ChargerProfileIDs: []string{"cgrates.org:CHARGERS_CACHE"},
}
var reply string
- if err := chargerRPC.Call(utils.CacheSv1ReloadCache, cache, &reply); err != nil {
+ if err := chargerRPC.Call(context.Background(), utils.CacheSv1ReloadCache, cache, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
diff --git a/apier/v1/config.go b/apier/v1/config.go
index 4a7d16b16..3544548c7 100644
--- a/apier/v1/config.go
+++ b/apier/v1/config.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -34,32 +35,32 @@ type ConfigSv1 struct {
}
// GetConfig will retrieve from CGRConfig a section
-func (cSv1 *ConfigSv1) GetConfig(section *config.SectionWithAPIOpts, reply *map[string]any) (err error) {
- return cSv1.cfg.V1GetConfig(section, reply)
+func (cSv1 *ConfigSv1) GetConfig(ctx *context.Context, section *config.SectionWithAPIOpts, reply *map[string]any) (err error) {
+ return cSv1.cfg.V1GetConfig(ctx, section, reply)
}
// ReloadConfig reloads the configuration
-func (cSv1 *ConfigSv1) ReloadConfig(args *config.ReloadArgs, reply *string) (err error) {
- return cSv1.cfg.V1ReloadConfig(args, reply)
+func (cSv1 *ConfigSv1) ReloadConfig(ctx *context.Context, args *config.ReloadArgs, reply *string) (err error) {
+ return cSv1.cfg.V1ReloadConfig(ctx, args, reply)
}
// SetConfig reloads the sections of config
-func (cSv1 *ConfigSv1) SetConfig(args *config.SetConfigArgs, reply *string) (err error) {
- return cSv1.cfg.V1SetConfig(args, reply)
+func (cSv1 *ConfigSv1) SetConfig(ctx *context.Context, args *config.SetConfigArgs, reply *string) (err error) {
+ return cSv1.cfg.V1SetConfig(ctx, args, reply)
}
// SetConfigFromJSON reloads the sections of config
-func (cSv1 *ConfigSv1) SetConfigFromJSON(args *config.SetConfigFromJSONArgs, reply *string) (err error) {
- return cSv1.cfg.V1SetConfigFromJSON(args, reply)
+func (cSv1 *ConfigSv1) SetConfigFromJSON(ctx *context.Context, args *config.SetConfigFromJSONArgs, reply *string) (err error) {
+ return cSv1.cfg.V1SetConfigFromJSON(ctx, args, reply)
}
// GetConfigAsJSON will retrieve from CGRConfig a section
-func (cSv1 *ConfigSv1) GetConfigAsJSON(args *config.SectionWithAPIOpts, reply *string) (err error) {
- return cSv1.cfg.V1GetConfigAsJSON(args, reply)
+func (cSv1 *ConfigSv1) GetConfigAsJSON(ctx *context.Context, args *config.SectionWithAPIOpts, reply *string) (err error) {
+ return cSv1.cfg.V1GetConfigAsJSON(ctx, args, reply)
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (cSv1 *ConfigSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (cSv1 *ConfigSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(cSv1, serviceMethod, args, reply)
}
diff --git a/apier/v1/config_it_test.go b/apier/v1/config_it_test.go
index be157d3ee..58b3349c8 100644
--- a/apier/v1/config_it_test.go
+++ b/apier/v1/config_it_test.go
@@ -23,14 +23,15 @@ package v1
import (
"fmt"
- "net/rpc"
- "net/rpc/jsonrpc"
"os/exec"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -39,7 +40,7 @@ import (
var (
configCfgPath string
configCfg *config.CGRConfig
- configRPC *rpc.Client
+ configRPC *birpc.Client
configConfigDIR string //run tests for specific configuration
sTestsConfig = []func(t *testing.T){
@@ -122,7 +123,7 @@ func testConfigSRPCConn(t *testing.T) {
func testConfigSSetConfigSessionS(t *testing.T) {
var reply string
- if err := configRPC.Call(utils.ConfigSv1SetConfig, &config.SetConfigArgs{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1SetConfig, &config.SetConfigArgs{
Tenant: "cgrates.org",
Config: map[string]any{
"sessions": map[string]any{
@@ -221,7 +222,7 @@ func testConfigSSetConfigSessionS(t *testing.T) {
config.SessionSJson: exp,
}
var rpl map[string]any
- if err := configRPC.Call(utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.SessionSJson,
}, &rpl); err != nil {
@@ -312,7 +313,7 @@ func testConfigSv1GetJSONSectionWithoutTenant(t *testing.T) {
config.SessionSJson: exp,
}
var rpl map[string]any
- if err := configRPC.Call(utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
Section: config.SessionSJson,
}, &rpl); err != nil {
t.Error(err)
@@ -326,7 +327,7 @@ func testConfigSSetConfigEEsDryRun(t *testing.T) {
t.SkipNow()
}
var reply string
- if err := configRPC.Call(utils.ConfigSv1SetConfig, &config.SetConfigArgs{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1SetConfig, &config.SetConfigArgs{
Config: map[string]any{
"ees": map[string]any{
"enabled": true,
@@ -340,7 +341,7 @@ func testConfigSSetConfigEEsDryRun(t *testing.T) {
}
var rpl map[string]any
- if err := configRPC.Call(utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
Section: config.EEsJson,
}, &rpl); err != nil {
t.Error(err)
@@ -354,7 +355,7 @@ func testConfigSSetConfigEEs(t *testing.T) {
t.SkipNow()
}
var reply string
- if err := configRPC.Call(utils.ConfigSv1SetConfig, &config.SetConfigArgs{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1SetConfig, &config.SetConfigArgs{
Config: map[string]any{
"ees": map[string]any{
"enabled": true,
@@ -397,7 +398,7 @@ func testConfigSSetConfigEEs(t *testing.T) {
config.EEsJson: exp,
}
var rpl map[string]any
- if err := configRPC.Call(utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
Section: config.EEsJson,
}, &rpl); err != nil {
t.Error(err)
@@ -427,7 +428,7 @@ func testConfigStartEngineWithConfigs(t *testing.T) {
t.Fatal(err)
}
var rply map[string]any
- if err := configRPC.Call(utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
+ if err := configRPC.Call(context.Background(), utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
t.Error(err)
} else if rply[utils.NodeID] != "EngineWithConfigSActive" {
t.Errorf("Expected %+v , received: %+v ", "EngineWithConfigSActive", rply)
@@ -444,7 +445,7 @@ func testConfigStartEngineFromHTTP(t *testing.T) {
t.Error(err)
}
fib := utils.FibDuration(time.Millisecond, 0)
- var jsonClnt *rpc.Client
+ var jsonClnt *birpc.Client
var connected bool
for i := 0; i < 200; i++ {
time.Sleep(fib())
@@ -461,7 +462,7 @@ func testConfigStartEngineFromHTTP(t *testing.T) {
}
time.Sleep(100 * time.Millisecond)
var rply map[string]any
- if err := jsonClnt.Call(utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
+ if err := jsonClnt.Call(context.Background(), utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
t.Error(err)
}
}
@@ -469,7 +470,7 @@ func testConfigStartEngineFromHTTP(t *testing.T) {
func testConfigSSetConfigFromJSONCoreSDryRun(t *testing.T) {
cfgStr := `{"cores":{"caps":0,"caps_stats_interval":"0","caps_strategy":"*queue","shutdown_timeout":"1s"}}`
var reply string
- if err := configRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: cfgStr,
DryRun: true,
@@ -481,7 +482,7 @@ func testConfigSSetConfigFromJSONCoreSDryRun(t *testing.T) {
expCfg := "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}"
var rpl string
- if err := configRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CoreSCfgJson,
}, &rpl); err != nil {
@@ -494,7 +495,7 @@ func testConfigSSetConfigFromJSONCoreSDryRun(t *testing.T) {
func testConfigSSetConfigFromJSONCoreS(t *testing.T) {
cfgStr := `{"cores":{"caps":0,"caps_stats_interval":"0","caps_strategy":"*queue","shutdown_timeout":"1s"}}`
var reply string
- if err := configRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: cfgStr,
}, &reply); err != nil {
@@ -504,7 +505,7 @@ func testConfigSSetConfigFromJSONCoreS(t *testing.T) {
}
var rpl string
- if err := configRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CoreSCfgJson,
}, &rpl); err != nil {
@@ -517,7 +518,7 @@ func testConfigSSetConfigFromJSONCoreS(t *testing.T) {
func testConfigSReloadConfigCoreSDryRun(t *testing.T) {
cfgStr := `{"cores":{"caps":0,"caps_stats_interval":"0","caps_strategy":"*queue","shutdown_timeout":"1s"}}`
var reply string
- if err := configRPC.Call(utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
Tenant: "cgrates.org",
Path: path.Join(*dataDir, "conf", "samples", "caps_busy"),
Section: config.CoreSCfgJson,
@@ -529,7 +530,7 @@ func testConfigSReloadConfigCoreSDryRun(t *testing.T) {
}
var rpl string
- if err := configRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CoreSCfgJson,
}, &rpl); err != nil {
@@ -542,7 +543,7 @@ func testConfigSReloadConfigCoreSDryRun(t *testing.T) {
func testConfigSReloadConfigCoreS(t *testing.T) {
cfgStr := `{"cores":{"caps":2,"caps_stats_interval":"0","caps_strategy":"*busy","shutdown_timeout":"1s"}}`
var reply string
- if err := configRPC.Call(utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
Tenant: "cgrates.org",
Path: path.Join(*dataDir, "conf", "samples", "caps_busy"),
Section: config.CoreSCfgJson,
@@ -553,7 +554,7 @@ func testConfigSReloadConfigCoreS(t *testing.T) {
}
var rpl string
- if err := configRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := configRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CoreSCfgJson,
}, &rpl); err != nil {
diff --git a/apier/v1/core.go b/apier/v1/core.go
index 2c70f1c1f..70d5ded8a 100644
--- a/apier/v1/core.go
+++ b/apier/v1/core.go
@@ -19,9 +19,7 @@ along with this program. If not, see
package v1
import (
- "path"
- "time"
-
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/utils"
)
@@ -35,67 +33,50 @@ type CoreSv1 struct {
cS *cores.CoreService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (cS *CoreSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (cS *CoreSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(cS, serviceMethod, args, reply)
}
-func (cS *CoreSv1) Status(arg *utils.TenantWithAPIOpts, reply *map[string]any) error {
- return cS.cS.Status(arg, reply)
+func (cS *CoreSv1) Status(ctx *context.Context, arg *utils.TenantWithAPIOpts, reply *map[string]any) error {
+ return cS.cS.V1Status(ctx, arg, reply)
}
// Ping used to determinate if component is active
-func (cS *CoreSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (cS *CoreSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
// Sleep is used to test the concurrent requests mechanism
-func (cS *CoreSv1) Sleep(arg *utils.DurationArgs, reply *string) error {
- time.Sleep(arg.Duration)
- *reply = utils.OK
- return nil
+func (cS *CoreSv1) Sleep(ctx *context.Context, args *utils.DurationArgs, reply *string) error {
+ return cS.cS.V1Sleep(ctx, args, reply)
}
// StartCPUProfiling is used to start CPUProfiling in the given path
-func (cS *CoreSv1) StartCPUProfiling(args *utils.DirectoryArgs, reply *string) error {
- if err := cS.cS.StartCPUProfiling(path.Join(args.DirPath, utils.CpuPathCgr)); err != nil {
- return err
- }
- *reply = utils.OK
- return nil
+func (cS *CoreSv1) StartCPUProfiling(ctx *context.Context, args *utils.DirectoryArgs, reply *string) error {
+ return cS.cS.V1StartCPUProfiling(ctx, args, reply)
}
// StopCPUProfiling is used to stop CPUProfiling. The file should be written on the path
// where the CPUProfiling already started
-func (cS *CoreSv1) StopCPUProfiling(_ *utils.TenantWithAPIOpts, reply *string) error {
- if err := cS.cS.StopCPUProfiling(); err != nil {
- return err
- }
- *reply = utils.OK
- return nil
+func (cS *CoreSv1) StopCPUProfiling(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *string) error {
+ return cS.cS.V1StopCPUProfiling(ctx, args, reply)
}
// StartMemoryProfiling is used to start MemoryProfiling in the given path
-func (cS *CoreSv1) StartMemoryProfiling(args *utils.MemoryPrf, reply *string) error {
- if err := cS.cS.StartMemoryProfiling(args); err != nil {
- return err
- }
- *reply = utils.OK
- return nil
+func (cS *CoreSv1) StartMemoryProfiling(ctx *context.Context, args *utils.MemoryPrf, reply *string) error {
+ return cS.cS.V1StartMemoryProfiling(ctx, args, reply)
}
// StopMemoryProfiling is used to stop MemoryProfiling. The file should be written on the path
// where the MemoryProfiling already started
-func (cS *CoreSv1) StopMemoryProfiling(_ *utils.TenantWithAPIOpts, reply *string) error {
- if err := cS.cS.StopMemoryProfiling(); err != nil {
- return err
- }
- *reply = utils.OK
- return nil
+func (cS *CoreSv1) StopMemoryProfiling(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *string) error {
+ return cS.cS.V1StopMemoryProfiling(ctx, args, reply)
+
}
-func (cS *CoreSv1) Panic(args *utils.PanicMessageArgs, reply *string) error {
- return cS.cS.Panic(args, reply)
+func (cS *CoreSv1) Panic(ctx *context.Context, args *utils.PanicMessageArgs, reply *string) error {
+ return cS.cS.V1Panic(ctx, args, reply)
}
diff --git a/apier/v1/core_it_test.go b/apier/v1/core_it_test.go
index 17da3233e..206c8f0eb 100644
--- a/apier/v1/core_it_test.go
+++ b/apier/v1/core_it_test.go
@@ -23,14 +23,15 @@ package v1
import (
"fmt"
- "net/rpc"
- "net/rpc/jsonrpc"
"os"
"os/exec"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -41,7 +42,7 @@ import (
var (
coreV1CfgPath string
coreV1Cfg *config.CGRConfig
- coreV1Rpc *rpc.Client
+ coreV1Rpc *birpc.Client
coreV1ConfDIR string //run tests for specific configuration
argPath string
sTestCoreSv1 = []func(t *testing.T){
@@ -157,7 +158,7 @@ func testCoreSv1StartCPUProfilingErrorAlreadyStarted(t *testing.T) {
DirPath: argPath,
}
expectedErr := "CPU profiling already started"
- if err := coreV1Rpc.Call(utils.CoreSv1StartCPUProfiling,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1StartCPUProfiling,
dirPath, &reply); err == nil || err.Error() != expectedErr {
t.Errorf("Expected %+v, received %+v", expectedErr, err)
}
@@ -172,7 +173,7 @@ func testCoreSv1StartEngine(t *testing.T) {
func testCoreSv1StopMemProfilingBeforeStart(t *testing.T) {
var reply string
expectedErr := " Memory Profiling is not started"
- if err := coreV1Rpc.Call(utils.CoreSv1StopMemoryProfiling,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1StopMemoryProfiling,
new(utils.TenantWithAPIOpts), &reply); err == nil || err.Error() != expectedErr {
t.Errorf("Expected %+q, received %+q", expectedErr, err)
}
@@ -202,7 +203,7 @@ func testCoreSv1StartEngineByExecWIthMemProfiling(t *testing.T) {
func testCoreSv1StopMemoryProfiling(t *testing.T) {
var reply string
- if err := coreV1Rpc.Call(utils.CoreSv1StopMemoryProfiling,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1StopMemoryProfiling,
new(utils.TenantWithAPIOpts), &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -260,7 +261,7 @@ func testCoreSv1StartMemProfilingErrorAlreadyStarted(t *testing.T) {
NrFiles: 2,
}
expErr := "Memory Profiling already started"
- if err := coreV1Rpc.Call(utils.CoreSv1StartMemoryProfiling,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1StartMemoryProfiling,
args, &reply); err == nil || err.Error() != expErr {
t.Errorf("Expected %+v, received %+v", expErr, err)
}
@@ -269,7 +270,7 @@ func testCoreSv1StartMemProfilingErrorAlreadyStarted(t *testing.T) {
func testCoreSv1StopCPUProfilingBeforeStart(t *testing.T) {
var reply string
expectedErr := " cannot stop because CPUProfiling is not active"
- if err := coreV1Rpc.Call(utils.CoreSv1StopCPUProfiling,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1StopCPUProfiling,
new(utils.TenantWithAPIOpts), &reply); err == nil || err.Error() != expectedErr {
t.Errorf("Expected %+q, received %+q", expectedErr, err)
}
@@ -280,7 +281,7 @@ func testCoreSv1StartCPUProfiling(t *testing.T) {
dirPath := &utils.DirectoryArgs{
DirPath: argPath,
}
- if err := coreV1Rpc.Call(utils.CoreSv1StartCPUProfiling,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1StartCPUProfiling,
dirPath, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -293,7 +294,7 @@ func testCoreSv1Sleep(t *testing.T) {
Duration: 600 * time.Millisecond,
}
var reply string
- if err := coreV1Rpc.Call(utils.CoreSv1Sleep,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1Sleep,
args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -303,7 +304,7 @@ func testCoreSv1Sleep(t *testing.T) {
func testCoreSv1StopCPUProfiling(t *testing.T) {
var reply string
- if err := coreV1Rpc.Call(utils.CoreSv1StopCPUProfiling,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1StopCPUProfiling,
new(utils.TenantWithAPIOpts), &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -335,7 +336,7 @@ func testCoreSv1StartMemoryProfiling(t *testing.T) {
Interval: 100 * time.Millisecond,
NrFiles: 2,
}
- if err := coreV1Rpc.Call(utils.CoreSv1StartMemoryProfiling,
+ if err := coreV1Rpc.Call(context.Background(), utils.CoreSv1StartMemoryProfiling,
args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
diff --git a/apier/v1/costs.go b/apier/v1/costs.go
index 32eaf8051..f88c98da7 100644
--- a/apier/v1/costs.go
+++ b/apier/v1/costs.go
@@ -21,6 +21,7 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -35,7 +36,7 @@ type AttrGetCost struct {
APIOpts map[string]any
}
-func (apierSv1 *APIerSv1) GetCost(attrs *AttrGetCost, ec *engine.EventCost) error {
+func (apierSv1 *APIerSv1) GetCost(ctx *context.Context, attrs *AttrGetCost, ec *engine.EventCost) error {
if apierSv1.Responder == nil {
return utils.NewErrNotConnected(utils.RALService)
}
@@ -59,7 +60,7 @@ func (apierSv1 *APIerSv1) GetCost(attrs *AttrGetCost, ec *engine.EventCost) erro
DurationIndex: usage,
}
var cc engine.CallCost
- if err := apierSv1.Responder.GetCost(
+ if err := apierSv1.Responder.GetCost(context.Background(),
&engine.CallDescriptorWithAPIOpts{
CallDescriptor: cd,
APIOpts: attrs.APIOpts,
@@ -80,7 +81,7 @@ type AttrGetDataCost struct {
Opts map[string]any
}
-func (apierSv1 *APIerSv1) GetDataCost(attrs *AttrGetDataCost, reply *engine.DataCost) error {
+func (apierSv1 *APIerSv1) GetDataCost(ctx *context.Context, attrs *AttrGetDataCost, reply *engine.DataCost) error {
if apierSv1.Responder == nil {
return utils.NewErrNotConnected(utils.RALService)
}
@@ -99,10 +100,12 @@ func (apierSv1 *APIerSv1) GetDataCost(attrs *AttrGetDataCost, reply *engine.Data
ToR: utils.MetaData,
}
var cc engine.CallCost
- if err := apierSv1.Responder.GetCost(&engine.CallDescriptorWithAPIOpts{
- CallDescriptor: cd,
- APIOpts: attrs.Opts,
- }, &cc); err != nil {
+ if err := apierSv1.Responder.GetCost(
+ context.Background(),
+ &engine.CallDescriptorWithAPIOpts{
+ CallDescriptor: cd,
+ APIOpts: attrs.Opts,
+ }, &cc); err != nil {
return utils.NewErrServerError(err)
}
if dc, err := cc.ToDataCost(); err != nil {
diff --git a/apier/v1/costs_it_test.go b/apier/v1/costs_it_test.go
index 5f0158897..8e6f26cb1 100644
--- a/apier/v1/costs_it_test.go
+++ b/apier/v1/costs_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -35,7 +36,7 @@ import (
var (
costCfgPath string
costCfg *config.CGRConfig
- costRPC *rpc.Client
+ costRPC *birpc.Client
costConfigDIR string //run tests for specific configuration
sTestsCost = []func(t *testing.T){
@@ -110,7 +111,7 @@ func testCostRPCConn(t *testing.T) {
func testCostLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := costRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := costRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -120,7 +121,7 @@ func testCostGetCost(t *testing.T) {
attrs := AttrGetCost{Category: "call", Tenant: "cgrates.org",
Subject: "1001", AnswerTime: "*now", Destination: "1002", Usage: "120000000000"} //120s ( 2m)
var rply *engine.EventCost
- if err := costRPC.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := costRPC.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.700200 { // expect to get 0.7 (0.4 connect fee 0.2 first minute 0.1 each minute after)
t.Errorf("Unexpected cost received: %f", *rply.Cost)
diff --git a/apier/v1/debit.go b/apier/v1/debit.go
index 651294bc4..d2d4f9a27 100644
--- a/apier/v1/debit.go
+++ b/apier/v1/debit.go
@@ -19,17 +19,19 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// DebitUsage will debit the balance for the usage cost, allowing the
// account to go negative if the cost calculated is greater than the balance
-func (apierSv1 *APIerSv1) DebitUsage(usageRecord *engine.UsageRecordWithAPIOpts, reply *string) error {
- return apierSv1.DebitUsageWithOptions(&AttrDebitUsageWithOptions{
- UsageRecord: usageRecord,
- AllowNegativeAccount: true,
- }, reply)
+func (apierSv1 *APIerSv1) DebitUsage(ctx *context.Context, usageRecord *engine.UsageRecordWithAPIOpts, reply *string) error {
+ return apierSv1.DebitUsageWithOptions(ctx,
+ &AttrDebitUsageWithOptions{
+ UsageRecord: usageRecord,
+ AllowNegativeAccount: true,
+ }, reply)
}
// AttrDebitUsageWithOptions represents the DebitUsage request
@@ -40,7 +42,7 @@ type AttrDebitUsageWithOptions struct {
// DebitUsageWithOptions will debit the account based on the usage cost with
// additional options to control if the balance can go negative
-func (apierSv1 *APIerSv1) DebitUsageWithOptions(args *AttrDebitUsageWithOptions, reply *string) error {
+func (apierSv1 *APIerSv1) DebitUsageWithOptions(ctx *context.Context, args *AttrDebitUsageWithOptions, reply *string) error {
if apierSv1.Responder == nil {
return utils.NewErrNotConnected(utils.RALService)
}
@@ -78,10 +80,12 @@ func (apierSv1 *APIerSv1) DebitUsageWithOptions(args *AttrDebitUsageWithOptions,
// Calculate the cost for usage and debit the account
var cc engine.CallCost
- if err := apierSv1.Responder.Debit(&engine.CallDescriptorWithAPIOpts{
- CallDescriptor: cd,
- APIOpts: args.UsageRecord.APIOpts,
- }, &cc); err != nil {
+ if err := apierSv1.Responder.Debit(
+ context.Background(),
+ &engine.CallDescriptorWithAPIOpts{
+ CallDescriptor: cd,
+ APIOpts: args.UsageRecord.APIOpts,
+ }, &cc); err != nil {
return utils.NewErrServerError(err)
}
diff --git a/apier/v1/debit_test.go b/apier/v1/debit_test.go
index b9ac25ce9..d8e7870aa 100644
--- a/apier/v1/debit_test.go
+++ b/apier/v1/debit_test.go
@@ -22,6 +22,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -146,9 +147,11 @@ func TestDebitUsageWithOptions(t *testing.T) {
}
var reply string
- if err := apierDebit.DebitUsageWithOptions(&AttrDebitUsageWithOptions{
- UsageRecord: &engine.UsageRecordWithAPIOpts{UsageRecord: usageRecord},
- AllowNegativeAccount: false}, &reply); err != nil {
+ if err := apierDebit.DebitUsageWithOptions(
+ context.Background(),
+ &AttrDebitUsageWithOptions{
+ UsageRecord: &engine.UsageRecordWithAPIOpts{UsageRecord: usageRecord},
+ AllowNegativeAccount: false}, &reply); err != nil {
t.Error(err)
}
diff --git a/apier/v1/dispatcher.go b/apier/v1/dispatcher.go
index 56e7a46c5..24e6d5fe7 100644
--- a/apier/v1/dispatcher.go
+++ b/apier/v1/dispatcher.go
@@ -21,6 +21,7 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
@@ -30,7 +31,7 @@ import (
)
// GetDispatcherProfile returns a Dispatcher Profile
-func (apierSv1 *APIerSv1) GetDispatcherProfile(arg *utils.TenantID, reply *engine.DispatcherProfile) error {
+func (apierSv1 *APIerSv1) GetDispatcherProfile(ctx *context.Context, arg *utils.TenantID, reply *engine.DispatcherProfile) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -47,7 +48,7 @@ func (apierSv1 *APIerSv1) GetDispatcherProfile(arg *utils.TenantID, reply *engin
}
// GetDispatcherProfileIDs returns list of dispatcherProfile IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetDispatcherProfileIDs(tenantArg *utils.PaginatorWithTenant, dPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetDispatcherProfileIDs(ctx *context.Context, tenantArg *utils.PaginatorWithTenant, dPrfIDs *[]string) error {
tenant := tenantArg.Tenant
if tenant == utils.EmptyString {
tenant = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -74,7 +75,7 @@ type DispatcherWithAPIOpts struct {
}
// SetDispatcherProfile add/update a new Dispatcher Profile
-func (apierSv1 *APIerSv1) SetDispatcherProfile(args *DispatcherWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) SetDispatcherProfile(ctx *context.Context, args *DispatcherWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args.DispatcherProfile, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -110,7 +111,7 @@ func (apierSv1 *APIerSv1) SetDispatcherProfile(args *DispatcherWithAPIOpts, repl
}
// RemoveDispatcherProfile remove a specific Dispatcher Profile
-func (apierSv1 *APIerSv1) RemoveDispatcherProfile(arg *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveDispatcherProfile(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -136,7 +137,7 @@ func (apierSv1 *APIerSv1) RemoveDispatcherProfile(arg *utils.TenantIDWithAPIOpts
}
// GetDispatcherHost returns a Dispatcher Host
-func (apierSv1 *APIerSv1) GetDispatcherHost(arg *utils.TenantID, reply *engine.DispatcherHost) error {
+func (apierSv1 *APIerSv1) GetDispatcherHost(ctx *context.Context, arg *utils.TenantID, reply *engine.DispatcherHost) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -153,7 +154,7 @@ func (apierSv1 *APIerSv1) GetDispatcherHost(arg *utils.TenantID, reply *engine.D
}
// GetDispatcherHostIDs returns list of dispatcherHost IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetDispatcherHostIDs(tenantArg *utils.PaginatorWithTenant, dPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetDispatcherHostIDs(ctx *context.Context, tenantArg *utils.PaginatorWithTenant, dPrfIDs *[]string) error {
tenant := tenantArg.Tenant
if tenant == utils.EmptyString {
tenant = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -175,7 +176,7 @@ func (apierSv1 *APIerSv1) GetDispatcherHostIDs(tenantArg *utils.PaginatorWithTen
}
// SetDispatcherHost add/update a new Dispatcher Host
-func (apierSv1 *APIerSv1) SetDispatcherHost(args *engine.DispatcherHostWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) SetDispatcherHost(ctx *context.Context, args *engine.DispatcherHostWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args.DispatcherHost, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -199,7 +200,7 @@ func (apierSv1 *APIerSv1) SetDispatcherHost(args *engine.DispatcherHostWithAPIOp
}
// RemoveDispatcherHost remove a specific Dispatcher Host
-func (apierSv1 *APIerSv1) RemoveDispatcherHost(arg *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveDispatcherHost(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -234,30 +235,30 @@ type DispatcherThresholdSv1 struct {
}
// Ping implements ThresholdSv1Ping
-func (dT *DispatcherThresholdSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dT.dS.ThresholdSv1Ping(args, reply)
+func (dT *DispatcherThresholdSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dT.dS.ThresholdSv1Ping(ctx, args, reply)
}
// GetThresholdsForEvent implements ThresholdSv1GetThresholdsForEvent
-func (dT *DispatcherThresholdSv1) GetThresholdsForEvent(tntID *utils.CGREvent,
+func (dT *DispatcherThresholdSv1) GetThresholdsForEvent(ctx *context.Context, tntID *utils.CGREvent,
t *engine.Thresholds) error {
- return dT.dS.ThresholdSv1GetThresholdsForEvent(tntID, t)
+ return dT.dS.ThresholdSv1GetThresholdsForEvent(ctx, tntID, t)
}
// ProcessEvent implements ThresholdSv1ProcessEvent
-func (dT *DispatcherThresholdSv1) ProcessEvent(args *utils.CGREvent,
+func (dT *DispatcherThresholdSv1) ProcessEvent(ctx *context.Context, args *utils.CGREvent,
tIDs *[]string) error {
- return dT.dS.ThresholdSv1ProcessEvent(args, tIDs)
+ return dT.dS.ThresholdSv1ProcessEvent(ctx, args, tIDs)
}
-func (dT *DispatcherThresholdSv1) GetThresholdIDs(args *utils.TenantWithAPIOpts,
+func (dT *DispatcherThresholdSv1) GetThresholdIDs(ctx *context.Context, args *utils.TenantWithAPIOpts,
tIDs *[]string) error {
- return dT.dS.ThresholdSv1GetThresholdIDs(args, tIDs)
+ return dT.dS.ThresholdSv1GetThresholdIDs(ctx, args, tIDs)
}
-func (dT *DispatcherThresholdSv1) GetThreshold(args *utils.TenantIDWithAPIOpts,
+func (dT *DispatcherThresholdSv1) GetThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts,
th *engine.Threshold) error {
- return dT.dS.ThresholdSv1GetThreshold(args, th)
+ return dT.dS.ThresholdSv1GetThreshold(ctx, args, th)
}
func NewDispatcherStatSv1(dps *dispatchers.DispatcherService) *DispatcherStatSv1 {
@@ -270,34 +271,34 @@ type DispatcherStatSv1 struct {
}
// Ping implements StatSv1Ping
-func (dSts *DispatcherStatSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dSts.dS.StatSv1Ping(args, reply)
+func (dSts *DispatcherStatSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dSts.dS.StatSv1Ping(ctx, args, reply)
}
// GetStatQueuesForEvent implements StatSv1GetStatQueuesForEvent
-func (dSts *DispatcherStatSv1) GetStatQueuesForEvent(args *utils.CGREvent, reply *[]string) error {
- return dSts.dS.StatSv1GetStatQueuesForEvent(args, reply)
+func (dSts *DispatcherStatSv1) GetStatQueuesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) error {
+ return dSts.dS.StatSv1GetStatQueuesForEvent(ctx, args, reply)
}
// GetQueueStringMetrics implements StatSv1GetQueueStringMetrics
-func (dSts *DispatcherStatSv1) GetQueueStringMetrics(args *utils.TenantIDWithAPIOpts,
+func (dSts *DispatcherStatSv1) GetQueueStringMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts,
reply *map[string]string) error {
- return dSts.dS.StatSv1GetQueueStringMetrics(args, reply)
+ return dSts.dS.StatSv1GetQueueStringMetrics(ctx, args, reply)
}
-func (dSts *DispatcherStatSv1) GetQueueFloatMetrics(args *utils.TenantIDWithAPIOpts,
+func (dSts *DispatcherStatSv1) GetQueueFloatMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts,
reply *map[string]float64) error {
- return dSts.dS.StatSv1GetQueueFloatMetrics(args, reply)
+ return dSts.dS.StatSv1GetQueueFloatMetrics(ctx, args, reply)
}
-func (dSts *DispatcherStatSv1) GetQueueIDs(args *utils.TenantWithAPIOpts,
+func (dSts *DispatcherStatSv1) GetQueueIDs(ctx *context.Context, args *utils.TenantWithAPIOpts,
reply *[]string) error {
- return dSts.dS.StatSv1GetQueueIDs(args, reply)
+ return dSts.dS.StatSv1GetQueueIDs(ctx, args, reply)
}
// GetQueueStringMetrics implements StatSv1ProcessEvent
-func (dSts *DispatcherStatSv1) ProcessEvent(args *utils.CGREvent, reply *[]string) error {
- return dSts.dS.StatSv1ProcessEvent(args, reply)
+func (dSts *DispatcherStatSv1) ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) error {
+ return dSts.dS.StatSv1ProcessEvent(ctx, args, reply)
}
func NewDispatcherResourceSv1(dps *dispatchers.DispatcherService) *DispatcherResourceSv1 {
@@ -310,37 +311,37 @@ type DispatcherResourceSv1 struct {
}
// Ping implements ResourceSv1Ping
-func (dRs *DispatcherResourceSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dRs.dRs.ResourceSv1Ping(args, reply)
+func (dRs *DispatcherResourceSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dRs.dRs.ResourceSv1Ping(ctx, args, reply)
}
// GetResourcesForEvent implements ResourceSv1GetResourcesForEvent
-func (dRs *DispatcherResourceSv1) GetResourcesForEvent(args *utils.CGREvent,
+func (dRs *DispatcherResourceSv1) GetResourcesForEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.Resources) error {
- return dRs.dRs.ResourceSv1GetResourcesForEvent(args, reply)
+ return dRs.dRs.ResourceSv1GetResourcesForEvent(ctx, args, reply)
}
-func (dRs *DispatcherResourceSv1) GetResource(args *utils.TenantIDWithAPIOpts, reply *engine.Resource) error {
- return dRs.dRs.ResourceSv1GetResource(args, reply)
+func (dRs *DispatcherResourceSv1) GetResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Resource) error {
+ return dRs.dRs.ResourceSv1GetResource(ctx, args, reply)
}
-func (dRs *DispatcherResourceSv1) GetResourceWithConfig(args *utils.TenantIDWithAPIOpts, reply *engine.ResourceWithConfig) error {
- return dRs.dRs.ResourceSv1GetResourceWithConfig(args, reply)
+func (dRs *DispatcherResourceSv1) GetResourceWithConfig(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ResourceWithConfig) error {
+ return dRs.dRs.ResourceSv1GetResourceWithConfig(ctx, args, reply)
}
-func (dRs *DispatcherResourceSv1) AuthorizeResources(args *utils.CGREvent,
+func (dRs *DispatcherResourceSv1) AuthorizeResources(ctx *context.Context, args *utils.CGREvent,
reply *string) error {
- return dRs.dRs.ResourceSv1AuthorizeResources(args, reply)
+ return dRs.dRs.ResourceSv1AuthorizeResources(ctx, args, reply)
}
-func (dRs *DispatcherResourceSv1) AllocateResources(args *utils.CGREvent,
+func (dRs *DispatcherResourceSv1) AllocateResources(ctx *context.Context, args *utils.CGREvent,
reply *string) error {
- return dRs.dRs.ResourceSv1AllocateResources(args, reply)
+ return dRs.dRs.ResourceSv1AllocateResources(ctx, args, reply)
}
-func (dRs *DispatcherResourceSv1) ReleaseResources(args *utils.CGREvent,
+func (dRs *DispatcherResourceSv1) ReleaseResources(ctx *context.Context, args *utils.CGREvent,
reply *string) error {
- return dRs.dRs.ResourceSv1ReleaseResources(args, reply)
+ return dRs.dRs.ResourceSv1ReleaseResources(ctx, args, reply)
}
func NewDispatcherRouteSv1(dps *dispatchers.DispatcherService) *DispatcherRouteSv1 {
@@ -353,23 +354,23 @@ type DispatcherRouteSv1 struct {
}
// Ping implements RouteSv1Ping
-func (dRoute *DispatcherRouteSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dRoute.dRoute.RouteSv1Ping(args, reply)
+func (dRoute *DispatcherRouteSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dRoute.dRoute.RouteSv1Ping(ctx, args, reply)
}
// GetRoutes implements RouteSv1GetRoutes
-func (dRoute *DispatcherRouteSv1) GetRoutes(args *utils.CGREvent, reply *engine.SortedRoutesList) error {
- return dRoute.dRoute.RouteSv1GetRoutes(args, reply)
+func (dRoute *DispatcherRouteSv1) GetRoutes(ctx *context.Context, args *utils.CGREvent, reply *engine.SortedRoutesList) error {
+ return dRoute.dRoute.RouteSv1GetRoutes(ctx, args, reply)
}
// GetRouteProfilesForEvent returns a list of route profiles that match for Event
-func (dRoute *DispatcherRouteSv1) GetRouteProfilesForEvent(args *utils.CGREvent, reply *[]*engine.RouteProfile) error {
- return dRoute.dRoute.RouteSv1GetRouteProfilesForEvent(args, reply)
+func (dRoute *DispatcherRouteSv1) GetRouteProfilesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]*engine.RouteProfile) error {
+ return dRoute.dRoute.RouteSv1GetRouteProfilesForEvent(ctx, args, reply)
}
// GetRoutesList returns sorted list of routes for Event as a string slice
-func (dRoute *DispatcherRouteSv1) GetRoutesList(args *utils.CGREvent, reply *[]string) error {
- return dRoute.dRoute.RouteSv1GetRoutesList(args, reply)
+func (dRoute *DispatcherRouteSv1) GetRoutesList(ctx *context.Context, args *utils.CGREvent, reply *[]string) error {
+ return dRoute.dRoute.RouteSv1GetRoutesList(ctx, args, reply)
}
func NewDispatcherAttributeSv1(dps *dispatchers.DispatcherService) *DispatcherAttributeSv1 {
@@ -382,20 +383,20 @@ type DispatcherAttributeSv1 struct {
}
// Ping implements AttributeSv1Ping
-func (dA *DispatcherAttributeSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dA.dA.AttributeSv1Ping(args, reply)
+func (dA *DispatcherAttributeSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dA.dA.AttributeSv1Ping(ctx, args, reply)
}
// GetAttributeForEvent implements AttributeSv1GetAttributeForEvent
-func (dA *DispatcherAttributeSv1) GetAttributeForEvent(args *utils.CGREvent,
+func (dA *DispatcherAttributeSv1) GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.AttributeProfile) error {
- return dA.dA.AttributeSv1GetAttributeForEvent(args, reply)
+ return dA.dA.AttributeSv1GetAttributeForEvent(ctx, args, reply)
}
// ProcessEvent implements AttributeSv1ProcessEvent
-func (dA *DispatcherAttributeSv1) ProcessEvent(args *utils.CGREvent,
+func (dA *DispatcherAttributeSv1) ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.AttrSProcessEventReply) error {
- return dA.dA.AttributeSv1ProcessEvent(args, reply)
+ return dA.dA.AttributeSv1ProcessEvent(ctx, args, reply)
}
func NewDispatcherChargerSv1(dps *dispatchers.DispatcherService) *DispatcherChargerSv1 {
@@ -408,20 +409,20 @@ type DispatcherChargerSv1 struct {
}
// Ping implements ChargerSv1Ping
-func (dC *DispatcherChargerSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dC.dC.ChargerSv1Ping(args, reply)
+func (dC *DispatcherChargerSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dC.dC.ChargerSv1Ping(ctx, args, reply)
}
// GetChargersForEvent implements ChargerSv1GetChargersForEvent
-func (dC *DispatcherChargerSv1) GetChargersForEvent(args *utils.CGREvent,
+func (dC *DispatcherChargerSv1) GetChargersForEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.ChargerProfiles) (err error) {
- return dC.dC.ChargerSv1GetChargersForEvent(args, reply)
+ return dC.dC.ChargerSv1GetChargersForEvent(ctx, args, reply)
}
// ProcessEvent implements ChargerSv1ProcessEvent
-func (dC *DispatcherChargerSv1) ProcessEvent(args *utils.CGREvent,
+func (dC *DispatcherChargerSv1) ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *[]*engine.ChrgSProcessEventReply) (err error) {
- return dC.dC.ChargerSv1ProcessEvent(args, reply)
+ return dC.dC.ChargerSv1ProcessEvent(ctx, args, reply)
}
func NewDispatcherSessionSv1(dps *dispatchers.DispatcherService) *DispatcherSessionSv1 {
@@ -434,121 +435,121 @@ type DispatcherSessionSv1 struct {
}
// Ping implements SessionSv1Ping
-func (dS *DispatcherSessionSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.SessionSv1Ping(args, reply)
+func (dS *DispatcherSessionSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.SessionSv1Ping(ctx, args, reply)
}
// AuthorizeEventWithDigest implements SessionSv1AuthorizeEventWithDigest
-func (dS *DispatcherSessionSv1) AuthorizeEventWithDigest(args *sessions.V1AuthorizeArgs,
+func (dS *DispatcherSessionSv1) AuthorizeEventWithDigest(ctx *context.Context, args *sessions.V1AuthorizeArgs,
reply *sessions.V1AuthorizeReplyWithDigest) error {
- return dS.dS.SessionSv1AuthorizeEventWithDigest(args, reply)
+ return dS.dS.SessionSv1AuthorizeEventWithDigest(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) AuthorizeEvent(args *sessions.V1AuthorizeArgs,
+func (dS *DispatcherSessionSv1) AuthorizeEvent(ctx *context.Context, args *sessions.V1AuthorizeArgs,
reply *sessions.V1AuthorizeReply) error {
- return dS.dS.SessionSv1AuthorizeEvent(args, reply)
+ return dS.dS.SessionSv1AuthorizeEvent(ctx, args, reply)
}
// InitiateSessionWithDigest implements SessionSv1InitiateSessionWithDigest
-func (dS *DispatcherSessionSv1) InitiateSessionWithDigest(args *sessions.V1InitSessionArgs,
+func (dS *DispatcherSessionSv1) InitiateSessionWithDigest(ctx *context.Context, args *sessions.V1InitSessionArgs,
reply *sessions.V1InitReplyWithDigest) (err error) {
- return dS.dS.SessionSv1InitiateSessionWithDigest(args, reply)
+ return dS.dS.SessionSv1InitiateSessionWithDigest(ctx, args, reply)
}
// InitiateSessionWithDigest implements SessionSv1InitiateSessionWithDigest
-func (dS *DispatcherSessionSv1) InitiateSession(args *sessions.V1InitSessionArgs,
+func (dS *DispatcherSessionSv1) InitiateSession(ctx *context.Context, args *sessions.V1InitSessionArgs,
reply *sessions.V1InitSessionReply) (err error) {
- return dS.dS.SessionSv1InitiateSession(args, reply)
+ return dS.dS.SessionSv1InitiateSession(ctx, args, reply)
}
// ProcessCDR implements SessionSv1ProcessCDR
-func (dS *DispatcherSessionSv1) ProcessCDR(args *utils.CGREvent,
+func (dS *DispatcherSessionSv1) ProcessCDR(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
- return dS.dS.SessionSv1ProcessCDR(args, reply)
+ return dS.dS.SessionSv1ProcessCDR(ctx, args, reply)
}
// ProcessMessage implements SessionSv1ProcessMessage
-func (dS *DispatcherSessionSv1) ProcessMessage(args *sessions.V1ProcessMessageArgs,
+func (dS *DispatcherSessionSv1) ProcessMessage(ctx *context.Context, args *sessions.V1ProcessMessageArgs,
reply *sessions.V1ProcessMessageReply) (err error) {
- return dS.dS.SessionSv1ProcessMessage(args, reply)
+ return dS.dS.SessionSv1ProcessMessage(ctx, args, reply)
}
// ProcessMessage implements SessionSv1ProcessMessage
-func (dS *DispatcherSessionSv1) ProcessEvent(args *sessions.V1ProcessEventArgs,
+func (dS *DispatcherSessionSv1) ProcessEvent(ctx *context.Context, args *sessions.V1ProcessEventArgs,
reply *sessions.V1ProcessEventReply) (err error) {
- return dS.dS.SessionSv1ProcessEvent(args, reply)
+ return dS.dS.SessionSv1ProcessEvent(ctx, args, reply)
}
// GetCost implements SessionSv1GetCost
-func (dS *DispatcherSessionSv1) GetCost(args *sessions.V1ProcessEventArgs,
+func (dS *DispatcherSessionSv1) GetCost(ctx *context.Context, args *sessions.V1ProcessEventArgs,
reply *sessions.V1GetCostReply) (err error) {
- return dS.dS.SessionSv1GetCost(args, reply)
+ return dS.dS.SessionSv1GetCost(ctx, args, reply)
}
// TerminateSession implements SessionSv1TerminateSession
-func (dS *DispatcherSessionSv1) TerminateSession(args *sessions.V1TerminateSessionArgs,
+func (dS *DispatcherSessionSv1) TerminateSession(ctx *context.Context, args *sessions.V1TerminateSessionArgs,
reply *string) (err error) {
- return dS.dS.SessionSv1TerminateSession(args, reply)
+ return dS.dS.SessionSv1TerminateSession(ctx, args, reply)
}
// UpdateSession implements SessionSv1UpdateSession
-func (dS *DispatcherSessionSv1) UpdateSession(args *sessions.V1UpdateSessionArgs,
+func (dS *DispatcherSessionSv1) UpdateSession(ctx *context.Context, args *sessions.V1UpdateSessionArgs,
reply *sessions.V1UpdateSessionReply) (err error) {
- return dS.dS.SessionSv1UpdateSession(args, reply)
+ return dS.dS.SessionSv1UpdateSession(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) GetActiveSessions(args *utils.SessionFilter,
+func (dS *DispatcherSessionSv1) GetActiveSessions(ctx *context.Context, args *utils.SessionFilter,
reply *[]*sessions.ExternalSession) (err error) {
- return dS.dS.SessionSv1GetActiveSessions(args, reply)
+ return dS.dS.SessionSv1GetActiveSessions(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) GetActiveSessionsCount(args *utils.SessionFilter,
+func (dS *DispatcherSessionSv1) GetActiveSessionsCount(ctx *context.Context, args *utils.SessionFilter,
reply *int) (err error) {
- return dS.dS.SessionSv1GetActiveSessionsCount(args, reply)
+ return dS.dS.SessionSv1GetActiveSessionsCount(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) ForceDisconnect(args *utils.SessionFilter,
+func (dS *DispatcherSessionSv1) ForceDisconnect(ctx *context.Context, args *utils.SessionFilter,
reply *string) (err error) {
- return dS.dS.SessionSv1ForceDisconnect(args, reply)
+ return dS.dS.SessionSv1ForceDisconnect(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) GetPassiveSessions(args *utils.SessionFilter,
+func (dS *DispatcherSessionSv1) GetPassiveSessions(ctx *context.Context, args *utils.SessionFilter,
reply *[]*sessions.ExternalSession) (err error) {
- return dS.dS.SessionSv1GetPassiveSessions(args, reply)
+ return dS.dS.SessionSv1GetPassiveSessions(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) GetPassiveSessionsCount(args *utils.SessionFilter,
+func (dS *DispatcherSessionSv1) GetPassiveSessionsCount(ctx *context.Context, args *utils.SessionFilter,
reply *int) (err error) {
- return dS.dS.SessionSv1GetPassiveSessionsCount(args, reply)
+ return dS.dS.SessionSv1GetPassiveSessionsCount(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) ReplicateSessions(args *dispatchers.ArgsReplicateSessionsWithAPIOpts,
+func (dS *DispatcherSessionSv1) ReplicateSessions(ctx *context.Context, args *dispatchers.ArgsReplicateSessionsWithAPIOpts,
reply *string) (err error) {
- return dS.dS.SessionSv1ReplicateSessions(*args, reply)
+ return dS.dS.SessionSv1ReplicateSessions(ctx, *args, reply)
}
-func (dS *DispatcherSessionSv1) SetPassiveSession(args *sessions.Session,
+func (dS *DispatcherSessionSv1) SetPassiveSession(ctx *context.Context, args *sessions.Session,
reply *string) (err error) {
- return dS.dS.SessionSv1SetPassiveSession(args, reply)
+ return dS.dS.SessionSv1SetPassiveSession(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) ActivateSessions(args *utils.SessionIDsWithArgsDispatcher, reply *string) error {
- return dS.dS.SessionSv1ActivateSessions(args, reply)
+func (dS *DispatcherSessionSv1) ActivateSessions(ctx *context.Context, args *utils.SessionIDsWithArgsDispatcher, reply *string) error {
+ return dS.dS.SessionSv1ActivateSessions(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) DeactivateSessions(args *utils.SessionIDsWithArgsDispatcher, reply *string) error {
- return dS.dS.SessionSv1DeactivateSessions(args, reply)
+func (dS *DispatcherSessionSv1) DeactivateSessions(ctx *context.Context, args *utils.SessionIDsWithArgsDispatcher, reply *string) error {
+ return dS.dS.SessionSv1DeactivateSessions(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) SyncSessions(args *utils.TenantWithAPIOpts, rply *string) error {
- return dS.dS.SessionSv1SyncSessions(args, rply)
+func (dS *DispatcherSessionSv1) SyncSessions(ctx *context.Context, args *utils.TenantWithAPIOpts, rply *string) error {
+ return dS.dS.SessionSv1SyncSessions(ctx, args, rply)
}
-func (dS *DispatcherSessionSv1) STIRAuthenticate(args *sessions.V1STIRAuthenticateArgs, reply *string) error {
- return dS.dS.SessionSv1STIRAuthenticate(args, reply)
+func (dS *DispatcherSessionSv1) STIRAuthenticate(ctx *context.Context, args *sessions.V1STIRAuthenticateArgs, reply *string) error {
+ return dS.dS.SessionSv1STIRAuthenticate(ctx, args, reply)
}
-func (dS *DispatcherSessionSv1) STIRIdentity(args *sessions.V1STIRIdentityArgs, reply *string) error {
- return dS.dS.SessionSv1STIRIdentity(args, reply)
+func (dS *DispatcherSessionSv1) STIRIdentity(ctx *context.Context, args *sessions.V1STIRIdentityArgs, reply *string) error {
+ return dS.dS.SessionSv1STIRIdentity(ctx, args, reply)
}
func NewDispatcherResponder(dps *dispatchers.DispatcherService) *DispatcherResponder {
@@ -560,44 +561,44 @@ type DispatcherResponder struct {
dS *dispatchers.DispatcherService
}
-func (dS *DispatcherResponder) GetCost(args *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) error {
- return dS.dS.ResponderGetCost(args, reply)
+func (dS *DispatcherResponder) GetCost(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) error {
+ return dS.dS.ResponderGetCost(ctx, args, reply)
}
-func (dS *DispatcherResponder) Debit(args *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) error {
- return dS.dS.ResponderDebit(args, reply)
+func (dS *DispatcherResponder) Debit(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) error {
+ return dS.dS.ResponderDebit(ctx, args, reply)
}
-func (dS *DispatcherResponder) MaxDebit(args *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) error {
- return dS.dS.ResponderMaxDebit(args, reply)
+func (dS *DispatcherResponder) MaxDebit(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts, reply *engine.CallCost) error {
+ return dS.dS.ResponderMaxDebit(ctx, args, reply)
}
-func (dS *DispatcherResponder) RefundIncrements(args *engine.CallDescriptorWithAPIOpts, reply *engine.Account) error {
- return dS.dS.ResponderRefundIncrements(args, reply)
+func (dS *DispatcherResponder) RefundIncrements(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts, reply *engine.Account) error {
+ return dS.dS.ResponderRefundIncrements(ctx, args, reply)
}
-func (dS *DispatcherResponder) RefundRounding(args *engine.CallDescriptorWithAPIOpts, reply *engine.Account) error {
- return dS.dS.ResponderRefundRounding(args, reply)
+func (dS *DispatcherResponder) RefundRounding(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts, reply *engine.Account) error {
+ return dS.dS.ResponderRefundRounding(ctx, args, reply)
}
-func (dS *DispatcherResponder) GetMaxSessionTime(args *engine.CallDescriptorWithAPIOpts, reply *time.Duration) error {
- return dS.dS.ResponderGetMaxSessionTime(args, reply)
+func (dS *DispatcherResponder) GetMaxSessionTime(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts, reply *time.Duration) error {
+ return dS.dS.ResponderGetMaxSessionTime(ctx, args, reply)
}
-func (dS *DispatcherResponder) Shutdown(args *utils.TenantWithAPIOpts, reply *string) error {
- return dS.dS.ResponderShutdown(args, reply)
+func (dS *DispatcherResponder) Shutdown(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *string) error {
+ return dS.dS.ResponderShutdown(ctx, args, reply)
}
-func (dS *DispatcherResponder) GetCostOnRatingPlans(arg *utils.GetCostOnRatingPlansArgs, reply *map[string]any) (err error) {
- return dS.dS.ResponderGetCostOnRatingPlans(arg, reply)
+func (dS *DispatcherResponder) GetCostOnRatingPlans(ctx *context.Context, arg *utils.GetCostOnRatingPlansArgs, reply *map[string]any) (err error) {
+ return dS.dS.ResponderGetCostOnRatingPlans(ctx, arg, reply)
}
-func (dS *DispatcherResponder) GetMaxSessionTimeOnAccounts(arg *utils.GetMaxSessionTimeOnAccountsArgs, reply *map[string]any) (err error) {
- return dS.dS.ResponderGetMaxSessionTimeOnAccounts(arg, reply)
+func (dS *DispatcherResponder) GetMaxSessionTimeOnAccounts(ctx *context.Context, arg *utils.GetMaxSessionTimeOnAccountsArgs, reply *map[string]any) (err error) {
+ return dS.dS.ResponderGetMaxSessionTimeOnAccounts(ctx, arg, reply)
}
// Ping used to detreminate if component is active
-func (dS *DispatcherResponder) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.ResponderPing(args, reply)
+func (dS *DispatcherResponder) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.ResponderPing(ctx, args, reply)
}
func NewDispatcherCacheSv1(dps *dispatchers.DispatcherService) *DispatcherCacheSv1 {
@@ -610,105 +611,105 @@ type DispatcherCacheSv1 struct {
}
// GetItemIDs returns the IDs for cacheID with given prefix
-func (dS *DispatcherCacheSv1) GetItemIDs(args *utils.ArgsGetCacheItemIDsWithAPIOpts,
+func (dS *DispatcherCacheSv1) GetItemIDs(ctx *context.Context, args *utils.ArgsGetCacheItemIDsWithAPIOpts,
reply *[]string) error {
- return dS.dS.CacheSv1GetItemIDs(args, reply)
+ return dS.dS.CacheSv1GetItemIDs(ctx, args, reply)
}
// HasItem verifies the existence of an Item in cache
-func (dS *DispatcherCacheSv1) HasItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (dS *DispatcherCacheSv1) HasItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *bool) error {
- return dS.dS.CacheSv1HasItem(args, reply)
+ return dS.dS.CacheSv1HasItem(ctx, args, reply)
}
// GetItem returns an Item from the cache
-func (dS *DispatcherCacheSv1) GetItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (dS *DispatcherCacheSv1) GetItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *any) error {
- return dS.dS.CacheSv1GetItem(args, reply)
+ return dS.dS.CacheSv1GetItem(ctx, args, reply)
}
// GetItemWithRemote returns an Item from local or remote cache
-func (dS *DispatcherCacheSv1) GetItemWithRemote(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (dS *DispatcherCacheSv1) GetItemWithRemote(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *any) error {
- return dS.dS.CacheSv1GetItemWithRemote(args, reply)
+ return dS.dS.CacheSv1GetItemWithRemote(ctx, args, reply)
}
// GetItemExpiryTime returns the expiryTime for an item
-func (dS *DispatcherCacheSv1) GetItemExpiryTime(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (dS *DispatcherCacheSv1) GetItemExpiryTime(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *time.Time) error {
- return dS.dS.CacheSv1GetItemExpiryTime(args, reply)
+ return dS.dS.CacheSv1GetItemExpiryTime(ctx, args, reply)
}
// RemoveItem removes the Item with ID from cache
-func (dS *DispatcherCacheSv1) RemoveItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (dS *DispatcherCacheSv1) RemoveItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *string) error {
- return dS.dS.CacheSv1RemoveItem(args, reply)
+ return dS.dS.CacheSv1RemoveItem(ctx, args, reply)
}
// RemoveItems removes the Item with ID from cache
-func (dS *DispatcherCacheSv1) RemoveItems(args *utils.AttrReloadCacheWithAPIOpts,
+func (dS *DispatcherCacheSv1) RemoveItems(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts,
reply *string) error {
- return dS.dS.CacheSv1RemoveItems(args, reply)
+ return dS.dS.CacheSv1RemoveItems(ctx, args, reply)
}
// Clear will clear partitions in the cache (nil fol all, empty slice for none)
-func (dS *DispatcherCacheSv1) Clear(args *utils.AttrCacheIDsWithAPIOpts,
+func (dS *DispatcherCacheSv1) Clear(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts,
reply *string) error {
- return dS.dS.CacheSv1Clear(args, reply)
+ return dS.dS.CacheSv1Clear(ctx, args, reply)
}
// GetCacheStats returns CacheStats filtered by cacheIDs
-func (dS *DispatcherCacheSv1) GetCacheStats(args *utils.AttrCacheIDsWithAPIOpts,
+func (dS *DispatcherCacheSv1) GetCacheStats(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts,
reply *map[string]*ltcache.CacheStats) error {
- return dS.dS.CacheSv1GetCacheStats(args, reply)
+ return dS.dS.CacheSv1GetCacheStats(ctx, args, reply)
}
// PrecacheStatus checks status of active precache processes
-func (dS *DispatcherCacheSv1) PrecacheStatus(args *utils.AttrCacheIDsWithAPIOpts, reply *map[string]string) error {
- return dS.dS.CacheSv1PrecacheStatus(args, reply)
+func (dS *DispatcherCacheSv1) PrecacheStatus(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts, reply *map[string]string) error {
+ return dS.dS.CacheSv1PrecacheStatus(ctx, args, reply)
}
// HasGroup checks existence of a group in cache
-func (dS *DispatcherCacheSv1) HasGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (dS *DispatcherCacheSv1) HasGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
reply *bool) (err error) {
- return dS.dS.CacheSv1HasGroup(args, reply)
+ return dS.dS.CacheSv1HasGroup(ctx, args, reply)
}
// GetGroupItemIDs returns a list of itemIDs in a cache group
-func (dS *DispatcherCacheSv1) GetGroupItemIDs(args *utils.ArgsGetGroupWithAPIOpts,
+func (dS *DispatcherCacheSv1) GetGroupItemIDs(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
reply *[]string) (err error) {
- return dS.dS.CacheSv1GetGroupItemIDs(args, reply)
+ return dS.dS.CacheSv1GetGroupItemIDs(ctx, args, reply)
}
// RemoveGroup will remove a group and all items belonging to it from cache
-func (dS *DispatcherCacheSv1) RemoveGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (dS *DispatcherCacheSv1) RemoveGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
reply *string) (err error) {
- return dS.dS.CacheSv1RemoveGroup(args, reply)
+ return dS.dS.CacheSv1RemoveGroup(ctx, args, reply)
}
// ReloadCache reloads cache from DB for a prefix or completely
-func (dS *DispatcherCacheSv1) ReloadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
- return dS.dS.CacheSv1ReloadCache(args, reply)
+func (dS *DispatcherCacheSv1) ReloadCache(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+ return dS.dS.CacheSv1ReloadCache(ctx, args, reply)
}
// LoadCache loads cache from DB for a prefix or completely
-func (dS *DispatcherCacheSv1) LoadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
- return dS.dS.CacheSv1LoadCache(args, reply)
+func (dS *DispatcherCacheSv1) LoadCache(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+ return dS.dS.CacheSv1LoadCache(ctx, args, reply)
}
// ReplicateSet replicate an item
-func (dS *DispatcherCacheSv1) ReplicateSet(args *utils.ArgCacheReplicateSet, reply *string) (err error) {
- return dS.dS.CacheSv1ReplicateSet(args, reply)
+func (dS *DispatcherCacheSv1) ReplicateSet(ctx *context.Context, args *utils.ArgCacheReplicateSet, reply *string) (err error) {
+ return dS.dS.CacheSv1ReplicateSet(ctx, args, reply)
}
// ReplicateRemove remove an item
-func (dS *DispatcherCacheSv1) ReplicateRemove(args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
- return dS.dS.CacheSv1ReplicateRemove(args, reply)
+func (dS *DispatcherCacheSv1) ReplicateRemove(ctx *context.Context, args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
+ return dS.dS.CacheSv1ReplicateRemove(ctx, args, reply)
}
// Ping used to determinate if component is active
-func (dS *DispatcherCacheSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.CacheSv1Ping(args, reply)
+func (dS *DispatcherCacheSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.CacheSv1Ping(ctx, args, reply)
}
func NewDispatcherGuardianSv1(dps *dispatchers.DispatcherService) *DispatcherGuardianSv1 {
@@ -721,18 +722,18 @@ type DispatcherGuardianSv1 struct {
}
// RemoteLock will lock a key from remote
-func (dS *DispatcherGuardianSv1) RemoteLock(attr *dispatchers.AttrRemoteLockWithAPIOpts, reply *string) (err error) {
- return dS.dS.GuardianSv1RemoteLock(*attr, reply)
+func (dS *DispatcherGuardianSv1) RemoteLock(ctx *context.Context, attr *dispatchers.AttrRemoteLockWithAPIOpts, reply *string) (err error) {
+ return dS.dS.GuardianSv1RemoteLock(ctx, *attr, reply)
}
// RemoteUnlock will unlock a key from remote based on reference ID
-func (dS *DispatcherGuardianSv1) RemoteUnlock(attr *dispatchers.AttrRemoteUnlockWithAPIOpts, reply *[]string) (err error) {
- return dS.dS.GuardianSv1RemoteUnlock(*attr, reply)
+func (dS *DispatcherGuardianSv1) RemoteUnlock(ctx *context.Context, attr *dispatchers.AttrRemoteUnlockWithAPIOpts, reply *[]string) (err error) {
+ return dS.dS.GuardianSv1RemoteUnlock(ctx, *attr, reply)
}
// Ping used to detreminate if component is active
-func (dS *DispatcherGuardianSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.GuardianSv1Ping(args, reply)
+func (dS *DispatcherGuardianSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.GuardianSv1Ping(ctx, args, reply)
}
func NewDispatcherSchedulerSv1(dps *dispatchers.DispatcherService) *DispatcherSchedulerSv1 {
@@ -745,23 +746,23 @@ type DispatcherSchedulerSv1 struct {
}
// Reload reloads scheduler instructions
-func (dS *DispatcherSchedulerSv1) Reload(attr *utils.CGREvent, reply *string) (err error) {
- return dS.dS.SchedulerSv1Reload(attr, reply)
+func (dS *DispatcherSchedulerSv1) Reload(ctx *context.Context, attr *utils.CGREvent, reply *string) (err error) {
+ return dS.dS.SchedulerSv1Reload(ctx, attr, reply)
}
// Ping used to detreminate if component is active
-func (dS *DispatcherSchedulerSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.SchedulerSv1Ping(args, reply)
+func (dS *DispatcherSchedulerSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.SchedulerSv1Ping(ctx, args, reply)
}
// ExecuteActions execute an actionPlan or multiple actionsPlans between a time interval
-func (dS *DispatcherSchedulerSv1) ExecuteActions(args *utils.AttrsExecuteActions, reply *string) error {
- return dS.dS.SchedulerSv1ExecuteActions(args, reply)
+func (dS *DispatcherSchedulerSv1) ExecuteActions(ctx *context.Context, args *utils.AttrsExecuteActions, reply *string) error {
+ return dS.dS.SchedulerSv1ExecuteActions(ctx, args, reply)
}
// ExecuteActionPlans execute multiple actionPlans one by one
-func (dS *DispatcherSchedulerSv1) ExecuteActionPlans(args *utils.AttrsExecuteActionPlans, reply *string) (err error) {
- return dS.dS.SchedulerSv1ExecuteActionPlans(args, reply)
+func (dS *DispatcherSchedulerSv1) ExecuteActionPlans(ctx *context.Context, args *utils.AttrsExecuteActionPlans, reply *string) (err error) {
+ return dS.dS.SchedulerSv1ExecuteActionPlans(ctx, args, reply)
}
func NewDispatcherSv1(dS *dispatchers.DispatcherService) *DispatcherSv1 {
@@ -773,30 +774,30 @@ type DispatcherSv1 struct {
}
// GetProfileForEvent returns the matching dispatcher profile for the provided event
-func (dSv1 DispatcherSv1) GetProfilesForEvent(ev *utils.CGREvent,
+func (dSv1 DispatcherSv1) GetProfilesForEvent(ctx *context.Context, ev *utils.CGREvent,
dPrfl *engine.DispatcherProfiles) error {
- return dSv1.dS.V1GetProfilesForEvent(ev, dPrfl)
+ return dSv1.dS.DispatcherSv1GetProfilesForEvent(ctx, ev, dPrfl)
}
-func (dS *DispatcherSv1) RemoteStatus(args *utils.TenantWithAPIOpts, reply *map[string]any) (err error) {
- return dS.dS.DispatcherSv1RemoteStatus(args, reply)
+func (dS *DispatcherSv1) RemoteStatus(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *map[string]any) (err error) {
+ return dS.dS.DispatcherSv1RemoteStatus(ctx, args, reply)
}
-func (dS *DispatcherSv1) RemotePing(args *utils.CGREvent, reply *string) (err error) {
- return dS.dS.DispatcherSv1RemotePing(args, reply)
+func (dS *DispatcherSv1) RemotePing(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
+ return dS.dS.DispatcherSv1RemotePing(ctx, args, reply)
}
-func (dS *DispatcherSv1) RemoteSleep(args *utils.DurationArgs, reply *string) (err error) {
- return dS.dS.DispatcherSv1RemoteSleep(args, reply)
+func (dS *DispatcherSv1) RemoteSleep(ctx *context.Context, args *utils.DurationArgs, reply *string) (err error) {
+ return dS.dS.DispatcherSv1RemoteSleep(ctx, args, reply)
}
/*
-func (dSv1 DispatcherSv1) Apier(args *utils.MethodParameters, reply *any) (err error) {
- return dSv1.dS.V1Apier(new(APIerSv1), args, reply)
+func (dSv1 DispatcherSv1) Apier(ctx *context.Context,args *utils.MethodParameters, reply *any) (err error) {
+ return dSv1.dS.V1Apier(ctx,new(APIerSv1), args, reply)
}
*/
-func (rS *DispatcherSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (rS *DispatcherSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
@@ -811,36 +812,36 @@ type DispatcherSCDRsV1 struct {
}
// Ping used to detreminate if component is active
-func (dS *DispatcherSCDRsV1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.CDRsV1Ping(args, reply)
+func (dS *DispatcherSCDRsV1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.CDRsV1Ping(ctx, args, reply)
}
-func (dS *DispatcherSCDRsV1) GetCDRs(args *utils.RPCCDRsFilterWithAPIOpts, reply *[]*engine.CDR) error {
- return dS.dS.CDRsV1GetCDRs(args, reply)
+func (dS *DispatcherSCDRsV1) GetCDRs(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, reply *[]*engine.CDR) error {
+ return dS.dS.CDRsV1GetCDRs(ctx, args, reply)
}
-func (dS *DispatcherSCDRsV1) GetCDRsCount(args *utils.RPCCDRsFilterWithAPIOpts, reply *int64) error {
- return dS.dS.CDRsV1GetCDRsCount(args, reply)
+func (dS *DispatcherSCDRsV1) GetCDRsCount(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, reply *int64) error {
+ return dS.dS.CDRsV1GetCDRsCount(ctx, args, reply)
}
-func (dS *DispatcherSCDRsV1) StoreSessionCost(args *engine.AttrCDRSStoreSMCost, reply *string) error {
- return dS.dS.CDRsV1StoreSessionCost(args, reply)
+func (dS *DispatcherSCDRsV1) StoreSessionCost(ctx *context.Context, args *engine.AttrCDRSStoreSMCost, reply *string) error {
+ return dS.dS.CDRsV1StoreSessionCost(ctx, args, reply)
}
-func (dS *DispatcherSCDRsV1) RateCDRs(args *engine.ArgRateCDRs, reply *string) error {
- return dS.dS.CDRsV1RateCDRs(args, reply)
+func (dS *DispatcherSCDRsV1) RateCDRs(ctx *context.Context, args *engine.ArgRateCDRs, reply *string) error {
+ return dS.dS.CDRsV1RateCDRs(ctx, args, reply)
}
-func (dS *DispatcherSCDRsV1) ProcessExternalCDR(args *engine.ExternalCDRWithAPIOpts, reply *string) error {
- return dS.dS.CDRsV1ProcessExternalCDR(args, reply)
+func (dS *DispatcherSCDRsV1) ProcessExternalCDR(ctx *context.Context, args *engine.ExternalCDRWithAPIOpts, reply *string) error {
+ return dS.dS.CDRsV1ProcessExternalCDR(ctx, args, reply)
}
-func (dS *DispatcherSCDRsV1) ProcessEvent(args *engine.ArgV1ProcessEvent, reply *string) error {
- return dS.dS.CDRsV1ProcessEvent(args, reply)
+func (dS *DispatcherSCDRsV1) ProcessEvent(ctx *context.Context, args *engine.ArgV1ProcessEvent, reply *string) error {
+ return dS.dS.CDRsV1ProcessEvent(ctx, args, reply)
}
-func (dS *DispatcherSCDRsV1) ProcessCDR(args *engine.CDRWithAPIOpts, reply *string) error {
- return dS.dS.CDRsV1ProcessCDR(args, reply)
+func (dS *DispatcherSCDRsV1) ProcessCDR(ctx *context.Context, args *engine.CDRWithAPIOpts, reply *string) error {
+ return dS.dS.CDRsV1ProcessCDR(ctx, args, reply)
}
func NewDispatcherSServiceManagerV1(dps *dispatchers.DispatcherService) *DispatcherSServiceManagerV1 {
@@ -853,17 +854,17 @@ type DispatcherSServiceManagerV1 struct {
}
// Ping used to detreminate if component is active
-func (dS *DispatcherSServiceManagerV1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.ServiceManagerV1Ping(args, reply)
+func (dS *DispatcherSServiceManagerV1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.ServiceManagerV1Ping(ctx, args, reply)
}
-func (dS *DispatcherSServiceManagerV1) StartService(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error {
- return dS.dS.ServiceManagerV1StartService(*args, reply)
+func (dS *DispatcherSServiceManagerV1) StartService(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error {
+ return dS.dS.ServiceManagerV1StartService(ctx, *args, reply)
}
-func (dS *DispatcherSServiceManagerV1) StopService(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error {
- return dS.dS.ServiceManagerV1StopService(*args, reply)
+func (dS *DispatcherSServiceManagerV1) StopService(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error {
+ return dS.dS.ServiceManagerV1StopService(ctx, *args, reply)
}
-func (dS *DispatcherSServiceManagerV1) ServiceStatus(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error {
- return dS.dS.ServiceManagerV1ServiceStatus(*args, reply)
+func (dS *DispatcherSServiceManagerV1) ServiceStatus(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) error {
+ return dS.dS.ServiceManagerV1ServiceStatus(ctx, *args, reply)
}
func NewDispatcherConfigSv1(dps *dispatchers.DispatcherService) *DispatcherConfigSv1 {
@@ -875,23 +876,23 @@ type DispatcherConfigSv1 struct {
dS *dispatchers.DispatcherService
}
-func (dS *DispatcherConfigSv1) GetConfig(args *config.SectionWithAPIOpts, reply *map[string]any) (err error) {
- return dS.dS.ConfigSv1GetConfig(args, reply)
+func (dS *DispatcherConfigSv1) GetConfig(ctx *context.Context, args *config.SectionWithAPIOpts, reply *map[string]any) (err error) {
+ return dS.dS.ConfigSv1GetConfig(ctx, args, reply)
}
-func (dS *DispatcherConfigSv1) ReloadConfig(args *config.ReloadArgs, reply *string) (err error) {
- return dS.dS.ConfigSv1ReloadConfig(args, reply)
+func (dS *DispatcherConfigSv1) ReloadConfig(ctx *context.Context, args *config.ReloadArgs, reply *string) (err error) {
+ return dS.dS.ConfigSv1ReloadConfig(ctx, args, reply)
}
-func (dS *DispatcherConfigSv1) SetConfig(args *config.SetConfigArgs, reply *string) (err error) {
- return dS.dS.ConfigSv1SetConfig(args, reply)
+func (dS *DispatcherConfigSv1) SetConfig(ctx *context.Context, args *config.SetConfigArgs, reply *string) (err error) {
+ return dS.dS.ConfigSv1SetConfig(ctx, args, reply)
}
-func (dS *DispatcherConfigSv1) SetConfigFromJSON(args *config.SetConfigFromJSONArgs, reply *string) (err error) {
- return dS.dS.ConfigSv1SetConfigFromJSON(args, reply)
+func (dS *DispatcherConfigSv1) SetConfigFromJSON(ctx *context.Context, args *config.SetConfigFromJSONArgs, reply *string) (err error) {
+ return dS.dS.ConfigSv1SetConfigFromJSON(ctx, args, reply)
}
-func (dS *DispatcherConfigSv1) GetConfigAsJSON(args *config.SectionWithAPIOpts, reply *string) (err error) {
- return dS.dS.ConfigSv1GetConfigAsJSON(args, reply)
+func (dS *DispatcherConfigSv1) GetConfigAsJSON(ctx *context.Context, args *config.SectionWithAPIOpts, reply *string) (err error) {
+ return dS.dS.ConfigSv1GetConfigAsJSON(ctx, args, reply)
}
func NewDispatcherRALsV1(dps *dispatchers.DispatcherService) *DispatcherRALsV1 {
@@ -903,13 +904,13 @@ type DispatcherRALsV1 struct {
dS *dispatchers.DispatcherService
}
-func (dS *DispatcherRALsV1) GetRatingPlansCost(args *utils.RatingPlanCostArg, reply *dispatchers.RatingPlanCost) error {
- return dS.dS.RALsV1GetRatingPlansCost(args, reply)
+func (dS *DispatcherRALsV1) GetRatingPlansCost(ctx *context.Context, args *utils.RatingPlanCostArg, reply *dispatchers.RatingPlanCost) error {
+ return dS.dS.RALsV1GetRatingPlansCost(ctx, args, reply)
}
// Ping used to detreminate if component is active
-func (dS *DispatcherRALsV1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.RALsV1Ping(args, reply)
+func (dS *DispatcherRALsV1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.RALsV1Ping(ctx, args, reply)
}
// DispatcherCoreSv1 exports RPC from CoreSv1
@@ -921,36 +922,36 @@ func NewDispatcherCoreSv1(dps *dispatchers.DispatcherService) *DispatcherCoreSv1
return &DispatcherCoreSv1{dS: dps}
}
-func (dS *DispatcherCoreSv1) Status(args *utils.TenantWithAPIOpts, reply *map[string]any) error {
- return dS.dS.CoreSv1Status(args, reply)
+func (dS *DispatcherCoreSv1) Status(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *map[string]any) error {
+ return dS.dS.CoreSv1Status(ctx, args, reply)
}
-func (dS *DispatcherCoreSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.CoreSv1Ping(args, reply)
+func (dS *DispatcherCoreSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.CoreSv1Ping(ctx, args, reply)
}
-func (dS *DispatcherCoreSv1) Sleep(args *utils.DurationArgs, reply *string) error {
- return dS.dS.CoreSv1Sleep(args, reply)
+func (dS *DispatcherCoreSv1) Sleep(ctx *context.Context, args *utils.DurationArgs, reply *string) error {
+ return dS.dS.CoreSv1Sleep(ctx, args, reply)
}
-func (dS *DispatcherCoreSv1) StartCPUProfiling(args *utils.DirectoryArgs, reply *string) error {
- return dS.dS.CoreSv1StartCPUProfiling(args, reply)
+func (dS *DispatcherCoreSv1) StartCPUProfiling(ctx *context.Context, args *utils.DirectoryArgs, reply *string) error {
+ return dS.dS.CoreSv1StartCPUProfiling(ctx, args, reply)
}
-func (dS *DispatcherCoreSv1) StopCPUProfiling(args *utils.TenantWithAPIOpts, reply *string) error {
- return dS.dS.CoreSv1StopCPUProfiling(args, reply)
+func (dS *DispatcherCoreSv1) StopCPUProfiling(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *string) error {
+ return dS.dS.CoreSv1StopCPUProfiling(ctx, args, reply)
}
-func (dS *DispatcherCoreSv1) StartMemoryProfiling(args *utils.MemoryPrf, reply *string) error {
- return dS.dS.CoreSv1StartMemoryProfiling(args, reply)
+func (dS *DispatcherCoreSv1) StartMemoryProfiling(ctx *context.Context, args *utils.MemoryPrf, reply *string) error {
+ return dS.dS.CoreSv1StartMemoryProfiling(ctx, args, reply)
}
-func (dS *DispatcherCoreSv1) StopMemoryProfiling(args *utils.TenantWithAPIOpts, reply *string) error {
- return dS.dS.CoreSv1StopMemoryProfiling(args, reply)
+func (dS *DispatcherCoreSv1) StopMemoryProfiling(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *string) error {
+ return dS.dS.CoreSv1StopMemoryProfiling(ctx, args, reply)
}
-func (dS *DispatcherCoreSv1) Panic(args *utils.PanicMessageArgs, reply *string) error {
- return dS.dS.CoreSv1Panic(args, reply)
+func (dS *DispatcherCoreSv1) Panic(ctx *context.Context, args *utils.PanicMessageArgs, reply *string) error {
+ return dS.dS.CoreSv1Panic(ctx, args, reply)
}
// DispatcherCoreSv1 exports RPC from CoreSv1
@@ -962,12 +963,12 @@ func NewDispatcherEeSv1(dps *dispatchers.DispatcherService) *DispatcherEeSv1 {
return &DispatcherEeSv1{dS: dps}
}
-func (dS *DispatcherEeSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.EeSv1Ping(args, reply)
+func (dS *DispatcherEeSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.EeSv1Ping(ctx, args, reply)
}
-func (dS *DispatcherEeSv1) ProcessEvent(args *engine.CGREventWithEeIDs, reply *map[string]map[string]any) error {
- return dS.dS.EeSv1ProcessEvent(args, reply)
+func (dS *DispatcherEeSv1) ProcessEvent(ctx *context.Context, args *engine.CGREventWithEeIDs, reply *map[string]map[string]any) error {
+ return dS.dS.EeSv1ProcessEvent(ctx, args, reply)
}
type DispatcherReplicatorSv1 struct {
@@ -979,378 +980,378 @@ func NewDispatcherReplicatorSv1(dps *dispatchers.DispatcherService) *DispatcherR
}
// Ping used to detreminate if component is active
-func (dS *DispatcherReplicatorSv1) Ping(args *utils.CGREvent, reply *string) error {
- return dS.dS.ReplicatorSv1Ping(args, reply)
+func (dS *DispatcherReplicatorSv1) Ping(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return dS.dS.ReplicatorSv1Ping(ctx, args, reply)
}
// GetAccount
-func (dS *DispatcherReplicatorSv1) GetAccount(args *utils.StringWithAPIOpts, reply *engine.Account) error {
- return dS.dS.ReplicatorSv1GetAccount(args, reply)
+func (dS *DispatcherReplicatorSv1) GetAccount(ctx *context.Context, args *utils.StringWithAPIOpts, reply *engine.Account) error {
+ return dS.dS.ReplicatorSv1GetAccount(ctx, args, reply)
}
// GetDestination
-func (dS *DispatcherReplicatorSv1) GetDestination(key *utils.StringWithAPIOpts, reply *engine.Destination) error {
- return dS.dS.ReplicatorSv1GetDestination(key, reply)
+func (dS *DispatcherReplicatorSv1) GetDestination(ctx *context.Context, key *utils.StringWithAPIOpts, reply *engine.Destination) error {
+ return dS.dS.ReplicatorSv1GetDestination(ctx, key, reply)
}
// GetReverseDestination
-func (dS *DispatcherReplicatorSv1) GetReverseDestination(key *utils.StringWithAPIOpts, reply *[]string) error {
- return dS.dS.ReplicatorSv1GetReverseDestination(key, reply)
+func (dS *DispatcherReplicatorSv1) GetReverseDestination(ctx *context.Context, key *utils.StringWithAPIOpts, reply *[]string) error {
+ return dS.dS.ReplicatorSv1GetReverseDestination(ctx, key, reply)
}
// GetStatQueue
-func (dS *DispatcherReplicatorSv1) GetStatQueue(tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) error {
- return dS.dS.ReplicatorSv1GetStatQueue(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetStatQueue(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) error {
+ return dS.dS.ReplicatorSv1GetStatQueue(ctx, tntID, reply)
}
// GetFilter
-func (dS *DispatcherReplicatorSv1) GetFilter(tntID *utils.TenantIDWithAPIOpts, reply *engine.Filter) error {
- return dS.dS.ReplicatorSv1GetFilter(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetFilter(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Filter) error {
+ return dS.dS.ReplicatorSv1GetFilter(ctx, tntID, reply)
}
// GetThreshold
-func (dS *DispatcherReplicatorSv1) GetThreshold(tntID *utils.TenantIDWithAPIOpts, reply *engine.Threshold) error {
- return dS.dS.ReplicatorSv1GetThreshold(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetThreshold(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Threshold) error {
+ return dS.dS.ReplicatorSv1GetThreshold(ctx, tntID, reply)
}
// GetThresholdProfile
-func (dS *DispatcherReplicatorSv1) GetThresholdProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) error {
- return dS.dS.ReplicatorSv1GetThresholdProfile(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetThresholdProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) error {
+ return dS.dS.ReplicatorSv1GetThresholdProfile(ctx, tntID, reply)
}
// GetStatQueueProfile
-func (dS *DispatcherReplicatorSv1) GetStatQueueProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) error {
- return dS.dS.ReplicatorSv1GetStatQueueProfile(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetStatQueueProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) error {
+ return dS.dS.ReplicatorSv1GetStatQueueProfile(ctx, tntID, reply)
}
// GetTiming
-func (dS *DispatcherReplicatorSv1) GetTiming(id *utils.StringWithAPIOpts, reply *utils.TPTiming) error {
- return dS.dS.ReplicatorSv1GetTiming(id, reply)
+func (dS *DispatcherReplicatorSv1) GetTiming(ctx *context.Context, id *utils.StringWithAPIOpts, reply *utils.TPTiming) error {
+ return dS.dS.ReplicatorSv1GetTiming(ctx, id, reply)
}
// GetResource
-func (dS *DispatcherReplicatorSv1) GetResource(tntID *utils.TenantIDWithAPIOpts, reply *engine.Resource) error {
- return dS.dS.ReplicatorSv1GetResource(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetResource(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Resource) error {
+ return dS.dS.ReplicatorSv1GetResource(ctx, tntID, reply)
}
// GetResourceProfile
-func (dS *DispatcherReplicatorSv1) GetResourceProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) error {
- return dS.dS.ReplicatorSv1GetResourceProfile(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetResourceProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) error {
+ return dS.dS.ReplicatorSv1GetResourceProfile(ctx, tntID, reply)
}
// GetActionTriggers
-func (dS *DispatcherReplicatorSv1) GetActionTriggers(id *utils.StringWithAPIOpts, reply *engine.ActionTriggers) error {
- return dS.dS.ReplicatorSv1GetActionTriggers(id, reply)
+func (dS *DispatcherReplicatorSv1) GetActionTriggers(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.ActionTriggers) error {
+ return dS.dS.ReplicatorSv1GetActionTriggers(ctx, id, reply)
}
// GetSharedGroup
-func (dS *DispatcherReplicatorSv1) GetSharedGroup(id *utils.StringWithAPIOpts, reply *engine.SharedGroup) error {
- return dS.dS.ReplicatorSv1GetSharedGroup(id, reply)
+func (dS *DispatcherReplicatorSv1) GetSharedGroup(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.SharedGroup) error {
+ return dS.dS.ReplicatorSv1GetSharedGroup(ctx, id, reply)
}
// GetActions
-func (dS *DispatcherReplicatorSv1) GetActions(id *utils.StringWithAPIOpts, reply *engine.Actions) error {
- return dS.dS.ReplicatorSv1GetActions(id, reply)
+func (dS *DispatcherReplicatorSv1) GetActions(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.Actions) error {
+ return dS.dS.ReplicatorSv1GetActions(ctx, id, reply)
}
// GetActionPlan
-func (dS *DispatcherReplicatorSv1) GetActionPlan(id *utils.StringWithAPIOpts, reply *engine.ActionPlan) error {
- return dS.dS.ReplicatorSv1GetActionPlan(id, reply)
+func (dS *DispatcherReplicatorSv1) GetActionPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.ActionPlan) error {
+ return dS.dS.ReplicatorSv1GetActionPlan(ctx, id, reply)
}
// GetAllActionPlans
-func (dS *DispatcherReplicatorSv1) GetAllActionPlans(args *utils.StringWithAPIOpts, reply *map[string]*engine.ActionPlan) error {
- return dS.dS.ReplicatorSv1GetAllActionPlans(args, reply)
+func (dS *DispatcherReplicatorSv1) GetAllActionPlans(ctx *context.Context, args *utils.StringWithAPIOpts, reply *map[string]*engine.ActionPlan) error {
+ return dS.dS.ReplicatorSv1GetAllActionPlans(ctx, args, reply)
}
// GetAccountActionPlans
-func (dS *DispatcherReplicatorSv1) GetAccountActionPlans(id *utils.StringWithAPIOpts, reply *[]string) error {
- return dS.dS.ReplicatorSv1GetAccountActionPlans(id, reply)
+func (dS *DispatcherReplicatorSv1) GetAccountActionPlans(ctx *context.Context, id *utils.StringWithAPIOpts, reply *[]string) error {
+ return dS.dS.ReplicatorSv1GetAccountActionPlans(ctx, id, reply)
}
// GetRatingPlan
-func (dS *DispatcherReplicatorSv1) GetRatingPlan(id *utils.StringWithAPIOpts, reply *engine.RatingPlan) error {
- return dS.dS.ReplicatorSv1GetRatingPlan(id, reply)
+func (dS *DispatcherReplicatorSv1) GetRatingPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.RatingPlan) error {
+ return dS.dS.ReplicatorSv1GetRatingPlan(ctx, id, reply)
}
// GetRatingProfile
-func (dS *DispatcherReplicatorSv1) GetRatingProfile(id *utils.StringWithAPIOpts, reply *engine.RatingProfile) error {
- return dS.dS.ReplicatorSv1GetRatingProfile(id, reply)
+func (dS *DispatcherReplicatorSv1) GetRatingProfile(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.RatingProfile) error {
+ return dS.dS.ReplicatorSv1GetRatingProfile(ctx, id, reply)
}
// GetRouteProfile
-func (dS *DispatcherReplicatorSv1) GetRouteProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) error {
- return dS.dS.ReplicatorSv1GetRouteProfile(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetRouteProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) error {
+ return dS.dS.ReplicatorSv1GetRouteProfile(ctx, tntID, reply)
}
// GetAttributeProfile
-func (dS *DispatcherReplicatorSv1) GetAttributeProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) error {
- return dS.dS.ReplicatorSv1GetAttributeProfile(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetAttributeProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) error {
+ return dS.dS.ReplicatorSv1GetAttributeProfile(ctx, tntID, reply)
}
// GetChargerProfile
-func (dS *DispatcherReplicatorSv1) GetChargerProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) error {
- return dS.dS.ReplicatorSv1GetChargerProfile(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetChargerProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) error {
+ return dS.dS.ReplicatorSv1GetChargerProfile(ctx, tntID, reply)
}
// GetDispatcherProfile
-func (dS *DispatcherReplicatorSv1) GetDispatcherProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) error {
- return dS.dS.ReplicatorSv1GetDispatcherProfile(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetDispatcherProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) error {
+ return dS.dS.ReplicatorSv1GetDispatcherProfile(ctx, tntID, reply)
}
// GetDispatcherHost
-func (dS *DispatcherReplicatorSv1) GetDispatcherHost(tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) error {
- return dS.dS.ReplicatorSv1GetDispatcherHost(tntID, reply)
+func (dS *DispatcherReplicatorSv1) GetDispatcherHost(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) error {
+ return dS.dS.ReplicatorSv1GetDispatcherHost(ctx, tntID, reply)
}
// GetItemLoadIDs
-func (dS *DispatcherReplicatorSv1) GetItemLoadIDs(itemID *utils.StringWithAPIOpts, reply *map[string]int64) error {
- return dS.dS.ReplicatorSv1GetItemLoadIDs(itemID, reply)
+func (dS *DispatcherReplicatorSv1) GetItemLoadIDs(ctx *context.Context, itemID *utils.StringWithAPIOpts, reply *map[string]int64) error {
+ return dS.dS.ReplicatorSv1GetItemLoadIDs(ctx, itemID, reply)
}
//finished all the above
// SetThresholdProfile
-func (dS *DispatcherReplicatorSv1) SetThresholdProfile(args *engine.ThresholdProfileWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetThresholdProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) SetThresholdProfile(ctx *context.Context, args *engine.ThresholdProfileWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetThresholdProfile(ctx, args, reply)
}
// SetThreshold
-func (dS *DispatcherReplicatorSv1) SetThreshold(args *engine.ThresholdWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetThreshold(args, reply)
+func (dS *DispatcherReplicatorSv1) SetThreshold(ctx *context.Context, args *engine.ThresholdWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetThreshold(ctx, args, reply)
}
// SetDestination
-func (dS *DispatcherReplicatorSv1) SetDestination(args *engine.DestinationWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetDestination(args, reply)
+func (dS *DispatcherReplicatorSv1) SetDestination(ctx *context.Context, args *engine.DestinationWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetDestination(ctx, args, reply)
}
// SetAccount
-func (dS *DispatcherReplicatorSv1) SetAccount(args *engine.AccountWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetAccount(args, reply)
+func (dS *DispatcherReplicatorSv1) SetAccount(ctx *context.Context, args *engine.AccountWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetAccount(ctx, args, reply)
}
// SetReverseDestination
-func (dS *DispatcherReplicatorSv1) SetReverseDestination(args *engine.DestinationWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetReverseDestination(args, reply)
+func (dS *DispatcherReplicatorSv1) SetReverseDestination(ctx *context.Context, args *engine.DestinationWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetReverseDestination(ctx, args, reply)
}
// SetStatQueue
-func (dS *DispatcherReplicatorSv1) SetStatQueue(args *engine.StatQueueWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetStatQueue(args, reply)
+func (dS *DispatcherReplicatorSv1) SetStatQueue(ctx *context.Context, args *engine.StatQueueWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetStatQueue(ctx, args, reply)
}
// SetFilter
-func (dS *DispatcherReplicatorSv1) SetFilter(args *engine.FilterWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetFilter(args, reply)
+func (dS *DispatcherReplicatorSv1) SetFilter(ctx *context.Context, args *engine.FilterWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetFilter(ctx, args, reply)
}
// SetStatQueueProfile
-func (dS *DispatcherReplicatorSv1) SetStatQueueProfile(args *engine.StatQueueProfileWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetStatQueueProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) SetStatQueueProfile(ctx *context.Context, args *engine.StatQueueProfileWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetStatQueueProfile(ctx, args, reply)
}
// SetTiming
-func (dS *DispatcherReplicatorSv1) SetTiming(args *utils.TPTimingWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetTiming(args, reply)
+func (dS *DispatcherReplicatorSv1) SetTiming(ctx *context.Context, args *utils.TPTimingWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetTiming(ctx, args, reply)
}
// SetResource
-func (dS *DispatcherReplicatorSv1) SetResource(args *engine.ResourceWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetResource(args, reply)
+func (dS *DispatcherReplicatorSv1) SetResource(ctx *context.Context, args *engine.ResourceWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetResource(ctx, args, reply)
}
// SetResourceProfile
-func (dS *DispatcherReplicatorSv1) SetResourceProfile(args *engine.ResourceProfileWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetResourceProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) SetResourceProfile(ctx *context.Context, args *engine.ResourceProfileWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetResourceProfile(ctx, args, reply)
}
// SetActionTriggers
-func (dS *DispatcherReplicatorSv1) SetActionTriggers(args *engine.SetActionTriggersArgWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetActionTriggers(args, reply)
+func (dS *DispatcherReplicatorSv1) SetActionTriggers(ctx *context.Context, args *engine.SetActionTriggersArgWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetActionTriggers(ctx, args, reply)
}
// SetSharedGroup
-func (dS *DispatcherReplicatorSv1) SetSharedGroup(args *engine.SharedGroupWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetSharedGroup(args, reply)
+func (dS *DispatcherReplicatorSv1) SetSharedGroup(ctx *context.Context, args *engine.SharedGroupWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetSharedGroup(ctx, args, reply)
}
// SetActions
-func (dS *DispatcherReplicatorSv1) SetActions(args *engine.SetActionsArgsWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetActions(args, reply)
+func (dS *DispatcherReplicatorSv1) SetActions(ctx *context.Context, args *engine.SetActionsArgsWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetActions(ctx, args, reply)
}
// SetRatingPlan
-func (dS *DispatcherReplicatorSv1) SetRatingPlan(args *engine.RatingPlanWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetRatingPlan(args, reply)
+func (dS *DispatcherReplicatorSv1) SetRatingPlan(ctx *context.Context, args *engine.RatingPlanWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetRatingPlan(ctx, args, reply)
}
// SetRatingProfile
-func (dS *DispatcherReplicatorSv1) SetRatingProfile(args *engine.RatingProfileWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetRatingProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) SetRatingProfile(ctx *context.Context, args *engine.RatingProfileWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetRatingProfile(ctx, args, reply)
}
// SetRouteProfile
-func (dS *DispatcherReplicatorSv1) SetRouteProfile(args *engine.RouteProfileWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetRouteProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) SetRouteProfile(ctx *context.Context, args *engine.RouteProfileWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetRouteProfile(ctx, args, reply)
}
// SetAttributeProfile
-func (dS *DispatcherReplicatorSv1) SetAttributeProfile(args *engine.AttributeProfileWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetAttributeProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) SetAttributeProfile(ctx *context.Context, args *engine.AttributeProfileWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetAttributeProfile(ctx, args, reply)
}
// SetChargerProfile
-func (dS *DispatcherReplicatorSv1) SetChargerProfile(args *engine.ChargerProfileWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetChargerProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) SetChargerProfile(ctx *context.Context, args *engine.ChargerProfileWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetChargerProfile(ctx, args, reply)
}
// SetDispatcherProfile
-func (dS *DispatcherReplicatorSv1) SetDispatcherProfile(args *engine.DispatcherProfileWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetDispatcherProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) SetDispatcherProfile(ctx *context.Context, args *engine.DispatcherProfileWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetDispatcherProfile(ctx, args, reply)
}
// SetActionPlan
-func (dS *DispatcherReplicatorSv1) SetActionPlan(args *engine.SetActionPlanArgWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetActionPlan(args, reply)
+func (dS *DispatcherReplicatorSv1) SetActionPlan(ctx *context.Context, args *engine.SetActionPlanArgWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetActionPlan(ctx, args, reply)
}
// SetAccountActionPlans
-func (dS *DispatcherReplicatorSv1) SetAccountActionPlans(args *engine.SetAccountActionPlansArgWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetAccountActionPlans(args, reply)
+func (dS *DispatcherReplicatorSv1) SetAccountActionPlans(ctx *context.Context, args *engine.SetAccountActionPlansArgWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetAccountActionPlans(ctx, args, reply)
}
// SetDispatcherHost
-func (dS *DispatcherReplicatorSv1) SetDispatcherHost(args *engine.DispatcherHostWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetDispatcherHost(args, reply)
+func (dS *DispatcherReplicatorSv1) SetDispatcherHost(ctx *context.Context, args *engine.DispatcherHostWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetDispatcherHost(ctx, args, reply)
}
// RemoveThreshold
-func (dS *DispatcherReplicatorSv1) RemoveThreshold(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveThreshold(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveThreshold(ctx, args, reply)
}
// SetLoadIDs
-func (dS *DispatcherReplicatorSv1) SetLoadIDs(args *utils.LoadIDsWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1SetLoadIDs(args, reply)
+func (dS *DispatcherReplicatorSv1) SetLoadIDs(ctx *context.Context, args *utils.LoadIDsWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1SetLoadIDs(ctx, args, reply)
}
// RemoveDestination
-func (dS *DispatcherReplicatorSv1) RemoveDestination(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveDestination(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveDestination(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveDestination(ctx, args, reply)
}
// RemoveAccount
-func (dS *DispatcherReplicatorSv1) RemoveAccount(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveAccount(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveAccount(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveAccount(ctx, args, reply)
}
// RemoveStatQueue
-func (dS *DispatcherReplicatorSv1) RemoveStatQueue(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveStatQueue(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveStatQueue(ctx, args, reply)
}
// RemoveFilter
-func (dS *DispatcherReplicatorSv1) RemoveFilter(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveFilter(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveFilter(ctx, args, reply)
}
// RemoveThresholdProfile
-func (dS *DispatcherReplicatorSv1) RemoveThresholdProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveThresholdProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveThresholdProfile(ctx, args, reply)
}
// RemoveStatQueueProfile
-func (dS *DispatcherReplicatorSv1) RemoveStatQueueProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveStatQueueProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveStatQueueProfile(ctx, args, reply)
}
// RemoveTiming
-func (dS *DispatcherReplicatorSv1) RemoveTiming(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveTiming(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveTiming(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveTiming(ctx, args, reply)
}
// RemoveResource
-func (dS *DispatcherReplicatorSv1) RemoveResource(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveResource(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveResource(ctx, args, reply)
}
// RemoveResourceProfile
-func (dS *DispatcherReplicatorSv1) RemoveResourceProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveResourceProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveResourceProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveResourceProfile(ctx, args, reply)
}
// RemoveActionTriggers
-func (dS *DispatcherReplicatorSv1) RemoveActionTriggers(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveActionTriggers(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveActionTriggers(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveActionTriggers(ctx, args, reply)
}
// RemoveSharedGroup
-func (dS *DispatcherReplicatorSv1) RemoveSharedGroup(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveSharedGroup(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveSharedGroup(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveSharedGroup(ctx, args, reply)
}
// RemoveActions
-func (dS *DispatcherReplicatorSv1) RemoveActions(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveActions(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveActions(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveActions(ctx, args, reply)
}
// RemoveActionPlan
-func (dS *DispatcherReplicatorSv1) RemoveActionPlan(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveActionPlan(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveActionPlan(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveActionPlan(ctx, args, reply)
}
// RemAccountActionPlans
-func (dS *DispatcherReplicatorSv1) RemAccountActionPlans(args *engine.RemAccountActionPlansArgsWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemAccountActionPlans(args, reply)
+func (dS *DispatcherReplicatorSv1) RemAccountActionPlans(ctx *context.Context, args *engine.RemAccountActionPlansArgsWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemAccountActionPlans(ctx, args, reply)
}
// RemoveRatingPlan
-func (dS *DispatcherReplicatorSv1) RemoveRatingPlan(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveRatingPlan(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveRatingPlan(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveRatingPlan(ctx, args, reply)
}
// RemoveRatingProfile
-func (dS *DispatcherReplicatorSv1) RemoveRatingProfile(args *utils.StringWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveRatingProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveRatingProfile(ctx *context.Context, args *utils.StringWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveRatingProfile(ctx, args, reply)
}
// RemoveRouteProfile
-func (dS *DispatcherReplicatorSv1) RemoveRouteProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveRouteProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveRouteProfile(ctx, args, reply)
}
// RemoveAttributeProfile
-func (dS *DispatcherReplicatorSv1) RemoveAttributeProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveAttributeProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveAttributeProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveAttributeProfile(ctx, args, reply)
}
// RemoveChargerProfile
-func (dS *DispatcherReplicatorSv1) RemoveChargerProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveChargerProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveChargerProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveChargerProfile(ctx, args, reply)
}
// RemoveDispatcherProfile
-func (dS *DispatcherReplicatorSv1) RemoveDispatcherProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveDispatcherProfile(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveDispatcherProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveDispatcherProfile(ctx, args, reply)
}
// RemoveDispatcherHost
-func (dS *DispatcherReplicatorSv1) RemoveDispatcherHost(args *utils.TenantIDWithAPIOpts, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveDispatcherHost(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveDispatcherHost(ctx, args, reply)
}
// GetIndexes .
-func (dS *DispatcherReplicatorSv1) GetIndexes(args *utils.GetIndexesArg, reply *map[string]utils.StringSet) error {
- return dS.dS.ReplicatorSv1GetIndexes(args, reply)
+func (dS *DispatcherReplicatorSv1) GetIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *map[string]utils.StringSet) error {
+ return dS.dS.ReplicatorSv1GetIndexes(ctx, args, reply)
}
// SetIndexes .
-func (dS *DispatcherReplicatorSv1) SetIndexes(args *utils.SetIndexesArg, reply *string) error {
- return dS.dS.ReplicatorSv1SetIndexes(args, reply)
+func (dS *DispatcherReplicatorSv1) SetIndexes(ctx *context.Context, args *utils.SetIndexesArg, reply *string) error {
+ return dS.dS.ReplicatorSv1SetIndexes(ctx, args, reply)
}
// RemoveIndexes .
-func (dS *DispatcherReplicatorSv1) RemoveIndexes(args *utils.GetIndexesArg, reply *string) error {
- return dS.dS.ReplicatorSv1RemoveIndexes(args, reply)
+func (dS *DispatcherReplicatorSv1) RemoveIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *string) error {
+ return dS.dS.ReplicatorSv1RemoveIndexes(ctx, args, reply)
}
diff --git a/apier/v1/dispatcher_it_test.go b/apier/v1/dispatcher_it_test.go
index dbb580b96..a59f1b281 100644
--- a/apier/v1/dispatcher_it_test.go
+++ b/apier/v1/dispatcher_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"os"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ import (
var (
dispatcherCfgPath string
dispatcherCfg *config.CGRConfig
- dispatcherRPC *rpc.Client
+ dispatcherRPC *birpc.Client
dispatcherProfile *DispatcherWithAPIOpts
dispatcherHost *engine.DispatcherHostWithAPIOpts
dispatcherConfigDIR string //run tests for specific configuration
@@ -152,7 +153,7 @@ func testDispatcherStartCPUProfiling(t *testing.T) {
DirPath: "/tmp",
}
var reply string
- if err := dispatcherRPC.Call(utils.CoreSv1StartCPUProfiling,
+ if err := dispatcherRPC.Call(context.Background(), utils.CoreSv1StartCPUProfiling,
argPath, &reply); err != nil {
t.Error(err)
}
@@ -172,13 +173,13 @@ func testDispatcherSSetDispatcherProfile(t *testing.T) {
}
expErr := "SERVER_ERROR: broken reference to filter: <*wrong:inline> for item with ID: cgrates.org:Dsp1"
- if err := dispatcherRPC.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile,
&reply); err == nil || err.Error() != expErr {
t.Fatalf("Expected error: %q, received: %v", expErr, err)
}
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
@@ -186,7 +187,7 @@ func testDispatcherSSetDispatcherProfile(t *testing.T) {
dispatcherProfile.FilterIDs = []string{"*string:~*req.Account:1001"}
- if err := dispatcherRPC.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile,
&reply); err != nil {
t.Error(err)
@@ -195,7 +196,7 @@ func testDispatcherSSetDispatcherProfile(t *testing.T) {
}
var dsp *engine.DispatcherProfile
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&dsp); err != nil {
t.Error(err)
@@ -207,13 +208,13 @@ func testDispatcherSSetDispatcherProfile(t *testing.T) {
func testDispatcherSGetDispatcherProfileIDs(t *testing.T) {
var result []string
expected := []string{"Dsp1"}
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfileIDs,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs,
&utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else if len(result) != len(expected) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfileIDs,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs,
&utils.PaginatorWithTenant{Tenant: dispatcherProfile.Tenant}, &result); err != nil {
t.Error(err)
} else if len(result) != len(expected) {
@@ -233,7 +234,7 @@ func testDispatcherSUpdateDispatcherProfile(t *testing.T) {
&engine.DispatcherHostProfile{ID: "HOST1", Weight: 20.0},
&engine.DispatcherHostProfile{ID: "HOST2", Weight: 10.0},
}
- if err := dispatcherRPC.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -241,7 +242,7 @@ func testDispatcherSUpdateDispatcherProfile(t *testing.T) {
}
var dsp *engine.DispatcherProfile
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&dsp); err != nil {
t.Error(err)
@@ -255,7 +256,7 @@ func testDispatcherSGetDispatcherProfileCache(t *testing.T) {
t.SkipNow()
}
var rcvStats map[string]*ltcache.CacheStats
- if err := dispatcherRPC.Call(utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
+ if err := dispatcherRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
t.Error(err)
} else if rcvStats[utils.CacheDispatcherProfiles].Items != 1 {
t.Errorf("Expecting: 1 DispatcherProfiles, received: %+v", rcvStats[utils.CacheDispatcherProfiles])
@@ -264,7 +265,7 @@ func testDispatcherSGetDispatcherProfileCache(t *testing.T) {
func testDispatcherSRemDispatcherProfile(t *testing.T) {
var result string
- if err := dispatcherRPC.Call(utils.APIerSv1RemoveDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}},
&result); err != nil {
t.Error(err)
@@ -273,13 +274,13 @@ func testDispatcherSRemDispatcherProfile(t *testing.T) {
}
var dsp *engine.DispatcherProfile
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&dsp); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
}
- if err := dispatcherRPC.Call(utils.APIerSv1RemoveDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}},
&result); err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Errorf("Expected error: %v received: %v", utils.ErrDSPProfileNotFound, err)
@@ -288,7 +289,7 @@ func testDispatcherSRemDispatcherProfile(t *testing.T) {
func testDispatcherSSetDispatcherHost(t *testing.T) {
var reply string
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Error(err)
@@ -304,7 +305,7 @@ func testDispatcherSSetDispatcherHost(t *testing.T) {
},
}
- if err := dispatcherRPC.Call(utils.APIerSv1SetDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost,
dispatcherHost,
&reply); err != nil {
t.Error(err)
@@ -313,7 +314,7 @@ func testDispatcherSSetDispatcherHost(t *testing.T) {
}
var dsp *engine.DispatcherHost
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"},
&dsp); err != nil {
t.Error(err)
@@ -325,13 +326,13 @@ func testDispatcherSSetDispatcherHost(t *testing.T) {
func testDispatcherSGetDispatcherHostIDs(t *testing.T) {
var result []string
expected := []string{"DspHst1"}
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHostIDs,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs,
&utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else if len(result) != len(expected) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHostIDs,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs,
&utils.PaginatorWithTenant{Tenant: dispatcherHost.Tenant}, &result); err != nil {
t.Error(err)
} else if len(result) != len(expected) {
@@ -347,7 +348,7 @@ func testDispatcherSUpdateDispatcherHost(t *testing.T) {
Transport: utils.MetaGOB,
TLS: false,
}
- if err := dispatcherRPC.Call(utils.APIerSv1SetDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost,
dispatcherHost, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -355,7 +356,7 @@ func testDispatcherSUpdateDispatcherHost(t *testing.T) {
}
var dsp *engine.DispatcherHost
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"},
&dsp); err != nil {
t.Error(err)
@@ -369,7 +370,7 @@ func testDispatcherSGetDispatcherHostCache(t *testing.T) {
t.SkipNow()
}
var rcvStats map[string]*ltcache.CacheStats
- if err := dispatcherRPC.Call(utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
+ if err := dispatcherRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, &utils.AttrCacheIDsWithAPIOpts{}, &rcvStats); err != nil {
t.Error(err)
} else if rcvStats[utils.CacheDispatcherHosts].Items != 0 {
t.Errorf("Expecting: 0 DispatcherProfiles, received: %+v", rcvStats[utils.CacheDispatcherHosts])
@@ -378,7 +379,7 @@ func testDispatcherSGetDispatcherHostCache(t *testing.T) {
func testDispatcherSRemDispatcherHost(t *testing.T) {
var result string
- if err := dispatcherRPC.Call(utils.APIerSv1RemoveDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherHost,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"}},
&result); err != nil {
t.Error(err)
@@ -387,13 +388,13 @@ func testDispatcherSRemDispatcherHost(t *testing.T) {
}
var dsp *engine.DispatcherHost
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"},
&dsp); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Error(err)
}
- if err := dispatcherRPC.Call(utils.APIerSv1RemoveDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherHost,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"}},
&result); err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Errorf("Expected error: %v received: %v", utils.ErrDSPHostNotFound, err)
@@ -403,7 +404,7 @@ func testDispatcherSRemDispatcherHost(t *testing.T) {
func testV1DispatcherStopCPUProfiling(t *testing.T) {
argPath := "/tmp/cpu.prof"
var reply string
- if err := dispatcherRPC.Call(utils.CoreSv1StopCPUProfiling,
+ if err := dispatcherRPC.Call(context.Background(), utils.CoreSv1StopCPUProfiling,
new(utils.DirectoryArgs), &reply); err != nil {
t.Error(err)
}
@@ -443,14 +444,14 @@ func testDispatcherSSetDispatcherProfileWithoutTenant(t *testing.T) {
},
}
var reply string
- if err := dispatcherRPC.Call(utils.APIerSv1SetDispatcherProfile, dispatcherProfile, &reply); err != nil {
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, dispatcherProfile, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
dispatcherProfile.DispatcherProfile.Tenant = "cgrates.org"
var result *engine.DispatcherProfile
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{ID: "Dsp1"},
&result); err != nil {
t.Error(err)
@@ -461,7 +462,7 @@ func testDispatcherSSetDispatcherProfileWithoutTenant(t *testing.T) {
func testDispatcherSRemDispatcherProfileWithoutTenant(t *testing.T) {
var reply string
- if err := dispatcherRPC.Call(utils.APIerSv1RemoveDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "Dsp1"}},
&reply); err != nil {
t.Error(err)
@@ -469,7 +470,7 @@ func testDispatcherSRemDispatcherProfileWithoutTenant(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
var result *engine.DispatcherProfile
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{ID: "Dsp1"},
&result); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
@@ -486,14 +487,14 @@ func testDispatcherSSetDispatcherHostWithoutTenant(t *testing.T) {
},
}
var reply string
- if err := dispatcherRPC.Call(utils.APIerSv1SetDispatcherHost, dispatcherHost, &reply); err != nil {
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost, dispatcherHost, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
dispatcherHost.DispatcherHost.Tenant = "cgrates.org"
var result *engine.DispatcherHost
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{ID: "DspHst7"},
&result); err != nil {
t.Error(err)
@@ -504,7 +505,7 @@ func testDispatcherSSetDispatcherHostWithoutTenant(t *testing.T) {
func testDispatcherSRemDispatcherHostWithoutTenant(t *testing.T) {
var reply string
- if err := dispatcherRPC.Call(utils.APIerSv1RemoveDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherHost,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "DspHst7"}},
&reply); err != nil {
t.Error(err)
@@ -512,7 +513,7 @@ func testDispatcherSRemDispatcherHostWithoutTenant(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
var result *engine.DispatcherHost
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{ID: "DspHst7"},
&result); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Error(err)
@@ -521,7 +522,7 @@ func testDispatcherSRemDispatcherHostWithoutTenant(t *testing.T) {
func testDispatcherSCacheTestGetNotFound(t *testing.T) {
var suplsReply *engine.DispatcherProfile
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{
Tenant: "cgrates.org",
ID: "DISPATCHER_CACHE",
@@ -532,7 +533,7 @@ func testDispatcherSCacheTestGetNotFound(t *testing.T) {
func testDispatcherSCacheTestGetFound(t *testing.T) {
var suplsReply *engine.DispatcherProfile
- if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{
Tenant: "cgrates.org",
ID: "DISPATCHER_CACHE",
@@ -553,7 +554,7 @@ func testDispatcherSCacheTestSet(t *testing.T) {
utils.CacheOpt: utils.MetaNone,
},
}
- if err := dispatcherRPC.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := dispatcherRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile,
&reply); err != nil {
t.Error(err)
@@ -568,7 +569,7 @@ func testDispatcherSCacheReload(t *testing.T) {
DispatcherProfileIDs: []string{"cgrates.org:DISPATCHER_CACHE"},
}
var reply string
- if err := dispatcherRPC.Call(utils.CacheSv1ReloadCache, cache, &reply); err != nil {
+ if err := dispatcherRPC.Call(context.Background(), utils.CacheSv1ReloadCache, cache, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
diff --git a/apier/v1/dispatchersv1_it_test.go b/apier/v1/dispatchersv1_it_test.go
index 98770d354..3f9608d23 100644
--- a/apier/v1/dispatchersv1_it_test.go
+++ b/apier/v1/dispatchersv1_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"os/exec"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
dspCfgPath string
dspCfg *config.CGRConfig
- dspRPC *rpc.Client
+ dspRPC *birpc.Client
sTestsDspDspv1 = []func(t *testing.T){
testDspITLoadConfig,
@@ -173,7 +174,7 @@ func testDspDspv1GetProfileForEvent(t *testing.T) {
expected.Hosts[1].FilterIDs = nil
}
expected.Hosts.Sort()
- if err := dspRPC.Call(utils.DispatcherSv1GetProfilesForEvent, &arg, &reply); err != nil {
+ if err := dspRPC.Call(context.Background(), utils.DispatcherSv1GetProfilesForEvent, &arg, &reply); err != nil {
t.Fatal(err)
} else if len(reply) != 1 {
t.Fatalf("Unexpected number of profiles:%v", len(reply))
@@ -194,7 +195,7 @@ func testDspDspv1GetProfileForEvent(t *testing.T) {
},
}
expected.Hosts.Sort()
- if err := dspRPC.Call(utils.DispatcherSv1GetProfilesForEvent, &arg2, &reply); err != nil {
+ if err := dspRPC.Call(context.Background(), utils.DispatcherSv1GetProfilesForEvent, &arg2, &reply); err != nil {
t.Fatal(err)
} else if len(reply) != 1 {
t.Fatalf("Unexpected number of profiles:%v", len(reply))
@@ -238,7 +239,7 @@ func testDspDspv1GetProfileForEventWithMethod(t *testing.T) {
expected.Hosts[0].FilterIDs = nil
}
expected.Hosts.Sort()
- if err := dspRPC.Call(utils.DispatcherSv1GetProfilesForEvent, &arg, &reply); err != nil {
+ if err := dspRPC.Call(context.Background(), utils.DispatcherSv1GetProfilesForEvent, &arg, &reply); err != nil {
t.Fatal(err)
} else if len(reply) != 1 {
t.Error(utils.ToJSON(reply))
diff --git a/apier/v1/ees.go b/apier/v1/ees.go
index 9ba9b4d41..91a44d0c1 100644
--- a/apier/v1/ees.go
+++ b/apier/v1/ees.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/ees"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -32,13 +33,13 @@ type EeSv1 struct {
eeS *ees.EventExporterS
}
-func (eeSv1 *EeSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (eeSv1 *EeSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
// ProcessEvent triggers exports on EEs side
-func (eeSv1 *EeSv1) ProcessEvent(args *engine.CGREventWithEeIDs,
+func (eeSv1 *EeSv1) ProcessEvent(ctx *context.Context, args *engine.CGREventWithEeIDs,
reply *map[string]map[string]any) error {
- return eeSv1.eeS.V1ProcessEvent(args, reply)
+ return eeSv1.eeS.V1ProcessEvent(ctx, args, reply)
}
diff --git a/apier/v1/ees_it_test.go b/apier/v1/ees_it_test.go
index 03f8899b5..2f7730cff 100644
--- a/apier/v1/ees_it_test.go
+++ b/apier/v1/ees_it_test.go
@@ -22,7 +22,6 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"os"
"path"
"path/filepath"
@@ -30,6 +29,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ import (
var (
eeSCfgPath string
eeSCfg *config.CGRConfig
- eeSRPC *rpc.Client
+ eeSRPC *birpc.Client
eeSConfigDIR string //run tests for specific configuration
sTestsEEs = []func(t *testing.T){
@@ -138,7 +139,7 @@ func testEEsAddCDRs(t *testing.T) {
},
}
var result string
- if err := eeSRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := eeSRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -175,7 +176,7 @@ func testEEsAddCDRs(t *testing.T) {
}
for _, cdr := range storedCdrs {
var reply string
- if err := eeSRPC.Call(utils.CDRsV1ProcessCDR, &engine.CDRWithAPIOpts{CDR: cdr}, &reply); err != nil {
+ if err := eeSRPC.Call(context.Background(), utils.CDRsV1ProcessCDR, &engine.CDRWithAPIOpts{CDR: cdr}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -189,7 +190,7 @@ func testEEsExportCDRs(t *testing.T) {
Verbose: true,
}
var rply map[string]any
- if err := eeSRPC.Call(utils.APIerSv1ExportCDRs, &attr, &rply); err != nil {
+ if err := eeSRPC.Call(context.Background(), utils.APIerSv1ExportCDRs, &attr, &rply); err != nil {
t.Error("Unexpected error: ", err.Error())
}
if len(rply) != 1 {
@@ -252,7 +253,7 @@ func testEEsExportCDRsMultipleExporters(t *testing.T) {
Verbose: true,
}
var rply map[string]any
- if err := eeSRPC.Call(utils.APIerSv1ExportCDRs, &attr, &rply); err != nil {
+ if err := eeSRPC.Call(context.Background(), utils.APIerSv1ExportCDRs, &attr, &rply); err != nil {
t.Error("Unexpected error: ", err.Error())
}
if len(rply) != 2 {
diff --git a/apier/v1/filter_indexes.go b/apier/v1/filter_indexes.go
index 6e87ae6b0..4d8982058 100644
--- a/apier/v1/filter_indexes.go
+++ b/apier/v1/filter_indexes.go
@@ -22,6 +22,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -44,7 +45,7 @@ type AttrRemFilterIndexes struct {
APIOpts map[string]any
}
-func (apierSv1 *APIerSv1) RemoveFilterIndexes(arg *AttrRemFilterIndexes, reply *string) (err error) {
+func (apierSv1 *APIerSv1) RemoveFilterIndexes(ctx *context.Context, arg *AttrRemFilterIndexes, reply *string) (err error) {
if missing := utils.MissingStructFields(arg, []string{"ItemType"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -92,7 +93,7 @@ func (apierSv1 *APIerSv1) RemoveFilterIndexes(arg *AttrRemFilterIndexes, reply *
return
}
-func (apierSv1 *APIerSv1) GetFilterIndexes(arg *AttrGetFilterIndexes, reply *[]string) (err error) {
+func (apierSv1 *APIerSv1) GetFilterIndexes(ctx *context.Context, arg *AttrGetFilterIndexes, reply *[]string) (err error) {
var indexes map[string]utils.StringSet
var indexedSlice []string
indexesFilter := make(map[string]utils.StringSet)
@@ -217,7 +218,7 @@ func (apierSv1 *APIerSv1) GetFilterIndexes(arg *AttrGetFilterIndexes, reply *[]s
}
// ComputeFilterIndexes selects which index filters to recompute
-func (apierSv1 *APIerSv1) ComputeFilterIndexes(args *utils.ArgsComputeFilterIndexes, reply *string) (err error) {
+func (apierSv1 *APIerSv1) ComputeFilterIndexes(ctx *context.Context, args *utils.ArgsComputeFilterIndexes, reply *string) (err error) {
transactionID := utils.GenUUID()
tnt := args.Tenant
if tnt == utils.EmptyString {
@@ -433,7 +434,7 @@ func (apierSv1 *APIerSv1) ComputeFilterIndexes(args *utils.ArgsComputeFilterInde
}
// ComputeFilterIndexIDs computes specific filter indexes
-func (apierSv1 *APIerSv1) ComputeFilterIndexIDs(args *utils.ArgsComputeFilterIndexIDs, reply *string) (err error) {
+func (apierSv1 *APIerSv1) ComputeFilterIndexIDs(ctx *context.Context, args *utils.ArgsComputeFilterIndexIDs, reply *string) (err error) {
transactionID := utils.NonTransactional
tnt := args.Tenant
if tnt == utils.EmptyString {
@@ -595,7 +596,7 @@ func (apierSv1 *APIerSv1) ComputeFilterIndexIDs(args *utils.ArgsComputeFilterInd
return nil
}
-func (apierSv1 *APIerSv1) GetAccountActionPlansIndexHealth(args *engine.IndexHealthArgsWith2Ch, reply *engine.AccountActionPlanIHReply) error {
+func (apierSv1 *APIerSv1) GetAccountActionPlansIndexHealth(ctx *context.Context, args *engine.IndexHealthArgsWith2Ch, reply *engine.AccountActionPlanIHReply) error {
rp, err := engine.GetAccountActionPlansIndexHealth(apierSv1.DataManager, args.ObjectCacheLimit, args.IndexCacheLimit,
args.ObjectCacheTTL, args.IndexCacheTTL,
args.ObjectCacheStaticTTL, args.IndexCacheStaticTTL)
@@ -606,7 +607,7 @@ func (apierSv1 *APIerSv1) GetAccountActionPlansIndexHealth(args *engine.IndexHea
return nil
}
-func (apierSv1 *APIerSv1) GetReverseDestinationsIndexHealth(args *engine.IndexHealthArgsWith2Ch, reply *engine.ReverseDestinationsIHReply) error {
+func (apierSv1 *APIerSv1) GetReverseDestinationsIndexHealth(ctx *context.Context, args *engine.IndexHealthArgsWith2Ch, reply *engine.ReverseDestinationsIHReply) error {
rp, err := engine.GetReverseDestinationsIndexHealth(apierSv1.DataManager, args.ObjectCacheLimit, args.IndexCacheLimit,
args.ObjectCacheTTL, args.IndexCacheTTL,
args.ObjectCacheStaticTTL, args.IndexCacheStaticTTL)
@@ -617,7 +618,7 @@ func (apierSv1 *APIerSv1) GetReverseDestinationsIndexHealth(args *engine.IndexHe
return nil
}
-func (apierSv1 *APIerSv1) GetReverseFilterHealth(args *engine.IndexHealthArgsWith3Ch, reply *map[string]*engine.ReverseFilterIHReply) (err error) {
+func (apierSv1 *APIerSv1) GetReverseFilterHealth(ctx *context.Context, args *engine.IndexHealthArgsWith3Ch, reply *map[string]*engine.ReverseFilterIHReply) (err error) {
objCaches := make(map[string]*ltcache.Cache)
for indxType := range utils.CacheIndexesToPrefix {
objCaches[indxType] = ltcache.NewCache(-1, 0, false, nil)
@@ -630,7 +631,7 @@ func (apierSv1 *APIerSv1) GetReverseFilterHealth(args *engine.IndexHealthArgsWit
return
}
-func (apierSv1 *APIerSv1) GetThresholdsIndexesHealth(args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
+func (apierSv1 *APIerSv1) GetThresholdsIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
rp, err := engine.GetFltrIdxHealth(apierSv1.DataManager,
ltcache.NewCache(args.FilterCacheLimit, args.FilterCacheTTL, args.FilterCacheStaticTTL, nil),
ltcache.NewCache(args.IndexCacheLimit, args.IndexCacheTTL, args.IndexCacheStaticTTL, nil),
@@ -644,7 +645,7 @@ func (apierSv1 *APIerSv1) GetThresholdsIndexesHealth(args *engine.IndexHealthArg
return nil
}
-func (apierSv1 *APIerSv1) GetResourcesIndexesHealth(args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
+func (apierSv1 *APIerSv1) GetResourcesIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
rp, err := engine.GetFltrIdxHealth(apierSv1.DataManager,
ltcache.NewCache(args.FilterCacheLimit, args.FilterCacheTTL, args.FilterCacheStaticTTL, nil),
ltcache.NewCache(args.IndexCacheLimit, args.IndexCacheTTL, args.IndexCacheStaticTTL, nil),
@@ -658,7 +659,7 @@ func (apierSv1 *APIerSv1) GetResourcesIndexesHealth(args *engine.IndexHealthArgs
return nil
}
-func (apierSv1 *APIerSv1) GetStatsIndexesHealth(args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
+func (apierSv1 *APIerSv1) GetStatsIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
rp, err := engine.GetFltrIdxHealth(apierSv1.DataManager,
ltcache.NewCache(args.FilterCacheLimit, args.FilterCacheTTL, args.FilterCacheStaticTTL, nil),
ltcache.NewCache(args.IndexCacheLimit, args.IndexCacheTTL, args.IndexCacheStaticTTL, nil),
@@ -672,7 +673,7 @@ func (apierSv1 *APIerSv1) GetStatsIndexesHealth(args *engine.IndexHealthArgsWith
return nil
}
-func (apierSv1 *APIerSv1) GetRoutesIndexesHealth(args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
+func (apierSv1 *APIerSv1) GetRoutesIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
rp, err := engine.GetFltrIdxHealth(apierSv1.DataManager,
ltcache.NewCache(args.FilterCacheLimit, args.FilterCacheTTL, args.FilterCacheStaticTTL, nil),
ltcache.NewCache(args.IndexCacheLimit, args.IndexCacheTTL, args.IndexCacheStaticTTL, nil),
@@ -686,7 +687,7 @@ func (apierSv1 *APIerSv1) GetRoutesIndexesHealth(args *engine.IndexHealthArgsWit
return nil
}
-func (apierSv1 *APIerSv1) GetAttributesIndexesHealth(args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
+func (apierSv1 *APIerSv1) GetAttributesIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
rp, err := engine.GetFltrIdxHealth(apierSv1.DataManager,
ltcache.NewCache(args.FilterCacheLimit, args.FilterCacheTTL, args.FilterCacheStaticTTL, nil),
ltcache.NewCache(args.IndexCacheLimit, args.IndexCacheTTL, args.IndexCacheStaticTTL, nil),
@@ -700,7 +701,7 @@ func (apierSv1 *APIerSv1) GetAttributesIndexesHealth(args *engine.IndexHealthArg
return nil
}
-func (apierSv1 *APIerSv1) GetChargersIndexesHealth(args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
+func (apierSv1 *APIerSv1) GetChargersIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
rp, err := engine.GetFltrIdxHealth(apierSv1.DataManager,
ltcache.NewCache(args.FilterCacheLimit, args.FilterCacheTTL, args.FilterCacheStaticTTL, nil),
ltcache.NewCache(args.IndexCacheLimit, args.IndexCacheTTL, args.IndexCacheStaticTTL, nil),
@@ -714,7 +715,7 @@ func (apierSv1 *APIerSv1) GetChargersIndexesHealth(args *engine.IndexHealthArgsW
return nil
}
-func (apierSv1 *APIerSv1) GetDispatchersIndexesHealth(args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
+func (apierSv1 *APIerSv1) GetDispatchersIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgsWith3Ch, reply *engine.FilterIHReply) error {
rp, err := engine.GetFltrIdxHealth(apierSv1.DataManager,
ltcache.NewCache(args.FilterCacheLimit, args.FilterCacheTTL, args.FilterCacheStaticTTL, nil),
ltcache.NewCache(args.IndexCacheLimit, args.IndexCacheTTL, args.IndexCacheStaticTTL, nil),
diff --git a/apier/v1/filter_indexes_health_it_test.go b/apier/v1/filter_indexes_health_it_test.go
index e64372b6c..76d3eb6ea 100644
--- a/apier/v1/filter_indexes_health_it_test.go
+++ b/apier/v1/filter_indexes_health_it_test.go
@@ -21,20 +21,21 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
var (
- tFIdxHRpc *rpc.Client
+ tFIdxHRpc *birpc.Client
tSv1InternalRestart bool
sTestsFilterIndexesSHealth = []func(t *testing.T){
@@ -132,7 +133,7 @@ func testV1FIdxHRpcConn(t *testing.T) {
func testV1FIdxHLoadFromFolderTutorial2(t *testing.T) {
var reply string
- if err := tFIdxHRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := tFIdxHRpc.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error(err)
@@ -140,7 +141,7 @@ func testV1FIdxHLoadFromFolderTutorial2(t *testing.T) {
t.Error("Reply: ", reply)
}
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial2")}
- if err := tFIdxHRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -148,7 +149,7 @@ func testV1FIdxHLoadFromFolderTutorial2(t *testing.T) {
func testV1FIdxHAccountActionPlansHealth(t *testing.T) {
var reply engine.AccountActionPlanIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetAccountActionPlansIndexHealth, engine.IndexHealthArgsWith2Ch{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetAccountActionPlansIndexHealth, engine.IndexHealthArgsWith2Ch{
IndexCacheLimit: -1,
ObjectCacheLimit: -1,
}, &reply); err != nil {
@@ -165,7 +166,7 @@ func testV1FIdxHAccountActionPlansHealth(t *testing.T) {
func testV1FIdxHReverseDestinationHealth(t *testing.T) {
var reply engine.ReverseDestinationsIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetReverseDestinationsIndexHealth, engine.IndexHealthArgsWith2Ch{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetReverseDestinationsIndexHealth, engine.IndexHealthArgsWith2Ch{
IndexCacheLimit: -1,
ObjectCacheLimit: -1,
}, &reply); err != nil {
@@ -182,7 +183,7 @@ func testV1FIdxHReverseDestinationHealth(t *testing.T) {
func testV1FIdxHLoadFromFolderTutorial(t *testing.T) {
var reply string
- if err := tFIdxHRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := tFIdxHRpc.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error(err)
@@ -190,7 +191,7 @@ func testV1FIdxHLoadFromFolderTutorial(t *testing.T) {
t.Error("Reply: ", reply)
}
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := tFIdxHRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -201,7 +202,7 @@ func testV1FIdxGetReverseFilterHealth(t *testing.T) {
args := &engine.IndexHealthArgsWith3Ch{}
expRPly := map[string]*engine.ReverseFilterIHReply{}
var rply map[string]*engine.ReverseFilterIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetReverseFilterHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetReverseFilterHealth,
args, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, expRPly) {
@@ -227,7 +228,7 @@ func testV1FIdxGetThresholdsIndexesHealth(t *testing.T) {
}
var rplyok string
- if err := tFIdxHRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &rplyok); err != nil {
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &rplyok); err != nil {
t.Error(err)
} else if rplyok != utils.OK {
t.Error("Unexpected reply returned", rplyok)
@@ -242,7 +243,7 @@ func testV1FIdxGetThresholdsIndexesHealth(t *testing.T) {
"*prefix:*opts.Destination:+554:TEST_PROFILE1",
}
var result []string
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds,
//Tenant: "cgrates.org",
}, &result); err != nil {
@@ -264,7 +265,7 @@ func testV1FIdxGetThresholdsIndexesHealth(t *testing.T) {
MissingFilters: map[string][]string{},
}
var rply *engine.FilterIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetThresholdsIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetThresholdsIndexesHealth,
args, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, expRPly) {
@@ -272,7 +273,7 @@ func testV1FIdxGetThresholdsIndexesHealth(t *testing.T) {
}
// removing a profile + their indexes
- if err := tFIdxHRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
@@ -291,7 +292,7 @@ func testV1FIdxGetThresholdsIndexesHealth(t *testing.T) {
"*prefix:*opts.Destination:+442:TEST_PROFILE1",
"*prefix:*opts.Destination:+554:TEST_PROFILE1",
}
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds,
}, &result); err != nil {
t.Error(err)
@@ -309,7 +310,7 @@ func testV1FIdxGetThresholdsIndexesHealth(t *testing.T) {
BrokenIndexes: map[string][]string{},
MissingFilters: map[string][]string{},
}
- if err := tFIdxHRpc.Call(utils.APIerSv1GetThresholdsIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetThresholdsIndexesHealth,
args, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, expRPly) {
@@ -337,7 +338,7 @@ func testV1FIdxGetResourcesIndexesHealth(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
},
}
- if err := tFIdxHRpc.Call(utils.APIerSv1SetResourceProfile, rlsPrf, &reply); err != nil {
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsPrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -353,7 +354,7 @@ func testV1FIdxGetResourcesIndexesHealth(t *testing.T) {
"*string:*req.Account:1003:ResGroup1",
}
var result []string
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources,
}, &result); err != nil {
t.Error(err)
@@ -374,7 +375,7 @@ func testV1FIdxGetResourcesIndexesHealth(t *testing.T) {
}
args := &engine.IndexHealthArgsWith3Ch{}
var rply *engine.FilterIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetResourcesIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetResourcesIndexesHealth,
args, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, expRPly) {
@@ -382,7 +383,7 @@ func testV1FIdxGetResourcesIndexesHealth(t *testing.T) {
}
// removing a profile + their indexes
- if err := tFIdxHRpc.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
@@ -395,7 +396,7 @@ func testV1FIdxGetResourcesIndexesHealth(t *testing.T) {
}
//as we removed the object, the index specified is removed too, so the health of the indexes is fine
- if err := tFIdxHRpc.Call(utils.APIerSv1GetResourcesIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetResourcesIndexesHealth,
args, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, expRPly) {
@@ -426,7 +427,7 @@ func testV1FIdxGetStatsIndexesHealth(t *testing.T) {
},
}
var rply string
- if err := tFIdxHRpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &rply); err != nil {
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &rply); err != nil {
t.Error(err)
} else if rply != utils.OK {
t.Error("Unexpected reply returned", rply)
@@ -448,7 +449,7 @@ func testV1FIdxGetStatsIndexesHealth(t *testing.T) {
"*string:*req.Destination:1001:Stats2_1",
}
var result []string
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaStats,
}, &result); err != nil {
t.Error(err)
@@ -469,7 +470,7 @@ func testV1FIdxGetStatsIndexesHealth(t *testing.T) {
}
args := &engine.IndexHealthArgsWith3Ch{}
var rplyFl *engine.FilterIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetStatsIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetStatsIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
@@ -477,7 +478,7 @@ func testV1FIdxGetStatsIndexesHealth(t *testing.T) {
}
// removing a profile + their indexes
- if err := tFIdxHRpc.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
@@ -490,7 +491,7 @@ func testV1FIdxGetStatsIndexesHealth(t *testing.T) {
}
//as we removed the object, the index specified is removed too, so the health of the indexes is fine
- if err := tFIdxHRpc.Call(utils.APIerSv1GetStatsIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetStatsIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
@@ -518,7 +519,7 @@ func testV1FIdxGetRoutesIndexesHealth(t *testing.T) {
},
}
var reply string
- if err := tFIdxHRpc.Call(utils.APIerSv1SetRouteProfile, rPrf, &reply); err != nil {
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, rPrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -532,7 +533,7 @@ func testV1FIdxGetRoutesIndexesHealth(t *testing.T) {
"*string:*req.Account:1003:ROUTE_ACNT_1003",
}
var result []string
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaRoutes,
}, &result); err != nil {
t.Error(err)
@@ -553,7 +554,7 @@ func testV1FIdxGetRoutesIndexesHealth(t *testing.T) {
}
args := &engine.IndexHealthArgsWith3Ch{}
var rplyFl *engine.FilterIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetRoutesIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetRoutesIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
@@ -561,7 +562,7 @@ func testV1FIdxGetRoutesIndexesHealth(t *testing.T) {
}
// removing a profile + their indexes
- if err := tFIdxHRpc.Call(utils.APIerSv1RemoveRouteProfile,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1RemoveRouteProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
@@ -574,7 +575,7 @@ func testV1FIdxGetRoutesIndexesHealth(t *testing.T) {
}
//as we removed the object, the index specified is removed too, so the health of the indexes is fine
- if err := tFIdxHRpc.Call(utils.APIerSv1GetRoutesIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetRoutesIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
@@ -596,7 +597,7 @@ func testV1FIdxGetChargersIndexesHealth(t *testing.T) {
},
}
var reply string
- if err := tFIdxHRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -611,7 +612,7 @@ func testV1FIdxGetChargersIndexesHealth(t *testing.T) {
"*none:*any:*any:Raw",
}
var result []string
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaChargers,
}, &result); err != nil {
t.Error(err)
@@ -632,7 +633,7 @@ func testV1FIdxGetChargersIndexesHealth(t *testing.T) {
}
args := &engine.IndexHealthArgsWith3Ch{}
var rplyFl *engine.FilterIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetChargersIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetChargersIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
@@ -640,7 +641,7 @@ func testV1FIdxGetChargersIndexesHealth(t *testing.T) {
}
// removing a profile + their indexes
- if err := tFIdxHRpc.Call(utils.APIerSv1RemoveChargerProfile,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1RemoveChargerProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
@@ -653,7 +654,7 @@ func testV1FIdxGetChargersIndexesHealth(t *testing.T) {
}
//as we removed the object, the index specified is removed too, so the health of the indexes is fine
- if err := tFIdxHRpc.Call(utils.APIerSv1GetRoutesIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetRoutesIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
@@ -671,7 +672,7 @@ func testV1FIdxGetAttributesIndexesHealth(t *testing.T) {
"*string:*req.Account:1003:ATTR_1003_SIMPLEAUTH",
}
var result []string
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Context: "simpleauth",
}, &result); err != nil {
@@ -690,7 +691,7 @@ func testV1FIdxGetAttributesIndexesHealth(t *testing.T) {
"*string:*req.Account:1002:ATTR_1002_SESSIONAUTH",
"*string:*req.Account:1003:ATTR_1003_SESSIONAUTH",
}
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Context: utils.MetaSessionS,
}, &result); err != nil {
@@ -707,7 +708,7 @@ func testV1FIdxGetAttributesIndexesHealth(t *testing.T) {
expIdx = []string{
"*string:*req.SubscriberId:1006:ATTR_ACC_ALIAS",
}
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Context: utils.MetaAny,
}, &result); err != nil {
@@ -727,7 +728,7 @@ func testV1FIdxGetAttributesIndexesHealth(t *testing.T) {
"*string:*req.Account:testDiamInitWithSessionDisconnect:ATTR_TNT_DISC",
"*string:*req.SubscriberId:testDiamItEmulateTerminate:ATTR_ACC_EMULATE_TERMINATE",
}
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.com",
ItemType: utils.MetaAttributes,
Context: utils.MetaAny,
@@ -750,7 +751,7 @@ func testV1FIdxGetAttributesIndexesHealth(t *testing.T) {
}
args := &engine.IndexHealthArgsWith3Ch{}
var rplyFl *engine.FilterIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetAttributesIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetAttributesIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
@@ -761,7 +762,7 @@ func testV1FIdxGetAttributesIndexesHealth(t *testing.T) {
func testV1FIdxHLoadFromFolderDispatchers(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "dispatchers")}
- if err := tFIdxHRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -781,7 +782,7 @@ func testV1FIdxHGetDispatchersIndexesHealth(t *testing.T) {
"*string:*opts.EventType:LoadDispatcher:EVENT7",
}
var result []string
- if err := tFIdxHRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaDispatchers,
Context: utils.MetaAny,
}, &result); err != nil {
@@ -803,7 +804,7 @@ func testV1FIdxHGetDispatchersIndexesHealth(t *testing.T) {
}
args := &engine.IndexHealthArgsWith3Ch{}
var rplyFl *engine.FilterIHReply
- if err := tFIdxHRpc.Call(utils.APIerSv1GetDispatchersIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetDispatchersIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
@@ -812,7 +813,7 @@ func testV1FIdxHGetDispatchersIndexesHealth(t *testing.T) {
var reply string
// removing a profile + their indexes
- if err := tFIdxHRpc.Call(utils.APIerSv1RemoveDispatcherProfile,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1RemoveDispatcherProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
@@ -826,7 +827,7 @@ func testV1FIdxHGetDispatchersIndexesHealth(t *testing.T) {
//as we removed the object, the index specified is removed too, so the health of the indexes is fine
args = &engine.IndexHealthArgsWith3Ch{}
- if err := tFIdxHRpc.Call(utils.APIerSv1GetDispatchersIndexesHealth,
+ if err := tFIdxHRpc.Call(context.Background(), utils.APIerSv1GetDispatchersIndexesHealth,
args, &rplyFl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rplyFl, expRPly) {
diff --git a/apier/v1/filter_indexes_it_test.go b/apier/v1/filter_indexes_it_test.go
index ab0050cd1..bc439a560 100644
--- a/apier/v1/filter_indexes_it_test.go
+++ b/apier/v1/filter_indexes_it_test.go
@@ -21,13 +21,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ const (
)
var (
- tFIdxRpc *rpc.Client
+ tFIdxRpc *birpc.Client
sTestsFilterIndexesSV1 = []func(t *testing.T){
testV1FIdxLoadConfig,
@@ -158,7 +159,7 @@ func testV1FIdxdxInitDataDb(t *testing.T) {
func testV1IndexClearCache(t *testing.T) {
var reply string
- if err := tFIdxRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{}, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{}, &reply); err != nil {
t.Fatal(err)
}
}
@@ -199,12 +200,12 @@ func testV1FIdxSetThresholdProfile(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -222,12 +223,12 @@ func testV1FIdxSetThresholdProfile(t *testing.T) {
Async: true,
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -236,7 +237,7 @@ func testV1FIdxSetThresholdProfile(t *testing.T) {
var indexes []string
expectedIdx := []string{"*string:*req.Account:1001:TEST_PROFILE1"}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -255,7 +256,7 @@ func testV1FIdxSetThresholdProfile(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -264,7 +265,7 @@ func testV1FIdxSetThresholdProfile(t *testing.T) {
expectedIdx = []string{"*string:*req.Account:1006:TEST_PROFILE1",
"*string:*req.Account:1009:TEST_PROFILE1"}
sort.Strings(expectedIdx)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -286,20 +287,20 @@ func testV1FIdxSetThresholdProfile(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -309,7 +310,7 @@ func testV1FIdxSetThresholdProfile(t *testing.T) {
func testV1FIdxComputeThresholdsIndexes(t *testing.T) {
var reply2 string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: tenant,
ThresholdS: true,
@@ -321,7 +322,7 @@ func testV1FIdxComputeThresholdsIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:TEST_PROFILE1"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -350,12 +351,12 @@ func testV1FIdxSetSecondThresholdProfile(t *testing.T) {
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -377,25 +378,25 @@ func testV1FIdxSetSecondThresholdProfile(t *testing.T) {
Async: true,
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, reply)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -405,7 +406,7 @@ func testV1FIdxSetSecondThresholdProfile(t *testing.T) {
func testV1FIdxSecondComputeThresholdsIndexes(t *testing.T) {
thid := []string{"TEST_PROFILE2"}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexIDs,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexIDs,
&utils.ArgsComputeFilterIndexIDs{
Tenant: tenant,
ThresholdIDs: thid,
@@ -417,7 +418,7 @@ func testV1FIdxSecondComputeThresholdsIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1002:TEST_PROFILE2"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -429,7 +430,7 @@ func testV1FIdxSecondComputeThresholdsIndexes(t *testing.T) {
func testV1FIdxThirdComputeThresholdsIndexes(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
ThresholdS: true,
}, &result); err != nil {
@@ -442,7 +443,7 @@ func testV1FIdxThirdComputeThresholdsIndexes(t *testing.T) {
"*string:*req.Account:1002:TEST_PROFILE2"}
sort.Strings(expectedIDX)
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -456,7 +457,7 @@ func testV1FIdxThirdComputeThresholdsIndexes(t *testing.T) {
func testV1FIdxRemoveThresholdProfile(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
ThresholdS: true,
}, &result); err != nil {
@@ -465,31 +466,31 @@ func testV1FIdxRemoveThresholdProfile(t *testing.T) {
if result != utils.OK {
t.Errorf("Error: %+v", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var sqp *engine.ThresholdProfile
- if err := tFIdxRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -511,12 +512,12 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -543,12 +544,12 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) {
MinItems: 1,
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -567,7 +568,7 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -575,7 +576,7 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) {
var indexes []string
expectedIdx := []string{"*string:*req.Destinations:+122:TEST_PROFILE1",
"*string:*req.Destinations:+5543:TEST_PROFILE1"}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaStats, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -599,19 +600,19 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaStats, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaStats, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -620,7 +621,7 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) {
func testV1FIdxComputeStatQueueProfileIndexes(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
StatS: true,
}, &result); err != nil {
@@ -631,7 +632,7 @@ func testV1FIdxComputeStatQueueProfileIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:TEST_PROFILE1"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaStats, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -660,12 +661,12 @@ func testV1FIdxSetSecondStatQueueProfileIndexes(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -696,25 +697,25 @@ func testV1FIdxSetSecondStatQueueProfileIndexes(t *testing.T) {
MinItems: 1,
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
t.Errorf("Expecting: %+v, received: %+v", statConfig.StatQueueProfile, reply)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaStats, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaStats, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -723,7 +724,7 @@ func testV1FIdxSetSecondStatQueueProfileIndexes(t *testing.T) {
func testV1FIdxSecondComputeStatQueueProfileIndexes(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(
+ if err := tFIdxRpc.Call(context.Background(),
utils.APIerSv1ComputeFilterIndexIDs, &utils.ArgsComputeFilterIndexIDs{
Tenant: tenant,
StatIDs: []string{"TEST_PROFILE2"},
@@ -735,7 +736,7 @@ func testV1FIdxSecondComputeStatQueueProfileIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:TEST_PROFILE2"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaStats, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -748,7 +749,7 @@ func testV1FIdxSecondComputeStatQueueProfileIndexes(t *testing.T) {
func testV1FIdxRemoveStatQueueProfile(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
StatS: true,
}, &result); err != nil {
@@ -757,30 +758,30 @@ func testV1FIdxRemoveStatQueueProfile(t *testing.T) {
if result != utils.OK {
t.Errorf("Error: %+v", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &result); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &result); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaStats, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -802,12 +803,12 @@ func testV1FIdxSetResourceProfileIndexes(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetResourceProfile, &utils.TenantID{Tenant: tenant, ID: "RCFG1"},
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile, &utils.TenantID{Tenant: tenant, ID: "RCFG1"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -825,7 +826,7 @@ func testV1FIdxSetResourceProfileIndexes(t *testing.T) {
ThresholdIDs: []string{"Val1", "Val2"},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -843,7 +844,7 @@ func testV1FIdxSetResourceProfileIndexes(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -852,7 +853,7 @@ func testV1FIdxSetResourceProfileIndexes(t *testing.T) {
expectedIdx := []string{"*string:*req.Usage:20m:RCFG1",
"*string:*req.Usage:45m:RCFG1",
"*string:*req.Usage:10s:RCFG1"}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -876,18 +877,18 @@ func testV1FIdxSetResourceProfileIndexes(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -896,7 +897,7 @@ func testV1FIdxSetResourceProfileIndexes(t *testing.T) {
func testV1FIdxComputeResourceProfileIndexes(t *testing.T) {
var reply2 string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
ResourceS: true,
}, &reply2); err != nil {
@@ -907,7 +908,7 @@ func testV1FIdxComputeResourceProfileIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:RCFG1"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -932,12 +933,12 @@ func testV1FIdxSetSecondResourceProfileIndexes(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetResourceProfile, &utils.TenantID{Tenant: tenant, ID: "RCFG2"},
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile, &utils.TenantID{Tenant: tenant, ID: "RCFG2"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -955,19 +956,19 @@ func testV1FIdxSetSecondResourceProfileIndexes(t *testing.T) {
ThresholdIDs: []string{"Val1", "Val2"},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -977,7 +978,7 @@ func testV1FIdxSetSecondResourceProfileIndexes(t *testing.T) {
func testV1FIdxSecondComputeResourceProfileIndexes(t *testing.T) {
rsid := []string{"RCFG2"}
var reply2 string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexIDs,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexIDs,
&utils.ArgsComputeFilterIndexIDs{
Tenant: tenant,
ResourceIDs: rsid,
@@ -989,7 +990,7 @@ func testV1FIdxSecondComputeResourceProfileIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:RCFG2"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -1002,7 +1003,7 @@ func testV1FIdxSecondComputeResourceProfileIndexes(t *testing.T) {
func testV1FIdxRemoveResourceProfile(t *testing.T) {
var resp string
var reply2 string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
ResourceS: true,
}, &reply2); err != nil {
@@ -1011,28 +1012,28 @@ func testV1FIdxRemoveResourceProfile(t *testing.T) {
if reply2 != utils.OK {
t.Errorf("Error: %+v", reply2)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantID{Tenant: tenant, ID: "RCFG1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantID{Tenant: tenant, ID: "RCFG2"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetResourceProfile, &utils.TenantID{Tenant: tenant, ID: "RCFG1"},
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile, &utils.TenantID{Tenant: tenant, ID: "RCFG1"},
&reply2); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetResourceProfile, &utils.TenantID{Tenant: tenant, ID: "RCFG2"},
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile, &utils.TenantID{Tenant: tenant, ID: "RCFG2"},
&reply2); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1056,12 +1057,12 @@ func testV1FIdxSetRouteProfileIndexes(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1087,12 +1088,12 @@ func testV1FIdxSetRouteProfileIndexes(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetRouteProfile, rPrf, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, rPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rPrf.RouteProfile, reply) {
@@ -1111,7 +1112,7 @@ func testV1FIdxSetRouteProfileIndexes(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1119,7 +1120,7 @@ func testV1FIdxSetRouteProfileIndexes(t *testing.T) {
var indexes []string
expectedIdx := []string{"*string:*req.CGRID:qweasdzxc:TEST_PROFILE1",
"*string:*req.CGRID:iopjklbnm:TEST_PROFILE1"}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaRoutes, Tenant: tenant},
&indexes); err != nil {
t.Error(err)
@@ -1145,18 +1146,18 @@ func testV1FIdxSetRouteProfileIndexes(t *testing.T) {
},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaRoutes, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaRoutes, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1165,7 +1166,7 @@ func testV1FIdxSetRouteProfileIndexes(t *testing.T) {
func testV1FIdxComputeRouteProfileIndexes(t *testing.T) {
var reply2 string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
RouteS: true,
}, &reply2); err != nil {
@@ -1176,7 +1177,7 @@ func testV1FIdxComputeRouteProfileIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:TEST_PROFILE1"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaRoutes, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -1205,12 +1206,12 @@ func testV1FIdxSetSecondRouteProfileIndexes(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1235,25 +1236,25 @@ func testV1FIdxSetSecondRouteProfileIndexes(t *testing.T) {
Weight: 10,
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetRouteProfile, rPrf, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, rPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rPrf.RouteProfile, reply) {
t.Errorf("Expecting: %+v, received: %+v", rPrf.RouteProfile, reply)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaRoutes, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaRoutes, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1263,7 +1264,7 @@ func testV1FIdxSetSecondRouteProfileIndexes(t *testing.T) {
func testV1FIdxSecondComputeRouteProfileIndexes(t *testing.T) {
spid := []string{"TEST_PROFILE2"}
var reply2 string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexIDs,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexIDs,
&utils.ArgsComputeFilterIndexIDs{
Tenant: tenant,
RouteIDs: spid,
@@ -1275,7 +1276,7 @@ func testV1FIdxSecondComputeRouteProfileIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:TEST_PROFILE2"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaRoutes, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -1289,7 +1290,7 @@ func testV1FIdxSecondComputeRouteProfileIndexes(t *testing.T) {
func testV1FIdxRemoveRouteProfile(t *testing.T) {
var resp string
var reply2 string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
RouteS: true,
}, &reply2); err != nil {
@@ -1298,30 +1299,30 @@ func testV1FIdxRemoveRouteProfile(t *testing.T) {
if reply2 != utils.OK {
t.Errorf("Error: %+v", reply2)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveRouteProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveRouteProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveRouteProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveRouteProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply2); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE2"}, &reply2); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaRoutes, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil &&
err.Error() != utils.ErrNotFound.Error() {
@@ -1344,12 +1345,12 @@ func testV1FIdxSetAttributeProfileIndexes(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: tenant, ID: "ApierTest"}}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1370,12 +1371,12 @@ func testV1FIdxSetAttributeProfileIndexes(t *testing.T) {
Weight: 20,
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: tenant, ID: "ApierTest"}}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(alsPrf.FilterIDs, reply.FilterIDs) {
@@ -1400,7 +1401,7 @@ func testV1FIdxSetAttributeProfileIndexes(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1409,7 +1410,7 @@ func testV1FIdxSetAttributeProfileIndexes(t *testing.T) {
expectedIdx := []string{"*string:*opts.Subsystems:*chargers:ApierTest",
"*string:*opts.Subsystems:*thresholds:ApierTest",
"*string:*opts.Subsystems:*stats:ApierTest"}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes, Tenant: tenant, FilterType: utils.MetaString,
Context: utils.MetaSessionS},
&indexes); err != nil {
@@ -1434,12 +1435,12 @@ func testV1FIdxSetAttributeProfileIndexes(t *testing.T) {
}},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: tenant,
Context: utils.MetaSessionS}, &result); err != nil {
@@ -1447,7 +1448,7 @@ func testV1FIdxSetAttributeProfileIndexes(t *testing.T) {
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes, Tenant: tenant, FilterType: utils.MetaString,
Context: utils.MetaSessionS}, &indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1456,7 +1457,7 @@ func testV1FIdxSetAttributeProfileIndexes(t *testing.T) {
func testV1FIdxComputeAttributeProfileIndexes(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: tenant,
Context: utils.MetaSessionS,
@@ -1468,7 +1469,7 @@ func testV1FIdxComputeAttributeProfileIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:ApierTest"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: tenant,
FilterType: utils.MetaString,
@@ -1498,12 +1499,12 @@ func testV1FIdxSetSecondAttributeProfileIndexes(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: tenant, ID: "ApierTest2"}}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
@@ -1523,12 +1524,12 @@ func testV1FIdxSetSecondAttributeProfileIndexes(t *testing.T) {
Weight: 20,
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: tenant, ID: "ApierTest2"}}, &reply); err != nil {
t.Error(err)
@@ -1542,7 +1543,7 @@ func testV1FIdxSetSecondAttributeProfileIndexes(t *testing.T) {
} else if !reflect.DeepEqual(alsPrf.ID, reply.ID) {
t.Errorf("Expecting : %+v, received: %+v", alsPrf.ID, reply.ID)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes,
&AttrRemFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: tenant,
@@ -1552,7 +1553,7 @@ func testV1FIdxSetSecondAttributeProfileIndexes(t *testing.T) {
t.Error("Unexpected reply returned", result)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes,
&AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: tenant,
@@ -1565,7 +1566,7 @@ func testV1FIdxSetSecondAttributeProfileIndexes(t *testing.T) {
func testV1FIdxSecondComputeAttributeProfileIndexes(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexIDs,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexIDs,
&utils.ArgsComputeFilterIndexIDs{
Tenant: tenant,
Context: utils.MetaSessionS,
@@ -1577,7 +1578,7 @@ func testV1FIdxSecondComputeAttributeProfileIndexes(t *testing.T) {
}
expectedIDX := []string{"*string:*req.Account:1001:ApierTest2"}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: tenant,
FilterType: utils.MetaString,
@@ -1592,7 +1593,7 @@ func testV1FIdxSecondComputeAttributeProfileIndexes(t *testing.T) {
func testV1FIdxComputeWithAnotherContext(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: tenant,
Context: utils.MetaAny,
@@ -1603,7 +1604,7 @@ func testV1FIdxComputeWithAnotherContext(t *testing.T) {
t.Errorf("Error: %+v", result)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: tenant,
FilterType: utils.MetaString,
@@ -1616,7 +1617,7 @@ func testV1FIdxComputeWithAnotherContext(t *testing.T) {
func testV1FIdxRemoveAttributeProfile(t *testing.T) {
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: tenant,
Context: utils.MetaSessionS,
@@ -1626,14 +1627,14 @@ func testV1FIdxRemoveAttributeProfile(t *testing.T) {
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: tenant,
ID: "ApierTest"}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: tenant,
ID: "ApierTest2"}}, &result); err != nil {
t.Error(err)
@@ -1641,20 +1642,20 @@ func testV1FIdxRemoveAttributeProfile(t *testing.T) {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := tFIdxRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: tenant, ID: "ApierTest2"}}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: tenant, ID: "ApierTest"}}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: tenant,
FilterType: utils.MetaString,
@@ -1716,19 +1717,19 @@ func testV1FIdxSetMultipleAttributesMultipleFilters(t *testing.T) {
}
// First we will set a filter for usage
var reply string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter,
fltr, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply result", reply)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter,
fltr1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply result", reply)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter,
fltr2, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -1786,26 +1787,26 @@ func testV1FIdxSetMultipleAttributesMultipleFilters(t *testing.T) {
},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile,
attrPrf2, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile,
attrPrf3, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile,
attrPrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes,
&AttrRemFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaAny,
@@ -1819,7 +1820,7 @@ func testV1FIdxSetMultipleAttributesMultipleFilters(t *testing.T) {
//not found for both cases
var replyIdx []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes,
&AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaAny,
@@ -1830,7 +1831,7 @@ func testV1FIdxSetMultipleAttributesMultipleFilters(t *testing.T) {
// now we will ComputeFilterIndexes by IDs for *sessions context(but just only 1 profile, not both)
var expIdx []string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexIDs,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexIDs,
&utils.ArgsComputeFilterIndexIDs{
Tenant: "cgrates.org",
Context: utils.MetaAny,
@@ -1849,7 +1850,7 @@ func testV1FIdxSetMultipleAttributesMultipleFilters(t *testing.T) {
"*string:*opts.*context:*chargers:TEST_ATTRIBUTES_new_fltr",
"*string:*opts.*context:*sessions:TEST_ATTRIBUTE3",
"*string:*req.Usage:123s:TEST_ATTRIBUTES_new_fltr"}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes,
&AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaAny,
@@ -1865,7 +1866,7 @@ func testV1FIdxSetMultipleAttributesMultipleFilters(t *testing.T) {
}
// compute for the last profile remain
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexIDs,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexIDs,
&utils.ArgsComputeFilterIndexIDs{Tenant: "cgrates.org",
Context: utils.MetaAny,
AttributeIDs: []string{"TEST_ATTRIBUTES_IT_TEST"},
@@ -1893,7 +1894,7 @@ func testV1FIdxSetMultipleAttributesMultipleFilters(t *testing.T) {
"*string:*req.Usage:123s:TEST_ATTRIBUTES_IT_TEST",
"*string:*req.Usage:123s:TEST_ATTRIBUTES_new_fltr",
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes,
&AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaAny,
@@ -1960,17 +1961,17 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
},
}
var reply string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, fltr, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, fltr, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned")
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, fltr1, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, fltr1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned")
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, fltr2, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, fltr2, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned")
@@ -1992,7 +1993,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetAttributeProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile,
attrPrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -2014,7 +2015,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
sort.Strings(expIdx)
var result []string
// same expecteded indexes for *sessions, *chargers and *thresholds
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaSessionS,
ItemType: utils.MetaAttributes,
@@ -2026,7 +2027,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
t.Errorf("Expected %+v received %+v", utils.ToJSON(expIdx), utils.ToJSON(result))
}
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaChargers,
ItemType: utils.MetaAttributes,
@@ -2038,7 +2039,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
t.Errorf("Expected %+v received %+v", utils.ToJSON(expIdx), utils.ToJSON(result))
}
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaThresholds,
ItemType: utils.MetaAttributes,
@@ -2052,21 +2053,21 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
}
// remove indexes for all contexts
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaSessionS,
ItemType: utils.MetaAttributes,
}, &reply); err != nil {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaChargers,
ItemType: utils.MetaAttributes,
}, &reply); err != nil {
t.Error(err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaThresholds,
ItemType: utils.MetaAttributes,
@@ -2076,7 +2077,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
// compute indexes by with different contexts and check them
// firstly for *sessions context
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaSessionS,
@@ -2100,7 +2101,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
}
sort.Strings(expIdx)
// same expected indexes for *sessions, *chargers and *thresholds
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaSessionS,
ItemType: utils.MetaAttributes,
@@ -2114,7 +2115,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
}
// as for *sessions was computed, for *chargers and *thresaholds should not be computed, so NOT FOUND will be returned
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaChargers,
ItemType: utils.MetaAttributes,
@@ -2122,7 +2123,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaThresholds,
ItemType: utils.MetaAttributes,
@@ -2131,7 +2132,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
}
// noe we will compute for *chargers, and the remain context for compute indexes will remain *thresholds
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaChargers,
@@ -2141,7 +2142,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
}
// check for *sesssions and for *chargers, and for *threshold will be NOT FOUND
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaSessionS,
ItemType: utils.MetaAttributes,
@@ -2153,7 +2154,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
t.Errorf("Expected %+v received %+v", utils.ToJSON(expIdx), utils.ToJSON(result))
}
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaChargers,
ItemType: utils.MetaAttributes,
@@ -2166,7 +2167,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
}
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaThresholds,
ItemType: utils.MetaAttributes,
@@ -2175,7 +2176,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
}
// compute with the remain context *thresholds, so in the end, all indexes will be computed for all contexts
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaThresholds,
@@ -2185,7 +2186,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
}
// check again all the indexes for all contexts
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaSessionS, // *sesssions
ItemType: utils.MetaAttributes,
@@ -2197,7 +2198,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
t.Errorf("Expected %+v received %+v", utils.ToJSON(expIdx), utils.ToJSON(result))
}
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaChargers, // *chargers
ItemType: utils.MetaAttributes,
@@ -2209,7 +2210,7 @@ func testV1FIdxSetAttributeProfileMultipleContextsAndComputes(t *testing.T) {
t.Errorf("Expected %+v received %+v", utils.ToJSON(expIdx), utils.ToJSON(result))
}
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: "cgrates.org",
Context: utils.MetaThresholds, // *thresholds
ItemType: utils.MetaAttributes,
@@ -2239,7 +2240,7 @@ func testV1FIdxPopulateDatabase(t *testing.T) {
"*string:~*req.Account:1002"},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2258,7 +2259,7 @@ func testV1FIdxPopulateDatabase(t *testing.T) {
"*string:~*req.Account:1002"},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2277,7 +2278,7 @@ func testV1FIdxPopulateDatabase(t *testing.T) {
"*string:~*req.Account:1003"},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -2313,7 +2314,7 @@ func testV1FIdxGetFilterIndexes1(t *testing.T) {
"*prefix:*req.Account:10:ResProfile3"}
sort.Strings(expectedIndexes)
var reply []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
t.Error(err)
} else if sort.Strings(reply); !reflect.DeepEqual(expectedIndexes, reply) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(reply))
@@ -2343,7 +2344,7 @@ func testV1FIdxGetFilterIndexes2(t *testing.T) {
"*string:*req.Account:2002:ResProfile2"}
sort.Strings(expectedIndexes)
var reply []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
t.Error(err)
} else if sort.Strings(reply); !reflect.DeepEqual(expectedIndexes, reply) {
t.Errorf("Expecting: %+v, received: %+v", expectedIndexes, reply)
@@ -2366,7 +2367,7 @@ func testV1FIdxGetFilterIndexes3(t *testing.T) {
"*prefix:*req.Destination:1001:ResProfile3"}
sort.Strings(expectedIndexes)
var reply []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
t.Error(err)
} else if sort.Strings(reply); !reflect.DeepEqual(expectedIndexes, reply) {
t.Errorf("Expecting: %+v, received: %+v", expectedIndexes, reply)
@@ -2391,7 +2392,7 @@ func testV1FIdxGetFilterIndexes4(t *testing.T) {
"*string:*req.Account:2002:ResProfile2"}
sort.Strings(expectedIndexes)
var reply []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
t.Error(err)
} else if sort.Strings(reply); !reflect.DeepEqual(expectedIndexes, reply) {
t.Errorf("Expecting: %+v, received: %+v", expectedIndexes, reply)
@@ -2423,7 +2424,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -2440,7 +2441,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile,
&reply); err != nil {
t.Error(err)
@@ -2461,7 +2462,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
}
sort.Strings(expectedIndexes)
var idx []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(len(expectedIndexes), len(idx)) {
t.Errorf("Expecting: %+v, received: %+v", len(expectedIndexes), len(idx))
@@ -2479,7 +2480,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
"*string:*req.Subject:2012:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(len(expectedIndexes), len(idx)) {
t.Errorf("Expecting: %+v, received: %+v", len(expectedIndexes), len(idx))
@@ -2497,7 +2498,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
"*string:*req.Subject:2012:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(expectedIndexes, idx) {
t.Errorf("Expecting: %+v, received: %+v", expectedIndexes, idx)
@@ -2522,7 +2523,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -2539,7 +2540,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
"*string:*req.Usage:1s:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: tenant, Context: utils.MetaAttributes, ItemType: utils.MetaDispatchers,
}, &idx); err != nil {
t.Error(err)
@@ -2558,7 +2559,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
"*string:*req.Usage:1s:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
Tenant: tenant, Context: utils.MetaSessionS, ItemType: utils.MetaDispatchers,
}, &idx); err != nil {
t.Error(err)
@@ -2590,14 +2591,14 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
//remove the indexes for *sessions subsystem
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: tenant,
Context: utils.MetaSessionS}, &reply); err != nil {
@@ -2608,7 +2609,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
//verify if was removed
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, AttrGetFilterIndexes{
Tenant: tenant, Context: utils.MetaSessionS, ItemType: utils.MetaDispatchers,
}, &indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -2626,7 +2627,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
"*string:*req.Subject:2012:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(len(expectedIndexes), len(idx)) {
t.Errorf("Expecting: %+v, received: %+v", len(expectedIndexes), len(idx))
@@ -2637,7 +2638,7 @@ func testV1FIdxSetDispatcherProfile(t *testing.T) {
func testV1FIdxComputeDispatcherProfileIndexes(t *testing.T) {
var result string
//recompute indexes for dispatcherProfile for *sessions subsystem
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: tenant,
Context: utils.MetaSessionS,
@@ -2654,7 +2655,7 @@ func testV1FIdxComputeDispatcherProfileIndexes(t *testing.T) {
}
sort.Strings(expectedIndexes)
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: tenant,
Context: utils.MetaSessionS}, &indexes); err != nil {
@@ -2677,7 +2678,7 @@ func testV1FIdxSetDispatcherProfile2(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile,
&reply); err != nil {
t.Error(err)
@@ -2696,7 +2697,7 @@ func testV1FIdxSetDispatcherProfile2(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile2,
&reply); err != nil {
t.Error(err)
@@ -2718,7 +2719,7 @@ func testV1FIdxSetDispatcherProfile2(t *testing.T) {
}
sort.Strings(expectedIndexes)
var idx []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(expectedIndexes, idx) {
t.Errorf("Expecting: %+v, received: %+v", expectedIndexes, idx)
@@ -2737,13 +2738,13 @@ func testV1FIdxSetDispatcherProfile2(t *testing.T) {
"*string:*req.Subject:2012:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(expectedIndexes, idx) {
t.Errorf("Expecting: %+v, received: %+v", expectedIndexes, idx)
}
//remove the indexes for *sessions subsystem
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: tenant,
Context: utils.MetaSessionS}, &reply); err != nil {
@@ -2754,13 +2755,13 @@ func testV1FIdxSetDispatcherProfile2(t *testing.T) {
//verify if indexes was removed for *sessions
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg,
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
//remove the indexes for *attribute subsystem
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: tenant,
Context: utils.MetaAttributes}, &reply); err != nil {
@@ -2775,7 +2776,7 @@ func testV1FIdxSetDispatcherProfile2(t *testing.T) {
Context: utils.MetaAttributes,
ItemType: utils.MetaDispatchers,
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg,
&idx); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -2784,7 +2785,7 @@ func testV1FIdxSetDispatcherProfile2(t *testing.T) {
func testV1FIdxComputeDispatcherProfileIndexes2(t *testing.T) {
var result string
//recompute indexes for dispatcherProfile for *sessions subsystem
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: tenant,
Context: utils.MetaSessionS,
@@ -2802,7 +2803,7 @@ func testV1FIdxComputeDispatcherProfileIndexes2(t *testing.T) {
}
sort.Strings(expectedIndexes)
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: tenant,
Context: utils.MetaSessionS}, &indexes); err != nil {
@@ -2812,7 +2813,7 @@ func testV1FIdxComputeDispatcherProfileIndexes2(t *testing.T) {
}
//recompute indexes for dispatcherProfile for *attributes subsystem
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: tenant,
Context: utils.MetaAttributes,
@@ -2829,7 +2830,7 @@ func testV1FIdxComputeDispatcherProfileIndexes2(t *testing.T) {
"*string:*req.Subject:2012:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: tenant,
Context: utils.MetaAttributes}, &indexes); err != nil {
@@ -2841,7 +2842,7 @@ func testV1FIdxComputeDispatcherProfileIndexes2(t *testing.T) {
func testV1FIdxClearCache(t *testing.T) {
var reply string
- if err := tFIdxRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := tFIdxRpc.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error(err)
@@ -2875,7 +2876,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -2892,7 +2893,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile,
&reply); err != nil {
t.Error(err)
@@ -2901,7 +2902,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
}
//remove the indexes for *sessions subsystem
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: tenant,
Context: utils.MetaSessionS}, &reply); err != nil {
@@ -2911,7 +2912,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
}
//verify if was removed
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, AttrGetFilterIndexes{
Tenant: tenant, Context: utils.MetaSessionS, ItemType: utils.MetaDispatchers,
}, &indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -2930,13 +2931,13 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
}
var idx []string
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(len(expectedIndexes), len(idx)) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(idx))
}
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes,
&utils.ArgsComputeFilterIndexes{
Tenant: tenant,
Context: utils.MetaSessionS,
@@ -2952,7 +2953,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
"*string:*req.Subject:2012:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: tenant,
Context: utils.MetaSessionS}, &indexes); err != nil {
@@ -2973,7 +2974,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
"*string:*req.Subject:2012:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(len(expectedIndexes), len(idx)) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(idx))
@@ -2990,7 +2991,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile,
&reply); err != nil {
t.Error(err)
@@ -3009,7 +3010,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile2,
&reply); err != nil {
t.Error(err)
@@ -3030,7 +3031,7 @@ func testV1FIdxSetDispatcherComputeIDs(t *testing.T) {
"*string:*req.Subject:2012:DSP_Test1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &idx); err != nil {
t.Error(err)
} else if sort.Strings(idx); !reflect.DeepEqual(expectedIndexes, idx) {
t.Errorf("Expecting: %+v, received: %+v", expectedIndexes, idx)
@@ -3050,7 +3051,7 @@ func testV1FIdxSetResourceComputeIDs(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -3070,27 +3071,27 @@ func testV1FIdxSetResourceComputeIDs(t *testing.T) {
ThresholdIDs: []string{"Val1", "Val2"},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1RemoveFilterIndexes, &AttrRemFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var indexes []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var reply2 string
- if err := tFIdxRpc.Call(utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1ComputeFilterIndexes, &utils.ArgsComputeFilterIndexes{
Tenant: tenant,
ResourceS: true,
}, &reply2); err != nil {
@@ -3100,7 +3101,7 @@ func testV1FIdxSetResourceComputeIDs(t *testing.T) {
t.Errorf("Error: %+v", reply2)
}
expectedIDX := []string{"*string:*req.Account:1001:RCFG1"}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -3122,7 +3123,7 @@ func testV1FIdxSetResourceComputeIDs(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -3142,12 +3143,12 @@ func testV1FIdxSetResourceComputeIDs(t *testing.T) {
ThresholdIDs: []string{"Val1", "Val2"},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -3157,7 +3158,7 @@ func testV1FIdxSetResourceComputeIDs(t *testing.T) {
"*string:*req.Account:1001:RCFG1",
"*string:*req.Account:1001:RCFG2",
}
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaResources, Tenant: tenant, FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -3203,12 +3204,12 @@ func testSetProfilesWithFltrsAndOverwriteThemFIdx(t *testing.T) {
},
}
var result string
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter1, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter1, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter2, &result); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -3260,12 +3261,12 @@ func testSetProfilesWithFltrsAndOverwriteThemFIdx(t *testing.T) {
},
}
var reply string
- if err := tFIdxRpc.Call(utils.APIerSv1SetStatQueueProfile, stat1, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stat1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetStatQueueProfile, stat2, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stat2, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -3283,7 +3284,7 @@ func testSetProfilesWithFltrsAndOverwriteThemFIdx(t *testing.T) {
Async: true,
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl1, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -3309,7 +3310,7 @@ func testSetProfilesWithFltrsAndOverwriteThemFIdx(t *testing.T) {
}
sort.Strings(expectedIndexes)
var replyIDx []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &replyIDx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &replyIDx); err != nil {
t.Error(err)
} else if sort.Strings(replyIDx); !reflect.DeepEqual(expectedIndexes, replyIDx) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(replyIDx))
@@ -3347,12 +3348,12 @@ func testSetProfilesWithFltrsAndOverwriteThemFIdx(t *testing.T) {
},
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter1, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetFilter, filter2, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter2, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -3375,7 +3376,7 @@ func testSetProfilesWithFltrsAndOverwriteThemFIdx(t *testing.T) {
"*prefix:*req.Subject:1002:Stats2",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &replyIDx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &replyIDx); err != nil {
t.Error(err)
} else if sort.Strings(replyIDx); !reflect.DeepEqual(expectedIndexes, replyIDx) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(replyIDx))
@@ -3427,12 +3428,12 @@ func testSetAndChangeFiltersOnProfiles(t *testing.T) {
},
}
var reply string
- if err := tFIdxRpc.Call(utils.APIerSv1SetStatQueueProfile, stat1, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stat1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetStatQueueProfile, stat2, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stat2, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -3452,7 +3453,7 @@ func testSetAndChangeFiltersOnProfiles(t *testing.T) {
},
}
- if err := tFIdxRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl1, &reply); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -3468,7 +3469,7 @@ func testSetAndChangeFiltersOnProfiles(t *testing.T) {
}
sort.Strings(expectedIndexes)
var replyIDx []string
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &replyIDx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &replyIDx); err != nil {
t.Error(err)
} else if sort.Strings(replyIDx); !reflect.DeepEqual(expectedIndexes, replyIDx) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(replyIDx))
@@ -3485,7 +3486,7 @@ func testSetAndChangeFiltersOnProfiles(t *testing.T) {
"*prefix:*req.Subject:1002:TEST_PROFILE1",
}
sort.Strings(expectedIndexes)
- if err := tFIdxRpc.Call(utils.APIerSv1GetFilterIndexes, arg, &replyIDx); err != nil {
+ if err := tFIdxRpc.Call(context.Background(), utils.APIerSv1GetFilterIndexes, arg, &replyIDx); err != nil {
t.Error(err)
} else if sort.Strings(replyIDx); !reflect.DeepEqual(expectedIndexes, replyIDx) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(replyIDx))
diff --git a/apier/v1/filterindexecache_it_test.go b/apier/v1/filterindexecache_it_test.go
index 16ad96afb..28180ae94 100644
--- a/apier/v1/filterindexecache_it_test.go
+++ b/apier/v1/filterindexecache_it_test.go
@@ -21,19 +21,20 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
var (
- tFIdxCaRpc *rpc.Client
+ tFIdxCaRpc *birpc.Client
sTestsFilterIndexesSV1Ca = []func(t *testing.T){
testV1FIdxCaLoadConfig,
testV1FIdxCaInitDataDb,
@@ -136,7 +137,7 @@ func testV1FIdxCaRpcConn(t *testing.T) {
func testV1FIdxCaFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := tFIdxCaRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -156,7 +157,7 @@ func testV1FIdxCaProcessEventWithNotFound(t *testing.T) {
},
}
var thIDs []string
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err.Error() != utils.ErrNotFound.Error() {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
@@ -184,7 +185,7 @@ func testV1FIdxCaSetThresholdProfile(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -206,7 +207,7 @@ func testV1FIdxCaSetThresholdProfile(t *testing.T) {
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -228,7 +229,7 @@ func testV1FIdxCaSetThresholdProfile(t *testing.T) {
eIDs := []string{"TEST_PROFILE1"}
//Testing ProcessEvent on set thresholdprofile using apier
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(thIDs, eIDs) {
t.Errorf("Expecting hits: %s, received: %s", eIDs, thIDs)
@@ -254,7 +255,7 @@ func testV1FIdxCaGetThresholdFromTP(t *testing.T) {
var thIDs []string
eIDs := []string{"THD_ACNT_BALANCE_1"}
//Testing ProcessEvent on set thresholdprofile using apier
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent,
tEv, &thIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(thIDs, eIDs) {
@@ -285,7 +286,7 @@ func testV1FIdxCaUpdateThresholdProfile(t *testing.T) {
},
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -305,7 +306,7 @@ func testV1FIdxCaUpdateThresholdProfile(t *testing.T) {
Async: true,
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -325,7 +326,7 @@ func testV1FIdxCaUpdateThresholdProfile(t *testing.T) {
var thIDs []string
eIDs := []string{}
//Testing ProcessEvent on set thresholdprofile after update making sure there are no hits
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -343,7 +344,7 @@ func testV1FIdxCaUpdateThresholdProfile(t *testing.T) {
}
eIDs = []string{"TEST_PROFILE1"}
//Testing ProcessEvent on set thresholdprofile after update
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv2, &thIDs); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv2, &thIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(thIDs, eIDs) {
t.Errorf("Expecting : %s, received: %s", eIDs, thIDs)
@@ -373,14 +374,14 @@ func testV1FIdxCaUpdateThresholdProfileFromTP(t *testing.T) {
},
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.ThresholdProfile
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_BALANCE_1"}, &reply); err != nil {
t.Error(err)
}
@@ -393,7 +394,7 @@ func testV1FIdxCaUpdateThresholdProfileFromTP(t *testing.T) {
}
reply.FilterIDs = []string{"TestFilter3"}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetThresholdProfile, &engine.ThresholdProfileWithAPIOpts{ThresholdProfile: reply}, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, &engine.ThresholdProfileWithAPIOpts{ThresholdProfile: reply}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -411,7 +412,7 @@ func testV1FIdxCaUpdateThresholdProfileFromTP(t *testing.T) {
}
var thIDs []string
//Testing ProcessEvent on set thresholdprofile using apier
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -428,7 +429,7 @@ func testV1FIdxCaUpdateThresholdProfileFromTP(t *testing.T) {
}
eIDs := []string{"THD_ACNT_BALANCE_1"}
//Testing ProcessEvent on set thresholdprofile using apier
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv2, &thIDs); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv2, &thIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(thIDs, eIDs) {
t.Errorf("Expecting : %s, received: %s", eIDs, thIDs)
@@ -450,7 +451,7 @@ func testV1FIdxCaRemoveThresholdProfile(t *testing.T) {
}
var thIDs []string
eIDs := []string{"TEST_PROFILE1"}
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(thIDs, eIDs) {
t.Errorf("Expecting : %s, received: %s", eIDs, thIDs)
@@ -468,13 +469,13 @@ func testV1FIdxCaRemoveThresholdProfile(t *testing.T) {
},
}
eIDs = []string{"THD_ACNT_BALANCE_1"}
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv2, &thIDs); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv2, &thIDs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(thIDs, eIDs) {
t.Errorf("Expecting : %s, received: %s", eIDs, thIDs)
}
//Remove threshold profile that was set form api
- if err := tFIdxCaRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -482,29 +483,29 @@ func testV1FIdxCaRemoveThresholdProfile(t *testing.T) {
}
var sqp *engine.ThresholdProfile
//Test the remove
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
//Remove threshold profile that was set form tariffplan
- if err := tFIdxCaRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_BALANCE_1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
//Test the remove
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_BALANCE_1"}, &sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.ThresholdSv1ProcessEvent, tEv2, &thIDs); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv2, &thIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -524,13 +525,13 @@ func testV1FIdxCaGetStatQueuesWithNotFound(t *testing.T) {
utils.MetaEventType: utils.AccountUpdate,
},
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, tEv, &reply); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, tEv, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
tEv.Tenant = utils.EmptyString
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, tEv, &reply); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, tEv, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -561,7 +562,7 @@ func testV1FIdxCaSetStatQueueProfile(t *testing.T) {
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -588,7 +589,7 @@ func testV1FIdxCaSetStatQueueProfile(t *testing.T) {
MinItems: 1,
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -608,7 +609,7 @@ func testV1FIdxCaSetStatQueueProfile(t *testing.T) {
}
var reply []string
expected := []string{"TEST_PROFILE1"}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent,
tEv, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
@@ -629,7 +630,7 @@ func testV1FIdxCaGetStatQueuesFromTP(t *testing.T) {
utils.Cost: 12.1,
},
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, ev2, &reply); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev2, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -644,7 +645,7 @@ func testV1FIdxCaGetStatQueuesFromTP(t *testing.T) {
utils.Cost: 12.1,
},
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, &ev3, &reply); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &ev3, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -664,7 +665,7 @@ func testV1FIdxCaGetStatQueuesFromTP(t *testing.T) {
utils.MetaEventType: utils.AccountUpdate,
},
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, &tEv, &reply); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &tEv, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -683,7 +684,7 @@ func testV1FIdxCaGetStatQueuesFromTP(t *testing.T) {
utils.MetaEventType: utils.AccountUpdate,
},
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, &tEv2, &reply); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &tEv2, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -713,7 +714,7 @@ func testV1FIdxCaUpdateStatQueueProfile(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -740,7 +741,7 @@ func testV1FIdxCaUpdateStatQueueProfile(t *testing.T) {
MinItems: 1,
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -759,7 +760,7 @@ func testV1FIdxCaUpdateStatQueueProfile(t *testing.T) {
utils.MetaEventType: utils.BalanceUpdate,
},
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, tEv, &reply); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, tEv, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -789,19 +790,19 @@ func testV1FIdxCaUpdateStatQueueProfileFromTP(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply engine.StatQueueProfile
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &reply); err != nil {
t.Error(err)
}
reply.FilterIDs = []string{"FLTR_3"}
reply.ActivationInterval = &utils.ActivationInterval{ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC)}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetStatQueueProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile,
&engine.StatQueueProfileWithAPIOpts{StatQueueProfile: &reply}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -823,7 +824,7 @@ func testV1FIdxCaUpdateStatQueueProfileFromTP(t *testing.T) {
}
var ids []string
expected := []string{"Stats1"}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent,
tEv, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, expected) {
@@ -846,7 +847,7 @@ func testV1FIdxCaRemoveStatQueueProfile(t *testing.T) {
utils.MetaEventType: utils.BalanceUpdate,
},
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, tEv, &reply); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, tEv, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -866,14 +867,14 @@ func testV1FIdxCaRemoveStatQueueProfile(t *testing.T) {
utils.MetaEventType: utils.AccountUpdate,
},
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, tEv2, &reply); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, tEv2, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
}
var result string
//Remove threshold profile that was set form api
- if err := tFIdxCaRpc.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -881,30 +882,30 @@ func testV1FIdxCaRemoveStatQueueProfile(t *testing.T) {
}
var sqp *engine.StatQueueProfile
//Test the remove
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
//Remove threshold profile that was set form tariffplan
- if err := tFIdxCaRpc.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//Test the remove
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, tEv, &reply); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, tEv, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.StatSv1ProcessEvent, tEv2, &reply); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.StatSv1ProcessEvent, tEv2, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -924,7 +925,7 @@ func testV1FIdxCaProcessAttributeProfileEventWithNotFound(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev, &rplyEv); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, ev, &rplyEv); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -953,7 +954,7 @@ func testV1FIdxCaSetAttributeProfile(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -980,7 +981,7 @@ func testV1FIdxCaSetAttributeProfile(t *testing.T) {
Weight: 20,
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -998,7 +999,7 @@ func testV1FIdxCaSetAttributeProfile(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Error(err)
}
@@ -1018,7 +1019,7 @@ func testV1FIdxCaGetAttributeProfileFromTP(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev, &rplyEv); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, ev, &rplyEv); err != nil {
t.Error(err)
}
}
@@ -1046,7 +1047,7 @@ func testV1FIdxCaUpdateAttributeProfile(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1073,7 +1074,7 @@ func testV1FIdxCaUpdateAttributeProfile(t *testing.T) {
Weight: 20,
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1091,7 +1092,7 @@ func testV1FIdxCaUpdateAttributeProfile(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev, &rplyEv); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, ev, &rplyEv); err != nil {
t.Error(err)
}
}
@@ -1119,19 +1120,19 @@ func testV1FIdxCaUpdateAttributeProfileFromTP(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply engine.AttributeProfile
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1"}},
&reply); err != nil {
t.Error(err)
}
reply.FilterIDs = []string{"TestFilter3"}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetAttributeProfile, &engine.AttributeProfileWithAPIOpts{AttributeProfile: &reply}, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, &engine.AttributeProfileWithAPIOpts{AttributeProfile: &reply}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1149,7 +1150,7 @@ func testV1FIdxCaUpdateAttributeProfileFromTP(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev, &rplyEv); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, ev, &rplyEv); err != nil {
t.Error(err)
}
}
@@ -1168,7 +1169,7 @@ func testV1FIdxCaRemoveAttributeProfile(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev, &rplyEv); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, ev, &rplyEv); err != nil {
t.Error(err)
}
@@ -1183,11 +1184,11 @@ func testV1FIdxCaRemoveAttributeProfile(t *testing.T) {
utils.OptsContext: utils.MetaSessionS,
},
}
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev2, &rplyEv); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, ev2, &rplyEv); err != nil {
t.Error(err)
}
//Remove threshold profile that was set form api
- if err := tFIdxCaRpc.Call(utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org",
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org",
ID: "TEST_PROFILE1"}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -1195,31 +1196,31 @@ func testV1FIdxCaRemoveAttributeProfile(t *testing.T) {
}
var sqp *engine.AttributeProfile
//Test the remove
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}},
&sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
//Remove threshold profile that was set form tariffplan
- if err := tFIdxCaRpc.Call(utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org",
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org",
ID: "ATTR_1"}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
//Test the remove
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1"}},
&sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev, &rplyEv); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, ev, &rplyEv); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev2, &rplyEv); err == nil ||
+ if err := tFIdxCaRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, ev2, &rplyEv); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -1241,21 +1242,21 @@ func testV1FIdxCaGetResourceProfileWithNotFound(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&cgrEv, &reply); err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
cgrEv.Tenant = utils.EmptyString
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&cgrEv, &reply); err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -1289,7 +1290,7 @@ func testV1FIdxCaSetResourceProfile(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1311,7 +1312,7 @@ func testV1FIdxCaSetResourceProfile(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1329,14 +1330,14 @@ func testV1FIdxCaSetResourceProfile(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &result); err != nil {
t.Error(err)
} else if result != "Approved" {
t.Error("Unexpected reply returned", result)
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&cgrEv, &result); err != nil {
t.Error(err)
} else if result != "Approved" {
@@ -1359,13 +1360,13 @@ func testV1FIdxCaGetResourceProfileFromTP(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
t.Error("Unexpected reply returned", reply)
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&cgrEv, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
@@ -1385,7 +1386,7 @@ func testV1FIdxCaGetResourceProfileFromTP(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&ev, &reply); err != nil {
t.Error(err)
} else if reply != "ResGroup1" {
@@ -1421,7 +1422,7 @@ func testV1FIdxCaUpdateResourceProfile(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1443,7 +1444,7 @@ func testV1FIdxCaUpdateResourceProfile(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
},
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetResourceProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile,
rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -1462,7 +1463,7 @@ func testV1FIdxCaUpdateResourceProfile(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&cgrEv, &result); err != nil {
t.Error(err)
} else if result != "MessageAllocation" {
@@ -1498,20 +1499,20 @@ func testV1FIdxCaUpdateResourceProfileFromTP(t *testing.T) {
},
}
var result string
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply engine.ResourceProfile
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"}, &reply); err != nil {
t.Error(err)
}
reply.FilterIDs = []string{"FLTR_RES_RCFG3"}
reply.ActivationInterval = &utils.ActivationInterval{ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC)}
- if err := tFIdxCaRpc.Call(utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: &reply}, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: &reply}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1529,7 +1530,7 @@ func testV1FIdxCaUpdateResourceProfileFromTP(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources, &ev, &result); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources, &ev, &result); err != nil {
t.Error(err)
} else if result != "ResGroup1" {
t.Error("Unexpected reply returned", result)
@@ -1551,12 +1552,12 @@ func testV1FIdxCaRemoveResourceProfile(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources, ev, &resp); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AllocateResources, ev, &resp); err != nil {
t.Error(err)
} else if resp != "MessageAllocation" {
t.Error("Unexpected reply returned", resp)
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources, &ev, &resp); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources, &ev, &resp); err != nil {
t.Error(err)
} else if resp != "MessageAllocation" {
t.Error("Unexpected reply returned", resp)
@@ -1574,31 +1575,31 @@ func testV1FIdxCaRemoveResourceProfile(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources, &ev2, &resp); err != nil {
+ if err := tFIdxCaRpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources, &ev2, &resp); err != nil {
t.Error(err)
} else if resp != "ResGroup1" {
t.Error("Unexpected reply returned", resp)
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RCFG1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
var sqp *engine.ThresholdProfile
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RCFG1"}, &sqp); err == nil &&
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := tFIdxCaRpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := tFIdxCaRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"}, &sqp); err == nil &&
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/filters.go b/apier/v1/filters.go
index 15a7a98c6..a03098987 100644
--- a/apier/v1/filters.go
+++ b/apier/v1/filters.go
@@ -21,12 +21,13 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// SetFilter add a new Filter
-func (apierSv1 *APIerSv1) SetFilter(arg *engine.FilterWithAPIOpts, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetFilter(ctx *context.Context, arg *engine.FilterWithAPIOpts, reply *string) (err error) {
if missing := utils.MissingStructFields(arg.Filter, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -65,7 +66,7 @@ func (apierSv1 *APIerSv1) SetFilter(arg *engine.FilterWithAPIOpts, reply *string
}
// GetFilter returns a Filter
-func (apierSv1 *APIerSv1) GetFilter(arg *utils.TenantID, reply *engine.Filter) error {
+func (apierSv1 *APIerSv1) GetFilter(ctx *context.Context, arg *utils.TenantID, reply *engine.Filter) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -82,7 +83,7 @@ func (apierSv1 *APIerSv1) GetFilter(arg *utils.TenantID, reply *engine.Filter) e
}
// GetFilterIDs returns list of Filter IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetFilterIDs(args *utils.PaginatorWithTenant, fltrIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetFilterIDs(ctx *context.Context, args *utils.PaginatorWithTenant, fltrIDs *[]string) error {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -104,7 +105,7 @@ func (apierSv1 *APIerSv1) GetFilterIDs(args *utils.PaginatorWithTenant, fltrIDs
}
// RemoveFilter remove a specific filter
-func (apierSv1 *APIerSv1) RemoveFilter(arg *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveFilter(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/filters_it_test.go b/apier/v1/filters_it_test.go
index bd332b983..a0feb85cc 100644
--- a/apier/v1/filters_it_test.go
+++ b/apier/v1/filters_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"os"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
filterCfgPath string
filterCfg *config.CGRConfig
- filterRPC *rpc.Client
+ filterRPC *birpc.Client
filter *engine.FilterWithAPIOpts
filterConfigDIR string //run tests for specific configuration
@@ -118,7 +119,7 @@ func testFilterStartCPUProfiling(t *testing.T) {
DirPath: "/tmp",
}
var reply string
- if err := filterRPC.Call(utils.CoreSv1StartCPUProfiling,
+ if err := filterRPC.Call(context.Background(), utils.CoreSv1StartCPUProfiling,
argPath, &reply); err != nil {
t.Error(err)
}
@@ -126,7 +127,7 @@ func testFilterStartCPUProfiling(t *testing.T) {
func testFilterGetFilterBeforeSet(t *testing.T) {
var reply *engine.Filter
- if err := filterRPC.Call(utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil ||
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -152,7 +153,7 @@ func testFilterSetFilter(t *testing.T) {
}
var result string
- if err := filterRPC.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -162,12 +163,12 @@ func testFilterSetFilter(t *testing.T) {
func testFilterGetFilterIDs(t *testing.T) {
expected := []string{"Filter1"}
var result []string
- if err := filterRPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := filterRPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
@@ -176,7 +177,7 @@ func testFilterGetFilterIDs(t *testing.T) {
func testFilterGetFilterAfterSet(t *testing.T) {
var reply *engine.Filter
- if err := filterRPC.Call(utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err != nil {
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(filter.Filter, reply) {
t.Errorf("Expecting : %+v, received: %+v", filter.Filter, reply)
@@ -197,7 +198,7 @@ func testFilterUpdateFilter(t *testing.T) {
},
}
var result string
- if err := filterRPC.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -206,7 +207,7 @@ func testFilterUpdateFilter(t *testing.T) {
func testFilterGetFilterAfterUpdate(t *testing.T) {
var reply *engine.Filter
- if err := filterRPC.Call(utils.APIerSv1GetFilter,
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(filter.Filter, reply) {
@@ -216,7 +217,7 @@ func testFilterGetFilterAfterUpdate(t *testing.T) {
func testFilterRemoveFilter(t *testing.T) {
var resp string
- if err := filterRPC.Call(utils.APIerSv1RemoveFilter,
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1RemoveFilter,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -226,7 +227,7 @@ func testFilterRemoveFilter(t *testing.T) {
func testFilterGetFilterAfterRemove(t *testing.T) {
var reply *engine.Filter
- if err := filterRPC.Call(utils.APIerSv1GetFilter,
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -257,14 +258,14 @@ func testFilterSetFilterWithoutTenant(t *testing.T) {
},
}
var reply string
- if err := filterRPC.Call(utils.APIerSv1SetFilter, filter, &reply); err != nil {
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1SetFilter, filter, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
var result *engine.Filter
filter.Filter.Tenant = "cgrates.org"
- if err := filterRPC.Call(utils.APIerSv1GetFilter,
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{ID: "FilterWithoutTenant"},
&result); err != nil {
t.Error(err)
@@ -275,7 +276,7 @@ func testFilterSetFilterWithoutTenant(t *testing.T) {
func testFilterRemoveFilterWithoutTenant(t *testing.T) {
var reply string
- if err := filterRPC.Call(utils.APIerSv1RemoveFilter,
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1RemoveFilter,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "FilterWithoutTenant"}},
&reply); err != nil {
t.Error(err)
@@ -283,7 +284,7 @@ func testFilterRemoveFilterWithoutTenant(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
var result *engine.Filter
- if err := filterRPC.Call(utils.APIerSv1GetFilter,
+ if err := filterRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{ID: "FilterWithoutTenant"},
&result); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -292,7 +293,7 @@ func testFilterRemoveFilterWithoutTenant(t *testing.T) {
func testFilterStopCPUProfiling(t *testing.T) {
var reply string
- if err := filterRPC.Call(utils.CoreSv1StopCPUProfiling,
+ if err := filterRPC.Call(context.Background(), utils.CoreSv1StopCPUProfiling,
new(utils.DirectoryArgs), &reply); err != nil {
t.Error(err)
}
diff --git a/apier/v1/filters_test.go b/apier/v1/filters_test.go
index 93cbca4ff..35ebaf582 100644
--- a/apier/v1/filters_test.go
+++ b/apier/v1/filters_test.go
@@ -24,6 +24,8 @@ import (
"sort"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -34,7 +36,7 @@ type ccMock struct {
calls map[string]func(args any, reply any) error
}
-func (ccM *ccMock) Call(serviceMethod string, args any, reply any) (err error) {
+func (ccM *ccMock) Call(ctx *context.Context, serviceMethod string, args any, reply any) (err error) {
if call, has := ccM.calls[serviceMethod]; !has {
return rpcclient.ErrUnsupporteServiceMethod
} else {
@@ -65,9 +67,9 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
- cM := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
apierSv1 := &APIerSv1{
@@ -92,7 +94,7 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
}
var reply string
- if err := apierSv1.SetFilter(arg, &reply); err != nil {
+ if err := apierSv1.SetFilter(context.Background(), arg, &reply); err != nil {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
}
@@ -115,7 +117,7 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
},
}
- if err := apierSv1.SetAttributeProfile(attrPrf, &reply); err != nil {
+ if err := apierSv1.SetAttributeProfile(context.Background(), attrPrf, &reply); err != nil {
t.Error(err)
}
@@ -131,7 +133,7 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
},
}
- if err := apierSv1.SetThresholdProfile(thPrf, &reply); err != nil {
+ if err := apierSv1.SetThresholdProfile(context.Background(), thPrf, &reply); err != nil {
t.Error(err)
}
@@ -146,7 +148,7 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
},
}
- if err := apierSv1.SetResourceProfile(rsPrf, &reply); err != nil {
+ if err := apierSv1.SetResourceProfile(context.Background(), rsPrf, &reply); err != nil {
t.Error(err)
}
@@ -161,7 +163,7 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
},
}
- if err := apierSv1.SetStatQueueProfile(sqPrf, &reply); err != nil {
+ if err := apierSv1.SetStatQueueProfile(context.Background(), sqPrf, &reply); err != nil {
t.Error(err)
}
@@ -176,7 +178,7 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
},
}
- if err := apierSv1.SetDispatcherProfile(dpPrf, &reply); err != nil {
+ if err := apierSv1.SetDispatcherProfile(context.Background(), dpPrf, &reply); err != nil {
t.Error(err)
}
@@ -191,7 +193,7 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
},
}
- if err := apierSv1.SetChargerProfile(chgPrf, &reply); err != nil {
+ if err := apierSv1.SetChargerProfile(context.Background(), chgPrf, &reply); err != nil {
t.Error(err)
}
@@ -224,7 +226,7 @@ func TestFiltersSetFilterReloadCache(t *testing.T) {
ThresholdFilterIndexIDs: []string{"cgrates.org:*string:*req.Account:1001", "cgrates.org:*string:*req.Account:1002"},
}
- if err := apierSv1.SetFilter(arg, &reply); err != nil {
+ if err := apierSv1.SetFilter(context.Background(), arg, &reply); err != nil {
t.Error(err)
}
@@ -256,9 +258,9 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
- cM := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
apierSv1 := &APIerSv1{
@@ -283,7 +285,7 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
}
var reply string
- if err := apierSv1.SetFilter(arg, &reply); err != nil {
+ if err := apierSv1.SetFilter(context.Background(), arg, &reply); err != nil {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
}
@@ -306,7 +308,7 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
},
}
- if err := apierSv1.SetAttributeProfile(attrPrf, &reply); err != nil {
+ if err := apierSv1.SetAttributeProfile(context.Background(), attrPrf, &reply); err != nil {
t.Error(err)
}
@@ -322,7 +324,7 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
},
}
- if err := apierSv1.SetThresholdProfile(thPrf, &reply); err != nil {
+ if err := apierSv1.SetThresholdProfile(context.Background(), thPrf, &reply); err != nil {
t.Error(err)
}
@@ -337,7 +339,7 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
},
}
- if err := apierSv1.SetResourceProfile(rsPrf, &reply); err != nil {
+ if err := apierSv1.SetResourceProfile(context.Background(), rsPrf, &reply); err != nil {
t.Error(err)
}
@@ -352,7 +354,7 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
},
}
- if err := apierSv1.SetStatQueueProfile(sqPrf, &reply); err != nil {
+ if err := apierSv1.SetStatQueueProfile(context.Background(), sqPrf, &reply); err != nil {
t.Error(err)
}
@@ -367,7 +369,7 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
},
}
- if err := apierSv1.SetDispatcherProfile(dpPrf, &reply); err != nil {
+ if err := apierSv1.SetDispatcherProfile(context.Background(), dpPrf, &reply); err != nil {
t.Error(err)
}
@@ -382,7 +384,7 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
},
}
- if err := apierSv1.SetChargerProfile(chgPrf, &reply); err != nil {
+ if err := apierSv1.SetChargerProfile(context.Background(), chgPrf, &reply); err != nil {
t.Error(err)
}
@@ -412,7 +414,7 @@ func TestFiltersSetFilterClearCache(t *testing.T) {
}
sort.Strings(expArgs.CacheIDs)
- if err := apierSv1.SetFilter(arg, &reply); err != nil {
+ if err := apierSv1.SetFilter(context.Background(), arg, &reply); err != nil {
t.Error(err)
}
diff --git a/apier/v1/full_remote_it_test.go b/apier/v1/full_remote_it_test.go
index 1a433a630..d0a8a2c25 100644
--- a/apier/v1/full_remote_it_test.go
+++ b/apier/v1/full_remote_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,12 +38,12 @@ var (
fullRemInternalCfgPath string
fullRemInternalCfgDirPath string
fullRemInternalCfg *config.CGRConfig
- fullRemInternalRPC *rpc.Client
+ fullRemInternalRPC *birpc.Client
fullRemEngineOneCfgPath string
fullRemEngineOneCfgDirPath string
fullRemEngineOneCfg *config.CGRConfig
- fullRemEngineOneRPC *rpc.Client
+ fullRemEngineOneRPC *birpc.Client
sTestsFullRemoteIT = []func(t *testing.T){
testFullRemoteITInitCfg,
@@ -122,7 +123,7 @@ func testFullRemoteITRPCConn(t *testing.T) {
func testFullRemoteITAttribute(t *testing.T) {
// verify for not found in internal
var reply *engine.AttributeProfile
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1001_SIMPLEAUTH"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -145,13 +146,13 @@ func testFullRemoteITAttribute(t *testing.T) {
}
alsPrf.Compile()
// add an attribute profile in engine1 and verify it internal
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1001_SIMPLEAUTH"}},
&reply); err != nil {
t.Fatal(err)
@@ -163,13 +164,13 @@ func testFullRemoteITAttribute(t *testing.T) {
// update the attribute profile and verify it to be updated
alsPrf.FilterIDs = []string{"*string:~*req.Account:1001", "*string:~*req.Destination:1002"}
alsPrf.Compile()
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1001_SIMPLEAUTH"}},
&reply); err != nil {
t.Fatal(err)
@@ -183,7 +184,7 @@ func testFullRemoteITAttribute(t *testing.T) {
func testFullRemoteITStatQueue(t *testing.T) {
// verify for not found in internal
var reply *engine.StatQueueProfile
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -217,13 +218,13 @@ func testFullRemoteITStatQueue(t *testing.T) {
},
}
// add a statQueue profile in engine1 and verify it internal
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetStatQueueProfile, stat, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stat, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}},
&reply); err != nil {
t.Fatal(err)
@@ -232,13 +233,13 @@ func testFullRemoteITStatQueue(t *testing.T) {
}
// update the statQueue profile and verify it to be updated
stat.FilterIDs = []string{"*string:~*req.Account:1001", "*string:~*req.Destination:1002"}
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetStatQueueProfile, stat, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stat, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}},
&reply); err != nil {
t.Fatal(err)
@@ -250,7 +251,7 @@ func testFullRemoteITStatQueue(t *testing.T) {
func testFullRemoteITThreshold(t *testing.T) {
// verify for not found in internal
var reply *engine.ThresholdProfile
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -275,13 +276,13 @@ func testFullRemoteITThreshold(t *testing.T) {
},
}
// add a threshold profile in engine1 and verify it internal
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}},
&reply); err != nil {
t.Fatal(err)
@@ -290,13 +291,13 @@ func testFullRemoteITThreshold(t *testing.T) {
}
// update the threshold profile and verify it to be updated
tPrfl.FilterIDs = []string{"*string:~*req.Account:1001", "*string:~*req.Destination:1002"}
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}},
&reply); err != nil {
t.Fatal(err)
@@ -308,7 +309,7 @@ func testFullRemoteITThreshold(t *testing.T) {
func testFullRemoteITResource(t *testing.T) {
// verify for not found in internal
var reply *engine.ResourceProfile
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -332,13 +333,13 @@ func testFullRemoteITResource(t *testing.T) {
},
}
// add a threshold profile in engine1 and verify it internal
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetResourceProfile, rlsPrf, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsPrf, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"}},
&reply); err != nil {
t.Fatal(err)
@@ -347,13 +348,13 @@ func testFullRemoteITResource(t *testing.T) {
}
// update the threshold profile and verify it to be updated
rlsPrf.FilterIDs = []string{"*string:~*req.Account:1001", "*string:~*req.Destination:1002"}
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetResourceProfile, rlsPrf, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsPrf, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"}},
&reply); err != nil {
t.Fatal(err)
@@ -365,7 +366,7 @@ func testFullRemoteITResource(t *testing.T) {
func testFullRemoteITRoute(t *testing.T) {
// verify for not found in internal
var reply *engine.RouteProfile
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -390,13 +391,13 @@ func testFullRemoteITRoute(t *testing.T) {
Weight: 20,
}
// add a threshold profile in engine1 and verify it internal
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetRouteProfile, routePrf, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}},
&reply); err != nil {
t.Fatal(err)
@@ -405,13 +406,13 @@ func testFullRemoteITRoute(t *testing.T) {
}
// update the threshold profile and verify it to be updated
routePrf.FilterIDs = []string{"*string:~*req.Account:1001", "*string:~*req.Destination:1002"}
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetRouteProfile, routePrf, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}},
&reply); err != nil {
t.Fatal(err)
@@ -423,7 +424,7 @@ func testFullRemoteITRoute(t *testing.T) {
func testFullRemoteITFilter(t *testing.T) {
// verify for not found in internal
var reply *engine.Filter
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetFilter,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetFilter,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ACNT_1001"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -445,13 +446,13 @@ func testFullRemoteITFilter(t *testing.T) {
},
}
// add a threshold profile in engine1 and verify it internal
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetFilter, fltr, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetFilter, fltr, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetFilter,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetFilter,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ACNT_1001"}},
&reply); err != nil {
t.Fatal(err)
@@ -471,13 +472,13 @@ func testFullRemoteITFilter(t *testing.T) {
Values: []string{"10", "20"},
},
}
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetFilter, fltr, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetFilter, fltr, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetFilter,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetFilter,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ACNT_1001"}},
&reply); err != nil {
t.Fatal(err)
@@ -489,7 +490,7 @@ func testFullRemoteITFilter(t *testing.T) {
func testFullRemoteITCharger(t *testing.T) {
// verify for not found in internal
var reply *engine.ChargerProfile
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -504,13 +505,13 @@ func testFullRemoteITCharger(t *testing.T) {
Weight: 0,
}
// add a threshold profile in engine1 and verify it internal
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}},
&reply); err != nil {
t.Fatal(err)
@@ -519,13 +520,13 @@ func testFullRemoteITCharger(t *testing.T) {
}
// update the threshold profile and verify it to be updated
chargerProfile.FilterIDs = []string{"*string:~*req.Account:1001", "*string:~*req.Destination:1002"}
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}},
&reply); err != nil {
t.Fatal(err)
@@ -537,7 +538,7 @@ func testFullRemoteITCharger(t *testing.T) {
func testFullRemoteITDispatcher(t *testing.T) {
// verify for not found in internal
var reply *engine.DispatcherProfile
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}},
&reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Fatal(err)
@@ -555,13 +556,13 @@ func testFullRemoteITDispatcher(t *testing.T) {
},
}
// add a threshold profile in engine1 and verify it internal
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetDispatcherProfile, dispatcherProfile, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, dispatcherProfile, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}},
&reply); err != nil {
t.Fatal(err)
@@ -570,13 +571,13 @@ func testFullRemoteITDispatcher(t *testing.T) {
}
// update the threshold profile and verify it to be updated
dispatcherProfile.FilterIDs = []string{"*string:~*req.Account:1001", "*string:~*req.Destination:1002"}
- if err := fullRemEngineOneRPC.Call(utils.APIerSv1SetDispatcherProfile, dispatcherProfile, &replySet); err != nil {
+ if err := fullRemEngineOneRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, dispatcherProfile, &replySet); err != nil {
t.Error(err)
} else if replySet != utils.OK {
t.Error("Unexpected reply returned", replySet)
}
- if err := fullRemInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := fullRemInternalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}},
&reply); err != nil {
t.Fatal(err)
diff --git a/apier/v1/guardian.go b/apier/v1/guardian.go
index 6b260b8a7..15a0064ca 100644
--- a/apier/v1/guardian.go
+++ b/apier/v1/guardian.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -31,25 +32,25 @@ func NewGuardianSv1() *GuardianSv1 {
type GuardianSv1 struct{}
// RemoteLock will lock a key from remote
-func (self *GuardianSv1) RemoteLock(attr *dispatchers.AttrRemoteLockWithAPIOpts, reply *string) (err error) {
+func (self *GuardianSv1) RemoteLock(ctx *context.Context, attr *dispatchers.AttrRemoteLockWithAPIOpts, reply *string) (err error) {
*reply = guardian.Guardian.GuardIDs(attr.ReferenceID, attr.Timeout, attr.LockIDs...)
return
}
// RemoteUnlock will unlock a key from remote based on reference ID
-func (self *GuardianSv1) RemoteUnlock(refID *dispatchers.AttrRemoteUnlockWithAPIOpts, reply *[]string) (err error) {
+func (self *GuardianSv1) RemoteUnlock(ctx *context.Context, refID *dispatchers.AttrRemoteUnlockWithAPIOpts, reply *[]string) (err error) {
*reply = guardian.Guardian.UnguardIDs(refID.RefID)
return
}
// Ping return pong if the service is active
-func (self *GuardianSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (self *GuardianSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (self *GuardianSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (self *GuardianSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(self, serviceMethod, args, reply)
}
diff --git a/apier/v1/guardian_it_test.go b/apier/v1/guardian_it_test.go
index ed431d7a5..6f24f8d50 100644
--- a/apier/v1/guardian_it_test.go
+++ b/apier/v1/guardian_it_test.go
@@ -26,6 +26,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
@@ -80,11 +81,11 @@ func TestGuardianSIT(t *testing.T) {
Timeout: 500 * time.Millisecond,
}
var reply string
- if err = guardianRPC.Call(utils.GuardianSv1RemoteLock, &args, &reply); err != nil {
+ if err = guardianRPC.Call(context.Background(), utils.GuardianSv1RemoteLock, &args, &reply); err != nil {
t.Error(err)
}
var unlockReply []string
- if err = guardianRPC.Call(utils.GuardianSv1RemoteUnlock, &dispatchers.AttrRemoteUnlockWithAPIOpts{RefID: reply}, &unlockReply); err != nil {
+ if err = guardianRPC.Call(context.Background(), utils.GuardianSv1RemoteUnlock, &dispatchers.AttrRemoteUnlockWithAPIOpts{RefID: reply}, &unlockReply); err != nil {
t.Error(err)
}
if !reflect.DeepEqual(args.LockIDs, unlockReply) {
@@ -93,7 +94,7 @@ func TestGuardianSIT(t *testing.T) {
// ping
var resp string
- if err = guardianRPC.Call(utils.GuardianSv1Ping, new(utils.CGREvent), &resp); err != nil {
+ if err = guardianRPC.Call(context.Background(), utils.GuardianSv1Ping, new(utils.CGREvent), &resp); err != nil {
t.Error(err)
} else if resp != utils.Pong {
t.Error("Unexpected reply returned", resp)
diff --git a/apier/v1/lib_test.go b/apier/v1/lib_test.go
index e7d7c2efc..21e3f57ec 100644
--- a/apier/v1/lib_test.go
+++ b/apier/v1/lib_test.go
@@ -21,9 +21,9 @@ package v1
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -35,12 +35,12 @@ var (
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/apier/v1/libapier.go b/apier/v1/libapier.go
index 1411c93d1..e90711984 100644
--- a/apier/v1/libapier.go
+++ b/apier/v1/libapier.go
@@ -21,6 +21,7 @@ package v1
import (
"strings"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -90,7 +91,7 @@ func (apierSv1 *APIerSv1) CallCache(cacheopt string, tnt, cacheID, itemID, group
}
}
- return apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ return apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
method, args, &reply)
}
@@ -190,7 +191,7 @@ func (apierSv1 *APIerSv1) callCacheForRemoveIndexes(cacheopt string, tnt, cacheI
APIOpts: opts,
}
}
- return apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ return apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
method, args, &reply)
}
@@ -219,7 +220,7 @@ func (apierSv1 *APIerSv1) callCacheForComputeIndexes(cacheopt, tnt string,
APIOpts: opts,
}
}
- return apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ return apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
method, args, &reply)
}
@@ -250,7 +251,7 @@ func (apierSv1 *APIerSv1) callCacheMultiple(cacheopt, tnt, cacheID string, itemI
APIOpts: opts,
}
}
- return apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ return apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
method, args, &reply)
}
@@ -349,5 +350,5 @@ func callCacheForFilter(connMgr *engine.ConnManager, cacheConns []string, cacheo
APIOpts: opts,
}
}
- return connMgr.Call(cacheConns, nil, method, args, &reply)
+ return connMgr.Call(context.TODO(), cacheConns, method, args, &reply)
}
diff --git a/apier/v1/libapier_test.go b/apier/v1/libapier_test.go
index be8231b59..3a7ac20d5 100644
--- a/apier/v1/libapier_test.go
+++ b/apier/v1/libapier_test.go
@@ -22,10 +22,11 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestComposeArgsReload(t *testing.T) {
@@ -97,7 +98,7 @@ type rpcRequest struct {
}
type rpcMock chan *rpcRequest
-func (r rpcMock) Call(method string, args, _ any) error {
+func (r rpcMock) Call(_ *context.Context, method string, args, _ any) error {
r <- &rpcRequest{
Method: method,
Params: args,
@@ -107,9 +108,9 @@ func (r rpcMock) Call(method string, args, _ any) error {
func TestCallCache(t *testing.T) {
cache := make(rpcMock, 1)
- ch := make(chan rpcclient.ClientConnector, 1)
+ ch := make(chan birpc.ClientConnector, 1)
ch <- cache
- cn := engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ cn := engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): ch,
})
cn.Reload()
diff --git a/apier/v1/loaders.go b/apier/v1/loaders.go
index a4999ca02..5d09ab219 100644
--- a/apier/v1/loaders.go
+++ b/apier/v1/loaders.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/loaders"
"github.com/cgrates/cgrates/utils"
)
@@ -32,23 +33,23 @@ type LoaderSv1 struct {
ldrS *loaders.LoaderService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (ldrSv1 *LoaderSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (ldrSv1 *LoaderSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(ldrSv1, serviceMethod, args, reply)
}
-func (ldrSv1 *LoaderSv1) Load(args *loaders.ArgsProcessFolder,
+func (ldrSv1 *LoaderSv1) Load(ctx *context.Context, args *loaders.ArgsProcessFolder,
rply *string) error {
- return ldrSv1.ldrS.V1Load(args, rply)
+ return ldrSv1.ldrS.V1Load(ctx, args, rply)
}
-func (ldrSv1 *LoaderSv1) Remove(args *loaders.ArgsProcessFolder,
+func (ldrSv1 *LoaderSv1) Remove(ctx *context.Context, args *loaders.ArgsProcessFolder,
rply *string) error {
- return ldrSv1.ldrS.V1Remove(args, rply)
+ return ldrSv1.ldrS.V1Remove(ctx, args, rply)
}
-func (rsv1 *LoaderSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (rsv1 *LoaderSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v1/precache_it_test.go b/apier/v1/precache_it_test.go
index d8d7fe051..f56f406f7 100644
--- a/apier/v1/precache_it_test.go
+++ b/apier/v1/precache_it_test.go
@@ -23,12 +23,13 @@ package v1
import (
"flag"
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ import (
var (
precacheCfgPath string
precacheCfg *config.CGRConfig
- precacheRPC *rpc.Client
+ precacheRPC *birpc.Client
precacheConfigDIR string //run tests for specific configuration
// use this flag to test the APIBan implementation for precache
@@ -115,7 +116,7 @@ func testPrecacheGetItemIDs(t *testing.T) {
CacheID: utils.MetaDefault,
}
var reply *[]string
- if err := precacheRPC.Call(utils.CacheSv1GetItemIDs, args, &reply); err == nil ||
+ if err := precacheRPC.Call(context.Background(), utils.CacheSv1GetItemIDs, args, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -128,7 +129,7 @@ func testPrecacheGetCacheStatsBeforeLoad(t *testing.T) {
}
dfltStats := engine.GetDefaultEmptyCacheStats()
expectedStats := &dfltStats
- if err := precacheRPC.Call(utils.CacheSv1GetCacheStats, args, &reply); err != nil {
+ if err := precacheRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, args, &reply); err != nil {
t.Error(err.Error())
} else if !reflect.DeepEqual(reply, expectedStats) {
t.Errorf("Expecting : %+v,\n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(reply))
@@ -138,7 +139,7 @@ func testPrecacheGetCacheStatsBeforeLoad(t *testing.T) {
func testPrecacheFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "precache")}
- if err := precacheRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := precacheRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -230,7 +231,7 @@ func testPrecacheGetCacheStatsAfterRestart(t *testing.T) {
if *apiBan {
(*expectedStats)[utils.MetaAPIBan] = <cache.CacheStats{Items: 254}
}
- if err := precacheRPC.Call(utils.CacheSv1GetCacheStats, args, &reply); err != nil {
+ if err := precacheRPC.Call(context.Background(), utils.CacheSv1GetCacheStats, args, &reply); err != nil {
t.Error(err.Error())
} else if !reflect.DeepEqual(reply, expectedStats) {
t.Errorf("Expecting : %+v, \n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(reply))
diff --git a/apier/v1/preload_it_test.go b/apier/v1/preload_it_test.go
index 78a1a6e44..7c9bfb068 100644
--- a/apier/v1/preload_it_test.go
+++ b/apier/v1/preload_it_test.go
@@ -22,8 +22,6 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"os"
"os/exec"
"path"
@@ -32,6 +30,9 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/config"
@@ -42,7 +43,7 @@ var (
preloadCfgPath string
preloadCfgDIR string
preloadCfg *config.CGRConfig
- preloadRPC *rpc.Client
+ preloadRPC *birpc.Client
preloadTests = []func(t *testing.T){
testCreateDirs,
@@ -148,7 +149,7 @@ func testPreloadITVerifyAttributes(t *testing.T) {
}
var reply *engine.AttributeProfile
- if err := preloadRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := preloadRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ALS1"}}, &reply); err != nil {
t.Fatal(err)
}
diff --git a/apier/v1/rals.go b/apier/v1/rals.go
index ac1554d6f..68f85f765 100644
--- a/apier/v1/rals.go
+++ b/apier/v1/rals.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
@@ -33,13 +34,13 @@ func NewRALsV1() *RALsV1 {
type RALsV1 struct {
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (rsv1 *RALsV1) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface for internal RPC
+func (rsv1 *RALsV1) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.APIerRPCCall(rsv1, serviceMethod, args, reply)
}
// GetRatingPlansCost returns EventCosts matching RatingPlanIDs
-func (rsv1 *RALsV1) GetRatingPlansCost(arg *utils.RatingPlanCostArg, reply *dispatchers.RatingPlanCost) error {
+func (rsv1 *RALsV1) GetRatingPlansCost(ctx *context.Context, arg *utils.RatingPlanCostArg, reply *dispatchers.RatingPlanCost) error {
if missing := utils.MissingStructFields(arg, []string{utils.RatingPlanIDs,
utils.Destination, utils.SetupTime, utils.Usage}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
@@ -107,7 +108,7 @@ func (rsv1 *RALsV1) GetRatingPlansCost(arg *utils.RatingPlanCostArg, reply *disp
return nil
}
-func (rsv1 *RALsV1) Ping(ign *utils.CGREvent, reply *string) error {
+func (rsv1 *RALsV1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v1/rating_profile_late_it_test.go b/apier/v1/rating_profile_late_it_test.go
index 70257c737..f54a26380 100644
--- a/apier/v1/rating_profile_late_it_test.go
+++ b/apier/v1/rating_profile_late_it_test.go
@@ -22,19 +22,21 @@ along with this program. If not, see
package v1
import (
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
- "net/rpc"
"path"
"testing"
"time"
+
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/config"
+ "github.com/cgrates/cgrates/engine"
+ "github.com/cgrates/cgrates/utils"
)
var (
rpLateCfGPath string
rpLateCfg *config.CGRConfig
- rpLateRPC *rpc.Client
+ rpLateRPC *birpc.Client
rpLateConfigDIR string //run tests for specific configuration
rpLateAPIer = []func(t *testing.T){
@@ -110,7 +112,7 @@ func testRpLateRPCConn(t *testing.T) {
func testRpLateLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := rpLateRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := rpLateRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -134,7 +136,7 @@ func testRpLateCDRProcessEvent(t *testing.T) {
},
}
var reply string
- if err := rpLateRPC.Call(utils.CDRsV1ProcessCDR, args, &reply); err != nil {
+ if err := rpLateRPC.Call(context.Background(), utils.CDRsV1ProcessCDR, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("UNexpected reply returned")
@@ -151,7 +153,7 @@ func testRpLateCDRProcessEvent(t *testing.T) {
*/
}}
- if err := rpLateRPC.Call(utils.CDRsV1GetCDRs, &req, &replyy); err != nil {
+ if err := rpLateRPC.Call(context.Background(), utils.CDRsV1GetCDRs, &req, &replyy); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(replyy) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(replyy), "and CDRS: ", utils.ToJSON(replyy))
diff --git a/apier/v1/remote_it_test.go b/apier/v1/remote_it_test.go
index a85cdcd3c..b5d4e08e3 100644
--- a/apier/v1/remote_it_test.go
+++ b/apier/v1/remote_it_test.go
@@ -21,13 +21,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,17 +38,17 @@ var (
internalCfgPath string
internalCfgDirPath string
internalCfg *config.CGRConfig
- internalRPC *rpc.Client
+ internalRPC *birpc.Client
engineOneCfgPath string
engineOneCfgDirPath string
engineOneCfg *config.CGRConfig
- engineOneRPC *rpc.Client
+ engineOneRPC *birpc.Client
engineTwoCfgPath string
engineTwoCfgDirPath string
engineTwoCfg *config.CGRConfig
- engineTwoRPC *rpc.Client
+ engineTwoRPC *birpc.Client
sTestsInternalRemoteIT = []func(t *testing.T){
testInternalRemoteITInitCfg,
@@ -180,7 +181,7 @@ func testInternalRemoteITRPCConn(t *testing.T) {
func testInternalRemoteLoadDataInEngineTwo(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := engineTwoRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -205,7 +206,7 @@ func testInternalRemoteITGetAccount(t *testing.T) {
Account: "1001",
}
// make sure account exist in engine2
- if err := engineTwoRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.ID != expAcc.ID {
t.Errorf("expecting: %+v, received: %+v", expAcc.ID, acnt.ID)
@@ -213,7 +214,7 @@ func testInternalRemoteITGetAccount(t *testing.T) {
t.Errorf("unexpected number of balances received: %+v", utils.ToJSON(acnt))
}
// check the account in internal
- if err := internalRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.ID != expAcc.ID {
t.Errorf("expecting: %+v, received: %+v", expAcc.ID, acnt.ID)
@@ -225,7 +226,7 @@ func testInternalRemoteITGetAccount(t *testing.T) {
Tenant: "cgrates.org",
Account: "nonexistAccount",
}
- if err := internalRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err == nil ||
+ if err := internalRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expecting: %+v, received: %+v", utils.ErrNotFound, err)
}
@@ -248,7 +249,7 @@ func testInternalRemoteITGetAttribute(t *testing.T) {
}
alsPrf.Compile()
var reply *engine.AttributeProfile
- if err := internalRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1001_SIMPLEAUTH"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -264,7 +265,7 @@ func testInternalRemoteITGetAttribute(t *testing.T) {
func testInternalRemoteITGetThreshold(t *testing.T) {
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}
- if err := internalRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := internalRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd, td) {
@@ -290,7 +291,7 @@ func testInternalRemoteITGetThresholdProfile(t *testing.T) {
Async: true,
},
}
- if err := internalRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -305,14 +306,14 @@ func testInternalRemoteITGetResource(t *testing.T) {
ID: "ResGroup1",
Usages: map[string]*engine.ResourceUsage{},
}
- if err := internalRPC.Call(utils.ResourceSv1GetResource,
+ if err := internalRPC.Call(context.Background(), utils.ResourceSv1GetResource,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"}}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expectedResources) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedResources), utils.ToJSON(reply))
}
- if err := internalRPC.Call(utils.ResourceSv1GetResource,
+ if err := internalRPC.Call(context.Background(), utils.ResourceSv1GetResource,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "ResGroup1"}}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expectedResources) {
@@ -338,7 +339,7 @@ func testInternalRemoteITGetResourceProfile(t *testing.T) {
},
}
var reply *engine.ResourceProfile
- if err := internalRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rlsPrf.ID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, rlsPrf.ResourceProfile) {
@@ -395,7 +396,7 @@ func testInternalRemoteITGetStatQueueProfile(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
}
var reply *engine.StatQueueProfile
- if err := internalRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stats2"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expStq, reply) && !reflect.DeepEqual(reply, expStq2) {
@@ -449,7 +450,7 @@ func testInternalRemoteITGetRoute(t *testing.T) {
routePrf2.SortingParameters = nil
}
- if err := internalRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(routePrf, reply) && !reflect.DeepEqual(routePrf2, reply) {
@@ -473,7 +474,7 @@ func testInternalRemoteITGetFilter(t *testing.T) {
},
}
var reply *engine.Filter
- if err := internalRPC.Call(utils.APIerSv1GetFilter,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ACNT_1001"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expFltr, reply) {
@@ -483,7 +484,7 @@ func testInternalRemoteITGetFilter(t *testing.T) {
func testInternalRemoteITGetRatingPlan(t *testing.T) {
var reply engine.RatingPlan
- if err := internalRPC.Call(utils.APIerSv1GetRatingPlan, utils.StringPointer("RP_1001"), &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetRatingPlan, utils.StringPointer("RP_1001"), &reply); err != nil {
t.Error(err.Error())
} else if reply.Id != "RP_1001" {
t.Errorf("Expected: %+v, received: %+v", "RP_1001", reply.Id)
@@ -515,7 +516,7 @@ func testInternalRemoteITGetRatingProfile(t *testing.T) {
},
},
}
- if err := internalRPC.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
@@ -529,7 +530,7 @@ func testInternalRemoteITGetAction(t *testing.T) {
BalanceDisabled: "false", ExpiryTime: utils.MetaUnlimited, Weight: 10.0}}
var reply []*utils.TPAction
- if err := internalRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACT_TOPUP_RST_10"), &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACT_TOPUP_RST_10"), &reply); err != nil {
t.Error("Got error on APIerSv1.GetActions: ", err.Error())
} else if !reflect.DeepEqual(expectActs, reply) {
t.Errorf("Expected: %v,\n received: %v", utils.ToJSON(expectActs), utils.ToJSON(reply))
@@ -538,7 +539,7 @@ func testInternalRemoteITGetAction(t *testing.T) {
func testInternalRemoteITGetActionPlan(t *testing.T) {
var aps []*engine.ActionPlan
- if err := internalRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: "AP_PACKAGE_10"}, &aps); err != nil {
t.Error(err)
} else if len(aps) != 1 {
@@ -546,7 +547,7 @@ func testInternalRemoteITGetActionPlan(t *testing.T) {
} else if aps[0].Id != "AP_PACKAGE_10" {
t.Errorf("Expected: %v,\n received: %v", "AP_PACKAGE_10", aps[0].Id)
}
- if err := internalRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: utils.EmptyString}, &aps); err != nil {
t.Error(err)
} else if len(aps) != 1 {
@@ -562,7 +563,7 @@ func testInternalRemoteITGetDestination(t *testing.T) {
Id: "DST_1002",
Prefixes: []string{"1002"},
}
- if err := internalRPC.Call(utils.APIerSv1GetDestination, utils.StringPointer("DST_1002"), &dst); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetDestination, utils.StringPointer("DST_1002"), &dst); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eDst, dst) {
t.Errorf("Expected: %v,\n received: %v", eDst, dst)
@@ -572,7 +573,7 @@ func testInternalRemoteITGetDestination(t *testing.T) {
func testInternalRemoteITGetReverseDestination(t *testing.T) {
var ids []string
eIDs := []string{"DST_1002"}
- if err := internalRPC.Call(utils.APIerSv1GetReverseDestination, utils.StringPointer("1002"), &ids); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetReverseDestination, utils.StringPointer("1002"), &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eIDs, ids) {
t.Errorf("Expected: %v,\n received: %v", eIDs, ids)
@@ -591,7 +592,7 @@ func testInternalRemoteITGetChargerProfile(t *testing.T) {
chargerProfile.FilterIDs = nil
}
var reply *engine.ChargerProfile
- if err := internalRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile, reply) {
@@ -601,7 +602,7 @@ func testInternalRemoteITGetChargerProfile(t *testing.T) {
func testInternalRemoteITGetDispatcherProfile(t *testing.T) {
var reply string
- if err := internalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
@@ -618,7 +619,7 @@ func testInternalRemoteITGetDispatcherProfile(t *testing.T) {
},
}
- if err := engineTwoRPC.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dispatcherProfile,
&reply); err != nil {
t.Error(err)
@@ -627,7 +628,7 @@ func testInternalRemoteITGetDispatcherProfile(t *testing.T) {
}
var dsp *engine.DispatcherProfile
- if err := internalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&dsp); err != nil {
t.Error(err)
@@ -638,7 +639,7 @@ func testInternalRemoteITGetDispatcherProfile(t *testing.T) {
func testInternalRemoteITGetDispatcherHost(t *testing.T) {
var reply string
- if err := internalRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Error(err)
@@ -654,7 +655,7 @@ func testInternalRemoteITGetDispatcherHost(t *testing.T) {
},
}
- if err := engineTwoRPC.Call(utils.APIerSv1SetDispatcherHost,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost,
dispatcherHost,
&reply); err != nil {
t.Error(err)
@@ -663,7 +664,7 @@ func testInternalRemoteITGetDispatcherHost(t *testing.T) {
}
var dsp *engine.DispatcherHost
- if err := internalRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"},
&dsp); err != nil {
t.Error(err)
@@ -675,7 +676,7 @@ func testInternalRemoteITGetDispatcherHost(t *testing.T) {
func testInternalReplicationSetThreshold(t *testing.T) {
var reply *engine.ThresholdProfile
var result string
- if err := internalRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Replication"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -684,7 +685,7 @@ func testInternalReplicationSetThreshold(t *testing.T) {
var indexes []string
expectedIDX := []string{"*string:*req.Account:1001:THD_ACNT_1001",
"*string:*req.Account:1002:THD_ACNT_1002"}
- if err := engineTwoRPC.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: "cgrates.org", FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -695,7 +696,7 @@ func testInternalReplicationSetThreshold(t *testing.T) {
expectedIDX, utils.ToJSON(indexes))
}
//verify indexes on internal before adding new threshold profile
- if err := internalRPC.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: "cgrates.org", FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -722,13 +723,13 @@ func testInternalReplicationSetThreshold(t *testing.T) {
Async: true,
},
}
- if err := internalRPC.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
time.Sleep(50 * time.Millisecond)
- if err := internalRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Replication"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -742,7 +743,7 @@ func testInternalReplicationSetThreshold(t *testing.T) {
}
// verify index on internal
sort.Strings(expectedIDX)
- if err := internalRPC.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: "cgrates.org", FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -753,7 +754,7 @@ func testInternalReplicationSetThreshold(t *testing.T) {
expectedIDX, utils.ToJSON(indexes))
}
// verify data on engine1
- if err := engineOneRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Replication"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -765,7 +766,7 @@ func testInternalReplicationSetThreshold(t *testing.T) {
"*string:*req.CustomField:CustomValue:THD_Replication",
}
// verify indexes on engine1 (should be the same as internal)
- if err := engineOneRPC.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: "cgrates.org", FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -776,7 +777,7 @@ func testInternalReplicationSetThreshold(t *testing.T) {
expectedIDX2, utils.ToJSON(indexes))
}
// verify data on engine2
- if err := engineTwoRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Replication"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -788,7 +789,7 @@ func testInternalReplicationSetThreshold(t *testing.T) {
"*string:*req.CustomField:CustomValue:THD_Replication",
}
// check if indexes was created correctly on engine2
- if err := engineTwoRPC.Call(utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &AttrGetFilterIndexes{
ItemType: utils.MetaThresholds, Tenant: "cgrates.org", FilterType: utils.MetaString},
&indexes); err != nil {
t.Error(err)
@@ -811,7 +812,7 @@ func testInternalMatchThreshold(t *testing.T) {
}
var ids []string
eIDs := []string{"THD_ACNT_1002"}
- if err := internalRPC.Call(utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -824,7 +825,7 @@ func testInternalMatchThreshold(t *testing.T) {
},
}
eIDs = []string{"THD_ACNT_1001"}
- if err := internalRPC.Call(utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -836,7 +837,7 @@ func testInternalMatchThreshold(t *testing.T) {
utils.AccountField: "1001",
},
}
- if err := internalRPC.Call(utils.ThresholdSv1ProcessEvent, ev2, &ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := internalRPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, ev2, &ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -853,7 +854,7 @@ func testInternalAccountBalanceOperations(t *testing.T) {
utils.ID: "testAccSetBalance",
},
}
- if err := internalRPC.Call(utils.APIerSv1SetBalance, attrs, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetBalance, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -863,7 +864,7 @@ func testInternalAccountBalanceOperations(t *testing.T) {
Account: "testAccount1",
}
// verify account on engineOne
- if err := engineOneRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaMonetary]) != 1 {
t.Errorf("Expecting: %+v, received: %+v",
@@ -874,7 +875,7 @@ func testInternalAccountBalanceOperations(t *testing.T) {
}
// verify account on engineTwo
- if err := engineTwoRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaMonetary]) != 1 {
t.Errorf("Expecting: %+v, received: %+v",
@@ -885,7 +886,7 @@ func testInternalAccountBalanceOperations(t *testing.T) {
}
// debit balance on internal and the account should be replicated to other engines
- if err := internalRPC.Call(utils.APIerSv1DebitBalance, &AttrAddBalance{
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1DebitBalance, &AttrAddBalance{
Tenant: "cgrates.org",
Account: "testAccount1",
BalanceType: utils.MetaMonetary,
@@ -897,7 +898,7 @@ func testInternalAccountBalanceOperations(t *testing.T) {
}
time.Sleep(50 * time.Millisecond)
// verify debited account on engineOne
- if err := engineOneRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaMonetary]) != 1 {
t.Errorf("Expecting: %+v, received: %+v",
@@ -908,7 +909,7 @@ func testInternalAccountBalanceOperations(t *testing.T) {
}
// verify debited account on engineTwo
- if err := engineTwoRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaMonetary]) != 1 {
t.Errorf("Expecting: %+v, received: %+v",
@@ -925,12 +926,12 @@ func testInternalAccountBalanceOperations(t *testing.T) {
Value: 12.765,
}
// add balance for the account on internal and this should be replicated to other engines
- if err := internalRPC.Call(utils.APIerSv1AddBalance, addBal, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1AddBalance, addBal, &reply); err != nil {
t.Error(err)
}
time.Sleep(50 * time.Millisecond)
// verify account on engineOne
- if err := engineOneRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaMonetary]) != 1 {
t.Errorf("Expecting: %+v, received: %+v",
@@ -941,7 +942,7 @@ func testInternalAccountBalanceOperations(t *testing.T) {
}
// verify account on engineTwo
- if err := engineTwoRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaMonetary]) != 1 {
t.Errorf("Expecting: %+v, received: %+v",
@@ -956,7 +957,7 @@ func testInternalAccountBalanceOperations(t *testing.T) {
func testInternalSetAccount(t *testing.T) {
var reply string
- if err := internalRPC.Call(utils.APIerSv1SetAccount,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetAccount,
utils.AttrSetAccount{
Tenant: "cgrates.org",
Account: "testSetAccount",
@@ -974,7 +975,7 @@ func testInternalSetAccount(t *testing.T) {
Account: "testSetAccount",
}
// verify account on engineOne
- if err := engineOneRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaMonetary]) != 1 {
t.Errorf("Expecting: %+v, received: %+v",
@@ -985,7 +986,7 @@ func testInternalSetAccount(t *testing.T) {
}
// verify account on engineTwo
- if err := engineTwoRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap[utils.MetaMonetary]) != 1 {
t.Errorf("Expecting: %+v, received: %+v",
@@ -1023,20 +1024,20 @@ func testInternalReplicateStats(t *testing.T) {
},
}
- if err := internalRPC.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
var rcv *engine.StatQueueProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "StatsToReplicate"}, &rcv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, rcv) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(statConfig.StatQueueProfile), utils.ToJSON(rcv))
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "StatsToReplicate"}, &rcv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, rcv) {
diff --git a/apier/v1/replicate_it_test.go b/apier/v1/replicate_it_test.go
index 90ccef2da..394bb5ee8 100644
--- a/apier/v1/replicate_it_test.go
+++ b/apier/v1/replicate_it_test.go
@@ -26,6 +26,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -148,7 +149,7 @@ func testInternalReplicateITRPCConn(t *testing.T) {
func testInternalReplicateLoadDataInInternalEngine(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := internalRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -157,16 +158,16 @@ func testInternalReplicateLoadDataInInternalEngine(t *testing.T) {
func testInternalReplicateITDestination(t *testing.T) {
//check
rpl := &engine.Destination{}
- if err := engineOneRPC.Call(utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
//set
attrs := utils.AttrSetDestination{Id: "testDestination", Prefixes: []string{"004", "005"}}
var reply string
- if err := internalRPC.Call(utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
t.Error("Unexpected error", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -176,12 +177,12 @@ func testInternalReplicateITDestination(t *testing.T) {
Prefixes: []string{"004", "005"},
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eDst, rpl) {
t.Errorf("Expected: %v,\n received: %v", eDst, rpl)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eDst, rpl) {
t.Errorf("Expected: %v,\n received: %v", eDst, rpl)
@@ -189,16 +190,16 @@ func testInternalReplicateITDestination(t *testing.T) {
// remove
attr := &AttrRemoveDestination{DestinationIDs: []string{"testDestination"}, Prefixes: []string{"004", "005"}}
- if err := internalRPC.Call(utils.APIerSv1RemoveDestination, &attr, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveDestination, &attr, &reply); err != nil {
t.Error("Unexpected error", err.Error())
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned: %+v", reply)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDestination, utils.StringPointer("testDestination"), &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
@@ -230,14 +231,14 @@ func testInternalReplicateITAttributeProfile(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := internalRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check
var reply *engine.AttributeProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: alsPrf.Tenant, ID: alsPrf.ID}}, &reply); err != nil {
t.Fatal(err)
}
@@ -245,7 +246,7 @@ func testInternalReplicateITAttributeProfile(t *testing.T) {
if !reflect.DeepEqual(alsPrf.AttributeProfile, reply) {
t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, reply)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: alsPrf.Tenant, ID: alsPrf.ID}}, &reply); err != nil {
t.Fatal(err)
}
@@ -255,18 +256,18 @@ func testInternalReplicateITAttributeProfile(t *testing.T) {
}
reply = &engine.AttributeProfile{}
//remove
- if err := internalRPC.Call(utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{
Tenant: alsPrf.Tenant, ID: alsPrf.ID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//check again
- if err := engineOneRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: alsPrf.Tenant, ID: alsPrf.ID}}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v received: %+v", utils.ErrNotFound, err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: alsPrf.Tenant, ID: alsPrf.ID}}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v received: %+v", utils.ErrNotFound, err)
}
@@ -279,10 +280,10 @@ func testInternalReplicateITRatingProfile(t *testing.T) {
Tenant: "cgrates.org",
Category: "call",
Subject: "Subject"}
- if err := engineOneRPC.Call(utils.APIerSv1GetRatingProfile, attrGetRatingProfile, &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingProfile, &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v received: %+v", utils.ErrNotFound, err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetRatingProfile, attrGetRatingProfile, &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingProfile, &rpl); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v received: %+v", utils.ErrNotFound, err)
}
// set
@@ -298,13 +299,13 @@ func testInternalReplicateITRatingProfile(t *testing.T) {
RatingPlanId: "RP_1001",
FallbackSubjects: "FallbackSubjects"},
}}
- if err := internalRPC.Call(utils.APIerSv1SetRatingProfile, &attrSetRatingProfile, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetRatingProfile, &attrSetRatingProfile, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
}
// Calling the second time should not raise EXISTS
- if err := internalRPC.Call(utils.APIerSv1SetRatingProfile, &attrSetRatingProfile, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetRatingProfile, &attrSetRatingProfile, &reply); err != nil {
t.Error(err)
}
//check
@@ -322,12 +323,12 @@ func testInternalReplicateITRatingProfile(t *testing.T) {
},
},
}
- if err := engineOneRPC.Call(utils.APIerSv1GetRatingProfile, attrGetRatingProfile, &rpl); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingProfile, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetRatingProfile, attrGetRatingProfile, &rpl); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingProfile, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
@@ -337,12 +338,12 @@ func testInternalReplicateITRatingProfile(t *testing.T) {
func testInternalReplicateITRouteProfile(t *testing.T) {
// check
var reply *engine.RouteProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -370,19 +371,19 @@ func testInternalReplicateITRouteProfile(t *testing.T) {
}
// set
var result string
- if err := internalRPC.Call(utils.APIerSv1SetRouteProfile, rPrf, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetRouteProfile, rPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rPrf.RouteProfile, reply) {
t.Errorf("Expecting: %+v, received: %+v", rPrf.RouteProfile, reply)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rPrf.RouteProfile, reply) {
@@ -390,19 +391,19 @@ func testInternalReplicateITRouteProfile(t *testing.T) {
}
// remove
var resp string
- if err := internalRPC.Call(utils.APIerSv1RemoveRouteProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveRouteProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -412,12 +413,12 @@ func testInternalReplicateITRouteProfile(t *testing.T) {
func testInternalReplicateITStatQueueProfile(t *testing.T) {
// check
var reply *engine.StatQueueProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -449,38 +450,38 @@ func testInternalReplicateITStatQueueProfile(t *testing.T) {
},
}
var result string
- if err := internalRPC.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//check
- if err := engineOneRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
t.Errorf("Expecting: %+v, received: %+v", statConfig.StatQueueProfile, reply)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
t.Errorf("Expecting: %+v, received: %+v", statConfig.StatQueueProfile, reply)
}
//remove
- if err := internalRPC.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -490,12 +491,12 @@ func testInternalReplicateITStatQueueProfile(t *testing.T) {
func testInternalReplicateITDispatcherProfile(t *testing.T) {
// check
var reply string
- if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
@@ -511,7 +512,7 @@ func testInternalReplicateITDispatcherProfile(t *testing.T) {
Weight: 20,
},
}
- if err := internalRPC.Call(utils.APIerSv1SetDispatcherProfile, dispatcherProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, dispatcherProfile,
&reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -519,14 +520,14 @@ func testInternalReplicateITDispatcherProfile(t *testing.T) {
}
// check
var dsp *engine.DispatcherProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&dsp); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dispatcherProfile.DispatcherProfile, dsp) {
t.Errorf("Expecting : %+v, received: %+v", dispatcherProfile.DispatcherProfile, dsp)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&dsp); err != nil {
t.Error(err)
@@ -535,23 +536,23 @@ func testInternalReplicateITDispatcherProfile(t *testing.T) {
}
// remove
var result string
- if err := internalRPC.Call(utils.APIerSv1RemoveDispatcherProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Errorf("Expecting : %+v, received: %+v", utils.OK, result)
}
// remove again
- if err := internalRPC.Call(utils.APIerSv1RemoveDispatcherProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}}, &result); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
}
// check again
- if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, &dsp); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, &dsp); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Error(err)
}
@@ -560,11 +561,11 @@ func testInternalReplicateITDispatcherProfile(t *testing.T) {
func testInternalReplicateITChargerProfile(t *testing.T) {
// check
var reply *engine.ChargerProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -584,38 +585,38 @@ func testInternalReplicateITChargerProfile(t *testing.T) {
},
}
var result string
- if err := internalRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
}
// remove
- if err := internalRPC.Call(utils.APIerSv1RemoveChargerProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//check
- if err := engineOneRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -625,12 +626,12 @@ func testInternalReplicateITChargerProfile(t *testing.T) {
func testInternalReplicateITDispatcherHost(t *testing.T) {
// check
var reply string
- if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Error(err)
@@ -645,7 +646,7 @@ func testInternalReplicateITDispatcherHost(t *testing.T) {
},
}
//set
- if err := internalRPC.Call(utils.APIerSv1SetDispatcherHost,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost,
dispatcherHost,
&reply); err != nil {
t.Error(err)
@@ -654,14 +655,14 @@ func testInternalReplicateITDispatcherHost(t *testing.T) {
}
// check
var dsp *engine.DispatcherHost
- if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"},
&dsp); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dispatcherHost.DispatcherHost, dsp) {
t.Errorf("Expecting : %+v, received: %+v", dispatcherHost.DispatcherHost, dsp)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"},
&dsp); err != nil {
t.Error(err)
@@ -669,7 +670,7 @@ func testInternalReplicateITDispatcherHost(t *testing.T) {
t.Errorf("Expecting : %+v, received: %+v", dispatcherHost.DispatcherHost, dsp)
}
// remove
- if err := internalRPC.Call(utils.APIerSv1RemoveDispatcherHost,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherHost,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"}},
&reply); err != nil {
t.Error(err)
@@ -677,12 +678,12 @@ func testInternalReplicateITDispatcherHost(t *testing.T) {
t.Errorf("Expecting : %+v, received: %+v", utils.OK, reply)
}
//check
- if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"},
&dsp); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"},
&dsp); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Error(err)
@@ -692,10 +693,10 @@ func testInternalReplicateITDispatcherHost(t *testing.T) {
func testInternalReplicateITFilter(t *testing.T) {
// check
var reply *engine.Filter
- if err := engineOneRPC.Call(utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
//set
@@ -717,35 +718,35 @@ func testInternalReplicateITFilter(t *testing.T) {
},
}
var rcv string
- if err := internalRPC.Call(utils.APIerSv1SetFilter, filter, &rcv); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetFilter, filter, &rcv); err != nil {
t.Error(err)
} else if rcv != utils.OK {
t.Error("Unexpected reply returned", rcv)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(filter.Filter, reply) {
t.Errorf("Expecting : %+v, received: %+v", filter.Filter, reply)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(filter.Filter, reply) {
t.Errorf("Expecting : %+v, received: %+v", filter.Filter, reply)
}
// remove
var resp string
- if err := internalRPC.Call(utils.APIerSv1RemoveFilter,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveFilter,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
// check again
- if err := engineOneRPC.Call(utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetFilter, &utils.TenantID{Tenant: "cgrates.org", ID: "Filter1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
@@ -753,11 +754,11 @@ func testInternalReplicateITFilter(t *testing.T) {
func testInternalReplicateITResourceProfile(t *testing.T) {
// check
var reply *engine.ResourceProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -782,37 +783,37 @@ func testInternalReplicateITResourceProfile(t *testing.T) {
}
var result string
- if err := internalRPC.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, rlsConfig.ResourceProfile) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rlsConfig.ResourceProfile), utils.ToJSON(reply))
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, rlsConfig.ResourceProfile) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rlsConfig.ResourceProfile), utils.ToJSON(reply))
}
// remove
- if err := internalRPC.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check again
- if err := engineOneRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -821,10 +822,10 @@ func testInternalReplicateITResourceProfile(t *testing.T) {
func testInternalReplicateITActions(t *testing.T) {
// check
var reply1 []*utils.TPAction
- if err := engineOneRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
t.Error(err)
}
// set
@@ -837,12 +838,12 @@ func testInternalReplicateITActions(t *testing.T) {
ExpiryTime: utils.MetaUnlimited,
Weight: 20.0}}}
var reply string
- if err := internalRPC.Call(utils.APIerSv1SetActions, &attrs1, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetActions, &attrs1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned: %s", reply)
}
- if err := internalRPC.Call(utils.APIerSv1SetActions, &attrs1, &reply); err == nil || err.Error() != "EXISTS" {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetActions, &attrs1, &reply); err == nil || err.Error() != "EXISTS" {
t.Error("Unexpected result on duplication: ", err)
}
// check
@@ -856,23 +857,23 @@ func testInternalReplicateITActions(t *testing.T) {
ExpiryTime: utils.MetaUnlimited,
Weight: 20.0,
}}
- if err := internalRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
t.Error("Got error on APIerSv1.GetActions: ", err.Error())
} else if !reflect.DeepEqual(eOut, reply1) {
t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
}
- if err := engineOneRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
t.Error("Got error on APIerSv1.GetActions: ", err.Error())
} else if !reflect.DeepEqual(eOut, reply1) {
t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
t.Error("Got error on APIerSv1.GetActions: ", err.Error())
} else if !reflect.DeepEqual(eOut, reply1) {
t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
}
// remove
- if err := internalRPC.Call(utils.APIerSv1RemoveActions,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveActions,
&AttrRemoveActions{
ActionIDs: []string{"ACTS_1"}}, &reply); err != nil {
t.Error("Got error on APIerSv1.RemoveActions: ", err.Error())
@@ -880,10 +881,10 @@ func testInternalReplicateITActions(t *testing.T) {
t.Error("Unexpected reply when calling APIerSv1.RemoveActions: ", err.Error())
}
// check again
- if err := engineOneRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
t.Error(err)
}
@@ -891,7 +892,7 @@ func testInternalReplicateITActions(t *testing.T) {
func testInternalReplicateITActionPlan(t *testing.T) {
var reply string
- if err := internalRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := internalRPC.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "ACTS_1",
Actions: []*utils.TPAction{{Identifier: utils.MetaLog}},
}, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
@@ -901,11 +902,11 @@ func testInternalReplicateITActionPlan(t *testing.T) {
}
// check
var aps []*engine.ActionPlan
- if err := engineOneRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: "ATMS_1"}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error at APIerSv1.GetActionPlan: %+v", err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: "ATMS_1"}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error at APIerSv1.GetActionPlan: %+v", err)
}
@@ -920,13 +921,13 @@ func testInternalReplicateITActionPlan(t *testing.T) {
},
}
var reply1 string
- if err := internalRPC.Call(utils.APIerSv1SetActionPlan, &atms1, &reply1); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &atms1, &reply1); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply1 != utils.OK {
t.Errorf("Unexpected reply returned: %s", reply1)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: "ATMS_1"}, &aps); err != nil {
t.Error(err)
} else if len(aps) != 1 {
@@ -938,7 +939,7 @@ func testInternalReplicateITActionPlan(t *testing.T) {
} else if aps[0].ActionTimings[0].Weight != 20.0 {
t.Errorf("Expected: 20.0,\n received: %v", aps[0].ActionTimings[0].Weight)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: "ATMS_1"}, &aps); err != nil {
t.Error(err)
} else if len(aps) != 1 {
@@ -951,18 +952,18 @@ func testInternalReplicateITActionPlan(t *testing.T) {
t.Errorf("Expected: 20.0,\n received: %v", aps[0].ActionTimings[0].Weight)
}
// remove
- if err := internalRPC.Call(utils.APIerSv1RemoveActionPlan, &AttrGetActionPlan{
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveActionPlan, &AttrGetActionPlan{
ID: "ATMS_1"}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
//check again
- if err := engineOneRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: "ATMS_1"}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %+v, rcv: %+v", err, utils.ToJSON(aps))
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&AttrGetActionPlan{ID: "ATMS_1"}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %+v, rcv: %+v", err, utils.ToJSON(aps))
}
@@ -971,12 +972,12 @@ func testInternalReplicateITActionPlan(t *testing.T) {
func testInternalReplicateITThresholdProfile(t *testing.T) {
// check
var reply *engine.ThresholdProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -998,7 +999,7 @@ func testInternalReplicateITThresholdProfile(t *testing.T) {
},
}
var result string
- if err := internalRPC.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1020,38 +1021,38 @@ func testInternalReplicateITThresholdProfile(t *testing.T) {
Async: true,
},
}
- if err := internalRPC.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, reply)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, reply)
}
// remove
- if err := internalRPC.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check again
- if err := engineOneRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1067,12 +1068,12 @@ func testInternalReplicateITSetAccount(t *testing.T) {
}
//check
var reply string
- if err := engineOneRPC.Call(utils.APIerSv1GetAccount,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetAccount,
&utils.AttrGetAccount{Account: "AccountTest", Tenant: tenant}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetAccount,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetAccount,
&utils.AttrGetAccount{Account: "AccountTest", Tenant: tenant}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1081,7 +1082,7 @@ func testInternalReplicateITSetAccount(t *testing.T) {
attrSetAccount := &utils.AttrSetAccount{
Account: "AccountTest",
Tenant: tenant}
- if err := internalRPC.Call(utils.APIerSv1SetAccount, attrSetAccount, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetAccount, attrSetAccount, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -1089,28 +1090,28 @@ func testInternalReplicateITSetAccount(t *testing.T) {
//check
tmp := engine.Account{}
rcvAccount := tmp.AsOldStructure()
- if err := engineOneRPC.Call(utils.APIerSv1GetAccount,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetAccount,
&utils.AttrGetAccount{Account: "AccountTest", Tenant: tenant}, &rcvAccount); err != nil {
t.Errorf("Unexpected error : %+v\nRCV: %+v", err, rcvAccount)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetAccount,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetAccount,
&utils.AttrGetAccount{Account: "AccountTest", Tenant: tenant}, &rcvAccount); err != nil {
t.Errorf("Unexpected error : %+v", err)
}
//remove
- if err := internalRPC.Call(utils.APIerSv1RemoveAccount,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveAccount,
&utils.AttrRemoveAccount{
Account: "AccountTest",
Tenant: tenant}, &reply); err != nil {
t.Errorf("Unexpected error : %+v", err)
}
//check
- if err := engineOneRPC.Call(utils.APIerSv1GetAccount,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetAccount,
&utils.AttrGetAccount{Account: "AccountTest", Tenant: tenant}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetAccount,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetAccount,
&utils.AttrGetAccount{Account: "AccountTest", Tenant: tenant}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1120,11 +1121,11 @@ func testInternalReplicateITSetAccount(t *testing.T) {
func testInternalReplicateITActionTrigger(t *testing.T) {
// check
var atrs engine.ActionTriggers
- if err := engineOneRPC.Call(utils.APIerSv1GetActionTriggers,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers,
&AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error("Got error on APIerSv1.GetActionTriggers: ", err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActionTriggers,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers,
&AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error("Got error on APIerSv1.GetActionTriggers: ", err)
}
@@ -1137,13 +1138,13 @@ func testInternalReplicateITActionTrigger(t *testing.T) {
utils.BalanceID: utils.StringPointer("BalanceIDtest1"),
}}
- if err := internalRPC.Call(utils.APIerSv1SetActionTrigger, attrSet, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetActionTrigger, attrSet, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling v1.SetActionTrigger got: %v", reply)
}
// check
- if err := engineOneRPC.Call(utils.APIerSv1GetActionTriggers, &AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers, &AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err != nil {
t.Error("Got error on APIerSv1.GetActionTriggers: ", err)
} else if len(atrs) != 1 {
t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
@@ -1154,7 +1155,7 @@ func testInternalReplicateITActionTrigger(t *testing.T) {
} else if *atrs[0].Balance.ID != "BalanceIDtest1" {
t.Errorf("Expecting BalanceIDtest1, received: %+v", atrs[0].Balance.ID)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActionTriggers, &AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers, &AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err != nil {
t.Error("Got error on APIerSv1.GetActionTriggers: ", err)
} else if len(atrs) != 1 {
t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
@@ -1170,17 +1171,17 @@ func testInternalReplicateITActionTrigger(t *testing.T) {
GroupID: "TestATR",
UniqueID: "UniqueID",
}
- if err := internalRPC.Call(utils.APIerSv1RemoveActionTrigger, asttrRemove, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveActionTrigger, asttrRemove, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Calling v1.RemoveActionTrigger got: %v", reply)
}
//check
- if err := engineOneRPC.Call(utils.APIerSv1GetActionTriggers,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers,
&AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Got error on APIerSv1.GetActionTriggers: %+v", err)
}
- if err := engineTwoRPC.Call(utils.APIerSv1GetActionTriggers,
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers,
&AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error("Got error on APIerSv1.GetActionTriggers: ", err)
}
@@ -1189,7 +1190,7 @@ func testInternalReplicateITActionTrigger(t *testing.T) {
func testInternalReplicateITThreshold(t *testing.T) {
// get threshold
var td engine.Threshold
- if err := engineOneRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := engineOneRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: tenant,
@@ -1198,7 +1199,7 @@ func testInternalReplicateITThreshold(t *testing.T) {
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := engineTwoRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: tenant,
@@ -1222,7 +1223,7 @@ func testInternalReplicateITThreshold(t *testing.T) {
}
//set Actions
var reply string
- if err := internalRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := internalRPC.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "ACT_LOG",
Actions: []*utils.TPAction{{Identifier: utils.MetaLog}},
}, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
@@ -1241,13 +1242,13 @@ func testInternalReplicateITThreshold(t *testing.T) {
},
}
// set Threshold
- if err := internalRPC.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
//get
- if err := internalRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := internalRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: tenant,
@@ -1263,7 +1264,7 @@ func testInternalReplicateITThreshold(t *testing.T) {
Tenant: tenant,
ExtraOptions: map[string]bool{
utils.AllowNegative: true}}
- if err := internalRPC.Call(utils.APIerSv1SetAccount, attrSetAccount, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetAccount, attrSetAccount, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -1279,13 +1280,13 @@ func testInternalReplicateITThreshold(t *testing.T) {
utils.Weight: 10.0,
},
}
- if err := internalRPC.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
// processEvent
var ids []string
//eIDs := []string{}
- if err := internalRPC.Call(utils.ThresholdSv1ProcessEvent, &tEvs, &ids); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs, &ids); err != nil {
t.Error(err)
} else if len(ids) != 1 {
t.Errorf("Expecting 1: ,received %+v", len(ids))
@@ -1293,7 +1294,7 @@ func testInternalReplicateITThreshold(t *testing.T) {
t.Errorf("Expecting: THD_Test, received %q", ids[0])
}
//get
- if err := internalRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := internalRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: tenant,
@@ -1306,14 +1307,14 @@ func testInternalReplicateITThreshold(t *testing.T) {
// remove
var result string
- if err := internalRPC.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantID{Tenant: tenant, ID: "THD_Test"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := engineOneRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := engineOneRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: tenant,
@@ -1322,7 +1323,7 @@ func testInternalReplicateITThreshold(t *testing.T) {
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := engineTwoRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := engineTwoRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: tenant,
@@ -1337,11 +1338,11 @@ func testInternalReplicateITThreshold(t *testing.T) {
func testInternalReplicateITLoadIds(t *testing.T) {
// get LoadIDs
var rcv1e1 map[string]int64
- if err := engineOneRPC.Call(utils.APIerSv1GetLoadIDs, utils.StringPointer(utils.EmptyString), &rcv1e1); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetLoadIDs, utils.StringPointer(utils.EmptyString), &rcv1e1); err != nil {
t.Error(err)
}
var rcv1e2 map[string]int64
- if err := engineTwoRPC.Call(utils.APIerSv1GetLoadIDs, utils.StringPointer(utils.EmptyString), &rcv1e2); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetLoadIDs, utils.StringPointer(utils.EmptyString), &rcv1e2); err != nil {
t.Error(err)
}
if !reflect.DeepEqual(rcv1e1, rcv1e2) {
@@ -1374,14 +1375,14 @@ func testInternalReplicateITLoadIds(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := internalRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := internalRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
// check AttributeProfile
var reply *engine.AttributeProfile
- if err := engineOneRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: alsPrf.Tenant, ID: alsPrf.ID}}, &reply); err != nil {
t.Fatal(err)
}
@@ -1391,11 +1392,11 @@ func testInternalReplicateITLoadIds(t *testing.T) {
}
// check again the LoadIDs
var rcv2e1 map[string]int64
- if err := engineOneRPC.Call(utils.APIerSv1GetLoadIDs, utils.StringPointer(utils.EmptyString), &rcv2e1); err != nil {
+ if err := engineOneRPC.Call(context.Background(), utils.APIerSv1GetLoadIDs, utils.StringPointer(utils.EmptyString), &rcv2e1); err != nil {
t.Error(err)
}
var rcv2e2 map[string]int64
- if err := engineTwoRPC.Call(utils.APIerSv1GetLoadIDs, utils.StringPointer(utils.EmptyString), &rcv2e2); err != nil {
+ if err := engineTwoRPC.Call(context.Background(), utils.APIerSv1GetLoadIDs, utils.StringPointer(utils.EmptyString), &rcv2e2); err != nil {
t.Error(err)
}
diff --git a/apier/v1/replicator.go b/apier/v1/replicator.go
index 875eedf49..19916448c 100644
--- a/apier/v1/replicator.go
+++ b/apier/v1/replicator.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -37,13 +38,13 @@ type ReplicatorSv1 struct {
v1 *APIerSv1 // needed for CallCache only
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (rplSv1 *ReplicatorSv1) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface for internal RPC
+func (rplSv1 *ReplicatorSv1) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.APIerRPCCall(rplSv1, serviceMethod, args, reply)
}
// GetAccount is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetAccount(args *utils.StringWithAPIOpts, reply *engine.Account) error {
+func (rplSv1 *ReplicatorSv1) GetAccount(ctx *context.Context, args *utils.StringWithAPIOpts, reply *engine.Account) error {
engine.UpdateReplicationFilters(utils.AccountPrefix, args.Arg, utils.IfaceAsString(args.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.GetAccount(args.Arg)
if err != nil {
@@ -54,7 +55,7 @@ func (rplSv1 *ReplicatorSv1) GetAccount(args *utils.StringWithAPIOpts, reply *en
}
// GetDestination is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetDestination(key *utils.StringWithAPIOpts, reply *engine.Destination) error {
+func (rplSv1 *ReplicatorSv1) GetDestination(ctx *context.Context, key *utils.StringWithAPIOpts, reply *engine.Destination) error {
engine.UpdateReplicationFilters(utils.DestinationPrefix, key.Arg, utils.IfaceAsString(key.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetDestinationDrv(key.Arg, utils.NonTransactional)
if err != nil {
@@ -65,7 +66,7 @@ func (rplSv1 *ReplicatorSv1) GetDestination(key *utils.StringWithAPIOpts, reply
}
// GetReverseDestination is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetReverseDestination(key *utils.StringWithAPIOpts, reply *[]string) error {
+func (rplSv1 *ReplicatorSv1) GetReverseDestination(ctx *context.Context, key *utils.StringWithAPIOpts, reply *[]string) error {
rcv, err := rplSv1.dm.DataDB().GetReverseDestinationDrv(key.Arg, utils.NonTransactional)
if err != nil {
return err
@@ -78,7 +79,7 @@ func (rplSv1 *ReplicatorSv1) GetReverseDestination(key *utils.StringWithAPIOpts,
}
// GetStatQueue is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetStatQueue(tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) error {
+func (rplSv1 *ReplicatorSv1) GetStatQueue(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) error {
engine.UpdateReplicationFilters(utils.StatQueuePrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetStatQueueDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -89,7 +90,7 @@ func (rplSv1 *ReplicatorSv1) GetStatQueue(tntID *utils.TenantIDWithAPIOpts, repl
}
// GetFilter is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetFilter(tntID *utils.TenantIDWithAPIOpts, reply *engine.Filter) error {
+func (rplSv1 *ReplicatorSv1) GetFilter(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Filter) error {
engine.UpdateReplicationFilters(utils.FilterPrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetFilterDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -100,7 +101,7 @@ func (rplSv1 *ReplicatorSv1) GetFilter(tntID *utils.TenantIDWithAPIOpts, reply *
}
// GetThreshold is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetThreshold(tntID *utils.TenantIDWithAPIOpts, reply *engine.Threshold) error {
+func (rplSv1 *ReplicatorSv1) GetThreshold(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Threshold) error {
engine.UpdateReplicationFilters(utils.ThresholdPrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetThresholdDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -111,7 +112,7 @@ func (rplSv1 *ReplicatorSv1) GetThreshold(tntID *utils.TenantIDWithAPIOpts, repl
}
// GetThresholdProfile is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetThresholdProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) error {
+func (rplSv1 *ReplicatorSv1) GetThresholdProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) error {
engine.UpdateReplicationFilters(utils.ThresholdProfilePrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetThresholdProfileDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -122,7 +123,7 @@ func (rplSv1 *ReplicatorSv1) GetThresholdProfile(tntID *utils.TenantIDWithAPIOpt
}
// GetStatQueueProfile is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetStatQueueProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) error {
+func (rplSv1 *ReplicatorSv1) GetStatQueueProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) error {
engine.UpdateReplicationFilters(utils.StatQueueProfilePrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetStatQueueProfileDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -133,7 +134,7 @@ func (rplSv1 *ReplicatorSv1) GetStatQueueProfile(tntID *utils.TenantIDWithAPIOpt
}
// GetTiming is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetTiming(id *utils.StringWithAPIOpts, reply *utils.TPTiming) error {
+func (rplSv1 *ReplicatorSv1) GetTiming(ctx *context.Context, id *utils.StringWithAPIOpts, reply *utils.TPTiming) error {
engine.UpdateReplicationFilters(utils.TimingsPrefix, id.Arg, utils.IfaceAsString(id.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetTimingDrv(id.Arg)
if err != nil {
@@ -144,7 +145,7 @@ func (rplSv1 *ReplicatorSv1) GetTiming(id *utils.StringWithAPIOpts, reply *utils
}
// GetResource is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetResource(tntID *utils.TenantIDWithAPIOpts, reply *engine.Resource) error {
+func (rplSv1 *ReplicatorSv1) GetResource(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.Resource) error {
engine.UpdateReplicationFilters(utils.ResourcesPrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetResourceDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -155,7 +156,7 @@ func (rplSv1 *ReplicatorSv1) GetResource(tntID *utils.TenantIDWithAPIOpts, reply
}
// GetResourceProfile is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetResourceProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) error {
+func (rplSv1 *ReplicatorSv1) GetResourceProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) error {
engine.UpdateReplicationFilters(utils.ResourceProfilesPrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetResourceProfileDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -166,7 +167,7 @@ func (rplSv1 *ReplicatorSv1) GetResourceProfile(tntID *utils.TenantIDWithAPIOpts
}
// GetActionTriggers is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetActionTriggers(id *utils.StringWithAPIOpts, reply *engine.ActionTriggers) error {
+func (rplSv1 *ReplicatorSv1) GetActionTriggers(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.ActionTriggers) error {
engine.UpdateReplicationFilters(utils.ActionTriggerPrefix, id.Arg, utils.IfaceAsString(id.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetActionTriggersDrv(id.Arg)
if err != nil {
@@ -177,7 +178,7 @@ func (rplSv1 *ReplicatorSv1) GetActionTriggers(id *utils.StringWithAPIOpts, repl
}
// GetSharedGroup is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetSharedGroup(id *utils.StringWithAPIOpts, reply *engine.SharedGroup) error {
+func (rplSv1 *ReplicatorSv1) GetSharedGroup(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.SharedGroup) error {
engine.UpdateReplicationFilters(utils.SharedGroupPrefix, id.Arg, utils.IfaceAsString(id.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetSharedGroupDrv(id.Arg)
if err != nil {
@@ -188,7 +189,7 @@ func (rplSv1 *ReplicatorSv1) GetSharedGroup(id *utils.StringWithAPIOpts, reply *
}
// GetActions is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetActions(id *utils.StringWithAPIOpts, reply *engine.Actions) error {
+func (rplSv1 *ReplicatorSv1) GetActions(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.Actions) error {
engine.UpdateReplicationFilters(utils.ActionPrefix, id.Arg, utils.IfaceAsString(id.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetActionsDrv(id.Arg)
if err != nil {
@@ -199,7 +200,7 @@ func (rplSv1 *ReplicatorSv1) GetActions(id *utils.StringWithAPIOpts, reply *engi
}
// GetActionPlan is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetActionPlan(id *utils.StringWithAPIOpts, reply *engine.ActionPlan) error {
+func (rplSv1 *ReplicatorSv1) GetActionPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.ActionPlan) error {
engine.UpdateReplicationFilters(utils.ActionPlanPrefix, id.Arg, utils.IfaceAsString(id.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetActionPlanDrv(id.Arg)
if err != nil {
@@ -210,7 +211,7 @@ func (rplSv1 *ReplicatorSv1) GetActionPlan(id *utils.StringWithAPIOpts, reply *e
}
// GetAllActionPlans is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetAllActionPlans(id *utils.StringWithAPIOpts, reply *map[string]*engine.ActionPlan) error {
+func (rplSv1 *ReplicatorSv1) GetAllActionPlans(ctx *context.Context, id *utils.StringWithAPIOpts, reply *map[string]*engine.ActionPlan) error {
rcv, err := rplSv1.dm.DataDB().GetAllActionPlansDrv()
if err != nil {
return err
@@ -223,7 +224,7 @@ func (rplSv1 *ReplicatorSv1) GetAllActionPlans(id *utils.StringWithAPIOpts, repl
}
// GetAccountActionPlans is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetAccountActionPlans(id *utils.StringWithAPIOpts, reply *[]string) error {
+func (rplSv1 *ReplicatorSv1) GetAccountActionPlans(ctx *context.Context, id *utils.StringWithAPIOpts, reply *[]string) error {
engine.UpdateReplicationFilters(utils.AccountActionPlansPrefix, id.Arg, utils.IfaceAsString(id.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetAccountActionPlansDrv(id.Arg)
if err != nil {
@@ -234,7 +235,7 @@ func (rplSv1 *ReplicatorSv1) GetAccountActionPlans(id *utils.StringWithAPIOpts,
}
// GetRatingPlan is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetRatingPlan(id *utils.StringWithAPIOpts, reply *engine.RatingPlan) error {
+func (rplSv1 *ReplicatorSv1) GetRatingPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.RatingPlan) error {
engine.UpdateReplicationFilters(utils.RatingPlanPrefix, id.Arg, utils.IfaceAsString(id.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetRatingPlanDrv(id.Arg)
if err != nil {
@@ -245,7 +246,7 @@ func (rplSv1 *ReplicatorSv1) GetRatingPlan(id *utils.StringWithAPIOpts, reply *e
}
// GetRatingProfile is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetRatingProfile(id *utils.StringWithAPIOpts, reply *engine.RatingProfile) error {
+func (rplSv1 *ReplicatorSv1) GetRatingProfile(ctx *context.Context, id *utils.StringWithAPIOpts, reply *engine.RatingProfile) error {
engine.UpdateReplicationFilters(utils.RatingProfilePrefix, id.Arg, utils.IfaceAsString(id.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetRatingProfileDrv(id.Arg)
if err != nil {
@@ -256,7 +257,7 @@ func (rplSv1 *ReplicatorSv1) GetRatingProfile(id *utils.StringWithAPIOpts, reply
}
// GetRouteProfile is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetRouteProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) error {
+func (rplSv1 *ReplicatorSv1) GetRouteProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) error {
engine.UpdateReplicationFilters(utils.RouteProfilePrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetRouteProfileDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -267,7 +268,7 @@ func (rplSv1 *ReplicatorSv1) GetRouteProfile(tntID *utils.TenantIDWithAPIOpts, r
}
// GetAttributeProfile is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetAttributeProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) error {
+func (rplSv1 *ReplicatorSv1) GetAttributeProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) error {
engine.UpdateReplicationFilters(utils.AttributeProfilePrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetAttributeProfileDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -278,7 +279,7 @@ func (rplSv1 *ReplicatorSv1) GetAttributeProfile(tntID *utils.TenantIDWithAPIOpt
}
// GetChargerProfile is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetChargerProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) error {
+func (rplSv1 *ReplicatorSv1) GetChargerProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) error {
engine.UpdateReplicationFilters(utils.ChargerProfilePrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetChargerProfileDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -289,7 +290,7 @@ func (rplSv1 *ReplicatorSv1) GetChargerProfile(tntID *utils.TenantIDWithAPIOpts,
}
// GetDispatcherProfile is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetDispatcherProfile(tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) error {
+func (rplSv1 *ReplicatorSv1) GetDispatcherProfile(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) error {
engine.UpdateReplicationFilters(utils.DispatcherProfilePrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetDispatcherProfileDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -300,7 +301,7 @@ func (rplSv1 *ReplicatorSv1) GetDispatcherProfile(tntID *utils.TenantIDWithAPIOp
}
// GetDispatcherHost is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetDispatcherHost(tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) error {
+func (rplSv1 *ReplicatorSv1) GetDispatcherHost(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) error {
engine.UpdateReplicationFilters(utils.DispatcherHostPrefix, tntID.TenantID.TenantID(), utils.IfaceAsString(tntID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetDispatcherHostDrv(tntID.Tenant, tntID.ID)
if err != nil {
@@ -311,7 +312,7 @@ func (rplSv1 *ReplicatorSv1) GetDispatcherHost(tntID *utils.TenantIDWithAPIOpts,
}
// GetItemLoadIDs is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetItemLoadIDs(itemID *utils.StringWithAPIOpts, reply *map[string]int64) error {
+func (rplSv1 *ReplicatorSv1) GetItemLoadIDs(ctx *context.Context, itemID *utils.StringWithAPIOpts, reply *map[string]int64) error {
engine.UpdateReplicationFilters(utils.LoadIDPrefix, itemID.Arg, utils.IfaceAsString(itemID.APIOpts[utils.RemoteHostOpt]))
rcv, err := rplSv1.dm.DataDB().GetItemLoadIDsDrv(itemID.Arg)
if err != nil {
@@ -322,7 +323,7 @@ func (rplSv1 *ReplicatorSv1) GetItemLoadIDs(itemID *utils.StringWithAPIOpts, rep
}
// GetIndexes is the remote method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) GetIndexes(args *utils.GetIndexesArg, reply *map[string]utils.StringSet) error {
+func (rplSv1 *ReplicatorSv1) GetIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *map[string]utils.StringSet) error {
engine.UpdateReplicationFilters(utils.CacheInstanceToPrefix[args.IdxItmType], args.TntCtx, utils.IfaceAsString(args.APIOpts[utils.RemoteHostOpt]))
indx, err := rplSv1.dm.DataDB().GetIndexesDrv(args.IdxItmType, args.TntCtx, args.IdxKey)
if err != nil {
@@ -333,7 +334,7 @@ func (rplSv1 *ReplicatorSv1) GetIndexes(args *utils.GetIndexesArg, reply *map[st
}
// SetAccount is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetAccount(acc *engine.AccountWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetAccount(ctx *context.Context, acc *engine.AccountWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetAccountDrv(acc.Account); err != nil {
return
}
@@ -343,7 +344,7 @@ func (rplSv1 *ReplicatorSv1) SetAccount(acc *engine.AccountWithAPIOpts, reply *s
}
// SetDestination is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetDestination(dst *engine.DestinationWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetDestination(ctx *context.Context, dst *engine.DestinationWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetDestinationDrv(dst.Destination, utils.NonTransactional); err != nil {
return
}
@@ -356,7 +357,7 @@ func (rplSv1 *ReplicatorSv1) SetDestination(dst *engine.DestinationWithAPIOpts,
}
// SetReverseDestination is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetReverseDestination(dst *engine.DestinationWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetReverseDestination(ctx *context.Context, dst *engine.DestinationWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetReverseDestinationDrv(dst.Destination.Id, dst.Destination.Prefixes, utils.NonTransactional); err != nil {
return
}
@@ -369,7 +370,7 @@ func (rplSv1 *ReplicatorSv1) SetReverseDestination(dst *engine.DestinationWithAP
}
// SetThresholdProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetThresholdProfile(th *engine.ThresholdProfileWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetThresholdProfile(ctx *context.Context, th *engine.ThresholdProfileWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetThresholdProfileDrv(th.ThresholdProfile); err != nil {
return
}
@@ -382,7 +383,7 @@ func (rplSv1 *ReplicatorSv1) SetThresholdProfile(th *engine.ThresholdProfileWith
}
// SetThreshold is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetThreshold(th *engine.ThresholdWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetThreshold(ctx *context.Context, th *engine.ThresholdWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetThresholdDrv(th.Threshold); err != nil {
return
}
@@ -395,7 +396,7 @@ func (rplSv1 *ReplicatorSv1) SetThreshold(th *engine.ThresholdWithAPIOpts, reply
}
// SetStatQueueProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetStatQueueProfile(sq *engine.StatQueueProfileWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetStatQueueProfile(ctx *context.Context, sq *engine.StatQueueProfileWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetStatQueueProfileDrv(sq.StatQueueProfile); err != nil {
return
}
@@ -408,7 +409,7 @@ func (rplSv1 *ReplicatorSv1) SetStatQueueProfile(sq *engine.StatQueueProfileWith
}
// SetStatQueue is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetStatQueue(sq *engine.StatQueueWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetStatQueue(ctx *context.Context, sq *engine.StatQueueWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetStatQueueDrv(nil, sq.StatQueue); err != nil {
return
}
@@ -421,7 +422,7 @@ func (rplSv1 *ReplicatorSv1) SetStatQueue(sq *engine.StatQueueWithAPIOpts, reply
}
// SetFilter is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetFilter(fltr *engine.FilterWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetFilter(ctx *context.Context, fltr *engine.FilterWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetFilterDrv(fltr.Filter); err != nil {
return
}
@@ -434,7 +435,7 @@ func (rplSv1 *ReplicatorSv1) SetFilter(fltr *engine.FilterWithAPIOpts, reply *st
}
// SetTiming is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetTiming(tm *utils.TPTimingWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetTiming(ctx *context.Context, tm *utils.TPTimingWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetTimingDrv(tm.TPTiming); err != nil {
return
}
@@ -447,7 +448,7 @@ func (rplSv1 *ReplicatorSv1) SetTiming(tm *utils.TPTimingWithAPIOpts, reply *str
}
// SetResourceProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetResourceProfile(rs *engine.ResourceProfileWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetResourceProfile(ctx *context.Context, rs *engine.ResourceProfileWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetResourceProfileDrv(rs.ResourceProfile); err != nil {
return
}
@@ -460,7 +461,7 @@ func (rplSv1 *ReplicatorSv1) SetResourceProfile(rs *engine.ResourceProfileWithAP
}
// SetResource is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetResource(rs *engine.ResourceWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetResource(ctx *context.Context, rs *engine.ResourceWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetResourceDrv(rs.Resource); err != nil {
return
}
@@ -473,7 +474,7 @@ func (rplSv1 *ReplicatorSv1) SetResource(rs *engine.ResourceWithAPIOpts, reply *
}
// SetActionTriggers is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetActionTriggers(args *engine.SetActionTriggersArgWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetActionTriggers(ctx *context.Context, args *engine.SetActionTriggersArgWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetActionTriggersDrv(args.Key, args.Attrs); err != nil {
return
}
@@ -486,7 +487,7 @@ func (rplSv1 *ReplicatorSv1) SetActionTriggers(args *engine.SetActionTriggersArg
}
// SetSharedGroup is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetSharedGroup(shg *engine.SharedGroupWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetSharedGroup(ctx *context.Context, shg *engine.SharedGroupWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetSharedGroupDrv(shg.SharedGroup); err != nil {
return
}
@@ -499,7 +500,7 @@ func (rplSv1 *ReplicatorSv1) SetSharedGroup(shg *engine.SharedGroupWithAPIOpts,
}
// SetActions is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetActions(args *engine.SetActionsArgsWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetActions(ctx *context.Context, args *engine.SetActionsArgsWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetActionsDrv(args.Key, args.Acs); err != nil {
return
}
@@ -512,7 +513,7 @@ func (rplSv1 *ReplicatorSv1) SetActions(args *engine.SetActionsArgsWithAPIOpts,
}
// SetRatingPlan is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetRatingPlan(rp *engine.RatingPlanWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetRatingPlan(ctx *context.Context, rp *engine.RatingPlanWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetRatingPlanDrv(rp.RatingPlan); err != nil {
return
}
@@ -525,7 +526,7 @@ func (rplSv1 *ReplicatorSv1) SetRatingPlan(rp *engine.RatingPlanWithAPIOpts, rep
}
// SetRatingProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetRatingProfile(rp *engine.RatingProfileWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetRatingProfile(ctx *context.Context, rp *engine.RatingProfileWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetRatingProfileDrv(rp.RatingProfile); err != nil {
return
}
@@ -538,7 +539,7 @@ func (rplSv1 *ReplicatorSv1) SetRatingProfile(rp *engine.RatingProfileWithAPIOpt
}
// SetRouteProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetRouteProfile(sp *engine.RouteProfileWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetRouteProfile(ctx *context.Context, sp *engine.RouteProfileWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetRouteProfileDrv(sp.RouteProfile); err != nil {
return
}
@@ -551,7 +552,7 @@ func (rplSv1 *ReplicatorSv1) SetRouteProfile(sp *engine.RouteProfileWithAPIOpts,
}
// SetAttributeProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetAttributeProfile(ap *engine.AttributeProfileWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetAttributeProfile(ctx *context.Context, ap *engine.AttributeProfileWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetAttributeProfileDrv(ap.AttributeProfile); err != nil {
return
}
@@ -564,7 +565,7 @@ func (rplSv1 *ReplicatorSv1) SetAttributeProfile(ap *engine.AttributeProfileWith
}
// SetChargerProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetChargerProfile(cp *engine.ChargerProfileWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetChargerProfile(ctx *context.Context, cp *engine.ChargerProfileWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetChargerProfileDrv(cp.ChargerProfile); err != nil {
return
}
@@ -577,7 +578,7 @@ func (rplSv1 *ReplicatorSv1) SetChargerProfile(cp *engine.ChargerProfileWithAPIO
}
// SetDispatcherProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetDispatcherProfile(dpp *engine.DispatcherProfileWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetDispatcherProfile(ctx *context.Context, dpp *engine.DispatcherProfileWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetDispatcherProfileDrv(dpp.DispatcherProfile); err != nil {
return
}
@@ -590,7 +591,7 @@ func (rplSv1 *ReplicatorSv1) SetDispatcherProfile(dpp *engine.DispatcherProfileW
}
// SetActionPlan is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetActionPlan(args *engine.SetActionPlanArgWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetActionPlan(ctx *context.Context, args *engine.SetActionPlanArgWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetActionPlanDrv(args.Key, args.Ats); err != nil {
return
}
@@ -603,7 +604,7 @@ func (rplSv1 *ReplicatorSv1) SetActionPlan(args *engine.SetActionPlanArgWithAPIO
}
// SetAccountActionPlans is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetAccountActionPlans(args *engine.SetAccountActionPlansArgWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetAccountActionPlans(ctx *context.Context, args *engine.SetAccountActionPlansArgWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetAccountActionPlansDrv(args.AcntID, args.AplIDs); err != nil {
return
}
@@ -616,7 +617,7 @@ func (rplSv1 *ReplicatorSv1) SetAccountActionPlans(args *engine.SetAccountAction
}
// SetDispatcherHost is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetDispatcherHost(dpp *engine.DispatcherHostWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetDispatcherHost(ctx *context.Context, dpp *engine.DispatcherHostWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetDispatcherHostDrv(dpp.DispatcherHost); err != nil {
return
}
@@ -629,7 +630,7 @@ func (rplSv1 *ReplicatorSv1) SetDispatcherHost(dpp *engine.DispatcherHostWithAPI
}
// SetLoadIDs is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetLoadIDs(args *utils.LoadIDsWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetLoadIDs(ctx *context.Context, args *utils.LoadIDsWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetLoadIDsDrv(args.LoadIDs); err != nil {
return
}
@@ -646,7 +647,7 @@ func (rplSv1 *ReplicatorSv1) SetLoadIDs(args *utils.LoadIDsWithAPIOpts, reply *s
}
// SetIndexes is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) SetIndexes(args *utils.SetIndexesArg, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) SetIndexes(ctx *context.Context, args *utils.SetIndexesArg, reply *string) (err error) {
if err = rplSv1.dm.DataDB().SetIndexesDrv(args.IdxItmType, args.TntCtx, args.Indexes, true, utils.NonTransactional); err != nil {
return
}
@@ -663,7 +664,7 @@ func (rplSv1 *ReplicatorSv1) SetIndexes(args *utils.SetIndexesArg, reply *string
}
// RemoveThreshold is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveThreshold(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveThresholdDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -676,7 +677,7 @@ func (rplSv1 *ReplicatorSv1) RemoveThreshold(args *utils.TenantIDWithAPIOpts, re
}
// RemoveDestination is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveDestination(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveDestination(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveDestinationDrv(id.Arg, utils.NonTransactional); err != nil {
return
}
@@ -689,7 +690,7 @@ func (rplSv1 *ReplicatorSv1) RemoveDestination(id *utils.StringWithAPIOpts, repl
}
// RemoveAccount is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveAccount(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveAccount(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveAccountDrv(id.Arg); err != nil {
return
}
@@ -699,7 +700,7 @@ func (rplSv1 *ReplicatorSv1) RemoveAccount(id *utils.StringWithAPIOpts, reply *s
}
// RemoveStatQueue is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveStatQueue(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemStatQueueDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -712,7 +713,7 @@ func (rplSv1 *ReplicatorSv1) RemoveStatQueue(args *utils.TenantIDWithAPIOpts, re
}
// RemoveFilter is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveFilter(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveFilterDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -725,7 +726,7 @@ func (rplSv1 *ReplicatorSv1) RemoveFilter(args *utils.TenantIDWithAPIOpts, reply
}
// RemoveThresholdProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveThresholdProfile(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemThresholdProfileDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -738,7 +739,7 @@ func (rplSv1 *ReplicatorSv1) RemoveThresholdProfile(args *utils.TenantIDWithAPIO
}
// RemoveStatQueueProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveStatQueueProfile(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemStatQueueProfileDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -751,7 +752,7 @@ func (rplSv1 *ReplicatorSv1) RemoveStatQueueProfile(args *utils.TenantIDWithAPIO
}
// RemoveTiming is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveTiming(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveTiming(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveTimingDrv(id.Arg); err != nil {
return
}
@@ -764,7 +765,7 @@ func (rplSv1 *ReplicatorSv1) RemoveTiming(id *utils.StringWithAPIOpts, reply *st
}
// RemoveResource is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveResource(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveResourceDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -777,7 +778,7 @@ func (rplSv1 *ReplicatorSv1) RemoveResource(args *utils.TenantIDWithAPIOpts, rep
}
// RemoveResourceProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveResourceProfile(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveResourceProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveResourceProfileDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -790,7 +791,7 @@ func (rplSv1 *ReplicatorSv1) RemoveResourceProfile(args *utils.TenantIDWithAPIOp
}
// RemoveActionTriggers is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveActionTriggers(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveActionTriggers(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveActionTriggersDrv(id.Arg); err != nil {
return
}
@@ -803,7 +804,7 @@ func (rplSv1 *ReplicatorSv1) RemoveActionTriggers(id *utils.StringWithAPIOpts, r
}
// RemoveSharedGroup is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveSharedGroup(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveSharedGroup(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveSharedGroupDrv(id.Arg); err != nil {
return
}
@@ -816,7 +817,7 @@ func (rplSv1 *ReplicatorSv1) RemoveSharedGroup(id *utils.StringWithAPIOpts, repl
}
// RemoveActions is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveActions(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveActions(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveActionsDrv(id.Arg); err != nil {
return
}
@@ -829,7 +830,7 @@ func (rplSv1 *ReplicatorSv1) RemoveActions(id *utils.StringWithAPIOpts, reply *s
}
// RemoveActionPlan is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveActionPlan(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveActionPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveActionPlanDrv(id.Arg); err != nil {
return
}
@@ -842,7 +843,7 @@ func (rplSv1 *ReplicatorSv1) RemoveActionPlan(id *utils.StringWithAPIOpts, reply
}
// RemAccountActionPlans is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemAccountActionPlans(args *engine.RemAccountActionPlansArgsWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemAccountActionPlans(ctx *context.Context, args *engine.RemAccountActionPlansArgsWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemAccountActionPlansDrv(args.AcntID); err != nil {
return
}
@@ -855,7 +856,7 @@ func (rplSv1 *ReplicatorSv1) RemAccountActionPlans(args *engine.RemAccountAction
}
// RemoveRatingPlan is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveRatingPlan(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveRatingPlan(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveRatingPlanDrv(id.Arg); err != nil {
return
}
@@ -868,7 +869,7 @@ func (rplSv1 *ReplicatorSv1) RemoveRatingPlan(id *utils.StringWithAPIOpts, reply
}
// RemoveRatingProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveRatingProfile(id *utils.StringWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveRatingProfile(ctx *context.Context, id *utils.StringWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveRatingProfileDrv(id.Arg); err != nil {
return
}
@@ -881,7 +882,7 @@ func (rplSv1 *ReplicatorSv1) RemoveRatingProfile(id *utils.StringWithAPIOpts, re
}
// RemoveRouteProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveRouteProfile(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveRouteProfileDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -894,7 +895,7 @@ func (rplSv1 *ReplicatorSv1) RemoveRouteProfile(args *utils.TenantIDWithAPIOpts,
}
// RemoveAttributeProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveAttributeProfile(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveAttributeProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveAttributeProfileDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -907,7 +908,7 @@ func (rplSv1 *ReplicatorSv1) RemoveAttributeProfile(args *utils.TenantIDWithAPIO
}
// RemoveChargerProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveChargerProfile(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveChargerProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveChargerProfileDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -920,7 +921,7 @@ func (rplSv1 *ReplicatorSv1) RemoveChargerProfile(args *utils.TenantIDWithAPIOpt
}
// RemoveDispatcherProfile is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveDispatcherProfile(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveDispatcherProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveDispatcherProfileDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -933,7 +934,7 @@ func (rplSv1 *ReplicatorSv1) RemoveDispatcherProfile(args *utils.TenantIDWithAPI
}
// RemoveDispatcherHost is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveDispatcherHost(args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveDispatcherHostDrv(args.Tenant, args.ID); err != nil {
return
}
@@ -946,7 +947,7 @@ func (rplSv1 *ReplicatorSv1) RemoveDispatcherHost(args *utils.TenantIDWithAPIOpt
}
// RemoveIndexes is the replication method coresponding to the dataDb driver method
-func (rplSv1 *ReplicatorSv1) RemoveIndexes(args *utils.GetIndexesArg, reply *string) (err error) {
+func (rplSv1 *ReplicatorSv1) RemoveIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *string) (err error) {
if err = rplSv1.dm.DataDB().RemoveIndexesDrv(args.IdxItmType, args.TntCtx, args.IdxKey); err != nil {
return
}
@@ -959,7 +960,7 @@ func (rplSv1 *ReplicatorSv1) RemoveIndexes(args *utils.GetIndexesArg, reply *str
}
// Ping used to determine if the RPC is active
-func (rplSv1 *ReplicatorSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (rplSv1 *ReplicatorSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v1/resourcesv1.go b/apier/v1/resourcesv1.go
index b7ee10082..2cc0722d4 100644
--- a/apier/v1/resourcesv1.go
+++ b/apier/v1/resourcesv1.go
@@ -21,6 +21,7 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -34,42 +35,42 @@ type ResourceSv1 struct {
rls *engine.ResourceService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (rsv1 *ResourceSv1) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface for internal RPC
+func (rsv1 *ResourceSv1) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.APIerRPCCall(rsv1, serviceMethod, args, reply)
}
// GetResourcesForEvent returns Resources matching a specific event
-func (rsv1 *ResourceSv1) GetResourcesForEvent(args *utils.CGREvent, reply *engine.Resources) error {
- return rsv1.rls.V1ResourcesForEvent(args, reply)
+func (rsv1 *ResourceSv1) GetResourcesForEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.Resources) error {
+ return rsv1.rls.V1GetResourcesForEvent(ctx, args, reply)
}
// AuthorizeResources checks if there are limits imposed for event
-func (rsv1 *ResourceSv1) AuthorizeResources(args *utils.CGREvent, reply *string) error {
- return rsv1.rls.V1AuthorizeResources(args, reply)
+func (rsv1 *ResourceSv1) AuthorizeResources(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return rsv1.rls.V1AuthorizeResources(ctx, args, reply)
}
// V1InitiateResourceUsage records usage for an event
-func (rsv1 *ResourceSv1) AllocateResources(args *utils.CGREvent, reply *string) error {
- return rsv1.rls.V1AllocateResources(args, reply)
+func (rsv1 *ResourceSv1) AllocateResources(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return rsv1.rls.V1AllocateResources(ctx, args, reply)
}
// V1TerminateResourceUsage releases usage for an event
-func (rsv1 *ResourceSv1) ReleaseResources(args *utils.CGREvent, reply *string) error {
- return rsv1.rls.V1ReleaseResources(args, reply)
+func (rsv1 *ResourceSv1) ReleaseResources(ctx *context.Context, args *utils.CGREvent, reply *string) error {
+ return rsv1.rls.V1ReleaseResources(ctx, args, reply)
}
// GetResource returns a resource configuration
-func (rsv1 *ResourceSv1) GetResource(args *utils.TenantIDWithAPIOpts, reply *engine.Resource) error {
- return rsv1.rls.V1GetResource(args, reply)
+func (rsv1 *ResourceSv1) GetResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Resource) error {
+ return rsv1.rls.V1GetResource(ctx, args, reply)
}
-func (rsv1 *ResourceSv1) GetResourceWithConfig(args *utils.TenantIDWithAPIOpts, reply *engine.ResourceWithConfig) error {
- return rsv1.rls.V1GetResourceWithConfig(args, reply)
+func (rsv1 *ResourceSv1) GetResourceWithConfig(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ResourceWithConfig) error {
+ return rsv1.rls.V1GetResourceWithConfig(ctx, args, reply)
}
// GetResourceProfile returns a resource configuration
-func (apierSv1 *APIerSv1) GetResourceProfile(arg *utils.TenantID, reply *engine.ResourceProfile) error {
+func (apierSv1 *APIerSv1) GetResourceProfile(ctx *context.Context, arg *utils.TenantID, reply *engine.ResourceProfile) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -86,7 +87,7 @@ func (apierSv1 *APIerSv1) GetResourceProfile(arg *utils.TenantID, reply *engine.
}
// GetResourceProfileIDs returns list of resourceProfile IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetResourceProfileIDs(args *utils.PaginatorWithTenant, rsPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetResourceProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, rsPrfIDs *[]string) error {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -108,7 +109,7 @@ func (apierSv1 *APIerSv1) GetResourceProfileIDs(args *utils.PaginatorWithTenant,
}
// SetResourceProfile adds a new resource configuration
-func (apierSv1 *APIerSv1) SetResourceProfile(arg *engine.ResourceProfileWithAPIOpts, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetResourceProfile(ctx *context.Context, arg *engine.ResourceProfileWithAPIOpts, reply *string) (err error) {
if missing := utils.MissingStructFields(arg.ResourceProfile, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -136,7 +137,7 @@ func (apierSv1 *APIerSv1) SetResourceProfile(arg *engine.ResourceProfileWithAPIO
}
// RemoveResourceProfile remove a specific resource configuration
-func (apierSv1 *APIerSv1) RemoveResourceProfile(arg *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveResourceProfile(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -162,7 +163,7 @@ func (apierSv1 *APIerSv1) RemoveResourceProfile(arg *utils.TenantIDWithAPIOpts,
return nil
}
-func (rsv1 *ResourceSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (rsv1 *ResourceSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v1/resourcesv1_it_test.go b/apier/v1/resourcesv1_it_test.go
index d55b9054a..b5d47c864 100644
--- a/apier/v1/resourcesv1_it_test.go
+++ b/apier/v1/resourcesv1_it_test.go
@@ -21,7 +21,6 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"os"
"path"
"reflect"
@@ -29,6 +28,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
rlsV1CfgPath string
rlsV1Cfg *config.CGRConfig
- rlsV1Rpc *rpc.Client
+ rlsV1Rpc *birpc.Client
rlsV1ConfDIR string //run tests for specific configuration
rlsConfig *engine.ResourceProfileWithAPIOpts
@@ -165,7 +166,7 @@ func testV1ResourceStartCPUProfiling(t *testing.T) {
DirPath: "/tmp",
}
var reply string
- if err := rlsV1Rpc.Call(utils.CoreSv1StartCPUProfiling,
+ if err := rlsV1Rpc.Call(context.Background(), utils.CoreSv1StartCPUProfiling,
argPath, &reply); err != nil {
t.Error(err)
}
@@ -173,7 +174,7 @@ func testV1ResourceStartCPUProfiling(t *testing.T) {
func testV1RsCacheResourceBeforeLoad(t *testing.T) { // cache it with not found
var rplyRes *engine.Resource
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"},
}, &rplyRes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -187,7 +188,7 @@ func testV1RsCacheResourceAfterLoad(t *testing.T) { // the APIerSv1LoadTariffPla
ID: "ResGroup1",
Usages: map[string]*engine.ResourceUsage{},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"},
}, &rplyRes); err != nil {
t.Error(err)
@@ -223,7 +224,7 @@ func testV1RsCacheResourceWithConfig(t *testing.T) {
ThresholdIDs: []string{"*none"},
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourceWithConfig, &utils.TenantIDWithAPIOpts{
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourceWithConfig, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ResGroup1"},
}, &rplyRes); err != nil {
t.Error(err)
@@ -235,7 +236,7 @@ func testV1RsCacheResourceWithConfig(t *testing.T) {
func testV1RsFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := rlsV1Rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -252,13 +253,13 @@ func testV1RsGetResourcesForEvent(t *testing.T) {
utils.OptsResourcesUsageID: "RandomUsageID",
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
args.Event = map[string]any{"Destination": "10", "Account": "1001"}
args.ID = utils.UUIDSha1Prefix()
args.APIOpts[utils.OptsResourcesUsageID] = "RandomUsageID2"
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &reply); err != nil {
t.Error(err)
}
if reply == nil {
@@ -278,14 +279,14 @@ func testV1RsGetResourcesForEvent(t *testing.T) {
args.Event = map[string]any{"Destination": "20"}
args.ID = utils.UUIDSha1Prefix()
args.APIOpts[utils.OptsResourcesUsageID] = "RandomUsageID3"
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
args.Event = map[string]any{"Account": "1002", "Subject": "test", "Destination": "1002"}
args.ID = utils.UUIDSha1Prefix()
args.APIOpts[utils.OptsResourcesUsageID] = "RandomUsageID5"
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &reply); err != nil {
t.Error(err)
}
if len(*reply) != 1 {
@@ -294,7 +295,7 @@ func testV1RsGetResourcesForEvent(t *testing.T) {
args.Event = map[string]any{"Account": "1002", "Subject": "test", "Destination": "1001"}
args.ID = utils.UUIDSha1Prefix()
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &reply); err != nil {
t.Error(err)
}
if len(*reply) != 1 {
@@ -306,7 +307,7 @@ func testV1RsGetResourcesForEvent(t *testing.T) {
args.Tenant = utils.EmptyString
args.ID = utils.UUIDSha1Prefix()
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &reply); err != nil {
t.Error(err)
}
if len(*reply) != 1 {
@@ -332,7 +333,7 @@ func testV1RsTTL0(t *testing.T) {
},
}
var reply string
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
}
@@ -349,7 +350,7 @@ func testV1RsTTL0(t *testing.T) {
utils.OptsResourcesUnits: 2,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources, ev, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources, ev, &reply); err != nil {
t.Error(err)
}
// too many units should be rejected
@@ -365,7 +366,7 @@ func testV1RsTTL0(t *testing.T) {
utils.OptsResourcesUnits: 4,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources, ev, &reply); err == nil ||
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources, ev, &reply); err == nil ||
err.Error() != utils.ErrResourceUnavailable.Error() {
t.Error(err)
}
@@ -398,7 +399,7 @@ func testV1RsTTL0(t *testing.T) {
},
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent,
args, &rs); err != nil {
t.Error(err)
} else if len(*rs) != 1 {
@@ -426,13 +427,13 @@ func testV1RsTTL0(t *testing.T) {
utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e25", // same ID should be accepted by first group since the previous resource should be expired
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1ReleaseResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1ReleaseResources,
ev, &releaseReply); err != nil {
t.Error(err)
}
ev.Tenant = utils.EmptyString
- if err := rlsV1Rpc.Call(utils.ResourceSv1ReleaseResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1ReleaseResources,
ev, &releaseReply); err != nil {
t.Error(err)
}
@@ -454,7 +455,7 @@ func testV1RsAllocateResource(t *testing.T) {
utils.OptsResourcesUnits: 3,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
}
@@ -476,7 +477,7 @@ func testV1RsAllocateResource(t *testing.T) {
utils.OptsResourcesUnits: 4,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
}
@@ -498,7 +499,7 @@ func testV1RsAllocateResource(t *testing.T) {
utils.OptsResourcesUnits: 1,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
}
@@ -520,7 +521,7 @@ func testV1RsAllocateResource(t *testing.T) {
utils.OptsResourcesUnits: 1,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err == nil || err.Error() != utils.ErrResourceUnavailable.Error() {
t.Error(err)
}
@@ -540,7 +541,7 @@ func testV1RsAllocateResource(t *testing.T) {
utils.OptsResourcesUnits: 1,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
}
@@ -565,7 +566,7 @@ func testV1RsAuthorizeResources(t *testing.T) {
utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61",
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AuthorizeResources, &argsRU, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources, &argsRU, &reply); err != nil {
t.Error(err)
} else if reply != "ResGroup1" { // already 3 usages active before allow call, we should have now more than allowed
t.Error("Unexpected reply returned", reply)
@@ -583,7 +584,7 @@ func testV1RsAuthorizeResources(t *testing.T) {
utils.OptsResourcesUnits: 7,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&argsRU, &reply); err.Error() != utils.ErrResourceUnauthorized.Error() {
t.Error(err)
}
@@ -604,7 +605,7 @@ func testV1RsReleaseResource(t *testing.T) {
utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e55", // same ID should be accepted by first group since the previous resource should be expired
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1ReleaseResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1ReleaseResources,
argsRU, &reply); err != nil {
t.Error(err)
}
@@ -623,7 +624,7 @@ func testV1RsReleaseResource(t *testing.T) {
utils.OptsResourcesUnits: 7,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AuthorizeResources, &argsRU, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources, &argsRU, &reply); err != nil {
t.Error(err)
} else if reply != "ResGroup1" {
t.Error("Unexpected reply returned", reply)
@@ -641,7 +642,7 @@ func testV1RsReleaseResource(t *testing.T) {
utils.OptsResourcesUsageID: utils.UUIDSha1Prefix(),
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
t.Error(err)
} else if len(*rs) != 2 {
t.Errorf("Resources: %+v", rs)
@@ -669,7 +670,7 @@ func testV1RsReleaseResource(t *testing.T) {
utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e55", // same ID should be accepted by first group since the previous resource should be expired
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1ReleaseResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1ReleaseResources,
argsRU, &reply); err == nil || err.Error() != "cannot find usage record with id: 651a8db2-4f67-4cf8-b622-169e8a482e55" {
t.Error(err)
}
@@ -694,7 +695,7 @@ func testV1RsDBStore(t *testing.T) {
}
var reply string
eAllocationMsg := "ResGroup1"
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources, argsRU, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources, argsRU, &reply); err != nil {
t.Error(err)
} else if reply != eAllocationMsg {
t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
@@ -712,7 +713,7 @@ func testV1RsDBStore(t *testing.T) {
utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e71",
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
t.Error(err)
} else if len(*rs) != 2 {
t.Errorf("Resources: %+v", rs)
@@ -754,7 +755,7 @@ func testV1RsDBStore(t *testing.T) {
utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e71",
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
t.Error(err)
} else if len(*rs) != 2 {
t.Errorf("Resources: %+v", rs)
@@ -776,7 +777,7 @@ func testV1RsDBStore(t *testing.T) {
func testV1RsGetResourceProfileBeforeSet(t *testing.T) {
var reply *string
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -805,12 +806,12 @@ func testV1RsSetResourceProfile(t *testing.T) {
var result string
expErr := "SERVER_ERROR: broken reference to filter: <*wrong:inline> for item with ID: cgrates.org:RES_GR_TEST"
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err == nil || err.Error() != expErr {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err == nil || err.Error() != expErr {
t.Fatalf("Expected error: %q, received: %v", expErr, err)
}
rlsConfig.FilterIDs = []string{"*string:~*req.Account:1001"}
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -821,10 +822,10 @@ func testV1RsGetResourceProfileIDs(t *testing.T) {
expected := []string{"ResGroup2", "ResGroup1", "ResGroup3", "RES_GR_TEST"}
sort.Strings(expected)
var result []string
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfileIDs, utils.PaginatorWithTenant{}, &result); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
}
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
}
sort.Strings(result)
@@ -835,7 +836,7 @@ func testV1RsGetResourceProfileIDs(t *testing.T) {
func testV1RsGetResourceProfileAfterSet(t *testing.T) {
var reply *engine.ResourceProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, rlsConfig.ResourceProfile) {
@@ -846,7 +847,7 @@ func testV1RsGetResourceProfileAfterSet(t *testing.T) {
func testV1RsUpdateResourceProfile(t *testing.T) {
var result string
rlsConfig.FilterIDs = []string{"*string:~*req.Account:1001", "*prefix:~*req.DST:10"}
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -855,7 +856,7 @@ func testV1RsUpdateResourceProfile(t *testing.T) {
func testV1RsGetResourceProfileAfterUpdate(t *testing.T) {
var reply *engine.ResourceProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
t.Error(err)
} else {
@@ -869,13 +870,13 @@ func testV1RsGetResourceProfileAfterUpdate(t *testing.T) {
func testV1RsRemResourceProfile(t *testing.T) {
var resp string
- if err := rlsV1Rpc.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
- if err := rlsV1Rpc.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &resp); err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error: %v received: %v", utils.ErrNotFound, err)
}
@@ -883,7 +884,7 @@ func testV1RsRemResourceProfile(t *testing.T) {
func testV1RsGetResourceProfileAfterDelete(t *testing.T) {
var reply *string
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_GR_TEST"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -892,7 +893,7 @@ func testV1RsGetResourceProfileAfterDelete(t *testing.T) {
func testV1RsResourcePing(t *testing.T) {
var resp string
- if err := rlsV1Rpc.Call(utils.ResourceSv1Ping, new(utils.CGREvent), &resp); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1Ping, new(utils.CGREvent), &resp); err != nil {
t.Error(err)
} else if resp != utils.Pong {
t.Error("Unexpected reply returned", resp)
@@ -916,7 +917,7 @@ func testV1RsMatchNotFound(t *testing.T) {
var result string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -935,7 +936,7 @@ func testV1RsMatchNotFound(t *testing.T) {
},
}
var reply string
- if err := rlsV1Rpc.Call(utils.ResourceSv1ReleaseResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1ReleaseResources,
argsRU, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -960,7 +961,7 @@ func testV1RsAllocateUnlimited(t *testing.T) {
}
var result string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -977,7 +978,7 @@ func testV1RsAllocateUnlimited(t *testing.T) {
utils.OptsResourcesUnits: 1,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
} else if reply != "CustomUnlimitedMessage" {
@@ -995,7 +996,7 @@ func testV1RsAllocateUnlimited(t *testing.T) {
},
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "RES_ULTIMITED"},
}, &rplyRes); err != nil {
t.Error(err)
@@ -1030,14 +1031,14 @@ func testV1RsGetResourceProfileWithoutTenant(t *testing.T) {
},
}
var reply string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
rlsConfig.Tenant = "cgrates.org"
var result *engine.ResourceProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{ID: rlsConfig.ID},
&result); err != nil {
t.Error(err)
@@ -1048,7 +1049,7 @@ func testV1RsGetResourceProfileWithoutTenant(t *testing.T) {
func testV1RsRemResourceProfileWithoutTenant(t *testing.T) {
var reply string
- if err := rlsV1Rpc.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: rlsConfig.ID}},
&reply); err != nil {
t.Error(err)
@@ -1056,7 +1057,7 @@ func testV1RsRemResourceProfileWithoutTenant(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
var result *engine.ResourceProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{ID: rlsConfig.ID},
&result); err == nil || utils.ErrNotFound.Error() != err.Error() {
t.Error(err)
@@ -1077,14 +1078,14 @@ func testV1RsSetResourceProfileWithOpts(t *testing.T) {
},
}
var reply string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rlsCfg, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsCfg, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
var result *engine.ResourceProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_WITH_OPTS"},
&result); err != nil {
t.Error(err)
@@ -1108,14 +1109,14 @@ func testV1RsAuthorizeResourcesWithOpts(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&ev,
&reply); err != nil {
t.Error(err)
} else if reply != "TEST_WITH_OPTS" {
t.Error("Unexpected reply returned", reply)
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
&ev,
&reply); err != nil {
t.Error(err)
@@ -1137,7 +1138,7 @@ func testV1RsCheckAuthorizeResourcesAfterRestart(t *testing.T) {
},
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "RES_ULTIMITED"},
}, &rplyRes); err != nil {
t.Error(err)
@@ -1151,7 +1152,7 @@ func testV1RsCheckAuthorizeResourcesAfterRestart(t *testing.T) {
ID: "TEST_WITH_OPTS",
Usages: map[string]*engine.ResourceUsage{},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResource, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_WITH_OPTS"},
}, &rplyRes); err != nil {
t.Error(err)
@@ -1164,7 +1165,7 @@ func testV1RsCheckAuthorizeResourcesAfterRestart(t *testing.T) {
func testV1ResourceStopCPUProfiling(t *testing.T) {
argPath := "/tmp/cpu.prof"
var reply string
- if err := rlsV1Rpc.Call(utils.CoreSv1StopCPUProfiling,
+ if err := rlsV1Rpc.Call(context.Background(), utils.CoreSv1StopCPUProfiling,
new(utils.DirectoryArgs), &reply); err != nil {
t.Error(err)
}
@@ -1189,7 +1190,7 @@ func testV1ResourceStopCPUProfiling(t *testing.T) {
func testResourceSCacheTestGetNotFound(t *testing.T) {
var reply *engine.ChargerProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RESOURCE_CACHE"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -1198,7 +1199,7 @@ func testResourceSCacheTestGetNotFound(t *testing.T) {
func testResourceSCacheTestGetFound(t *testing.T) {
var reply *engine.ChargerProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RESOURCE_CACHE"}, &reply); err != nil {
t.Fatal(err)
}
@@ -1215,7 +1216,7 @@ func testResourceSCacheTestSet(t *testing.T) {
},
}
var result string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rlsConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1227,7 +1228,7 @@ func testResourceSCacheReload(t *testing.T) {
ResourceProfileIDs: []string{"cgrates.org:RESOURCE_CACHE"},
}
var reply string
- if err := rlsV1Rpc.Call(utils.CacheSv1ReloadCache, cache, &reply); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.CacheSv1ReloadCache, cache, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
@@ -1244,7 +1245,7 @@ func testResourceSSetThresholdProfile(t *testing.T) {
},
}
var reply string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetThresholdProfile, ThdPrf,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, ThdPrf,
&reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -1256,7 +1257,7 @@ func testResourceSSetThresholdProfile(t *testing.T) {
ID: "THD_1",
}
var result *engine.ThresholdProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetThresholdProfile, args,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile, args,
&result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result, ThdPrf.ThresholdProfile) {
@@ -1274,7 +1275,7 @@ func testResourceSSetResourceProfile(t *testing.T) {
ThresholdIDs: []string{"THD_1"},
}
var reply string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, ResPrf,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, ResPrf,
&reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -1282,7 +1283,7 @@ func testResourceSSetResourceProfile(t *testing.T) {
}
var result *engine.ResourceProfile
- if err := rlsV1Rpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: ResPrf.ID}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result, ResPrf) {
@@ -1304,7 +1305,7 @@ func testResourceSCheckThresholdAfterResourceAllocate(t *testing.T) {
utils.OptsResourcesUnits: 5,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources, ev,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources, ev,
&reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
@@ -1316,7 +1317,7 @@ func testResourceSCheckThresholdAfterResourceAllocate(t *testing.T) {
ID: "THD_1",
}
var result *engine.Threshold
- if err := rlsV1Rpc.Call(utils.ThresholdSv1GetThreshold, args,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold, args,
&result); err != nil {
t.Error(err)
} else if result.Hits != 1 {
@@ -1336,7 +1337,7 @@ func testResourceSCheckThresholdAfterResourceRelease(t *testing.T) {
},
}
var reply string
- if err := rlsV1Rpc.Call(utils.ResourceSv1ReleaseResources, ev,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1ReleaseResources, ev,
&reply); err != nil {
t.Error(err)
}
@@ -1346,7 +1347,7 @@ func testResourceSCheckThresholdAfterResourceRelease(t *testing.T) {
ID: "THD_1",
}
var result *engine.Threshold
- if err := rlsV1Rpc.Call(utils.ThresholdSv1GetThreshold, args,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold, args,
&result); err != nil {
t.Error(err)
} else if result.Hits != 2 {
diff --git a/apier/v1/routes.go b/apier/v1/routes.go
index 10fe322ce..ab410c91c 100644
--- a/apier/v1/routes.go
+++ b/apier/v1/routes.go
@@ -21,12 +21,13 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// GetRouteProfile returns a Route configuration
-func (apierSv1 *APIerSv1) GetRouteProfile(arg *utils.TenantID, reply *engine.RouteProfile) error {
+func (apierSv1 *APIerSv1) GetRouteProfile(ctx *context.Context, arg *utils.TenantID, reply *engine.RouteProfile) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -43,7 +44,7 @@ func (apierSv1 *APIerSv1) GetRouteProfile(arg *utils.TenantID, reply *engine.Rou
}
// GetRouteProfileIDs returns list of routeProfile IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetRouteProfileIDs(args *utils.PaginatorWithTenant, sppPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetRouteProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, sppPrfIDs *[]string) error {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -70,7 +71,7 @@ type RouteWithAPIOpts struct {
}
// SetRouteProfile add a new Route configuration
-func (apierSv1 *APIerSv1) SetRouteProfile(args *RouteWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) SetRouteProfile(ctx *context.Context, args *RouteWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args.RouteProfile, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -94,7 +95,7 @@ func (apierSv1 *APIerSv1) SetRouteProfile(args *RouteWithAPIOpts, reply *string)
}
// RemoveRouteProfile remove a specific Route configuration
-func (apierSv1 *APIerSv1) RemoveRouteProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -127,27 +128,27 @@ type RouteSv1 struct {
rS *engine.RouteService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (rS *RouteSv1) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface for internal RPC
+func (rS *RouteSv1) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.APIerRPCCall(rS, serviceMethod, args, reply)
}
// GetRoutes returns sorted list of routes for Event
-func (rS *RouteSv1) GetRoutes(args *utils.CGREvent, reply *engine.SortedRoutesList) error {
- return rS.rS.V1GetRoutes(args, reply)
+func (rS *RouteSv1) GetRoutes(ctx *context.Context, args *utils.CGREvent, reply *engine.SortedRoutesList) error {
+ return rS.rS.V1GetRoutes(ctx, args, reply)
}
// GetRouteProfilesForEvent returns a list of route profiles that match for Event
-func (rS *RouteSv1) GetRouteProfilesForEvent(args *utils.CGREvent, reply *[]*engine.RouteProfile) error {
- return rS.rS.V1GetRouteProfilesForEvent(args, reply)
+func (rS *RouteSv1) GetRouteProfilesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]*engine.RouteProfile) error {
+ return rS.rS.V1GetRouteProfilesForEvent(ctx, args, reply)
}
-func (rS *RouteSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (rS *RouteSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
// GetRoutesList returns sorted list of routes for Event as a string slice
-func (rS *RouteSv1) GetRoutesList(args *utils.CGREvent, reply *[]string) error {
- return rS.rS.V1GetRoutesList(args, reply)
+func (rS *RouteSv1) GetRoutesList(ctx *context.Context, args *utils.CGREvent, reply *[]string) error {
+ return rS.rS.V1GetRoutesList(ctx, args, reply)
}
diff --git a/apier/v1/routes_it_test.go b/apier/v1/routes_it_test.go
index 2bcc29296..99ccc3ee2 100644
--- a/apier/v1/routes_it_test.go
+++ b/apier/v1/routes_it_test.go
@@ -21,13 +21,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
routeSv1CfgPath string
routeSv1Cfg *config.CGRConfig
- routeSv1Rpc *rpc.Client
+ routeSv1Rpc *birpc.Client
routePrf *RouteWithAPIOpts
routeSv1ConfDIR string //run tests for specific configuration
@@ -131,7 +132,7 @@ func testV1RouteInitDataDb(t *testing.T) {
func testV1RouteClearCache(t *testing.T) {
var reply string
- if err := routeSv1Rpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{}, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{}, &reply); err != nil {
t.Fatal(err)
}
}
@@ -159,7 +160,7 @@ func testV1RouteRpcConn(t *testing.T) {
func testV1RouteGetBeforeDataLoad(t *testing.T) {
var suplsReply *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{
Tenant: "cgrates.org",
ID: "ROUTE_WEIGHT_1",
@@ -171,7 +172,7 @@ func testV1RouteGetBeforeDataLoad(t *testing.T) {
func testV1RouteFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := routeSv1Rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -206,7 +207,7 @@ func testV1RouteGetWeightRoutes(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -215,7 +216,7 @@ func testV1RouteGetWeightRoutes(t *testing.T) {
}
ev.Tenant = utils.EmptyString
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -268,7 +269,7 @@ func testV1RouteGetLeastCostRoutes(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -320,7 +321,7 @@ func testV1RouteGetLeastCostRoutesWithoutUsage(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -368,7 +369,7 @@ func testV1RouteGetLeastCostRoutesWithMaxCost(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -393,7 +394,7 @@ func testV1RouteGetLeastCostRoutesWithMaxCostNotFound(t *testing.T) {
},
}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil && err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -439,7 +440,7 @@ func testV1RouteGetLeastCostRoutesWithMaxCost2(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -492,7 +493,7 @@ func testV1RouteGetHighestCostRoutes(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -528,7 +529,7 @@ func testV1RouteGetLeastCostRoutesErr(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -550,7 +551,7 @@ func testV1RoutePolulateStatsForQOS(t *testing.T) {
utils.Cost: 10.0,
},
}
- if err := routeSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -567,7 +568,7 @@ func testV1RoutePolulateStatsForQOS(t *testing.T) {
utils.Cost: 10.5,
},
}
- if err := routeSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -584,7 +585,7 @@ func testV1RoutePolulateStatsForQOS(t *testing.T) {
utils.Cost: 12.5,
},
}
- if err := routeSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -601,7 +602,7 @@ func testV1RoutePolulateStatsForQOS(t *testing.T) {
utils.Cost: 17.5,
},
}
- if err := routeSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -618,7 +619,7 @@ func testV1RoutePolulateStatsForQOS(t *testing.T) {
utils.Cost: 12.5,
},
}
- if err := routeSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -636,7 +637,7 @@ func testV1RoutePolulateStatsForQOS(t *testing.T) {
utils.PDD: 12 * time.Second,
},
}
- if err := routeSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -654,7 +655,7 @@ func testV1RoutePolulateStatsForQOS(t *testing.T) {
utils.PDD: 15 * time.Second,
},
}
- if err := routeSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -671,7 +672,7 @@ func testV1RouteGetQOSRoutes(t *testing.T) {
}
expRouteIDs := []string{"route1", "route3", "route2"}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else {
@@ -700,7 +701,7 @@ func testV1RouteGetQOSRoutes2(t *testing.T) {
}
expRouteIDs := []string{"route3", "route2", "route1"}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else {
@@ -729,7 +730,7 @@ func testV1RouteGetQOSRoutes3(t *testing.T) {
}
expRouteIDs := []string{"route1", "route3", "route2"}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else {
@@ -758,7 +759,7 @@ func testV1RouteGetQOSRoutesFiltred(t *testing.T) {
}
expRouteIDs := []string{"route1", "route3"}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else {
@@ -791,7 +792,7 @@ func testV1RouteGetQOSRoutesFiltred2(t *testing.T) {
}
expRouteIDs := []string{"route3", "route2"}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else {
@@ -832,7 +833,7 @@ func testV1RouteGetRouteWithoutFilter(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -868,23 +869,23 @@ func testV1RouteSetRouteProfiles(t *testing.T) {
var result string
expErr := "SERVER_ERROR: broken reference to filter: for item with ID: cgrates.org:TEST_PROFILE1"
- if err := routeSv1Rpc.Call(utils.APIerSv1SetRouteProfile, routePrf, &result); err == nil || err.Error() != expErr {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &result); err == nil || err.Error() != expErr {
t.Fatalf("Expected error: %q, received: %v", expErr, err)
}
var reply *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
routePrf.FilterIDs = []string{"FLTR_1"}
- if err := routeSv1Rpc.Call(utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(routePrf.RouteProfile, reply) {
@@ -897,14 +898,14 @@ func testV1RouteGetRouteProfileIDs(t *testing.T) {
"ROUTE_ACNT_1001", "ROUTE_LEASTCOST_1", "ROUTE_WEIGHT_2", "ROUTE_WEIGHT_1", "ROUTE_QOS_3",
"TEST_PROFILE1", "ROUTE_LOAD_DIST", "ROUTE_LCR"}
var result []string
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfileIDs,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs,
&utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfileIDs,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs,
&utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
@@ -962,13 +963,13 @@ func testV1RouteUpdateRouteProfiles(t *testing.T) {
},
}
var result string
- if err := routeSv1Rpc.Call(utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(routePrf.Routes, reply.Routes) && !reflect.DeepEqual(reverseRoutes, reply.Routes) {
@@ -978,19 +979,19 @@ func testV1RouteUpdateRouteProfiles(t *testing.T) {
func testV1RouteRemRouteProfiles(t *testing.T) {
var resp string
- if err := routeSv1Rpc.Call(utils.APIerSv1RemoveRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1RemoveRouteProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
var reply *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := routeSv1Rpc.Call(utils.APIerSv1RemoveRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1RemoveRouteProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}}, &resp); err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error: %v received: %v", utils.ErrNotFound, err)
}
@@ -998,7 +999,7 @@ func testV1RouteRemRouteProfiles(t *testing.T) {
func testV1RouteRoutePing(t *testing.T) {
var resp string
- if err := routeSv1Rpc.Call(utils.RouteSv1Ping, new(utils.CGREvent), &resp); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1Ping, new(utils.CGREvent), &resp); err != nil {
t.Error(err)
} else if resp != utils.Pong {
t.Error("Unexpected reply returned", resp)
@@ -1055,7 +1056,7 @@ func testV1RouteGetRouteForEvent(t *testing.T) {
expected.SortingParameters = nil
}
var supProf []*engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRouteProfilesForEvent,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRouteProfilesForEvent,
ev, &supProf); err != nil {
t.Fatal(err)
}
@@ -1071,7 +1072,7 @@ func testV1RouteGetRouteForEvent(t *testing.T) {
supProf = nil
ev.Tenant = utils.EmptyString
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRouteProfilesForEvent,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRouteProfilesForEvent,
ev, &supProf); err != nil {
t.Fatal(err)
}
@@ -1099,7 +1100,7 @@ func testV1RouteGetRouteForEvent(t *testing.T) {
// route1 have attached RP_LOCAL and route2 have attach RP_MOBILE
func testV1RoutesOneRouteWithoutDestination(t *testing.T) {
var reply *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_DESTINATION"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1128,7 +1129,7 @@ func testV1RoutesOneRouteWithoutDestination(t *testing.T) {
}
var result string
- if err := routeSv1Rpc.Call(utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1160,7 +1161,7 @@ func testV1RoutesOneRouteWithoutDestination(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -1171,7 +1172,7 @@ func testV1RoutesOneRouteWithoutDestination(t *testing.T) {
func testV1RouteMultipleRouteSameID(t *testing.T) {
var reply *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "MULTIPLE_ROUTES"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1201,7 +1202,7 @@ func testV1RouteMultipleRouteSameID(t *testing.T) {
}
var result string
- if err := routeSv1Rpc.Call(utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1235,7 +1236,7 @@ func testV1RouteMultipleRouteSameID(t *testing.T) {
},
}}
var suplsReply engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -1270,7 +1271,7 @@ func testV1RouteMultipleRouteSameID(t *testing.T) {
},
},
}}
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -1304,7 +1305,7 @@ func testV1RouteAccountWithRatingPlan(t *testing.T) {
}
var result string
- if err := routeSv1Rpc.Call(utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1320,7 +1321,7 @@ func testV1RouteAccountWithRatingPlan(t *testing.T) {
},
}
var reply string
- if err := routeSv1Rpc.Call(utils.APIerSv2SetBalance, &attrSetBalance, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv2SetBalance, &attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -1330,7 +1331,7 @@ func testV1RouteAccountWithRatingPlan(t *testing.T) {
Tenant: "cgrates.org",
Account: "AccWithVoice",
}
- if err := routeSv1Rpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 30*float64(time.Second) {
t.Errorf("Unexpected balance received : %+v", acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -1397,7 +1398,7 @@ func testV1RouteAccountWithRatingPlan(t *testing.T) {
}
}
var suplsReply *engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, suplsReply) {
@@ -1467,7 +1468,7 @@ func testV1RouteAccountWithRatingPlan(t *testing.T) {
}
}
var routeRply *engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &routeRply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, routeRply) {
@@ -1537,7 +1538,7 @@ func testV1RouteAccountWithRatingPlan(t *testing.T) {
}
}
var routeRply2 *engine.SortedRoutesList
- if err := routeSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := routeSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &routeRply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eSpls, routeRply2) {
@@ -1578,14 +1579,14 @@ func testV1RouteSetRouteProfilesWithoutTenant(t *testing.T) {
},
}
var reply string
- if err := routeSv1Rpc.Call(utils.APIerSv1SetRouteProfile, routePrf, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
routePrf.Tenant = "cgrates.org"
var result *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{ID: "TEST_PROFILE10"},
&result); err != nil {
t.Error(err)
@@ -1596,13 +1597,13 @@ func testV1RouteSetRouteProfilesWithoutTenant(t *testing.T) {
func testV1RouteRemRouteProfilesWithoutTenant(t *testing.T) {
var reply string
- if err := routeSv1Rpc.Call(utils.APIerSv1RemoveRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1RemoveRouteProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "TEST_PROFILE10"}},
&reply); err != nil {
t.Error(err)
}
var result *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{ID: "TEST_PROFILE10"},
&result); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1611,7 +1612,7 @@ func testV1RouteRemRouteProfilesWithoutTenant(t *testing.T) {
func testRouteSCacheTestGetNotFound(t *testing.T) {
var suplsReply *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{
Tenant: "cgrates.org",
ID: "ROUTE_CACHE",
@@ -1622,7 +1623,7 @@ func testRouteSCacheTestGetNotFound(t *testing.T) {
func testRouteSCacheTestGetFound(t *testing.T) {
var suplsReply *engine.RouteProfile
- if err := routeSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{
Tenant: "cgrates.org",
ID: "ROUTE_CACHE",
@@ -1656,7 +1657,7 @@ func testRouteSCacheTestSet(t *testing.T) {
}
var result string
- if err := routeSv1Rpc.Call(utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, routePrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1668,7 +1669,7 @@ func testRouteSCacheReload(t *testing.T) {
RouteProfileIDs: []string{"cgrates.org:ROUTE_CACHE"},
}
var reply string
- if err := routeSv1Rpc.Call(utils.CacheSv1ReloadCache, cache, &reply); err != nil {
+ if err := routeSv1Rpc.Call(context.Background(), utils.CacheSv1ReloadCache, cache, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
diff --git a/apier/v1/scheduler.go b/apier/v1/scheduler.go
index c168ebdde..99c6c2dd7 100644
--- a/apier/v1/scheduler.go
+++ b/apier/v1/scheduler.go
@@ -21,6 +21,7 @@ package v1
import (
"errors"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/scheduler"
"github.com/cgrates/cgrates/utils"
)
@@ -96,7 +97,7 @@ import (
]
*/
-func (apierSv1 *APIerSv1) GetScheduledActions(args *scheduler.ArgsGetScheduledActions, reply *[]*scheduler.ScheduledAction) error {
+func (apierSv1 *APIerSv1) GetScheduledActions(ctx *context.Context, args *scheduler.ArgsGetScheduledActions, reply *[]*scheduler.ScheduledAction) error {
sched := apierSv1.SchedulerService.GetScheduler()
if sched == nil {
return errors.New(utils.SchedulerNotRunningCaps)
diff --git a/apier/v1/schedulers.go b/apier/v1/schedulers.go
index 382a62e01..7bcc59b0c 100644
--- a/apier/v1/schedulers.go
+++ b/apier/v1/schedulers.go
@@ -22,6 +22,7 @@ import (
"sort"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -40,14 +41,14 @@ type SchedulerSv1 struct {
}
// Reload reloads scheduler instructions
-func (schdSv1 *SchedulerSv1) Reload(arg *utils.CGREvent, reply *string) error {
+func (schdSv1 *SchedulerSv1) Reload(ctx *context.Context, arg *utils.CGREvent, reply *string) error {
schdSv1.cgrcfg.GetReloadChan(config.SCHEDULER_JSN) <- struct{}{}
*reply = utils.OK
return nil
}
// ExecuteActions execute an actionPlan or multiple actionsPlans between a time interval
-func (schdSv1 *SchedulerSv1) ExecuteActions(attr *utils.AttrsExecuteActions, reply *string) error {
+func (schdSv1 *SchedulerSv1) ExecuteActions(ctx *context.Context, attr *utils.AttrsExecuteActions, reply *string) error {
if attr.ActionPlanID != utils.EmptyString { // execute by ActionPlanID
apl, err := schdSv1.dm.GetActionPlan(attr.ActionPlanID, true, true, utils.NonTransactional)
if err != nil {
@@ -134,7 +135,7 @@ func (schdSv1 *SchedulerSv1) ExecuteActions(attr *utils.AttrsExecuteActions, rep
}
// ExecuteActionPlans execute multiple actionPlans one by one
-func (schdSv1 *SchedulerSv1) ExecuteActionPlans(attr *utils.AttrsExecuteActionPlans, reply *string) (err error) {
+func (schdSv1 *SchedulerSv1) ExecuteActionPlans(ctx *context.Context, attr *utils.AttrsExecuteActionPlans, reply *string) (err error) {
// try get account
// if not exist set in DM
accID := utils.ConcatenatedKey(attr.Tenant, attr.AccountID)
@@ -173,13 +174,13 @@ func (schdSv1 *SchedulerSv1) ExecuteActionPlans(attr *utils.AttrsExecuteActionPl
}
// Ping returns Pong
-func (schdSv1 *SchedulerSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (schdSv1 *SchedulerSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (schdSv1 *SchedulerSv1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (schdSv1 *SchedulerSv1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(schdSv1, serviceMethod, args, reply)
}
diff --git a/apier/v1/schedulers_it_test.go b/apier/v1/schedulers_it_test.go
index dce1086b3..6c2aa5fc6 100644
--- a/apier/v1/schedulers_it_test.go
+++ b/apier/v1/schedulers_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/engine"
@@ -36,7 +37,7 @@ import (
var (
schedCfgPath string
schedCfg *config.CGRConfig
- schedRpc *rpc.Client
+ schedRpc *birpc.Client
schedConfDIR string //run tests for specific configuration
)
@@ -149,7 +150,7 @@ func testSchedRpcConn(t *testing.T) {
func testSchedFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := schedRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -165,7 +166,7 @@ func testSchedVeifyAllAccounts(t *testing.T) {
Tenant: "cgrates.org",
Account: "1001",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != 10 {
t.Errorf("Expecting: %v, received: %v",
@@ -175,7 +176,7 @@ func testSchedVeifyAllAccounts(t *testing.T) {
Tenant: "cgrates.org",
Account: "1002",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != 10 {
t.Errorf("Expecting: %v, received: %v",
@@ -185,7 +186,7 @@ func testSchedVeifyAllAccounts(t *testing.T) {
Tenant: "cgrates.org",
Account: "1003",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != 10 {
t.Errorf("Expecting: %v, received: %v",
@@ -202,7 +203,7 @@ func testSchedVeifyAccount1001(t *testing.T) {
Tenant: "cgrates.org",
Account: "1001",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != 10 {
t.Errorf("Expecting: %v, received: %v",
@@ -214,7 +215,7 @@ func testSchedVeifyAccount1001(t *testing.T) {
Tenant: "cgrates.org",
Account: "1002",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if lenBal := len(acnt.BalanceMap[utils.MetaMonetary]); lenBal != 0 {
t.Errorf("Expecting: %v, received: %v",
@@ -225,7 +226,7 @@ func testSchedVeifyAccount1001(t *testing.T) {
Tenant: "cgrates.org",
Account: "1003",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if lenBal := len(acnt.BalanceMap[utils.MetaMonetary]); lenBal != 0 {
t.Errorf("Expecting: %v, received: %v",
@@ -243,7 +244,7 @@ func testSchedVeifyAccount1002and1003(t *testing.T) {
Tenant: "cgrates.org",
Account: "1001",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if lenBal := len(acnt.BalanceMap[utils.MetaMonetary]); lenBal != 0 {
t.Errorf("Expecting: %v, received: %v",
@@ -254,7 +255,7 @@ func testSchedVeifyAccount1002and1003(t *testing.T) {
Tenant: "cgrates.org",
Account: "1002",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != 10 {
t.Errorf("Expecting: %v, received: %v",
@@ -265,7 +266,7 @@ func testSchedVeifyAccount1002and1003(t *testing.T) {
Tenant: "cgrates.org",
Account: "1003",
}
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != 10 {
t.Errorf("Expecting: %v, received: %v",
@@ -279,7 +280,7 @@ func testSchedExecuteAction(t *testing.T) {
}
// set a new ActionPlan
var reply1 string
- if err := schedRpc.Call(utils.APIerSv1SetActionPlan, &AttrSetActionPlan{
+ if err := schedRpc.Call(context.Background(), utils.APIerSv1SetActionPlan, &AttrSetActionPlan{
Id: "CustomAP",
ActionPlan: []*AttrActionPlan{
{
@@ -293,7 +294,7 @@ func testSchedExecuteAction(t *testing.T) {
t.Errorf("Unexpected reply returned: %s", reply1)
}
var reply string
- if err := schedRpc.Call(utils.APIerSv1SetAccount, utils.AttrSetAccount{
+ if err := schedRpc.Call(context.Background(), utils.APIerSv1SetAccount, utils.AttrSetAccount{
Tenant: "cgrates.org",
Account: "CustomAccount",
ActionPlanID: "CustomAP",
@@ -307,18 +308,18 @@ func testSchedExecuteAction(t *testing.T) {
Account: "CustomAccount",
}
expected := 0.0
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != expected {
t.Errorf("Expecting: %v, received: %v",
expected, rply)
}
- if err := schedRpc.Call(utils.SchedulerSv1ExecuteActions, &utils.AttrsExecuteActions{ActionPlanID: "CustomAP"}, &reply); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.SchedulerSv1ExecuteActions, &utils.AttrsExecuteActions{ActionPlanID: "CustomAP"}, &reply); err != nil {
t.Error(err)
}
expected = 10.0
- if err := schedRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := schedRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); rply != expected {
t.Errorf("Expecting: %v, received: %v",
diff --git a/apier/v1/servicemanager.go b/apier/v1/servicemanager.go
index 34198eaff..53aa9cf50 100644
--- a/apier/v1/servicemanager.go
+++ b/apier/v1/servicemanager.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
@@ -32,26 +33,26 @@ type ServiceManagerV1 struct {
sm *servmanager.ServiceManager // Need to have them capitalize so we can export in V2
}
-func (servManager *ServiceManagerV1) StartService(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) (err error) {
- return servManager.sm.V1StartService(args.ArgStartService, reply)
+func (servManager *ServiceManagerV1) StartService(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) (err error) {
+ return servManager.sm.V1StartService(ctx, args.ArgStartService, reply)
}
-func (servManager *ServiceManagerV1) StopService(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) (err error) {
- return servManager.sm.V1StopService(args.ArgStartService, reply)
+func (servManager *ServiceManagerV1) StopService(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) (err error) {
+ return servManager.sm.V1StopService(ctx, args.ArgStartService, reply)
}
-func (servManager *ServiceManagerV1) ServiceStatus(args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) (err error) {
- return servManager.sm.V1ServiceStatus(args.ArgStartService, reply)
+func (servManager *ServiceManagerV1) ServiceStatus(ctx *context.Context, args *dispatchers.ArgStartServiceWithAPIOpts, reply *string) (err error) {
+ return servManager.sm.V1ServiceStatus(ctx, args.ArgStartService, reply)
}
// Ping return pong if the service is active
-func (servManager *ServiceManagerV1) Ping(ign *utils.CGREvent, reply *string) error {
+func (servManager *ServiceManagerV1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (servManager *ServiceManagerV1) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (servManager *ServiceManagerV1) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(servManager, serviceMethod, args, reply)
}
diff --git a/apier/v1/sessions.go b/apier/v1/sessions.go
index 357d2aacf..7e15bad5f 100644
--- a/apier/v1/sessions.go
+++ b/apier/v1/sessions.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
@@ -35,131 +36,138 @@ type SessionSv1 struct {
sS *sessions.SessionS
}
-func (ssv1 *SessionSv1) AuthorizeEvent(args *sessions.V1AuthorizeArgs,
+func (ssv1 *SessionSv1) AuthorizeEvent(ctx *context.Context, args *sessions.V1AuthorizeArgs,
rply *sessions.V1AuthorizeReply) error {
- return ssv1.sS.BiRPCv1AuthorizeEvent(nil, args, rply)
+ return ssv1.sS.BiRPCv1AuthorizeEvent(ctx, args, rply)
}
-func (ssv1 *SessionSv1) AuthorizeEventWithDigest(args *sessions.V1AuthorizeArgs,
+func (ssv1 *SessionSv1) AuthorizeEventWithDigest(ctx *context.Context, args *sessions.V1AuthorizeArgs,
rply *sessions.V1AuthorizeReplyWithDigest) error {
- return ssv1.sS.BiRPCv1AuthorizeEventWithDigest(nil, args, rply)
+ return ssv1.sS.BiRPCv1AuthorizeEventWithDigest(ctx, args, rply)
}
-func (ssv1 *SessionSv1) InitiateSession(args *sessions.V1InitSessionArgs,
+func (ssv1 *SessionSv1) InitiateSession(ctx *context.Context, args *sessions.V1InitSessionArgs,
rply *sessions.V1InitSessionReply) error {
- return ssv1.sS.BiRPCv1InitiateSession(nil, args, rply)
+ return ssv1.sS.BiRPCv1InitiateSession(ctx, args, rply)
}
-func (ssv1 *SessionSv1) InitiateSessionWithDigest(args *sessions.V1InitSessionArgs,
+func (ssv1 *SessionSv1) InitiateSessionWithDigest(ctx *context.Context, args *sessions.V1InitSessionArgs,
rply *sessions.V1InitReplyWithDigest) error {
- return ssv1.sS.BiRPCv1InitiateSessionWithDigest(nil, args, rply)
+ return ssv1.sS.BiRPCv1InitiateSessionWithDigest(ctx, args, rply)
}
-func (ssv1 *SessionSv1) UpdateSession(args *sessions.V1UpdateSessionArgs,
+func (ssv1 *SessionSv1) UpdateSession(ctx *context.Context, args *sessions.V1UpdateSessionArgs,
rply *sessions.V1UpdateSessionReply) error {
- return ssv1.sS.BiRPCv1UpdateSession(nil, args, rply)
+ return ssv1.sS.BiRPCv1UpdateSession(ctx, args, rply)
}
-func (ssv1 *SessionSv1) SyncSessions(args *utils.TenantWithAPIOpts,
+func (ssv1 *SessionSv1) SyncSessions(ctx *context.Context, args *utils.TenantWithAPIOpts,
rply *string) error {
- return ssv1.sS.BiRPCv1SyncSessions(nil, &utils.TenantWithAPIOpts{}, rply)
+ return ssv1.sS.BiRPCv1SyncSessions(ctx, &utils.TenantWithAPIOpts{}, rply)
}
-func (ssv1 *SessionSv1) TerminateSession(args *sessions.V1TerminateSessionArgs,
+func (ssv1 *SessionSv1) TerminateSession(ctx *context.Context, args *sessions.V1TerminateSessionArgs,
rply *string) error {
- return ssv1.sS.BiRPCv1TerminateSession(nil, args, rply)
+ return ssv1.sS.BiRPCv1TerminateSession(ctx, args, rply)
}
-func (ssv1 *SessionSv1) ProcessCDR(cgrEv *utils.CGREvent, rply *string) error {
- return ssv1.sS.BiRPCv1ProcessCDR(nil, cgrEv, rply)
+func (ssv1 *SessionSv1) ProcessCDR(ctx *context.Context, cgrEv *utils.CGREvent, rply *string) error {
+ return ssv1.sS.BiRPCv1ProcessCDR(ctx, cgrEv, rply)
}
-func (ssv1 *SessionSv1) ProcessMessage(args *sessions.V1ProcessMessageArgs,
+func (ssv1 *SessionSv1) ProcessMessage(ctx *context.Context, args *sessions.V1ProcessMessageArgs,
rply *sessions.V1ProcessMessageReply) error {
- return ssv1.sS.BiRPCv1ProcessMessage(nil, args, rply)
+ return ssv1.sS.BiRPCv1ProcessMessage(ctx, args, rply)
}
-func (ssv1 *SessionSv1) ProcessEvent(args *sessions.V1ProcessEventArgs,
+func (ssv1 *SessionSv1) ProcessEvent(ctx *context.Context, args *sessions.V1ProcessEventArgs,
rply *sessions.V1ProcessEventReply) error {
- return ssv1.sS.BiRPCv1ProcessEvent(nil, args, rply)
+ return ssv1.sS.BiRPCv1ProcessEvent(ctx, args, rply)
}
-func (ssv1 *SessionSv1) GetCost(args *sessions.V1ProcessEventArgs,
+func (ssv1 *SessionSv1) GetCost(ctx *context.Context, args *sessions.V1ProcessEventArgs,
rply *sessions.V1GetCostReply) error {
- return ssv1.sS.BiRPCv1GetCost(nil, args, rply)
+ return ssv1.sS.BiRPCv1GetCost(ctx, args, rply)
}
-func (ssv1 *SessionSv1) GetActiveSessions(args *utils.SessionFilter,
+func (ssv1 *SessionSv1) GetActiveSessions(ctx *context.Context, args *utils.SessionFilter,
rply *[]*sessions.ExternalSession) error {
- return ssv1.sS.BiRPCv1GetActiveSessions(nil, args, rply)
+ return ssv1.sS.BiRPCv1GetActiveSessions(ctx, args, rply)
}
-func (ssv1 *SessionSv1) GetActiveSessionsCount(args *utils.SessionFilter,
+func (ssv1 *SessionSv1) GetActiveSessionsCount(ctx *context.Context, args *utils.SessionFilter,
rply *int) error {
- return ssv1.sS.BiRPCv1GetActiveSessionsCount(nil, args, rply)
+ return ssv1.sS.BiRPCv1GetActiveSessionsCount(ctx, args, rply)
}
-func (ssv1 *SessionSv1) ForceDisconnect(args *utils.SessionFilter,
+func (ssv1 *SessionSv1) ForceDisconnect(ctx *context.Context, args *utils.SessionFilter,
rply *string) error {
- return ssv1.sS.BiRPCv1ForceDisconnect(nil, args, rply)
+ return ssv1.sS.BiRPCv1ForceDisconnect(ctx, args, rply)
}
-func (ssv1 *SessionSv1) GetPassiveSessions(args *utils.SessionFilter,
+func (ssv1 *SessionSv1) GetPassiveSessions(ctx *context.Context, args *utils.SessionFilter,
rply *[]*sessions.ExternalSession) error {
- return ssv1.sS.BiRPCv1GetPassiveSessions(nil, args, rply)
+ return ssv1.sS.BiRPCv1GetPassiveSessions(ctx, args, rply)
}
-func (ssv1 *SessionSv1) GetPassiveSessionsCount(args *utils.SessionFilter,
+func (ssv1 *SessionSv1) GetPassiveSessionsCount(ctx *context.Context, args *utils.SessionFilter,
rply *int) error {
- return ssv1.sS.BiRPCv1GetPassiveSessionsCount(nil, args, rply)
+ return ssv1.sS.BiRPCv1GetPassiveSessionsCount(ctx, args, rply)
}
-func (ssv1 *SessionSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (ssv1 *SessionSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
-func (ssv1 *SessionSv1) ReplicateSessions(args *dispatchers.ArgsReplicateSessionsWithAPIOpts, rply *string) error {
- return ssv1.sS.BiRPCv1ReplicateSessions(nil, args.ArgsReplicateSessions, rply)
+func (ssv1 *SessionSv1) ReplicateSessions(ctx *context.Context, args *dispatchers.ArgsReplicateSessionsWithAPIOpts, rply *string) error {
+ return ssv1.sS.BiRPCv1ReplicateSessions(ctx, args.ArgsReplicateSessions, rply)
}
-func (ssv1 *SessionSv1) SetPassiveSession(args *sessions.Session,
+func (ssv1 *SessionSv1) SetPassiveSession(ctx *context.Context, args *sessions.Session,
reply *string) error {
- return ssv1.sS.BiRPCv1SetPassiveSession(nil, args, reply)
+ return ssv1.sS.BiRPCv1SetPassiveSession(ctx, args, reply)
}
// ActivateSessions is called to activate a list/all sessions
-func (ssv1 *SessionSv1) ActivateSessions(args *utils.SessionIDsWithArgsDispatcher, reply *string) error {
- return ssv1.sS.BiRPCv1ActivateSessions(nil, args, reply)
+func (ssv1 *SessionSv1) ActivateSessions(ctx *context.Context, args *utils.SessionIDsWithArgsDispatcher, reply *string) error {
+ return ssv1.sS.BiRPCv1ActivateSessions(ctx, args, reply)
}
// DeactivateSessions is called to deactivate a list/all active sessios
-func (ssv1 *SessionSv1) DeactivateSessions(args *utils.SessionIDsWithArgsDispatcher, reply *string) error {
- return ssv1.sS.BiRPCv1DeactivateSessions(nil, args, reply)
-}
-
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (ssv1 *SessionSv1) Call(serviceMethod string,
- args any, reply any) error {
- return utils.APIerRPCCall(ssv1, serviceMethod, args, reply)
+func (ssv1 *SessionSv1) DeactivateSessions(ctx *context.Context, args *utils.SessionIDsWithArgsDispatcher, reply *string) error {
+ return ssv1.sS.BiRPCv1DeactivateSessions(ctx, args, reply)
}
// ReAuthorize sends the RAR for filterd sessions
-func (ssv1 *SessionSv1) ReAuthorize(args *utils.SessionFilter, reply *string) error {
- return ssv1.sS.BiRPCv1ReAuthorize(nil, args, reply)
+func (ssv1 *SessionSv1) ReAuthorize(ctx *context.Context, args *utils.SessionFilter, reply *string) error {
+ return ssv1.sS.BiRPCv1ReAuthorize(ctx, args, reply)
}
// DisconnectPeer sends the DPR for the OriginHost and OriginRealm
-func (ssv1 *SessionSv1) DisconnectPeer(args *utils.DPRArgs, reply *string) error {
- return ssv1.sS.BiRPCv1DisconnectPeer(nil, args, reply)
+func (ssv1 *SessionSv1) DisconnectPeer(ctx *context.Context, args *utils.DPRArgs, reply *string) error {
+ return ssv1.sS.BiRPCv1DisconnectPeer(ctx, args, reply)
}
// STIRAuthenticate checks the identity using STIR/SHAKEN
-func (ssv1 *SessionSv1) STIRAuthenticate(args *sessions.V1STIRAuthenticateArgs, reply *string) error {
- return ssv1.sS.BiRPCv1STIRAuthenticate(nil, args, reply)
+func (ssv1 *SessionSv1) STIRAuthenticate(ctx *context.Context, args *sessions.V1STIRAuthenticateArgs, reply *string) error {
+ return ssv1.sS.BiRPCv1STIRAuthenticate(ctx, args, reply)
}
// STIRIdentity creates the identity for STIR/SHAKEN
-func (ssv1 *SessionSv1) STIRIdentity(args *sessions.V1STIRIdentityArgs, reply *string) error {
- return ssv1.sS.BiRPCv1STIRIdentity(nil, args, reply)
+func (ssv1 *SessionSv1) STIRIdentity(ctx *context.Context, args *sessions.V1STIRIdentityArgs, reply *string) error {
+ return ssv1.sS.BiRPCv1STIRIdentity(ctx, args, reply)
+}
+
+// Sleep mimics a request whose process takes the given amount of time to process
+func (ssv1 *SessionSv1) Sleep(ctx *context.Context, args *utils.DurationArgs, reply *string) (err error) {
+ return ssv1.sS.BiRPCv1Sleep(ctx, args, reply)
+}
+
+func (ssv1 *SessionSv1) CapsError(ctx *context.Context, args any, reply *string) (err error) {
+ return ssv1.sS.BiRPCv1CapsError(ctx, args, reply)
+}
+
+func (ssv1 *SessionSv1) RegisterInternalBiJSONConn(ctx *context.Context, args string, rply *string) (err error) {
+ return ssv1.sS.BiRPCv1RegisterInternalBiJSONConn(ctx, args, rply)
}
diff --git a/apier/v1/sessions_process_event_it_test.go b/apier/v1/sessions_process_event_it_test.go
index 4101d8909..4a354469f 100644
--- a/apier/v1/sessions_process_event_it_test.go
+++ b/apier/v1/sessions_process_event_it_test.go
@@ -27,6 +27,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -181,7 +182,7 @@ func testSSv1ItProcessEventAuth(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent, args, &rply); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent, args, &rply); err != nil {
t.Fatal(err)
}
expMaxUsage := map[string]time.Duration{
@@ -286,7 +287,7 @@ func testSSv1ItProcessEventInitiateSession(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -338,7 +339,7 @@ func testSSv1ItProcessEventInitiateSession(t *testing.T) {
utils.ToJSON(eAttrs), utils.ToJSON(rply.Attributes[utils.MetaRaw]))
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
@@ -369,7 +370,7 @@ func testSSv1ItProcessEventUpdateSession(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -416,7 +417,7 @@ func testSSv1ItProcessEventUpdateSession(t *testing.T) {
t.Errorf("Expected %s received %s", expMaxUsage, rply.MaxUsage)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
@@ -445,12 +446,12 @@ func testSSv1ItProcessEventTerminateSession(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Error(err)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err == nil ||
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -474,7 +475,7 @@ func testSSv1ItProcessCDRForSessionFromProcessEvent(t *testing.T) {
},
}
var rply string
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessCDR,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessCDR,
args, &rply); err != nil {
t.Error(err)
}
@@ -486,7 +487,7 @@ func testSSv1ItProcessCDRForSessionFromProcessEvent(t *testing.T) {
func testSSv1ItGetCDRs(t *testing.T) {
var cdrCnt int64
req := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 3 { // 3 for each CDR
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
@@ -494,7 +495,7 @@ func testSSv1ItGetCDRs(t *testing.T) {
var cdrs []*engine.CDR
args := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{"raw"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -505,7 +506,7 @@ func testSSv1ItGetCDRs(t *testing.T) {
}
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"},
OriginIDs: []string{"testSSv1ItProcessEvent"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -516,7 +517,7 @@ func testSSv1ItGetCDRs(t *testing.T) {
}
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"},
OriginIDs: []string{"testSSv1ItProcessEvent"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -548,7 +549,7 @@ func testSSv1ItProcessEventWithGetCost(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -587,7 +588,7 @@ func testSSv1ItProcessEventWithGetCost2(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -628,7 +629,7 @@ func testSSv1ItProcessEventWithGetCost3(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -666,7 +667,7 @@ func testSSv1ItProcessEventWithGetCost4(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err == nil || err.Error() != utils.ErrRatingPlanNotFound.Error() {
t.Error(err)
}
@@ -694,7 +695,7 @@ func testSSv1ItGetCost(t *testing.T) {
},
}
var rply sessions.V1GetCostReply
- if err := sSv1BiRpc.Call(utils.SessionSv1GetCost,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetCost,
args, &rply); err != nil {
t.Error(err)
}
@@ -735,7 +736,7 @@ func testSSv1ItProcessEventWithCDR(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -745,7 +746,7 @@ func testSSv1ItGetCDRsFromProcessEvent(t *testing.T) {
var cdrCnt int64
req := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
OriginIDs: []string{"testSSv1ItProcessEventWithCDR"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 3 { // 3 for each CDR
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
@@ -755,7 +756,7 @@ func testSSv1ItGetCDRsFromProcessEvent(t *testing.T) {
args := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
OriginIDs: []string{"testSSv1ItProcessEventWithCDR"},
RunIDs: []string{"raw"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -767,7 +768,7 @@ func testSSv1ItGetCDRsFromProcessEvent(t *testing.T) {
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"CustomerCharges"},
OriginIDs: []string{"testSSv1ItProcessEventWithCDR"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -779,7 +780,7 @@ func testSSv1ItGetCDRsFromProcessEvent(t *testing.T) {
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"SupplierCharges"},
OriginIDs: []string{"testSSv1ItProcessEventWithCDR"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -812,7 +813,7 @@ func testSSv1ItProcessEventWithCDRResourceError(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
t.Error(err)
}
@@ -822,7 +823,7 @@ func testSSv1ItGetCDRsFromProcessEventResourceError(t *testing.T) {
var cdrCnt int64
req := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
OriginIDs: []string{"testSSv1ItProcessEventWithCDRResourceError"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 3 { // 3 for each CDR
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
@@ -832,7 +833,7 @@ func testSSv1ItGetCDRsFromProcessEventResourceError(t *testing.T) {
args := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
OriginIDs: []string{"testSSv1ItProcessEventWithCDRResourceError"},
RunIDs: []string{"raw"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -844,7 +845,7 @@ func testSSv1ItGetCDRsFromProcessEventResourceError(t *testing.T) {
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"CustomerCharges"},
OriginIDs: []string{"testSSv1ItProcessEventWithCDRResourceError"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -856,7 +857,7 @@ func testSSv1ItGetCDRsFromProcessEventResourceError(t *testing.T) {
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"SupplierCharges"},
OriginIDs: []string{"testSSv1ItProcessEventWithCDRResourceError"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -890,7 +891,7 @@ func testSSv1ItProcessEventWithCDRResourceErrorBlockError(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessEvent,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err == nil || err.Error() != "RESOURCES_ERROR:cannot find usage record with id: testSSv1ItProcessEventWithCDRResourceErrorBlockError" {
t.Error(err)
}
@@ -900,7 +901,7 @@ func testSSv1ItGetCDRsFromProcessEventResourceErrorBlockError(t *testing.T) {
var cdrCnt int64
req := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{
OriginIDs: []string{"testSSv1ItProcessEventWithCDRResourceErrorBlockError"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 0 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
diff --git a/apier/v1/sessions_thresholds_it_test.go b/apier/v1/sessions_thresholds_it_test.go
index a5dcfcf40..64506bda6 100644
--- a/apier/v1/sessions_thresholds_it_test.go
+++ b/apier/v1/sessions_thresholds_it_test.go
@@ -22,13 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -38,8 +38,8 @@ import (
var (
sSv1CfgPath2 string
sSv1Cfg2 *config.CGRConfig
- sSv1BiRpc2 *rpc2.Client
- sSApierRpc2 *rpc.Client
+ sSv1BiRpc2 *birpc.BirpcClient
+ sSApierRpc2 *birpc.Client
disconnectEvChan2 = make(chan *utils.AttrDisconnectSession)
sessionsConfDIR string
@@ -83,7 +83,9 @@ func TestSessionSITtests(t *testing.T) {
}
}
-func handleDisconnectSession2(clnt *rpc2.Client,
+type smock2 struct{}
+
+func (*smock2) DisconnectSession(ctx *context.Context,
args *utils.AttrDisconnectSession, reply *string) error {
disconnectEvChan2 <- args
*reply = utils.OK
@@ -124,11 +126,12 @@ func testSessionSv1ItRpcConn(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- clntHandlers := map[string]any{
- utils.SessionSv1DisconnectSession: handleDisconnectSession2,
+ srv, err := birpc.NewService(new(smock2), utils.SessionSv1, true)
+ if err != nil {
+ t.Fatal(err)
}
if sSv1BiRpc2, err = utils.NewBiJSONrpcClient(sSv1Cfg2.SessionSCfg().ListenBijson,
- clntHandlers); err != nil {
+ srv); err != nil {
t.Fatal(err)
}
if sSApierRpc2, err = newRPCClient(sSv1Cfg2.ListenCfg()); err != nil {
@@ -142,7 +145,7 @@ func testSessionSv1ItTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{
FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
var loadInst utils.LoadInstance
- if err := sSApierRpc2.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := sSApierRpc2.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -164,7 +167,7 @@ func testSessionSv1ItGetThreshold(t *testing.T) {
Async: false,
}
var reply *engine.ThresholdProfile
- if err := sSApierRpc2.Call(utils.APIerSv1GetThresholdProfile,
+ if err := sSApierRpc2.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org",
ID: "THD_ACNT_1001"}, &reply); err != nil {
t.Error(err)
@@ -187,7 +190,7 @@ func testSessionSv1ItGetThreshold(t *testing.T) {
// Uuid will be generated
// so we will compare ID from Account and Value from BalanceMap
var reply2 *engine.Account
- if err := sSApierRpc2.Call(utils.APIerSv2GetAccount,
+ if err := sSApierRpc2.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org",
Account: "1001"}, &reply2); err != nil {
t.Error(err)
@@ -221,7 +224,7 @@ func testSessionSv1ItAuth(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReply
- if err := sSv1BiRpc2.Call(utils.SessionSv1AuthorizeEvent,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1AuthorizeEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -246,7 +249,7 @@ func testSessionSv1ItAuth(t *testing.T) {
// Uuid will be generated
// so we will compare ID from Account and Value from BalanceMap
var reply *engine.Account
- if err := sSApierRpc2.Call(utils.APIerSv2GetAccount,
+ if err := sSApierRpc2.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org",
Account: "1001"}, &reply); err != nil {
t.Error(err)
@@ -288,7 +291,7 @@ func testSessionSv1ItInitiateSession(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := sSv1BiRpc2.Call(utils.SessionSv1InitiateSession,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -309,7 +312,7 @@ func testSessionSv1ItInitiateSession(t *testing.T) {
// Uuid will be generated
// so we will compare ID from Account and Value from BalanceMap
var reply *engine.Account
- if err := sSApierRpc2.Call(utils.APIerSv2GetAccount,
+ if err := sSApierRpc2.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org",
Account: "1001"}, &reply); err != nil {
t.Error(err)
@@ -345,7 +348,7 @@ func testSessionSv1ItTerminateSession(t *testing.T) {
},
}
var rply string
- if err := sSv1BiRpc2.Call(utils.SessionSv1TerminateSession,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -366,7 +369,7 @@ func testSessionSv1ItTerminateSession(t *testing.T) {
// Uuid will be generated
// so we will compare ID from Account and Value from BalanceMap
var reply2 *engine.Account
- if err := sSApierRpc2.Call(utils.APIerSv2GetAccount,
+ if err := sSApierRpc2.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org",
Account: "1001"}, &reply2); err != nil {
t.Error(err)
@@ -401,7 +404,7 @@ func testSessionSv1ItAuthNotFoundThreshold(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReply
- if err := sSv1BiRpc2.Call(utils.SessionSv1AuthorizeEvent,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1AuthorizeEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -441,7 +444,7 @@ func testSessionSv1ItInitNotFoundThreshold(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := sSv1BiRpc2.Call(utils.SessionSv1InitiateSession,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -458,7 +461,7 @@ func testSessionSv1ItInitNotFoundThreshold(t *testing.T) {
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc2.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
@@ -492,7 +495,7 @@ func testSessionSv1ItTerminateNotFoundThreshold(t *testing.T) {
},
}
var rply string
- if err := sSv1BiRpc2.Call(utils.SessionSv1TerminateSession,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -500,7 +503,7 @@ func testSessionSv1ItTerminateNotFoundThreshold(t *testing.T) {
t.Fatalf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc2.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -508,7 +511,7 @@ func testSessionSv1ItTerminateNotFoundThreshold(t *testing.T) {
func testSessionSv1ItAuthNotFoundThresholdAndStats(t *testing.T) {
var resp string
- if err := sSApierRpc2.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := sSApierRpc2.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stat_2"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -533,7 +536,7 @@ func testSessionSv1ItAuthNotFoundThresholdAndStats(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReply
- if err := sSv1BiRpc2.Call(utils.SessionSv1AuthorizeEvent,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1AuthorizeEvent,
args, &rply); err != nil {
t.Error(err)
}
@@ -574,7 +577,7 @@ func testSessionSv1ItInitNotFoundThresholdAndStats(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := sSv1BiRpc2.Call(utils.SessionSv1InitiateSession,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -592,7 +595,7 @@ func testSessionSv1ItInitNotFoundThresholdAndStats(t *testing.T) {
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc2.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
@@ -626,7 +629,7 @@ func testSessionSv1ItTerminateNotFoundThresholdAndStats(t *testing.T) {
},
}
var rply string
- if err := sSv1BiRpc2.Call(utils.SessionSv1TerminateSession,
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -634,7 +637,7 @@ func testSessionSv1ItTerminateNotFoundThresholdAndStats(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc2.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
+ if err := sSv1BiRpc2.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/sessionsbirpc.go b/apier/v1/sessionsbirpc.go
deleted file mode 100644
index fbe7505c0..000000000
--- a/apier/v1/sessionsbirpc.go
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
-Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
-Copyright (C) ITsysCOM GmbH
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see
-*/
-
-package v1
-
-import (
- "time"
-
- "github.com/cenkalti/rpc2"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
-
-// Bidirectional JSON methods following
-func (ssv1 *SessionSv1) Handlers() map[string]any {
- return map[string]any{
- utils.SessionSv1GetActiveSessions: ssv1.BiRPCv1GetActiveSessions,
- utils.SessionSv1GetActiveSessionsCount: ssv1.BiRPCv1GetActiveSessionsCount,
- utils.SessionSv1GetPassiveSessions: ssv1.BiRPCv1GetPassiveSessions,
- utils.SessionSv1GetPassiveSessionsCount: ssv1.BiRPCv1GetPassiveSessionsCount,
-
- utils.SessionSv1AuthorizeEvent: ssv1.BiRPCv1AuthorizeEvent,
- utils.SessionSv1AuthorizeEventWithDigest: ssv1.BiRPCv1AuthorizeEventWithDigest,
- utils.SessionSv1InitiateSession: ssv1.BiRPCv1InitiateSession,
- utils.SessionSv1InitiateSessionWithDigest: ssv1.BiRPCv1InitiateSessionWithDigest,
- utils.SessionSv1UpdateSession: ssv1.BiRPCv1UpdateSession,
- utils.SessionSv1SyncSessions: ssv1.BiRPCv1SyncSessions,
- utils.SessionSv1TerminateSession: ssv1.BiRPCv1TerminateSession,
- utils.SessionSv1ProcessCDR: ssv1.BiRPCv1ProcessCDR,
- utils.SessionSv1ProcessMessage: ssv1.BiRPCv1ProcessMessage,
- utils.SessionSv1ProcessEvent: ssv1.BiRPCv1ProcessEvent,
- utils.SessionSv1GetCost: ssv1.BiRPCv1GetCost,
-
- utils.SessionSv1ForceDisconnect: ssv1.BiRPCv1ForceDisconnect,
- utils.SessionSv1RegisterInternalBiJSONConn: ssv1.BiRPCv1RegisterInternalBiJSONConn,
- utils.SessionSv1Ping: ssv1.BiRPCPing,
-
- utils.SessionSv1ReplicateSessions: ssv1.BiRPCv1ReplicateSessions,
- utils.SessionSv1SetPassiveSession: ssv1.BiRPCv1SetPassiveSession,
- utils.SessionSv1ActivateSessions: ssv1.BiRPCv1ActivateSessions,
- utils.SessionSv1DeactivateSessions: ssv1.BiRPCv1DeactivateSessions,
-
- utils.SessionSv1ReAuthorize: ssv1.BiRPCV1ReAuthorize,
- utils.SessionSv1DisconnectPeer: ssv1.BiRPCV1DisconnectPeer,
-
- utils.SessionSv1STIRAuthenticate: ssv1.BiRPCV1STIRAuthenticate,
- utils.SessionSv1STIRIdentity: ssv1.BiRPCV1STIRIdentity,
-
- utils.SessionSv1Sleep: ssv1.BiRPCV1Sleep, // Sleep method is used to test the concurrent requests mechanism
- utils.SessionSv1CapsError: ssv1.BiRPCV1CapsError,
- }
-}
-
-func (ssv1 *SessionSv1) BiRPCv1AuthorizeEvent(clnt *rpc2.Client, args *sessions.V1AuthorizeArgs,
- rply *sessions.V1AuthorizeReply) (err error) {
- return ssv1.sS.BiRPCv1AuthorizeEvent(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1AuthorizeEventWithDigest(clnt *rpc2.Client, args *sessions.V1AuthorizeArgs,
- rply *sessions.V1AuthorizeReplyWithDigest) (err error) {
- return ssv1.sS.BiRPCv1AuthorizeEventWithDigest(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1InitiateSession(clnt *rpc2.Client, args *sessions.V1InitSessionArgs,
- rply *sessions.V1InitSessionReply) (err error) {
- return ssv1.sS.BiRPCv1InitiateSession(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1InitiateSessionWithDigest(clnt *rpc2.Client, args *sessions.V1InitSessionArgs,
- rply *sessions.V1InitReplyWithDigest) (err error) {
- return ssv1.sS.BiRPCv1InitiateSessionWithDigest(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1UpdateSession(clnt *rpc2.Client, args *sessions.V1UpdateSessionArgs,
- rply *sessions.V1UpdateSessionReply) (err error) {
- return ssv1.sS.BiRPCv1UpdateSession(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1SyncSessions(clnt *rpc2.Client, args *utils.TenantWithAPIOpts,
- rply *string) (err error) {
- return ssv1.sS.BiRPCv1SyncSessions(clnt, &utils.TenantWithAPIOpts{}, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1TerminateSession(clnt *rpc2.Client, args *sessions.V1TerminateSessionArgs,
- rply *string) (err error) {
- return ssv1.sS.BiRPCv1TerminateSession(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1ProcessCDR(clnt *rpc2.Client, cgrEv *utils.CGREvent,
- rply *string) (err error) {
- return ssv1.sS.BiRPCv1ProcessCDR(clnt, cgrEv, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1ProcessMessage(clnt *rpc2.Client, args *sessions.V1ProcessMessageArgs,
- rply *sessions.V1ProcessMessageReply) (err error) {
- return ssv1.sS.BiRPCv1ProcessMessage(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1ProcessEvent(clnt *rpc2.Client, args *sessions.V1ProcessEventArgs,
- rply *sessions.V1ProcessEventReply) (err error) {
- return ssv1.sS.BiRPCv1ProcessEvent(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1GetCost(clnt *rpc2.Client, args *sessions.V1ProcessEventArgs,
- rply *sessions.V1GetCostReply) (err error) {
- return ssv1.sS.BiRPCv1GetCost(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1GetActiveSessions(clnt *rpc2.Client, args *utils.SessionFilter,
- rply *[]*sessions.ExternalSession) (err error) {
- return ssv1.sS.BiRPCv1GetActiveSessions(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1GetActiveSessionsCount(clnt *rpc2.Client, args *utils.SessionFilter,
- rply *int) (err error) {
- return ssv1.sS.BiRPCv1GetActiveSessionsCount(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1GetPassiveSessions(clnt *rpc2.Client, args *utils.SessionFilter,
- rply *[]*sessions.ExternalSession) (err error) {
- return ssv1.sS.BiRPCv1GetPassiveSessions(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1GetPassiveSessionsCount(clnt *rpc2.Client, args *utils.SessionFilter,
- rply *int) (err error) {
- return ssv1.sS.BiRPCv1GetPassiveSessionsCount(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1ForceDisconnect(clnt *rpc2.Client, args *utils.SessionFilter,
- rply *string) (err error) {
- return ssv1.sS.BiRPCv1ForceDisconnect(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1RegisterInternalBiJSONConn(clnt *rpc2.Client, args string,
- rply *string) (err error) {
- return ssv1.sS.BiRPCv1RegisterInternalBiJSONConn(clnt, args, rply)
-}
-
-func (ssv1 *SessionSv1) BiRPCPing(clnt *rpc2.Client, ign *utils.CGREvent,
- reply *string) (err error) {
- return ssv1.Ping(ign, reply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1ReplicateSessions(clnt *rpc2.Client,
- args sessions.ArgsReplicateSessions, reply *string) (err error) {
- return ssv1.BiRPCv1ReplicateSessions(clnt, args, reply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1SetPassiveSession(clnt *rpc2.Client,
- args *sessions.Session, reply *string) (err error) {
- return ssv1.sS.BiRPCv1SetPassiveSession(clnt, args, reply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1ActivateSessions(clnt *rpc2.Client,
- args *utils.SessionIDsWithArgsDispatcher, reply *string) (err error) {
- return ssv1.sS.BiRPCv1ActivateSessions(clnt, args, reply)
-}
-
-func (ssv1 *SessionSv1) BiRPCv1DeactivateSessions(clnt *rpc2.Client,
- args *utils.SessionIDsWithArgsDispatcher, reply *string) (err error) {
- return ssv1.sS.BiRPCv1DeactivateSessions(clnt, args, reply)
-}
-
-// BiRPCV1ReAuthorize sends the RAR for filterd sessions
-func (ssv1 *SessionSv1) BiRPCV1ReAuthorize(clnt *rpc2.Client,
- args *utils.SessionFilter, reply *string) (err error) {
- return ssv1.sS.BiRPCv1ReAuthorize(clnt, args, reply)
-}
-
-// BiRPCV1DisconnectPeer sends the DPR for the OriginHost and OriginRealm
-func (ssv1 *SessionSv1) BiRPCV1DisconnectPeer(clnt *rpc2.Client,
- args *utils.DPRArgs, reply *string) (err error) {
- return ssv1.sS.BiRPCv1DisconnectPeer(clnt, args, reply)
-}
-
-// BiRPCV1STIRAuthenticate checks the identity using STIR/SHAKEN
-func (ssv1 *SessionSv1) BiRPCV1STIRAuthenticate(clnt *rpc2.Client,
- args *sessions.V1STIRAuthenticateArgs, reply *string) (err error) {
- return ssv1.sS.BiRPCv1STIRAuthenticate(clnt, args, reply)
-}
-
-// BiRPCV1STIRIdentity creates the identity for STIR/SHAKEN
-func (ssv1 *SessionSv1) BiRPCV1STIRIdentity(clnt *rpc2.Client,
- args *sessions.V1STIRIdentityArgs, reply *string) (err error) {
- return ssv1.sS.BiRPCv1STIRIdentity(nil, args, reply)
-}
-
-func (ssv1 *SessionSv1) BiRPCV1Sleep(clnt *rpc2.Client, args *utils.DurationArgs,
- reply *string) (err error) {
- time.Sleep(args.Duration)
- *reply = utils.OK
- return nil
-}
-
-func (ssv1 *SessionSv1) BiRPCV1CapsError(clnt *rpc2.Client, args any,
- reply *string) (err error) {
- return ssv1.sS.BiRPCv1CapsError(clnt, args, reply)
-}
diff --git a/apier/v1/sessionsv1_it_test.go b/apier/v1/sessionsv1_it_test.go
index a15faa395..e959702c3 100644
--- a/apier/v1/sessionsv1_it_test.go
+++ b/apier/v1/sessionsv1_it_test.go
@@ -22,13 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -38,8 +38,8 @@ import (
var (
sSv1CfgPath string
sSv1Cfg *config.CGRConfig
- sSv1BiRpc *rpc2.Client
- sSApierRpc *rpc.Client
+ sSv1BiRpc *birpc.BirpcClient
+ sSApierRpc *birpc.Client
discEvChan = make(chan *utils.AttrDisconnectSession, 1)
sSV1RequestType string
@@ -87,7 +87,9 @@ func testSSv1ItInitCfgDir(t *testing.T) {
}
}
-func handleDisconnectSession(clnt *rpc2.Client,
+type smock struct{}
+
+func (*smock) DisconnectSession(ctx *context.Context,
args *utils.AttrDisconnectSession, reply *string) error {
discEvChan <- args
// free the channel
@@ -96,7 +98,7 @@ func handleDisconnectSession(clnt *rpc2.Client,
return nil
}
-func handleGetSessionIDs(clnt *rpc2.Client,
+func (*smock) GetActiveSessionIDs(ctx *context.Context,
ignParam string, sessionIDs *[]*sessions.SessionID) error {
return nil
}
@@ -165,12 +167,12 @@ func testSSv1ItRpcConn(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- clntHandlers := map[string]any{
- utils.SessionSv1DisconnectSession: handleDisconnectSession,
- utils.SessionSv1GetActiveSessionIDs: handleGetSessionIDs,
+ srv, err := birpc.NewService(new(smock), utils.SessionSv1, true)
+ if err != nil {
+ t.Fatal(err)
}
if sSv1BiRpc, err = utils.NewBiJSONrpcClient(sSv1Cfg.SessionSCfg().ListenBijson,
- clntHandlers); err != nil {
+ srv); err != nil {
t.Fatal(err)
}
if sSApierRpc, err = newRPCClient(sSv1Cfg.ListenCfg()); err != nil {
@@ -181,7 +183,7 @@ func testSSv1ItRpcConn(t *testing.T) {
func testSSv1ItPing(t *testing.T) {
var resp string
- if err := sSv1BiRpc.Call(utils.SessionSv1Ping, new(utils.CGREvent), &resp); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1Ping, new(utils.CGREvent), &resp); err != nil {
t.Error(err)
} else if resp != utils.Pong {
t.Error("Unexpected reply returned", resp)
@@ -193,7 +195,7 @@ func testSSv1ItTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{
FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
var loadInst utils.LoadInstance
- if err := sSApierRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
attrs, &loadInst); err != nil {
t.Error(err)
}
@@ -224,7 +226,7 @@ func testSSv1ItAuth(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReply
- if err := sSv1BiRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
t.Fatal(err)
}
if rply.MaxUsage == nil || *rply.MaxUsage != authUsage {
@@ -321,7 +323,7 @@ func testSSv1ItAuthWithDigest(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReplyWithDigest
- if err := sSv1BiRpc.Call(utils.SessionSv1AuthorizeEventWithDigest, args, &rply); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1AuthorizeEventWithDigest, args, &rply); err != nil {
t.Fatal(err)
}
// in case of prepaid and pseudoprepade we expect a MaxUsage of 5min
@@ -366,7 +368,7 @@ func testSSv1ItInitiateSession(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := sSv1BiRpc.Call(utils.SessionSv1InitiateSession,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -412,7 +414,7 @@ func testSSv1ItInitiateSession(t *testing.T) {
utils.ToJSON(eAttrs), utils.ToJSON(rply.Attributes))
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
@@ -443,7 +445,7 @@ func testSSv1ItInitiateSessionWithDigest(t *testing.T) {
},
}
var rply sessions.V1InitReplyWithDigest
- if err := sSv1BiRpc.Call(utils.SessionSv1InitiateSessionWithDigest,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1InitiateSessionWithDigest,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -462,7 +464,7 @@ func testSSv1ItInitiateSessionWithDigest(t *testing.T) {
utils.ToJSON(eAttrs), utils.ToJSON(rply.AttributesDigest))
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
@@ -492,7 +494,7 @@ func testSSv1ItUpdateSession(t *testing.T) {
},
}
var rply sessions.V1UpdateSessionReply
- if err := sSv1BiRpc.Call(utils.SessionSv1UpdateSession,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1UpdateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -533,7 +535,7 @@ func testSSv1ItUpdateSession(t *testing.T) {
t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
@@ -562,7 +564,7 @@ func testSSv1ItTerminateSession(t *testing.T) {
},
}
var rply string
- if err := sSv1BiRpc.Call(utils.SessionSv1TerminateSession,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -570,7 +572,7 @@ func testSSv1ItTerminateSession(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
}
@@ -594,7 +596,7 @@ func testSSv1ItProcessCDR(t *testing.T) {
},
}
var rply string
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessCDR,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessCDR,
args, &rply); err != nil {
t.Error(err)
}
@@ -629,7 +631,7 @@ func testSSv1ItProcessEvent(t *testing.T) {
},
}
var rply sessions.V1ProcessMessageReply
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessMessage,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -676,12 +678,12 @@ func testSSv1ItProcessEvent(t *testing.T) {
utils.ToJSON(eAttrs), utils.ToJSON(rply.Attributes))
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var rplyCDR string
- if err := sSv1BiRpc.Call(utils.SessionSv1ProcessCDR,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ProcessCDR,
args.CGREvent, &rplyCDR); err != nil {
t.Error(err)
}
@@ -693,7 +695,7 @@ func testSSv1ItProcessEvent(t *testing.T) {
func testSSv1ItCDRsGetCdrs(t *testing.T) {
var cdrCnt int64
req := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRsCount, req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 6 { // 3 for each CDR
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
@@ -701,7 +703,7 @@ func testSSv1ItCDRsGetCdrs(t *testing.T) {
var cdrs []*engine.CDR
args := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{"raw"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -712,7 +714,7 @@ func testSSv1ItCDRsGetCdrs(t *testing.T) {
}
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"},
OriginIDs: []string{"TestSSv1It1"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -729,7 +731,7 @@ func testSSv1ItCDRsGetCdrs(t *testing.T) {
}
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"},
OriginIDs: []string{"TestSSv1It1"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -747,7 +749,7 @@ func testSSv1ItCDRsGetCdrs(t *testing.T) {
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"},
OriginIDs: []string{"TestSSv1It2"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -764,7 +766,7 @@ func testSSv1ItCDRsGetCdrs(t *testing.T) {
}
args = &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"},
OriginIDs: []string{"TestSSv1It2"}}}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -787,13 +789,13 @@ func testSSv1ItForceUpdateSession(t *testing.T) {
return
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %v with len(asessions)=%v", err, len(aSessions))
}
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 9.55
- if err := sSApierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -822,7 +824,7 @@ func testSSv1ItForceUpdateSession(t *testing.T) {
},
}
var rply sessions.V1UpdateSessionReply
- if err := sSv1BiRpc.Call(utils.SessionSv1UpdateSession,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1UpdateSession,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -861,31 +863,31 @@ func testSSv1ItForceUpdateSession(t *testing.T) {
t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
}
aSessions = make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active ssesions: %s", utils.ToJSON(aSessions))
}
eAcntVal = 9.4
- if err := sSApierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
rplyt := ""
- if err := sSv1BiRpc.Call(utils.SessionSv1ForceDisconnect,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ForceDisconnect,
map[string]string{utils.OriginID: "TestSSv1It"}, &rplyt); err != nil {
t.Error(err)
} else if rplyt != utils.OK {
t.Errorf("Unexpected reply: %s", rplyt)
}
aSessions = make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := sSApierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal { // no monetary change bacause the sessin was terminated
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -897,7 +899,7 @@ func testSSv1ItForceUpdateSession(t *testing.T) {
OriginIDs: []string{"TestSSv1It"},
},
}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs), "\n", utils.ToJSON(cdrs))
@@ -912,7 +914,7 @@ func testSSv1ItForceUpdateSession(t *testing.T) {
OriginIDs: []string{"TestSSv1It"},
},
}
- if err := sSApierRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -939,7 +941,7 @@ func testSSv1ItDynamicDebit(t *testing.T) {
},
}
var reply string
- if err := sSApierRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -950,7 +952,7 @@ func testSSv1ItDynamicDebit(t *testing.T) {
Account: attrSetBalance.Account,
}
eAcntVal := 2 * float64(time.Second)
- if err := sSApierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %v, received: %v",
@@ -982,7 +984,7 @@ func testSSv1ItDynamicDebit(t *testing.T) {
},
}
var rply1 sessions.V1InitSessionReply
- if err := sSv1BiRpc.Call(utils.SessionSv1InitiateSession,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args1, &rply1); err != nil {
t.Error(err)
return
@@ -991,14 +993,14 @@ func testSSv1ItDynamicDebit(t *testing.T) {
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %+v , %s ", len(aSessions), utils.ToJSON(aSessions))
}
time.Sleep(time.Millisecond)
eAcntVal -= float64(time.Millisecond) * 30 * 2 // 2 session
- if err := sSApierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %v, received: %v",
@@ -1006,7 +1008,7 @@ func testSSv1ItDynamicDebit(t *testing.T) {
}
time.Sleep(10 * time.Millisecond)
- if err := sSApierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %v, received: %v",
@@ -1014,21 +1016,21 @@ func testSSv1ItDynamicDebit(t *testing.T) {
}
time.Sleep(20 * time.Millisecond)
eAcntVal -= float64(time.Millisecond) * 30 * 2 // 2 session
- if err := sSApierRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sSApierRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %v, received: %v",
time.Duration(eAcntVal), time.Duration(acnt.BalanceMap[utils.MetaVoice].GetTotalValue()))
}
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %+v , %s ", len(aSessions), utils.ToJSON(aSessions))
}
var rplyt string
- if err := sSv1BiRpc.Call(utils.SessionSv1ForceDisconnect,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1ForceDisconnect,
nil, &rplyt); err != nil {
t.Error(err)
} else if rplyt != utils.OK {
@@ -1038,7 +1040,7 @@ func testSSv1ItDynamicDebit(t *testing.T) {
time.Sleep(50 * time.Millisecond)
aSessions = make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -1047,10 +1049,10 @@ func testSSv1ItDynamicDebit(t *testing.T) {
func testSSv1ItDeactivateSessions(t *testing.T) {
aSessions := make([]*sessions.ExternalSession, 0)
pSessions := make([]*sessions.ExternalSession, 0)
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil && err.Error() != utils.NotFoundCaps {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil && err.Error() != utils.NotFoundCaps {
t.Error(err)
}
- if err := sSv1BiRpc.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &pSessions); err != nil && err.Error() != utils.NotFoundCaps {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &pSessions); err != nil && err.Error() != utils.NotFoundCaps {
t.Error(err)
}
initUsage := 5 * time.Minute
@@ -1075,28 +1077,28 @@ func testSSv1ItDeactivateSessions(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := sSv1BiRpc.Call(utils.SessionSv1InitiateSession, args, &rply); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1InitiateSession, args, &rply); err != nil {
t.Fatal(err)
}
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
}
- if err := sSv1BiRpc.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &pSessions); err != nil && err.Error() != utils.NotFoundCaps {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &pSessions); err != nil && err.Error() != utils.NotFoundCaps {
t.Error(err)
}
var reply string
- err := sSv1BiRpc.Call(utils.SessionSv1DeactivateSessions, &utils.SessionIDsWithArgsDispatcher{}, &reply)
+ err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1DeactivateSessions, &utils.SessionIDsWithArgsDispatcher{}, &reply)
if err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting: OK, received : %+v", reply)
}
- if err := sSv1BiRpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil && err.Error() != utils.NotFoundCaps {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil && err.Error() != utils.NotFoundCaps {
t.Error(err)
}
- if err := sSv1BiRpc.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &pSessions); err != nil {
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &pSessions); err != nil {
t.Error(err)
} else if len(pSessions) != 3 {
t.Errorf("Expecting: 2, received: %+v", len(pSessions))
@@ -1124,7 +1126,7 @@ func testSSv1ItAuthNotFoundCharger(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReply
- if err := sSv1BiRpc.Call(utils.SessionSv1AuthorizeEvent, args,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args,
&rply); err == nil || err.Error() != utils.NewErrChargerS(utils.ErrNotFound).Error() {
t.Errorf("Expecting: %+v, received: %+v", utils.NewErrChargerS(utils.ErrNotFound), err)
}
@@ -1152,7 +1154,7 @@ func testSSv1ItInitiateSessionNotFoundCharger(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := sSv1BiRpc.Call(utils.SessionSv1InitiateSession,
+ if err := sSv1BiRpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err == nil || err.Error() != utils.NewErrChargerS(utils.ErrNotFound).Error() {
t.Errorf("Expecting: %+v, received: %+v", utils.NewErrChargerS(utils.ErrNotFound), err)
}
diff --git a/apier/v1/smg.go b/apier/v1/smg.go
index 5c8e277af..9e4a74851 100644
--- a/apier/v1/smg.go
+++ b/apier/v1/smg.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/sessions"
)
@@ -35,31 +36,31 @@ type SMGenericV1 struct {
}
// Returns MaxUsage (for calls in seconds), -1 for no limit
-func (smgv1 *SMGenericV1) GetMaxUsage(ev map[string]any,
+func (smgv1 *SMGenericV1) GetMaxUsage(ctx *context.Context, ev map[string]any,
maxUsage *float64) error {
- return smgv1.Ss.BiRPCV1GetMaxUsage(nil, ev, maxUsage)
+ return smgv1.Ss.BiRPCV1GetMaxUsage(ctx, ev, maxUsage)
}
// Called on session start, returns the maximum number of seconds the session can last
-func (smgv1 *SMGenericV1) InitiateSession(ev map[string]any,
+func (smgv1 *SMGenericV1) InitiateSession(ctx *context.Context, ev map[string]any,
maxUsage *float64) error {
- return smgv1.Ss.BiRPCV1InitiateSession(nil, ev, maxUsage)
+ return smgv1.Ss.BiRPCV1InitiateSession(ctx, ev, maxUsage)
}
// Interim updates, returns remaining duration from the rater
-func (smgv1 *SMGenericV1) UpdateSession(ev map[string]any,
+func (smgv1 *SMGenericV1) UpdateSession(ctx *context.Context, ev map[string]any,
maxUsage *float64) error {
- return smgv1.Ss.BiRPCV1UpdateSession(nil, ev, maxUsage)
+ return smgv1.Ss.BiRPCV1UpdateSession(ctx, ev, maxUsage)
}
// Called on session end, should stop debit loop
-func (smgv1 *SMGenericV1) TerminateSession(ev map[string]any,
+func (smgv1 *SMGenericV1) TerminateSession(ctx *context.Context, ev map[string]any,
reply *string) error {
- return smgv1.Ss.BiRPCV1TerminateSession(nil, ev, reply)
+ return smgv1.Ss.BiRPCV1TerminateSession(ctx, ev, reply)
}
// Called on session end, should send the CDR to CDRS
-func (smgv1 *SMGenericV1) ProcessCDR(ev map[string]any,
+func (smgv1 *SMGenericV1) ProcessCDR(ctx *context.Context, ev map[string]any,
reply *string) error {
- return smgv1.Ss.BiRPCV1ProcessCDR(nil, ev, reply)
+ return smgv1.Ss.BiRPCV1ProcessCDR(ctx, ev, reply)
}
diff --git a/apier/v1/smgbirpc.go b/apier/v1/smgbirpc.go
deleted file mode 100644
index 282b5c9e9..000000000
--- a/apier/v1/smgbirpc.go
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
-Copyright (C) ITsysCOM GmbH
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see
-*/
-
-package v1
-
-import (
- "github.com/cenkalti/rpc2"
- "github.com/cgrates/cgrates/utils"
-)
-
-// Publishes methods exported by SMGenericV1 as SMGenericV1 (so we can handle standard RPC methods via birpc socket)
-func (smgv1 *SMGenericV1) Handlers() map[string]any {
- return map[string]any{
- "SMGenericV1.GetMaxUsage": smgv1.BiRPCV1GetMaxUsage,
- "SMGenericV1.InitiateSession": smgv1.BiRPCV1InitiateSession,
- "SMGenericV1.UpdateSession": smgv1.BiRPCV1UpdateSession,
- "SMGenericV1.TerminateSession": smgv1.BiRPCV1TerminateSession,
- "SMGenericV1.ProcessCDR": smgv1.BiRPCV1ProcessCDR,
- "SMGenericV1.Sleep": smgv1.BiRPCV1CapsError,
- }
-}
-
-// / Returns MaxUsage (for calls in seconds), -1 for no limit
-func (smgv1 *SMGenericV1) BiRPCV1GetMaxUsage(clnt *rpc2.Client,
- ev map[string]any, maxUsage *float64) (err error) {
- return smgv1.Ss.BiRPCV1GetMaxUsage(clnt, ev, maxUsage)
-}
-
-// Called on session start, returns the maximum number of seconds the session can last
-func (smgv1 *SMGenericV1) BiRPCV1InitiateSession(clnt *rpc2.Client,
- ev map[string]any, maxUsage *float64) (err error) {
- return smgv1.Ss.BiRPCV1InitiateSession(clnt, ev, maxUsage)
-}
-
-// Interim updates, returns remaining duration from the rater
-func (smgv1 *SMGenericV1) BiRPCV1UpdateSession(clnt *rpc2.Client,
- ev map[string]any, maxUsage *float64) (err error) {
- return smgv1.Ss.BiRPCV1UpdateSession(clnt, ev, maxUsage)
-}
-
-// Called on session end, should stop debit loop
-func (smgv1 *SMGenericV1) BiRPCV1TerminateSession(clnt *rpc2.Client,
- ev map[string]any, reply *string) (err error) {
- return smgv1.Ss.BiRPCV1TerminateSession(clnt, ev, reply)
-}
-
-// Called on session end, should send the CDR to CDRS
-func (smgv1 *SMGenericV1) BiRPCV1ProcessCDR(clnt *rpc2.Client,
- ev map[string]any, reply *string) (err error) {
- return smgv1.Ss.BiRPCV1ProcessCDR(clnt, ev, reply)
-}
-
-// BiRPCv1CapsError is used to return error when the caps limit is hit
-func (smgv1 *SMGenericV1) BiRPCV1CapsError(clnt *rpc2.Client,
- args any, reply *string) (err error) {
- return utils.ErrMaxConcurrentRPCExceeded
-}
diff --git a/apier/v1/stats.go b/apier/v1/stats.go
index a6957ed2c..33c5be393 100644
--- a/apier/v1/stats.go
+++ b/apier/v1/stats.go
@@ -21,12 +21,13 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// GetStatQueueProfile returns a StatQueue profile
-func (apierSv1 *APIerSv1) GetStatQueueProfile(arg *utils.TenantID, reply *engine.StatQueueProfile) (err error) {
+func (apierSv1 *APIerSv1) GetStatQueueProfile(ctx *context.Context, arg *utils.TenantID, reply *engine.StatQueueProfile) (err error) {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -44,7 +45,7 @@ func (apierSv1 *APIerSv1) GetStatQueueProfile(arg *utils.TenantID, reply *engine
}
// GetStatQueueProfileIDs returns list of statQueueProfile IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetStatQueueProfileIDs(args *utils.PaginatorWithTenant, stsPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetStatQueueProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, stsPrfIDs *[]string) error {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -66,7 +67,7 @@ func (apierSv1 *APIerSv1) GetStatQueueProfileIDs(args *utils.PaginatorWithTenant
}
// SetStatQueueProfile alters/creates a StatQueueProfile
-func (apierSv1 *APIerSv1) SetStatQueueProfile(arg *engine.StatQueueProfileWithAPIOpts, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetStatQueueProfile(ctx *context.Context, arg *engine.StatQueueProfileWithAPIOpts, reply *string) (err error) {
if missing := utils.MissingStructFields(arg.StatQueueProfile, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -92,7 +93,7 @@ func (apierSv1 *APIerSv1) SetStatQueueProfile(arg *engine.StatQueueProfileWithAP
}
// RemoveStatQueueProfile remove a specific stat configuration
-func (apierSv1 *APIerSv1) RemoveStatQueueProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -128,48 +129,48 @@ type StatSv1 struct {
sS *engine.StatService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (stsv1 *StatSv1) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface for internal RPC
+func (stsv1 *StatSv1) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.APIerRPCCall(stsv1, serviceMethod, args, reply)
}
// GetQueueIDs returns list of queueIDs registered for a tenant
-func (stsv1 *StatSv1) GetQueueIDs(tenant *utils.TenantWithAPIOpts, qIDs *[]string) error {
- return stsv1.sS.V1GetQueueIDs(tenant.Tenant, qIDs)
+func (stsv1 *StatSv1) GetQueueIDs(ctx *context.Context, tenant *utils.TenantWithAPIOpts, qIDs *[]string) error {
+ return stsv1.sS.V1GetQueueIDs(ctx, tenant.Tenant, qIDs)
}
// ProcessEvent returns processes a new Event
-func (stsv1 *StatSv1) ProcessEvent(args *utils.CGREvent, reply *[]string) error {
- return stsv1.sS.V1ProcessEvent(args, reply)
+func (stsv1 *StatSv1) ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) error {
+ return stsv1.sS.V1ProcessEvent(ctx, args, reply)
}
// GetStatQueuesForEvent returns the list of queues IDs in the system
-func (stsv1 *StatSv1) GetStatQueuesForEvent(args *utils.CGREvent, reply *[]string) (err error) {
- return stsv1.sS.V1GetStatQueuesForEvent(args, reply)
+func (stsv1 *StatSv1) GetStatQueuesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) (err error) {
+ return stsv1.sS.V1GetStatQueuesForEvent(ctx, args, reply)
}
// GetStatQueue returns a StatQueue object
-func (stsv1 *StatSv1) GetStatQueue(args *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) (err error) {
- return stsv1.sS.V1GetStatQueue(args, reply)
+func (stsv1 *StatSv1) GetStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) (err error) {
+ return stsv1.sS.V1GetStatQueue(ctx, args, reply)
}
// GetQueueStringMetrics returns the string metrics for a Queue
-func (stsv1 *StatSv1) GetQueueStringMetrics(args *utils.TenantIDWithAPIOpts, reply *map[string]string) (err error) {
- return stsv1.sS.V1GetQueueStringMetrics(args.TenantID, reply)
+func (stsv1 *StatSv1) GetQueueStringMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *map[string]string) (err error) {
+ return stsv1.sS.V1GetQueueStringMetrics(ctx, args.TenantID, reply)
}
// GetQueueFloatMetrics returns the float metrics for a Queue
-func (stsv1 *StatSv1) GetQueueFloatMetrics(args *utils.TenantIDWithAPIOpts, reply *map[string]float64) (err error) {
- return stsv1.sS.V1GetQueueFloatMetrics(args.TenantID, reply)
+func (stsv1 *StatSv1) GetQueueFloatMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *map[string]float64) (err error) {
+ return stsv1.sS.V1GetQueueFloatMetrics(ctx, args.TenantID, reply)
}
// ResetStatQueue resets the stat queue
-func (stsv1 *StatSv1) ResetStatQueue(tntID *utils.TenantIDWithAPIOpts, reply *string) error {
- return stsv1.sS.V1ResetStatQueue(tntID.TenantID, reply)
+func (stsv1 *StatSv1) ResetStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
+ return stsv1.sS.V1ResetStatQueue(ctx, args.TenantID, reply)
}
// Ping .
-func (stsv1 *StatSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (stsv1 *StatSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v1/stats_it_test.go b/apier/v1/stats_it_test.go
index 95d7f2f5c..852a7760b 100644
--- a/apier/v1/stats_it_test.go
+++ b/apier/v1/stats_it_test.go
@@ -22,13 +22,14 @@ package v1
import (
"math/rand"
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
stsV1CfgPath string
stsV1Cfg *config.CGRConfig
- stsV1Rpc *rpc.Client
+ stsV1Rpc *birpc.Client
statConfig *engine.StatQueueProfileWithAPIOpts
stsV1ConfDIR string //run tests for specific configuration
@@ -171,7 +172,7 @@ func testV1STSRpcConn(t *testing.T) {
func testV1STSCacheQueueBeforeLoad(t *testing.T) { // cache it with not found
var replySq engine.StatQueue
- if err := stsV1Rpc.Call(utils.StatSv1GetStatQueue, &utils.TenantIDWithAPIOpts{
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetStatQueue, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "Stats1",
@@ -182,7 +183,7 @@ func testV1STSCacheQueueBeforeLoad(t *testing.T) { // cache it with not found
}
func testV1STSCacheQueueAfterLoad(t *testing.T) { // the APIerSv1LoadTariffPlanFromFolder should also reload the cache for resources
- if err := stsV1Rpc.Call(utils.StatSv1GetStatQueue, &utils.TenantIDWithAPIOpts{
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetStatQueue, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "Stats1",
@@ -195,7 +196,7 @@ func testV1STSCacheQueueAfterLoad(t *testing.T) { // the APIerSv1LoadTariffPlanF
func testV1STSFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := stsV1Rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -204,7 +205,7 @@ func testV1STSFromFolder(t *testing.T) {
func testV1STSGetStats(t *testing.T) {
var reply []string
expectedIDs := []string{"Stats1"}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueIDs,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueIDs,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedIDs, reply) {
@@ -221,7 +222,7 @@ func testV1STSGetStats(t *testing.T) {
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: utils.NotAvailable,
utils.MetaAverage + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: utils.NotAvailable,
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}},
&metrics); err != nil {
t.Error(err)
@@ -233,7 +234,7 @@ func testV1STSGetStats(t *testing.T) {
func testV1STSV1StatSv1GetQueueStringMetricsWithoutTenant(t *testing.T) {
var reply []string
expectedIDs := []string{"CustomStatProfile", "Stats1", "StaticStatQueue", "StatWithThreshold"}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueIDs,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueIDs,
&utils.TenantWithAPIOpts{}, &reply); err != nil {
t.Error(err)
} else {
@@ -249,7 +250,7 @@ func testV1STSV1StatSv1GetQueueStringMetricsWithoutTenant(t *testing.T) {
utils.MetaTCD: "18s",
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.CustomValue: "10",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: expectedIDs[0]}},
&metrics); err != nil {
t.Error(err)
@@ -259,7 +260,7 @@ func testV1STSV1StatSv1GetQueueStringMetricsWithoutTenant(t *testing.T) {
}
func testV1STSV1StatSv1ResetAction(t *testing.T) {
var reply string
- if err := stsV1Rpc.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "ACT_RESET_STS",
Actions: []*utils.TPAction{{Identifier: utils.MetaResetStatQueue, ExtraParameters: "cgrates.org:CustomStatProfile"}},
}, &reply); err != nil {
@@ -268,7 +269,7 @@ func testV1STSV1StatSv1ResetAction(t *testing.T) {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrs := utils.AttrExecuteAction{Tenant: "cgrates.org", ActionsId: "ACT_RESET_STS"}
- if err := stsV1Rpc.Call(utils.APIerSv1ExecuteAction, attrs, &reply); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrs, &reply); err != nil {
t.Error(err)
}
var metrics map[string]string
@@ -277,7 +278,7 @@ func testV1STSV1StatSv1ResetAction(t *testing.T) {
utils.MetaTCD: utils.NotAvailable,
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.CustomValue: utils.NotAvailable,
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "CustomStatProfile"}}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -299,7 +300,7 @@ func testV1STSProcessEvent(t *testing.T) {
utils.PDD: 12 * time.Second,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -316,7 +317,7 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaAverage + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: utils.NotAvailable,
}
var metrics map[string]string
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -335,7 +336,7 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaAverage + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: -1.0,
}
var floatMetrics map[string]float64
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueFloatMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueFloatMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}}, &floatMetrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedFloatMetrics, floatMetrics) {
@@ -352,7 +353,7 @@ func testV1STSProcessEvent(t *testing.T) {
utils.Cost: 12.1,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args2, &reply); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args2, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -367,7 +368,7 @@ func testV1STSProcessEvent(t *testing.T) {
utils.Cost: 0,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args3, &reply); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args3, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -383,7 +384,7 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaAverage + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: "60000000000",
}
var metrics2 map[string]string
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}}, &metrics2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics2, metrics2) {
@@ -401,14 +402,14 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaAverage + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: 60000000000,
}
var floatMetrics2 map[string]float64
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueFloatMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueFloatMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}}, &floatMetrics2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedFloatMetrics2, floatMetrics2) {
t.Errorf("expecting: %+v, received reply: %+v", expectedFloatMetrics2, floatMetrics2)
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueFloatMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueFloatMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "Stats1"}}, &floatMetrics2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedFloatMetrics2, floatMetrics2) {
@@ -444,7 +445,7 @@ func testV1STSGetStatsAfterRestart(t *testing.T) {
utils.MetaAverage + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: "60000000000",
}
var metrics2 map[string]string
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}}, &metrics2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics2, metrics2) {
@@ -483,10 +484,10 @@ func testV1STSSetStatQueueProfile(t *testing.T) {
}
expErr := "SERVER_ERROR: broken reference to filter: <*wrong:inline> for item with ID: cgrates.org:TEST_PROFILE1"
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err == nil || err.Error() != expErr {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err == nil || err.Error() != expErr {
t.Fatalf("Expected error: %q, received: %v", expErr, err)
}
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -509,23 +510,23 @@ func testV1STSSetStatQueueProfile(t *testing.T) {
},
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -536,12 +537,12 @@ func testV1STSSetStatQueueProfile(t *testing.T) {
func testV1STSGetStatQueueProfileIDs(t *testing.T) {
expected := []string{"Stats1", "TEST_PROFILE1"}
var result []string
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
@@ -567,19 +568,19 @@ func testV1STSUpdateStatQueueProfile(t *testing.T) {
},
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
statConfig.FilterIDs = []string{"FLTR_1", "FLTR_2"}
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -589,18 +590,18 @@ func testV1STSUpdateStatQueueProfile(t *testing.T) {
func testV1STSRemoveStatQueueProfile(t *testing.T) {
var resp string
- if err := stsV1Rpc.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
var sqp *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &sqp); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := stsV1Rpc.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE1"}, &resp); err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error: %v received: %v", utils.ErrNotFound, err)
}
@@ -640,14 +641,14 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
}
//set the custom statProfile
var result string
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//verify it
var reply *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "CustomStatProfile"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -661,7 +662,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
utils.MetaTCD: utils.NotAvailable,
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "CustomValue": utils.NotAvailable,
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -679,7 +680,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
"CustomValue": 7.0,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -690,7 +691,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
utils.MetaTCD: "6s",
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "CustomValue": utils.NotAvailable,
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &metrics); err != nil {
t.Error(err)
@@ -707,7 +708,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
"CustomValue": 10.0,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -718,7 +719,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
utils.MetaTCD: "18s",
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "CustomValue": "10",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &metrics); err != nil {
t.Error(err)
@@ -754,14 +755,14 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
}
//set the custom statProfile
var result string
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//verify it
var reply *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "StaticStatQueue"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -784,7 +785,7 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
"StaticMetrics": "StaticMetrics",
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -794,7 +795,7 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
utils.MetaSum + utils.HashtagSep + "1": "1",
utils.MetaAverage + utils.HashtagSep + "2": "2",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &metrics); err != nil {
t.Error(err)
@@ -802,7 +803,7 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
}
//second process
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -811,7 +812,7 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
utils.MetaSum + utils.HashtagSep + "1": "2",
utils.MetaAverage + utils.HashtagSep + "2": "2",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &metrics); err != nil {
t.Error(err)
@@ -819,7 +820,7 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
}
- if err := stsV1Rpc.Call(utils.StatSv1ResetStatQueue,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ResetStatQueue,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &result); err != nil {
t.Error(err)
@@ -830,7 +831,7 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
utils.MetaSum + utils.HashtagSep + "1": utils.NotAvailable,
utils.MetaAverage + utils.HashtagSep + "2": utils.NotAvailable,
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &metrics); err != nil {
t.Error(err)
@@ -841,7 +842,7 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
func testV1STSStatsPing(t *testing.T) {
var resp string
- if err := stsV1Rpc.Call(utils.StatSv1Ping, new(utils.CGREvent), &resp); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1Ping, new(utils.CGREvent), &resp); err != nil {
t.Error(err)
} else if resp != utils.Pong {
t.Error("Unexpected reply returned", resp)
@@ -873,7 +874,7 @@ func testV1STSProcessStatWithThreshold(t *testing.T) {
},
}
var result string
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, stTh, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stTh, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -894,7 +895,7 @@ func testV1STSProcessStatWithThreshold(t *testing.T) {
Async: true,
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetThresholdProfile, thSts, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, thSts, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -910,7 +911,7 @@ func testV1STSProcessStatWithThreshold(t *testing.T) {
utils.Usage: 45 * time.Second,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -918,7 +919,7 @@ func testV1STSProcessStatWithThreshold(t *testing.T) {
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_Stat", Hits: 1}
- if err := stsV1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := stsV1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Stat"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
@@ -951,14 +952,14 @@ func testV1STSProcessCDRStat(t *testing.T) {
}
//set the custom statProfile
var result string
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//verify it
var reply *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "StatForCDR"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -1025,7 +1026,7 @@ func testV1STSProcessCDRStat(t *testing.T) {
var reply2 []string
expected := []string{"StatForCDR"}
args := cdr.AsCGREvent()
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -1034,7 +1035,7 @@ func testV1STSProcessCDRStat(t *testing.T) {
expectedMetrics = map[string]string{
utils.MetaSum + utils.HashtagSep + "~*req.CostDetails.Usage": "10000000000",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "StatForCDR"}}, &metrics); err != nil {
t.Error(err)
@@ -1042,7 +1043,7 @@ func testV1STSProcessCDRStat(t *testing.T) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
}
//second process
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -1050,7 +1051,7 @@ func testV1STSProcessCDRStat(t *testing.T) {
expectedMetrics = map[string]string{
utils.MetaSum + utils.HashtagSep + "~*req.CostDetails.Usage": "20000000000",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "StatForCDR"}}, &metrics); err != nil {
t.Error(err)
@@ -1084,14 +1085,14 @@ func testV1STSOverWriteStats(t *testing.T) {
}
//set the custom statProfile
var result string
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, initStat, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, initStat, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//verify it
var reply *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "InitStat"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(initStat.StatQueueProfile, reply) {
@@ -1102,7 +1103,7 @@ func testV1STSOverWriteStats(t *testing.T) {
expectedMetrics := map[string]string{
utils.MetaSum + utils.HashtagSep + "1": utils.NotAvailable,
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "InitStat"}}, &metrics); err != nil {
t.Error(err)
@@ -1132,7 +1133,7 @@ func testV1STSOverWriteStats(t *testing.T) {
MinItems: 1,
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, initStat2, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, initStat2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1142,7 +1143,7 @@ func testV1STSOverWriteStats(t *testing.T) {
expectedMetrics2 := map[string]string{
utils.MetaSum + utils.HashtagSep + "~*req.Test": utils.NotAvailable,
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "InitStat"}}, &metrics2); err != nil {
t.Error(err)
@@ -1176,7 +1177,7 @@ func testV1STSProcessStatWithThreshold2(t *testing.T) {
},
}
var result string
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, stTh, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stTh, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1197,7 +1198,7 @@ func testV1STSProcessStatWithThreshold2(t *testing.T) {
Async: true,
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetThresholdProfile, thSts, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, thSts, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1213,7 +1214,7 @@ func testV1STSProcessStatWithThreshold2(t *testing.T) {
utils.Usage: 45 * time.Second,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -1221,7 +1222,7 @@ func testV1STSProcessStatWithThreshold2(t *testing.T) {
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_Stat2", Hits: 1}
- if err := stsV1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := stsV1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Stat"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
@@ -1250,7 +1251,7 @@ func BenchmarkSTSV1SetEvent(b *testing.B) {
var reply string
b.StartTimer()
for i := 0; i < b.N; i++ {
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &evs[rand.Intn(len(evs))],
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &evs[rand.Intn(len(evs))],
&reply); err != nil {
b.Error(err)
} else if reply != utils.OK {
@@ -1263,7 +1264,7 @@ func BenchmarkSTSV1SetEvent(b *testing.B) {
func BenchmarkSTSV1GetQueueStringMetrics(b *testing.B) {
for i := 0; i < b.N; i++ {
var metrics map[string]string
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "STATS_1"}},
&metrics); err != nil {
b.Error(err)
@@ -1298,14 +1299,14 @@ func testV1STSGetStatQueueProfileWithoutTenant(t *testing.T) {
},
}
var result string
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
statConfig.Tenant = "cgrates.org"
var reply *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{ID: "TEST_PROFILE10"},
&reply); err != nil {
t.Error(err)
@@ -1316,7 +1317,7 @@ func testV1STSGetStatQueueProfileWithoutTenant(t *testing.T) {
func testV1STSRemStatQueueProfileWithoutTenant(t *testing.T) {
var reply string
- if err := stsV1Rpc.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "TEST_PROFILE10"}},
&reply); err != nil {
t.Error(err)
@@ -1324,7 +1325,7 @@ func testV1STSRemStatQueueProfileWithoutTenant(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
var result *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{ID: "TEST_PROFILE10"},
&result); err == nil || utils.ErrNotFound.Error() != err.Error() {
t.Error(err)
@@ -1335,7 +1336,7 @@ func testV1STSV1GetQueueIDs(t *testing.T) {
expected := []string{"StatWithThreshold", "Stats1", "StaticStatQueue", "CustomStatProfile"}
sort.Strings(expected)
var qIDs []string
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueIDs,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueIDs,
&utils.TenantWithAPIOpts{},
&qIDs); err != nil {
t.Error(err)
@@ -1344,7 +1345,7 @@ func testV1STSV1GetQueueIDs(t *testing.T) {
if !reflect.DeepEqual(qIDs, expected) {
t.Errorf("Expected %+v \n ,received %+v", expected, qIDs)
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueIDs,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueIDs,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"},
&qIDs); err != nil {
t.Error(err)
@@ -1360,7 +1361,7 @@ func testV1STSV1GetQueueIDs(t *testing.T) {
func testV1STSV1GetStatQueuesForEventWithoutTenant(t *testing.T) {
var reply []string
estats := []string{"Stats1"}
- if err := stsV1Rpc.Call(utils.StatSv1GetStatQueuesForEvent, &utils.CGREvent{
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetStatQueuesForEvent, &utils.CGREvent{
ID: "GetStats",
Event: map[string]any{
utils.AccountField: "1002",
@@ -1408,14 +1409,14 @@ func testV1STSSimulateAccountUpdate(t *testing.T) {
}
//set the custom statProfile
var result string
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//verify it
var reply *engine.StatQueueProfile
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "StatForAccountUpdate"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -1439,7 +1440,7 @@ func testV1STSSimulateAccountUpdate(t *testing.T) {
utils.ID: "HolidayBalance",
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetBalance, attrSetBalance, &result); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
} else if result != utils.OK {
t.Errorf("Calling APIerSv1.SetBalance received: %s", result)
@@ -1450,7 +1451,7 @@ func testV1STSSimulateAccountUpdate(t *testing.T) {
Tenant: "cgrates.org",
Account: "testV1STSSimulateAccountUpdate",
}
- if err := stsV1Rpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
}
@@ -1463,7 +1464,7 @@ func testV1STSSimulateAccountUpdate(t *testing.T) {
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &acntUpdateEv, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &acntUpdateEv, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -1472,7 +1473,7 @@ func testV1STSSimulateAccountUpdate(t *testing.T) {
expectedMetrics = map[string]string{
utils.MetaSum + utils.HashtagSep + "~*asm.BalanceSummaries.HolidayBalance.Value": "1.5",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "StatForAccountUpdate"}}, &metrics); err != nil {
t.Error(err)
@@ -1480,7 +1481,7 @@ func testV1STSSimulateAccountUpdate(t *testing.T) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
}
//second process
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &acntUpdateEv, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &acntUpdateEv, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -1488,7 +1489,7 @@ func testV1STSSimulateAccountUpdate(t *testing.T) {
expectedMetrics = map[string]string{
utils.MetaSum + utils.HashtagSep + "~*asm.BalanceSummaries.HolidayBalance.Value": "3",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "StatForAccountUpdate"}}, &metrics); err != nil {
t.Error(err)
@@ -1516,12 +1517,12 @@ func testV1STSGetStatQueueWithoutExpired(t *testing.T) {
MinItems: 1,
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Sq1Nanao"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -1543,13 +1544,13 @@ func testV1STSGetStatQueueWithoutExpired(t *testing.T) {
utils.Usage: 10,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
}
//verify metrics after first process
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Sq1Nanao"}}, &metrics); err != nil {
t.Error(err)
@@ -1579,12 +1580,12 @@ func testV1STSGetStatQueueWithoutStored(t *testing.T) {
MinItems: 1,
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := stsV1Rpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Sq1NotStored"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -1606,31 +1607,31 @@ func testV1STSGetStatQueueWithoutStored(t *testing.T) {
utils.Usage: 10 * time.Second,
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
}
//verify metrics after first process
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Sq1NotStored"}}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
}
//verify metrics after first process
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Sq1NotStored"}}, &metrics); err != nil {
t.Error(err)
@@ -1645,7 +1646,7 @@ func testV1STSCheckMetricsAfterRestart(t *testing.T) {
expectedMetrics := map[string]string{
utils.MetaSum + utils.HashtagSep + "~*asm.BalanceSummaries.HolidayBalance.Value": "3",
}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "StatForAccountUpdate"}}, &metrics); err != nil {
t.Error(err)
@@ -1656,7 +1657,7 @@ func testV1STSCheckMetricsAfterRestart(t *testing.T) {
utils.MetaTCD: utils.NotAvailable,
}
metrics = map[string]string{}
- if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Sq1NotStored"}}, &metrics); err != nil {
t.Error(err)
@@ -1681,7 +1682,7 @@ func testStatSCacheProcessEventNotFound(t *testing.T) {
utils.OptsStatsProfileIDs: []string{"STAT_CACHE"},
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
@@ -1701,7 +1702,7 @@ func testStatSCacheProcessEventFound(t *testing.T) {
utils.OptsStatsProfileIDs: []string{"STAT_CACHE"},
},
}
- if err := stsV1Rpc.Call(utils.StatSv1ProcessEvent, &args, &reply); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply); err != nil {
t.Error(err)
}
}
@@ -1717,7 +1718,7 @@ func testStatSCacheSet(t *testing.T) {
utils.CacheOpt: utils.MetaNone,
},
}
- if err := stsV1Rpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Fatalf("Expected error: %+v, received: %+v", nil, err)
}
}
@@ -1727,7 +1728,7 @@ func testStatSCacheReload(t *testing.T) {
StatsQueueProfileIDs: []string{"cgrates.org:STAT_CACHE"},
}
var reply string
- if err := stsV1Rpc.Call(utils.CacheSv1ReloadCache, cache, &reply); err != nil {
+ if err := stsV1Rpc.Call(context.Background(), utils.CacheSv1ReloadCache, cache, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
diff --git a/apier/v1/thresholds.go b/apier/v1/thresholds.go
index d27736105..e9b63e180 100644
--- a/apier/v1/thresholds.go
+++ b/apier/v1/thresholds.go
@@ -21,6 +21,7 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -35,38 +36,38 @@ type ThresholdSv1 struct {
tS *engine.ThresholdService
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (tSv1 *ThresholdSv1) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface for internal RPC
+func (tSv1 *ThresholdSv1) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.APIerRPCCall(tSv1, serviceMethod, args, reply)
}
// GetThresholdIDs returns list of threshold IDs registered for a tenant
-func (tSv1 *ThresholdSv1) GetThresholdIDs(tenant *utils.TenantWithAPIOpts, tIDs *[]string) error {
- return tSv1.tS.V1GetThresholdIDs(tenant.Tenant, tIDs)
+func (tSv1 *ThresholdSv1) GetThresholdIDs(ctx *context.Context, tenant *utils.TenantWithAPIOpts, tIDs *[]string) error {
+ return tSv1.tS.V1GetThresholdIDs(ctx, tenant.Tenant, tIDs)
}
// GetThresholdsForEvent returns a list of thresholds matching an event
-func (tSv1 *ThresholdSv1) GetThresholdsForEvent(args *utils.CGREvent, reply *engine.Thresholds) error {
- return tSv1.tS.V1GetThresholdsForEvent(args, reply)
+func (tSv1 *ThresholdSv1) GetThresholdsForEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.Thresholds) error {
+ return tSv1.tS.V1GetThresholdsForEvent(ctx, args, reply)
}
// GetThreshold queries a Threshold
-func (tSv1 *ThresholdSv1) GetThreshold(tntID *utils.TenantIDWithAPIOpts, t *engine.Threshold) error {
- return tSv1.tS.V1GetThreshold(tntID.TenantID, t)
+func (tSv1 *ThresholdSv1) GetThreshold(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, t *engine.Threshold) error {
+ return tSv1.tS.V1GetThreshold(ctx, tntID.TenantID, t)
}
// ProcessEvent will process an Event
-func (tSv1 *ThresholdSv1) ProcessEvent(args *utils.CGREvent, tIDs *[]string) error {
- return tSv1.tS.V1ProcessEvent(args, tIDs)
+func (tSv1 *ThresholdSv1) ProcessEvent(ctx *context.Context, args *utils.CGREvent, tIDs *[]string) error {
+ return tSv1.tS.V1ProcessEvent(ctx, args, tIDs)
}
// ResetThreshold resets the threshold hits
-func (tSv1 *ThresholdSv1) ResetThreshold(tntID *utils.TenantIDWithAPIOpts, reply *string) error {
- return tSv1.tS.V1ResetThreshold(tntID.TenantID, reply)
+func (tSv1 *ThresholdSv1) ResetThreshold(ctx *context.Context, tntID *utils.TenantIDWithAPIOpts, reply *string) error {
+ return tSv1.tS.V1ResetThreshold(ctx, tntID.TenantID, reply)
}
// GetThresholdProfile returns a Threshold Profile
-func (apierSv1 *APIerSv1) GetThresholdProfile(arg *utils.TenantID, reply *engine.ThresholdProfile) (err error) {
+func (apierSv1 *APIerSv1) GetThresholdProfile(ctx *context.Context, arg *utils.TenantID, reply *engine.ThresholdProfile) (err error) {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -83,7 +84,7 @@ func (apierSv1 *APIerSv1) GetThresholdProfile(arg *utils.TenantID, reply *engine
}
// GetThresholdProfileIDs returns list of thresholdProfile IDs registered for a tenant
-func (apierSv1 *APIerSv1) GetThresholdProfileIDs(args *utils.PaginatorWithTenant, thPrfIDs *[]string) error {
+func (apierSv1 *APIerSv1) GetThresholdProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, thPrfIDs *[]string) error {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -106,7 +107,7 @@ func (apierSv1 *APIerSv1) GetThresholdProfileIDs(args *utils.PaginatorWithTenant
// GetThresholdProfileCount sets in reply var the total number of ThresholdProfileIDs registered for the received tenant
// returns ErrNotFound in case of 0 ThresholdProfileIDs
-func (apierSv1 *APIerSv1) GetThresholdProfileCount(args *utils.TenantWithAPIOpts, reply *int) (err error) {
+func (apierSv1 *APIerSv1) GetThresholdProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = apierSv1.Config.GeneralCfg().DefaultTenant
@@ -124,7 +125,7 @@ func (apierSv1 *APIerSv1) GetThresholdProfileCount(args *utils.TenantWithAPIOpts
}
// SetThresholdProfile alters/creates a ThresholdProfile
-func (apierSv1 *APIerSv1) SetThresholdProfile(args *engine.ThresholdProfileWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) SetThresholdProfile(ctx *context.Context, args *engine.ThresholdProfileWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args.ThresholdProfile, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -150,7 +151,7 @@ func (apierSv1 *APIerSv1) SetThresholdProfile(args *engine.ThresholdProfileWithA
}
// RemoveThresholdProfile removes a specific Threshold Profile
-func (apierSv1 *APIerSv1) RemoveThresholdProfile(args *utils.TenantIDWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -177,7 +178,7 @@ func (apierSv1 *APIerSv1) RemoveThresholdProfile(args *utils.TenantIDWithAPIOpts
}
// Ping .
-func (tSv1 *ThresholdSv1) Ping(ign *utils.CGREvent, reply *string) error {
+func (tSv1 *ThresholdSv1) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v1/thresholds_it_test.go b/apier/v1/thresholds_it_test.go
index acf4b28cf..b0a99bad2 100644
--- a/apier/v1/thresholds_it_test.go
+++ b/apier/v1/thresholds_it_test.go
@@ -21,7 +21,6 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"os"
"path"
"reflect"
@@ -29,6 +28,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
tSv1CfgPath string
tSv1Cfg *config.CGRConfig
- tSv1Rpc *rpc.Client
+ tSv1Rpc *birpc.Client
tPrfl *engine.ThresholdProfileWithAPIOpts
tSv1ConfDIR string //run tests for specific configuration
@@ -294,7 +295,7 @@ func testV1ThresholdStartCPUProfiling(t *testing.T) {
DirPath: "/tmp",
}
var reply string
- if err := tSv1Rpc.Call(utils.CoreSv1StartCPUProfiling,
+ if err := tSv1Rpc.Call(context.Background(), utils.CoreSv1StartCPUProfiling,
argPath, &reply); err != nil {
t.Error(err)
}
@@ -302,7 +303,7 @@ func testV1ThresholdStartCPUProfiling(t *testing.T) {
func testV1TSCacheThresholdBeforeLoad(t *testing.T) { // cache it with not found
var td engine.Threshold
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_BALANCE_1"}},
&td); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -312,7 +313,7 @@ func testV1TSCacheThresholdBeforeLoad(t *testing.T) { // cache it with not found
func testV1TSCacheThresholdAfterLoad(t *testing.T) { // the APIerSv1LoadTariffPlanFromFolder should also reload the cache for resources
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_BALANCE_1"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_BALANCE_1"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd, td) {
@@ -322,7 +323,7 @@ func testV1TSCacheThresholdAfterLoad(t *testing.T) { // the APIerSv1LoadTariffPl
func testV1TSFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := tSv1Rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -331,13 +332,13 @@ func testV1TSFromFolder(t *testing.T) {
func testV1TSGetThresholds(t *testing.T) {
var tIDs []string
expectedIDs := []string{"THD_RES_1", "THD_STATS_2", "THD_STATS_1", "THD_ACNT_BALANCE_1", "THD_ACNT_EXPIRED", "THD_STATS_3", "THD_CDRS_1"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThresholdIDs,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThresholdIDs,
&utils.TenantWithAPIOpts{}, &tIDs); err != nil {
t.Error(err)
} else if len(expectedIDs) != len(tIDs) {
t.Errorf("expecting: %+v, received reply: %s", expectedIDs, tIDs)
}
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThresholdIDs,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThresholdIDs,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &tIDs); err != nil {
t.Error(err)
} else if len(expectedIDs) != len(tIDs) {
@@ -345,7 +346,7 @@ func testV1TSGetThresholds(t *testing.T) {
}
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: expectedIDs[0]}
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd, td) {
@@ -356,53 +357,53 @@ func testV1TSGetThresholds(t *testing.T) {
func testV1TSProcessEvent(t *testing.T) {
var ids []string
eIDs := []string{}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[0], &ids); err == nil ||
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[0], &ids); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
eIDs = []string{"THD_ACNT_BALANCE_1"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[1], &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[1], &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
eIDs = []string{"THD_STATS_1"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[2], &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[2], &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
eIDs = []string{"THD_STATS_2", "THD_STATS_1"}
eIDs2 := []string{"THD_STATS_1", "THD_STATS_2"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[3], &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[3], &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) && !reflect.DeepEqual(ids, eIDs2) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
eIDs = []string{"THD_STATS_3"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[4], &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[4], &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
eIDs = []string{"THD_RES_1"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[5], &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[5], &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[6], &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[6], &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[7], &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[7], &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
eIDs = []string{"THD_CDRS_1"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, &tEvs[8], &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, &tEvs[8], &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -412,14 +413,14 @@ func testV1TSProcessEvent(t *testing.T) {
func testV1TSGetThresholdsAfterProcess(t *testing.T) {
var tIDs []string
expectedIDs := []string{"THD_RES_1", "THD_STATS_2", "THD_STATS_1", "THD_ACNT_BALANCE_1", "THD_ACNT_EXPIRED"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThresholdIDs,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThresholdIDs,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"}, &tIDs); err != nil {
t.Error(err)
} else if len(expectedIDs) != len(tIDs) { // THD_STATS_3 is not reccurent, so it was removed
t.Errorf("expecting: %+v, received reply: %s", expectedIDs, tIDs)
}
var td engine.Threshold
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_BALANCE_1"}}, &td); err != nil {
t.Error(err)
} else if td.Snooze.IsZero() { // make sure Snooze time was reset during execution
@@ -442,7 +443,7 @@ func testV1TSGetThresholdsAfterRestart(t *testing.T) {
t.Fatal("Could not connect to rater: ", err.Error())
}
var td engine.Threshold
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_BALANCE_1"}}, &td); err != nil {
t.Error(err)
} else if td.Snooze.IsZero() { // make sure Snooze time was reset during execution
@@ -471,10 +472,10 @@ func testV1TSSetThresholdProfileBrokenReference(t *testing.T) {
},
}
expErr := "SERVER_ERROR: broken reference to filter: for item with ID: cgrates.org:THD_Test"
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err == nil || err.Error() != expErr {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err == nil || err.Error() != expErr {
t.Fatalf("Expected error: %q, received: %v", expErr, err)
}
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -484,12 +485,12 @@ func testV1TSSetThresholdProfileBrokenReference(t *testing.T) {
func testv1TSGetThresholdProfileIDs(t *testing.T) {
expected := []string{"THD_STATS_1", "THD_STATS_2", "THD_STATS_3", "THD_RES_1", "THD_CDRS_1", "THD_ACNT_BALANCE_1", "THD_ACNT_EXPIRED"}
var result []string
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
@@ -499,7 +500,7 @@ func testv1TSGetThresholdProfileIDs(t *testing.T) {
func testV1TSSetThresholdProfile(t *testing.T) {
var reply *engine.ThresholdProfile
var result string
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -521,12 +522,12 @@ func testV1TSSetThresholdProfile(t *testing.T) {
Async: true,
},
}
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -537,13 +538,13 @@ func testV1TSSetThresholdProfile(t *testing.T) {
func testV1TSUpdateThresholdProfile(t *testing.T) {
var result string
tPrfl.FilterIDs = []string{"*string:~*req.Account:1001", "*prefix:~*opts.DST:10"}
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.ThresholdProfile
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &reply); err != nil {
t.Error(err)
} else {
@@ -557,19 +558,19 @@ func testV1TSUpdateThresholdProfile(t *testing.T) {
func testV1TSRemoveThresholdProfile(t *testing.T) {
var resp string
- if err := tSv1Rpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
var sqp *engine.ThresholdProfile
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &sqp); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Received %s and the error:%+v", utils.ToJSON(sqp), err)
}
- if err := tSv1Rpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}}, &resp); err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error: %v received: %v", utils.ErrNotFound, err)
}
@@ -578,7 +579,7 @@ func testV1TSRemoveThresholdProfile(t *testing.T) {
func testV1TSMaxHits(t *testing.T) {
var reply string
// check if exist
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TH3"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -591,7 +592,7 @@ func testV1TSMaxHits(t *testing.T) {
},
}
//set
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -607,7 +608,7 @@ func testV1TSMaxHits(t *testing.T) {
},
}
//process event
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -615,14 +616,14 @@ func testV1TSMaxHits(t *testing.T) {
//check threshold after first process ( hits : 1)
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "TH3", Hits: 1}
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TH3"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
t.Errorf("expecting: %+v, received: %+v", eTd, td)
}
//process event
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -631,7 +632,7 @@ func testV1TSMaxHits(t *testing.T) {
//check threshold for event
var ths engine.Thresholds
eTd.Hits = 2
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThresholdsForEvent,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThresholdsForEvent,
thEvent, &ths); err != nil {
t.Error(err)
} else if len(ths) != 1 {
@@ -644,7 +645,7 @@ func testV1TSMaxHits(t *testing.T) {
//check threshold for event without tenant
thEvent.Tenant = utils.EmptyString
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThresholdsForEvent,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThresholdsForEvent,
thEvent, &ths); err != nil {
t.Error(err)
} else if len(ths) != 1 {
@@ -657,7 +658,7 @@ func testV1TSMaxHits(t *testing.T) {
//check threshold after second process ( hits : 2)
eTd.Hits = 2
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TH3"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
@@ -665,13 +666,13 @@ func testV1TSMaxHits(t *testing.T) {
}
//process event
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
//check threshold after third process (reached the maximum hits and should be removed)
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TH3"}}, &td); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Err : %+v \n, td : %+v", err, utils.ToJSON(td))
@@ -681,7 +682,7 @@ func testV1TSMaxHits(t *testing.T) {
func testV1TSUpdateSnooze(t *testing.T) {
var reply string
// check if exist
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TH4"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -696,7 +697,7 @@ func testV1TSUpdateSnooze(t *testing.T) {
},
}
//set
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, customTh, &reply); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, customTh, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -716,7 +717,7 @@ func testV1TSUpdateSnooze(t *testing.T) {
}
tNow := time.Now()
//process event
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -724,7 +725,7 @@ func testV1TSUpdateSnooze(t *testing.T) {
//check threshold after first process ( hits : 1)
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "TH4", Hits: 1}
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TH4"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
@@ -743,14 +744,14 @@ func testV1TSUpdateSnooze(t *testing.T) {
},
}
//set
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, customTh2, &reply); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, customTh2, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
eTd = engine.Threshold{Tenant: "cgrates.org", ID: "TH4"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TH4"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd, td) { // the threshold was reseted because the configuration chaged
@@ -783,14 +784,14 @@ func testV1TSGetThresholdProfileWithoutTenant(t *testing.T) {
},
}
var reply string
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
tPrfl.ThresholdProfile.Tenant = "cgrates.org"
var result *engine.ThresholdProfile
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{ID: "randomID"},
&result); err != nil {
t.Error(err)
@@ -801,7 +802,7 @@ func testV1TSGetThresholdProfileWithoutTenant(t *testing.T) {
func testV1TSRemThresholdProfileWithoutTenant(t *testing.T) {
var reply string
- if err := tSv1Rpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "randomID"}},
&reply); err != nil {
t.Error(err)
@@ -809,7 +810,7 @@ func testV1TSRemThresholdProfileWithoutTenant(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
var result *engine.ThresholdProfile
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{ID: "randomID"},
&result); err == nil || utils.ErrNotFound.Error() != err.Error() {
t.Error(err)
@@ -818,14 +819,14 @@ func testV1TSRemThresholdProfileWithoutTenant(t *testing.T) {
func testv1TSGetThresholdProfileIDsCount(t *testing.T) {
var reply int
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfileCount,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfileCount,
&utils.TenantWithAPIOpts{},
&reply); err != nil {
t.Error(err)
} else if reply != 7 {
t.Errorf("Expected 7, received %+v", reply)
}
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfileCount,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfileCount,
&utils.TenantWithAPIOpts{Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -846,7 +847,7 @@ func testV1TSProcessEventWithoutTenant(t *testing.T) {
utils.OptsThresholdsProfileIDs: []string{"TH4"},
},
}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -860,7 +861,7 @@ func testV1TSGetThresholdsWithoutTenant(t *testing.T) {
Hits: 1,
}
var reply *engine.Threshold
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "THD_ACNT_BALANCE_1"}},
&reply); err != nil {
t.Error(err)
@@ -891,13 +892,13 @@ func testV1TSProcessAccountUpdateEvent(t *testing.T) {
Async: true,
},
}
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, thAcntUpdate, &result); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, thAcntUpdate, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.ThresholdProfile
- if err := tSv1Rpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TH_ACNT_UPDATE_EV"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(thAcntUpdate.ThresholdProfile, reply) {
@@ -913,7 +914,7 @@ func testV1TSProcessAccountUpdateEvent(t *testing.T) {
utils.ID: "HolidayBalance",
},
}
- if err := tSv1Rpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &result); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetBalance, attrSetBalance, &result); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
} else if result != utils.OK {
t.Errorf("Calling APIerSv1.SetBalance received: %s", result)
@@ -924,7 +925,7 @@ func testV1TSProcessAccountUpdateEvent(t *testing.T) {
Tenant: "cgrates.org",
Account: "testV1TSProcessAccountUpdateEvent",
}
- if err := tSv1Rpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
}
@@ -939,7 +940,7 @@ func testV1TSProcessAccountUpdateEvent(t *testing.T) {
var ids []string
eIDs := []string{"TH_ACNT_UPDATE_EV"}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, acntUpdateEv, &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, acntUpdateEv, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -954,7 +955,7 @@ func testV1TSResetThresholdsWithoutTenant(t *testing.T) {
Hits: 1,
}
var reply *engine.Threshold
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "THD_ACNT_BALANCE_1"}},
&reply); err != nil {
t.Fatal(err)
@@ -964,7 +965,7 @@ func testV1TSResetThresholdsWithoutTenant(t *testing.T) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expectedThreshold), utils.ToJSON(reply))
}
var result string
- if err := tSv1Rpc.Call(utils.ThresholdSv1ResetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ResetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "THD_ACNT_BALANCE_1"}},
&result); err != nil {
t.Fatal(err)
@@ -973,7 +974,7 @@ func testV1TSResetThresholdsWithoutTenant(t *testing.T) {
}
expectedThreshold.Hits = 0
reply = nil
- if err := tSv1Rpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "THD_ACNT_BALANCE_1"}},
&reply); err != nil {
t.Fatal(err)
@@ -987,7 +988,7 @@ func testV1TSResetThresholdsWithoutTenant(t *testing.T) {
func testV1ThresholdStopCPUProfiling(t *testing.T) {
argPath := "/tmp/cpu.prof"
var reply string
- if err := tSv1Rpc.Call(utils.CoreSv1StopCPUProfiling,
+ if err := tSv1Rpc.Call(context.Background(), utils.CoreSv1StopCPUProfiling,
new(utils.DirectoryArgs), &reply); err != nil {
t.Error(err)
}
@@ -1022,7 +1023,7 @@ func testThresholdSCacheProcessEventNotFound(t *testing.T) {
utils.OptsThresholdsProfileIDs: []string{"THRESHOLD_CACHE"},
},
}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
@@ -1039,7 +1040,7 @@ func testThresholdSCacheProcessEventFound(t *testing.T) {
utils.OptsThresholdsProfileIDs: []string{"THRESHOLD_CACHE"},
},
}
- if err := tSv1Rpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
}
}
@@ -1055,7 +1056,7 @@ func testThresholdSCacheSet(t *testing.T) {
utils.CacheOpt: utils.MetaNone,
},
}
- if err := tSv1Rpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1067,7 +1068,7 @@ func testThresholdSCacheReload(t *testing.T) {
ThresholdProfileIDs: []string{"cgrates.org:THRESHOLD_CACHE"},
}
var reply string
- if err := tSv1Rpc.Call(utils.CacheSv1ReloadCache, cache, &reply); err != nil {
+ if err := tSv1Rpc.Call(context.Background(), utils.CacheSv1ReloadCache, cache, &reply); err != nil {
t.Error("Got error on CacheSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling CacheSv1.ReloadCache got reply: ", reply)
diff --git a/apier/v1/timing.go b/apier/v1/timing.go
index 961eeb6dc..aa94f7bc4 100644
--- a/apier/v1/timing.go
+++ b/apier/v1/timing.go
@@ -21,11 +21,12 @@ package v1
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// GetTiming returns a TPTiming object
-func (apierSv1 *APIerSv1) GetTiming(arg *utils.ArgsGetTimingID, reply *utils.TPTiming) (err error) {
+func (apierSv1 *APIerSv1) GetTiming(ctx *context.Context, arg *utils.ArgsGetTimingID, reply *utils.TPTiming) (err error) {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -39,7 +40,7 @@ func (apierSv1 *APIerSv1) GetTiming(arg *utils.ArgsGetTimingID, reply *utils.TPT
}
// SetTiming alters/creates a TPTimingWithAPIOpts
-func (apierSv1 *APIerSv1) SetTiming(args *utils.TPTimingWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) SetTiming(ctx *context.Context, args *utils.TPTimingWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args.TPTiming, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -63,7 +64,7 @@ func (apierSv1 *APIerSv1) SetTiming(args *utils.TPTimingWithAPIOpts, reply *stri
}
// RemoveTiming removes a specific TPTimingWithAPIOpts instance
-func (apierSv1 *APIerSv1) RemoveTiming(args *utils.TPTimingWithAPIOpts, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTiming(ctx *context.Context, args *utils.TPTimingWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(args.TPTiming, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/timing_it_test.go b/apier/v1/timing_it_test.go
index df6faaf49..a9153422d 100644
--- a/apier/v1/timing_it_test.go
+++ b/apier/v1/timing_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -35,7 +36,7 @@ import (
var (
timCfgPath string
timCfg *config.CGRConfig
- timSRPC *rpc.Client
+ timSRPC *birpc.Client
timConfigDIR string //run tests for specific configuration
sTestsTiming = []func(t *testing.T){
@@ -119,7 +120,7 @@ func testTimingKillEngine(t *testing.T) {
func testTimingGetTimingNotFound(t *testing.T) {
var reply *utils.TPTiming
- if err := timSRPC.Call(utils.APIerSv1GetTiming, &utils.ArgsGetTimingID{ID: "MIDNIGHT"},
+ if err := timSRPC.Call(context.Background(), utils.APIerSv1GetTiming, &utils.ArgsGetTimingID{ID: "MIDNIGHT"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -141,7 +142,7 @@ func testTimingSetTiming(t *testing.T) {
var reply string
- if err := timSRPC.Call(utils.APIerSv1SetTiming, timing, &reply); err != nil {
+ if err := timSRPC.Call(context.Background(), utils.APIerSv1SetTiming, timing, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -150,7 +151,7 @@ func testTimingSetTiming(t *testing.T) {
func testTimingGetTimingAfterSet(t *testing.T) {
var reply *utils.TPTiming
- if err := timSRPC.Call(utils.APIerSv1GetTiming, &utils.ArgsGetTimingID{ID: "MIDNIGHT"},
+ if err := timSRPC.Call(context.Background(), utils.APIerSv1GetTiming, &utils.ArgsGetTimingID{ID: "MIDNIGHT"},
&reply); err != nil {
t.Fatal(err)
}
@@ -170,7 +171,7 @@ func testTimingGetTimingAfterSet(t *testing.T) {
func testTimingRemoveTiming(t *testing.T) {
var reply string
- if err := timSRPC.Call(utils.APIerSv1RemoveTiming,
+ if err := timSRPC.Call(context.Background(), utils.APIerSv1RemoveTiming,
&utils.ArgsGetTimingID{ID: "MIDNIGHT"}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
diff --git a/apier/v1/tp.go b/apier/v1/tp.go
index 160ce9a49..6e018cb58 100644
--- a/apier/v1/tp.go
+++ b/apier/v1/tp.go
@@ -25,6 +25,7 @@ import (
"os"
"path/filepath"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -33,7 +34,7 @@ type AttrGetTPIds struct {
}
// Queries tarrif plan identities gathered from all tables.
-func (apierSv1 *APIerSv1) GetTPIds(attrs *AttrGetTPIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPIds(ctx *context.Context, attrs *AttrGetTPIds, reply *[]string) error {
if ids, err := apierSv1.StorDb.GetTpIds(utils.EmptyString); err != nil {
return utils.NewErrServerError(err)
} else if ids == nil {
@@ -49,7 +50,7 @@ type AttrImportTPZipFile struct {
File []byte
}
-func (apierSv1 *APIerSv1) ImportTPZipFile(attrs *AttrImportTPZipFile, reply *string) error {
+func (apierSv1 *APIerSv1) ImportTPZipFile(ctx *context.Context, attrs *AttrImportTPZipFile, reply *string) error {
tmpDir, err := os.MkdirTemp("/tmp", "cgr_")
if err != nil {
*reply = "ERROR: creating temp directory!"
@@ -102,7 +103,7 @@ type AttrRemTp struct {
TPid string
}
-func (apierSv1 *APIerSv1) RemTP(attrs *AttrRemTp, reply *string) error {
+func (apierSv1 *APIerSv1) RemTP(ctx *context.Context, attrs *AttrRemTp, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing(utils.TPid)
}
@@ -114,7 +115,7 @@ func (apierSv1 *APIerSv1) RemTP(attrs *AttrRemTp, reply *string) error {
return nil
}
-func (apierSv1 *APIerSv1) ExportTPToFolder(attrs *utils.AttrDirExportTP, exported *utils.ExportedTPStats) error {
+func (apierSv1 *APIerSv1) ExportTPToFolder(ctx *context.Context, attrs *utils.AttrDirExportTP, exported *utils.ExportedTPStats) error {
if attrs.TPid == nil || *attrs.TPid == "" {
return utils.NewErrMandatoryIeMissing(utils.TPid)
}
@@ -147,7 +148,7 @@ func (apierSv1 *APIerSv1) ExportTPToFolder(attrs *utils.AttrDirExportTP, exporte
return nil
}
-func (apierSv1 *APIerSv1) ExportTPToZipString(attrs *utils.AttrDirExportTP, reply *string) error {
+func (apierSv1 *APIerSv1) ExportTPToZipString(ctx *context.Context, attrs *utils.AttrDirExportTP, reply *string) error {
if attrs.TPid == nil || *attrs.TPid == utils.EmptyString {
return utils.NewErrMandatoryIeMissing(utils.TPid)
}
diff --git a/apier/v1/tp_it_test.go b/apier/v1/tp_it_test.go
index b954a8c13..e9d55b874 100644
--- a/apier/v1/tp_it_test.go
+++ b/apier/v1/tp_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
tpCfgPath string
tpCfg *config.CGRConfig
- tpRPC *rpc.Client
+ tpRPC *birpc.Client
tpConfigDIR string //run tests for specific configuration
sTestsTP = []func(t *testing.T){
@@ -106,7 +107,7 @@ func testTPRpcConn(t *testing.T) {
func testTPImportTPFromFolderPath(t *testing.T) {
var reply string
- if err := tpRPC.Call(utils.APIerSv1ImportTariffPlanFromFolder,
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1ImportTariffPlanFromFolder,
utils.AttrImportTPFromFolder{TPid: "TEST_TPID2",
FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}, &reply); err != nil {
t.Error("Got error on APIerSv1.ImportTarrifPlanFromFolder: ", err.Error())
@@ -129,7 +130,7 @@ func testTPExportTPToFolder(t *testing.T) {
tpid := "TEST_TPID2"
compress := true
exportPath := "/tmp/"
- if err := tpRPC.Call(utils.APIerSv1ExportTPToFolder, &utils.AttrDirExportTP{TPid: &tpid, ExportPath: &exportPath, Compress: &compress}, &reply); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1ExportTPToFolder, &utils.AttrDirExportTP{TPid: &tpid, ExportPath: &exportPath, Compress: &compress}, &reply); err != nil {
t.Error("Got error on APIerSv1.ExportTPToFolder: ", err.Error())
} else if !reflect.DeepEqual(reply.ExportPath, expectedTPStas.ExportPath) {
t.Errorf("Expecting : %+v, received: %+v", expectedTPStas.ExportPath, reply.ExportPath)
@@ -145,7 +146,7 @@ func testTPExportTPToFolderWithError(t *testing.T) {
tpid := "UnexistedTP"
compress := true
exportPath := "/tmp/"
- if err := tpRPC.Call(utils.APIerSv1ExportTPToFolder,
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1ExportTPToFolder,
&utils.AttrDirExportTP{TPid: &tpid, ExportPath: &exportPath, Compress: &compress}, &reply); err == nil || err.Error() != utils.NewErrServerError(utils.ErrNotFound).Error() {
t.Error("Expecting error, received: ", err)
}
diff --git a/apier/v1/tpaccountactions.go b/apier/v1/tpaccountactions.go
index e359e65c2..944275243 100644
--- a/apier/v1/tpaccountactions.go
+++ b/apier/v1/tpaccountactions.go
@@ -19,12 +19,13 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// SetTPAccountActions creates a new AccountActions profile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPAccountActions(attrs *utils.TPAccountActions, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPAccountActions(ctx *context.Context, attrs *utils.TPAccountActions, reply *string) error {
if missing := utils.MissingStructFields(attrs,
[]string{utils.TPid, utils.LoadId, utils.AccountField, utils.ActionPlanId}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
@@ -45,7 +46,7 @@ type AttrGetTPAccountActionsByLoadId struct {
}
// GetTPAccountActionsByLoadId queries specific AccountActions profile on tariff plan
-func (apierSv1 *APIerSv1) GetTPAccountActionsByLoadId(attrs *utils.TPAccountActions, reply *[]*utils.TPAccountActions) error {
+func (apierSv1 *APIerSv1) GetTPAccountActionsByLoadId(ctx *context.Context, attrs *utils.TPAccountActions, reply *[]*utils.TPAccountActions) error {
mndtryFlds := []string{utils.TPid, utils.LoadId}
if len(attrs.Account) != 0 { // If account provided as filter, make all related fields mandatory
mndtryFlds = append(mndtryFlds, utils.AccountField)
@@ -73,7 +74,7 @@ type AttrGetTPAccountActions struct {
}
// GetTPAccountActions queries specific DerivedCharge on tariff plan
-func (apierSv1 *APIerSv1) GetTPAccountActions(attrs *AttrGetTPAccountActions, reply *utils.TPAccountActions) error {
+func (apierSv1 *APIerSv1) GetTPAccountActions(ctx *context.Context, attrs *AttrGetTPAccountActions, reply *utils.TPAccountActions) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.AccountActionsId}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -98,7 +99,7 @@ type AttrGetTPAccountActionIds struct {
}
// GetTPAccountActionLoadIds queries AccountActions identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPAccountActionLoadIds(attrs *AttrGetTPAccountActionIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPAccountActionLoadIds(ctx *context.Context, attrs *AttrGetTPAccountActionIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -115,7 +116,7 @@ func (apierSv1 *APIerSv1) GetTPAccountActionLoadIds(attrs *AttrGetTPAccountActio
}
// GetTPAccountActionIds queries DerivedCharges identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPAccountActionIds(attrs *AttrGetTPAccountActionIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPAccountActionIds(ctx *context.Context, attrs *AttrGetTPAccountActionIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -132,7 +133,7 @@ func (apierSv1 *APIerSv1) GetTPAccountActionIds(attrs *AttrGetTPAccountActionIds
}
// RemoveTPAccountActions removes specific AccountActions on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPAccountActions(attrs *AttrGetTPAccountActions, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPAccountActions(ctx *context.Context, attrs *AttrGetTPAccountActions, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.AccountActionsId}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpaccountactions_it_test.go b/apier/v1/tpaccountactions_it_test.go
index 687eb0811..a4adba180 100644
--- a/apier/v1/tpaccountactions_it_test.go
+++ b/apier/v1/tpaccountactions_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpAccActionsCfgPath string
tpAccActionsCfg *config.CGRConfig
- tpAccActionsRPC *rpc.Client
+ tpAccActionsRPC *birpc.Client
tpAccActions *utils.TPAccountActions
tpAccActionsDelay int
tpAccActionsConfigDIR string //run tests for specific configuration
@@ -115,7 +116,7 @@ func testTPAccActionsRpcConn(t *testing.T) {
func testTPAccActionsGetTPAccActionBeforeSet(t *testing.T) {
var reply *utils.TPAccountActions
- if err := tpAccActionsRPC.Call(utils.APIerSv1GetTPAccountActions,
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1GetTPAccountActions,
&AttrGetTPAccountActions{TPid: "TPAcc", AccountActionsId: tpAccActionID}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -135,7 +136,7 @@ func testTPAccActionsSetTPAccAction(t *testing.T) {
Disabled: false,
}
var result string
- if err := tpAccActionsRPC.Call(utils.APIerSv1SetTPAccountActions, tpAccActions, &result); err != nil {
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1SetTPAccountActions, tpAccActions, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -144,7 +145,7 @@ func testTPAccActionsSetTPAccAction(t *testing.T) {
func testTPAccActionsGetTPAccActionAfterSet(t *testing.T) {
var reply *utils.TPAccountActions
- if err := tpAccActionsRPC.Call(utils.APIerSv1GetTPAccountActions,
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1GetTPAccountActions,
&AttrGetTPAccountActions{TPid: "TPAcc", AccountActionsId: tpAccActionID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpAccActions, reply) {
@@ -154,7 +155,7 @@ func testTPAccActionsGetTPAccActionAfterSet(t *testing.T) {
func testTPAccActionsGetTPAccountActionsByLoadId(t *testing.T) {
var reply *[]*utils.TPAccountActions
- if err := tpAccActionsRPC.Call(utils.APIerSv1GetTPAccountActionsByLoadId,
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1GetTPAccountActionsByLoadId,
&utils.TPAccountActions{TPid: "TPAcc", LoadId: "ID"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpAccActions, (*reply)[0]) {
@@ -165,7 +166,7 @@ func testTPAccActionsGetTPAccountActionsByLoadId(t *testing.T) {
func testTPAccActionsGetTPAccountActionLoadIds(t *testing.T) {
var result []string
expectedTPID := []string{"ID"}
- if err := tpAccActionsRPC.Call(utils.APIerSv1GetTPAccountActionLoadIds,
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1GetTPAccountActionLoadIds,
&AttrGetTPAccountActionIds{TPid: "TPAcc"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -176,7 +177,7 @@ func testTPAccActionsGetTPAccountActionLoadIds(t *testing.T) {
func testTPAccActionsGetTPAccountActionIds(t *testing.T) {
var result []string
expectedTPID := []string{"ID:cgrates.org:1001"}
- if err := tpAccActionsRPC.Call(utils.APIerSv1GetTPAccountActionIds,
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1GetTPAccountActionIds,
&AttrGetTPAccountActionIds{TPid: "TPAcc"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -187,7 +188,7 @@ func testTPAccActionsGetTPAccountActionIds(t *testing.T) {
func testTPAccActionsUpdateTPAccAction(t *testing.T) {
tpAccActions.ActionPlanId = "PlanOne"
var result string
- if err := tpAccActionsRPC.Call(utils.APIerSv1SetTPAccountActions, tpAccActions, &result); err != nil {
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1SetTPAccountActions, tpAccActions, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -197,7 +198,7 @@ func testTPAccActionsUpdateTPAccAction(t *testing.T) {
func testTPAccActionsGetTPAccActionAfterUpdate(t *testing.T) {
var reply *utils.TPAccountActions
- if err := tpAccActionsRPC.Call(utils.APIerSv1GetTPAccountActions,
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1GetTPAccountActions,
&AttrGetTPAccountActions{TPid: "TPAcc", AccountActionsId: tpAccActionID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpAccActions, reply) {
@@ -208,7 +209,7 @@ func testTPAccActionsGetTPAccActionAfterUpdate(t *testing.T) {
func testTPAccActionsRemTPAccAction(t *testing.T) {
var resp string
- if err := tpAccActionsRPC.Call(utils.APIerSv1RemoveTPAccountActions,
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1RemoveTPAccountActions,
&AttrGetTPAccountActions{TPid: "TPAcc", AccountActionsId: tpAccActionID}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -218,7 +219,7 @@ func testTPAccActionsRemTPAccAction(t *testing.T) {
func testTPAccActionsGetTPAccActionAfterRemove(t *testing.T) {
var reply *utils.TPAccountActions
- if err := tpAccActionsRPC.Call(utils.APIerSv1GetTPAccountActions,
+ if err := tpAccActionsRPC.Call(context.Background(), utils.APIerSv1GetTPAccountActions,
&AttrGetTPAccountActions{TPid: "TPAcc", AccountActionsId: tpAccActionID}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tpactionplans.go b/apier/v1/tpactionplans.go
index dcc34c728..52fe74631 100644
--- a/apier/v1/tpactionplans.go
+++ b/apier/v1/tpactionplans.go
@@ -21,11 +21,12 @@ package v1
import (
"fmt"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPActionPlan creates a new ActionTimings profile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPActionPlan(attrs *utils.TPActionPlan, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPActionPlan(ctx *context.Context, attrs *utils.TPActionPlan, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID, utils.ActionPlan}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -48,7 +49,7 @@ type AttrGetTPActionPlan struct {
}
// GetTPActionPlan queries specific ActionPlan profile on tariff plan
-func (apierSv1 *APIerSv1) GetTPActionPlan(attrs *AttrGetTPActionPlan, reply *utils.TPActionPlan) error {
+func (apierSv1 *APIerSv1) GetTPActionPlan(ctx *context.Context, attrs *AttrGetTPActionPlan, reply *utils.TPActionPlan) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -69,7 +70,7 @@ type AttrGetTPActionPlanIds struct {
}
// GetTPActionPlanIds queries ActionPlan identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPActionPlanIds(attrs *AttrGetTPActionPlanIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPActionPlanIds(ctx *context.Context, attrs *AttrGetTPActionPlanIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -86,7 +87,7 @@ func (apierSv1 *APIerSv1) GetTPActionPlanIds(attrs *AttrGetTPActionPlanIds, repl
}
// RemoveTPActionPlan removes specific ActionPlan on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPActionPlan(attrs *AttrGetTPActionPlan, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPActionPlan(ctx *context.Context, attrs *AttrGetTPActionPlan, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpactionplans_it_test.go b/apier/v1/tpactionplans_it_test.go
index 6e64870f2..afe0c6d29 100644
--- a/apier/v1/tpactionplans_it_test.go
+++ b/apier/v1/tpactionplans_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpAccPlansCfgPath string
tpAccPlansCfg *config.CGRConfig
- tpAccPlansRPC *rpc.Client
+ tpAccPlansRPC *birpc.Client
tpAccPlan *utils.TPActionPlan
tpAccPlansDelay int
tpAccPlansConfigDIR string //run tests for specific configuration
@@ -118,7 +119,7 @@ func testTPAccPlansRpcConn(t *testing.T) {
func testTPAccPlansGetTPAccPlanBeforeSet(t *testing.T) {
var reply *utils.TPActionPlan
- if err := tpAccPlansRPC.Call(utils.APIerSv1GetTPActionPlan,
+ if err := tpAccPlansRPC.Call(context.Background(), utils.APIerSv1GetTPActionPlan,
&AttrGetTPActionPlan{TPid: "TPAcc", ID: "ID"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -142,7 +143,7 @@ func testTPAccPlansSetTPAccPlan(t *testing.T) {
},
}
var result string
- if err := tpAccPlansRPC.Call(utils.APIerSv1SetTPActionPlan, tpAccPlan, &result); err != nil {
+ if err := tpAccPlansRPC.Call(context.Background(), utils.APIerSv1SetTPActionPlan, tpAccPlan, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -151,7 +152,7 @@ func testTPAccPlansSetTPAccPlan(t *testing.T) {
func testTPAccPlansGetTPAccPlanAfterSet(t *testing.T) {
var reply *utils.TPActionPlan
- if err := tpAccPlansRPC.Call(utils.APIerSv1GetTPActionPlan,
+ if err := tpAccPlansRPC.Call(context.Background(), utils.APIerSv1GetTPActionPlan,
&AttrGetTPActionPlan{TPid: "TPAcc", ID: "ID"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpAccPlan.TPid, reply.TPid) {
@@ -166,7 +167,7 @@ func testTPAccPlansGetTPAccPlanAfterSet(t *testing.T) {
func testTPAccPlansGetTPAccPlanIds(t *testing.T) {
var result []string
expectedTPID := []string{"ID"}
- if err := tpAccPlansRPC.Call(utils.APIerSv1GetTPActionPlanIds,
+ if err := tpAccPlansRPC.Call(context.Background(), utils.APIerSv1GetTPActionPlanIds,
&AttrGetTPActionPlanIds{TPid: "TPAcc"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -194,7 +195,7 @@ func testTPAccPlansUpdateTPAccPlan(t *testing.T) {
},
}
var result string
- if err := tpAccPlansRPC.Call(utils.APIerSv1SetTPActionPlan, tpAccPlan, &result); err != nil {
+ if err := tpAccPlansRPC.Call(context.Background(), utils.APIerSv1SetTPActionPlan, tpAccPlan, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -204,7 +205,7 @@ func testTPAccPlansUpdateTPAccPlan(t *testing.T) {
func testTPAccPlansGetTPAccPlanAfterUpdate(t *testing.T) {
var reply *utils.TPActionPlan
- if err := tpAccPlansRPC.Call(utils.APIerSv1GetTPActionPlan,
+ if err := tpAccPlansRPC.Call(context.Background(), utils.APIerSv1GetTPActionPlan,
&AttrGetTPActionPlan{TPid: "TPAcc", ID: "ID"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpAccPlan.TPid, reply.TPid) {
@@ -219,7 +220,7 @@ func testTPAccPlansGetTPAccPlanAfterUpdate(t *testing.T) {
func testTPAccPlansRemTPAccPlan(t *testing.T) {
var resp string
- if err := tpAccPlansRPC.Call(utils.APIerSv1RemoveTPActionPlan,
+ if err := tpAccPlansRPC.Call(context.Background(), utils.APIerSv1RemoveTPActionPlan,
&AttrGetTPActionPlan{TPid: "TPAcc", ID: "ID"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -230,7 +231,7 @@ func testTPAccPlansRemTPAccPlan(t *testing.T) {
func testTPAccPlansGetTPAccPlanAfterRemove(t *testing.T) {
var reply *utils.TPActionPlan
- if err := tpAccPlansRPC.Call(utils.APIerSv1GetTPActionPlan,
+ if err := tpAccPlansRPC.Call(context.Background(), utils.APIerSv1GetTPActionPlan,
&AttrGetTPActionPlan{TPid: "TPAcc", ID: "ID"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/tpactions.go b/apier/v1/tpactions.go
index fcdacc1c9..58e397187 100644
--- a/apier/v1/tpactions.go
+++ b/apier/v1/tpactions.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPActions creates a new Actions profile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPActions(attrs *utils.TPActions, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPActions(ctx *context.Context, attrs *utils.TPActions, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID, utils.Actions}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -40,7 +41,7 @@ type AttrGetTPActions struct {
}
// GetTPActions queries specific Actions profile on tariff plan
-func (apierSv1 *APIerSv1) GetTPActions(attrs *AttrGetTPActions, reply *utils.TPActions) error {
+func (apierSv1 *APIerSv1) GetTPActions(ctx *context.Context, attrs *AttrGetTPActions, reply *utils.TPActions) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -61,7 +62,7 @@ type AttrGetTPActionIds struct {
}
// GetTPActionIds queries Actions identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPActionIds(attrs *AttrGetTPActionIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPActionIds(ctx *context.Context, attrs *AttrGetTPActionIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -78,7 +79,7 @@ func (apierSv1 *APIerSv1) GetTPActionIds(attrs *AttrGetTPActionIds, reply *[]str
}
// RemoveTPActions removes specific Actions on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPActions(attrs *AttrGetTPActions, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPActions(ctx *context.Context, attrs *AttrGetTPActions, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpactions_it_test.go b/apier/v1/tpactions_it_test.go
index b7a9b931e..47516dfc7 100644
--- a/apier/v1/tpactions_it_test.go
+++ b/apier/v1/tpactions_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpActionCfgPath string
tpActionCfg *config.CGRConfig
- tpActionRPC *rpc.Client
+ tpActionRPC *birpc.Client
tpActions *utils.TPActions
tpActionDelay int
tpActionConfigDIR string //run tests for specific configuration
@@ -118,7 +119,7 @@ func testTPActionsRpcConn(t *testing.T) {
func testTPActionsGetTPActionBeforeSet(t *testing.T) {
var reply *utils.TPActionPlan
- if err := tpActionRPC.Call(utils.APIerSv1GetTPActions,
+ if err := tpActionRPC.Call(context.Background(), utils.APIerSv1GetTPActions,
&AttrGetTPActions{TPid: "TPAcc", ID: "ID"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -170,7 +171,7 @@ func testTPActionsSetTPAction(t *testing.T) {
},
}
var result string
- if err := tpActionRPC.Call(utils.APIerSv1SetTPActions, tpActions, &result); err != nil {
+ if err := tpActionRPC.Call(context.Background(), utils.APIerSv1SetTPActions, tpActions, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -179,7 +180,7 @@ func testTPActionsSetTPAction(t *testing.T) {
func testTPActionsGetTPActionAfterSet(t *testing.T) {
var reply *utils.TPActions
- if err := tpActionRPC.Call(utils.APIerSv1GetTPActions,
+ if err := tpActionRPC.Call(context.Background(), utils.APIerSv1GetTPActions,
&AttrGetTPActions{TPid: "TPAcc", ID: "ID"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpActions.TPid, reply.TPid) {
@@ -194,7 +195,7 @@ func testTPActionsGetTPActionAfterSet(t *testing.T) {
func testTPActionsGetTPActionIds(t *testing.T) {
var result []string
expectedTPID := []string{"ID"}
- if err := tpActionRPC.Call(utils.APIerSv1GetTPActionIds,
+ if err := tpActionRPC.Call(context.Background(), utils.APIerSv1GetTPActionIds,
&AttrGetTPActionIds{TPid: "TPAcc"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -263,7 +264,7 @@ func testTPActionsUpdateTPAction(t *testing.T) {
},
}
var result string
- if err := tpActionRPC.Call(utils.APIerSv1SetTPActions, tpActions, &result); err != nil {
+ if err := tpActionRPC.Call(context.Background(), utils.APIerSv1SetTPActions, tpActions, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -273,7 +274,7 @@ func testTPActionsUpdateTPAction(t *testing.T) {
func testTPActionsGetTPActionAfterUpdate(t *testing.T) {
var reply *utils.TPActions
- if err := tpActionRPC.Call(utils.APIerSv1GetTPActions,
+ if err := tpActionRPC.Call(context.Background(), utils.APIerSv1GetTPActions,
&AttrGetTPActions{TPid: "TPAcc", ID: "ID"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpActions.TPid, reply.TPid) {
@@ -288,7 +289,7 @@ func testTPActionsGetTPActionAfterUpdate(t *testing.T) {
func testTPActionsRemTPAction(t *testing.T) {
var resp string
- if err := tpActionRPC.Call(utils.APIerSv1RemoveTPActions,
+ if err := tpActionRPC.Call(context.Background(), utils.APIerSv1RemoveTPActions,
&AttrGetTPActions{TPid: "TPAcc", ID: "ID"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -299,7 +300,7 @@ func testTPActionsRemTPAction(t *testing.T) {
func testTPActionsGetTPActionAfterRemove(t *testing.T) {
var reply *utils.TPActionPlan
- if err := tpActionRPC.Call(utils.APIerSv1GetTPActions,
+ if err := tpActionRPC.Call(context.Background(), utils.APIerSv1GetTPActions,
&AttrGetTPActions{TPid: "TPAcc", ID: "ID"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/tpactiontriggers.go b/apier/v1/tpactiontriggers.go
index 6102e4dd1..e8b4f1e84 100644
--- a/apier/v1/tpactiontriggers.go
+++ b/apier/v1/tpactiontriggers.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPActionTriggers creates a new ActionTriggers profile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPActionTriggers(attrs *utils.TPActionTriggers, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPActionTriggers(ctx *context.Context, attrs *utils.TPActionTriggers, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -41,7 +42,7 @@ type AttrGetTPActionTriggers struct {
}
// GetTPActionTriggers queries specific ActionTriggers profile on tariff plan
-func (apierSv1 *APIerSv1) GetTPActionTriggers(attrs *AttrGetTPActionTriggers, reply *utils.TPActionTriggers) error {
+func (apierSv1 *APIerSv1) GetTPActionTriggers(ctx *context.Context, attrs *AttrGetTPActionTriggers, reply *utils.TPActionTriggers) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -63,7 +64,7 @@ type AttrGetTPActionTriggerIds struct {
}
// GetTPActionTriggerIds queries ActionTriggers identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPActionTriggerIds(attrs *AttrGetTPActionTriggerIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPActionTriggerIds(ctx *context.Context, attrs *AttrGetTPActionTriggerIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -80,7 +81,7 @@ func (apierSv1 *APIerSv1) GetTPActionTriggerIds(attrs *AttrGetTPActionTriggerIds
}
// RemoveTPActionTriggers removes specific ActionTriggers on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPActionTriggers(attrs *AttrGetTPActionTriggers, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPActionTriggers(ctx *context.Context, attrs *AttrGetTPActionTriggers, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpactiontriggers_it_test.go b/apier/v1/tpactiontriggers_it_test.go
index 1222ea162..7cd1fef27 100644
--- a/apier/v1/tpactiontriggers_it_test.go
+++ b/apier/v1/tpactiontriggers_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpActionTriggerCfgPath string
tpActionTriggerCfg *config.CGRConfig
- tpActionTriggerRPC *rpc.Client
+ tpActionTriggerRPC *birpc.Client
tpActionTriggers *utils.TPActionTriggers
tpActionTriggerDelay int
tpActionTriggerConfigDIR string //run tests for specific configuration
@@ -118,7 +119,7 @@ func testTPActionTriggersRpcConn(t *testing.T) {
func testTPActionTriggersGetTPActionTriggersBeforeSet(t *testing.T) {
var reply *utils.TPActionTriggers
- if err := tpActionTriggerRPC.Call(utils.APIerSv1GetTPActionTriggers,
+ if err := tpActionTriggerRPC.Call(context.Background(), utils.APIerSv1GetTPActionTriggers,
&AttrGetTPActionTriggers{TPid: "TPAct", ID: "ID"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -178,7 +179,7 @@ func testTPActionTriggersSetTPActionTriggers(t *testing.T) {
},
}
var result string
- if err := tpActionTriggerRPC.Call(utils.APIerSv1SetTPActionTriggers, tpActionTriggers, &result); err != nil {
+ if err := tpActionTriggerRPC.Call(context.Background(), utils.APIerSv1SetTPActionTriggers, tpActionTriggers, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -187,7 +188,7 @@ func testTPActionTriggersSetTPActionTriggers(t *testing.T) {
func testTPActionTriggersGetTPActionTriggersAfterSet(t *testing.T) {
var reply *utils.TPActionTriggers
- if err := tpActionTriggerRPC.Call(utils.APIerSv1GetTPActionTriggers,
+ if err := tpActionTriggerRPC.Call(context.Background(), utils.APIerSv1GetTPActionTriggers,
&AttrGetTPActionTriggers{TPid: "TPAct", ID: "ID"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpActionTriggers.TPid, reply.TPid) {
@@ -202,7 +203,7 @@ func testTPActionTriggersGetTPActionTriggersAfterSet(t *testing.T) {
func testTPActionTriggersGetTPActionTriggersIds(t *testing.T) {
var result []string
expectedTPID := []string{"ID"}
- if err := tpActionTriggerRPC.Call(utils.APIerSv1GetTPActionTriggerIds,
+ if err := tpActionTriggerRPC.Call(context.Background(), utils.APIerSv1GetTPActionTriggerIds,
&AttrGetTPActionTriggerIds{TPid: "TPAct"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -284,7 +285,7 @@ func testTPActionTriggersUpdateTPActionTriggers(t *testing.T) {
}
var result string
- if err := tpActionTriggerRPC.Call(utils.APIerSv1SetTPActionTriggers, tpActionTriggers, &result); err != nil {
+ if err := tpActionTriggerRPC.Call(context.Background(), utils.APIerSv1SetTPActionTriggers, tpActionTriggers, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -294,7 +295,7 @@ func testTPActionTriggersUpdateTPActionTriggers(t *testing.T) {
func testTPActionTriggersGetTPActionTriggersAfterUpdate(t *testing.T) {
var reply *utils.TPActionTriggers
- if err := tpActionTriggerRPC.Call(utils.APIerSv1GetTPActionTriggers,
+ if err := tpActionTriggerRPC.Call(context.Background(), utils.APIerSv1GetTPActionTriggers,
&AttrGetTPActionTriggers{TPid: "TPAct", ID: "ID"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpActionTriggers.TPid, reply.TPid) {
@@ -309,7 +310,7 @@ func testTPActionTriggersGetTPActionTriggersAfterUpdate(t *testing.T) {
func testTPActionTriggersRemoveTPActionTriggers(t *testing.T) {
var resp string
- if err := tpActionTriggerRPC.Call(utils.APIerSv1RemoveTPActionTriggers,
+ if err := tpActionTriggerRPC.Call(context.Background(), utils.APIerSv1RemoveTPActionTriggers,
&AttrGetTPActionTriggers{TPid: "TPAct", ID: "ID"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -320,7 +321,7 @@ func testTPActionTriggersRemoveTPActionTriggers(t *testing.T) {
func testTPActionTriggersGetTPActionTriggersAfterRemove(t *testing.T) {
var reply *utils.TPActionTriggers
- if err := tpActionTriggerRPC.Call(utils.APIerSv1GetTPActionTriggers,
+ if err := tpActionTriggerRPC.Call(context.Background(), utils.APIerSv1GetTPActionTriggers,
&AttrGetTPActionTriggers{TPid: "TPAct", ID: "ID"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/tpattributes.go b/apier/v1/tpattributes.go
index 25e3026ca..0947a94da 100644
--- a/apier/v1/tpattributes.go
+++ b/apier/v1/tpattributes.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPAttributeProfile creates a new AttributeProfile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPAttributeProfile(attrs *utils.TPAttributeProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPAttributeProfile(ctx *context.Context, attrs *utils.TPAttributeProfile, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -39,7 +40,7 @@ func (apierSv1 *APIerSv1) SetTPAttributeProfile(attrs *utils.TPAttributeProfile,
}
// GetTPAttributeProfile queries specific AttributeProfile on Tariff plan
-func (apierSv1 *APIerSv1) GetTPAttributeProfile(attr *utils.TPTntID, reply *utils.TPAttributeProfile) error {
+func (apierSv1 *APIerSv1) GetTPAttributeProfile(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPAttributeProfile) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -63,7 +64,7 @@ type AttrGetTPAttributeProfileIds struct {
}
// GetTPAttributeProfileIds queries attribute identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPAttributeProfileIds(attrs *AttrGetTPAttributeProfileIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPAttributeProfileIds(ctx *context.Context, attrs *AttrGetTPAttributeProfileIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -80,7 +81,7 @@ func (apierSv1 *APIerSv1) GetTPAttributeProfileIds(attrs *AttrGetTPAttributeProf
}
// RemoveTPAttributeProfile removes specific AttributeProfile on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPAttributeProfile(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPAttributeProfile(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpattributes_it_test.go b/apier/v1/tpattributes_it_test.go
index 9ae7caf38..1ecb4f67f 100644
--- a/apier/v1/tpattributes_it_test.go
+++ b/apier/v1/tpattributes_it_test.go
@@ -22,14 +22,15 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"sort"
"strings"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ import (
var (
tpAlsPrfCfgPath string
tpAlsPrfCfg *config.CGRConfig
- tpAlsPrfRPC *rpc.Client
+ tpAlsPrfRPC *birpc.Client
tpAlsPrf *utils.TPAttributeProfile
tpAlsPrfDelay int
tpAlsPrfConfigDIR string //run tests for specific configuration
@@ -114,7 +115,7 @@ func testTPAlsPrfRPCConn(t *testing.T) {
func testTPAlsPrfGetTPAlsPrfBeforeSet(t *testing.T) {
var reply *utils.TPAttributeProfile
- if err := tpAlsPrfRPC.Call(utils.APIerSv1GetTPAttributeProfile,
+ if err := tpAlsPrfRPC.Call(context.Background(), utils.APIerSv1GetTPAttributeProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Attr1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -142,7 +143,7 @@ func testTPAlsPrfSetTPAlsPrf(t *testing.T) {
}
sort.Strings(tpAlsPrf.FilterIDs)
var result string
- if err := tpAlsPrfRPC.Call(utils.APIerSv1SetTPAttributeProfile, tpAlsPrf, &result); err != nil {
+ if err := tpAlsPrfRPC.Call(context.Background(), utils.APIerSv1SetTPAttributeProfile, tpAlsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -151,7 +152,7 @@ func testTPAlsPrfSetTPAlsPrf(t *testing.T) {
func testTPAlsPrfGetTPAlsPrfAfterSet(t *testing.T) {
var reply *utils.TPAttributeProfile
- if err := tpAlsPrfRPC.Call(utils.APIerSv1GetTPAttributeProfile,
+ if err := tpAlsPrfRPC.Call(context.Background(), utils.APIerSv1GetTPAttributeProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Attr1"}, &reply); err != nil {
t.Fatal(err)
}
@@ -164,7 +165,7 @@ func testTPAlsPrfGetTPAlsPrfAfterSet(t *testing.T) {
func testTPAlsPrfGetTPAlsPrfIDs(t *testing.T) {
var result []string
expectedTPID := []string{"cgrates.org:Attr1"}
- if err := tpAlsPrfRPC.Call(utils.APIerSv1GetTPAttributeProfileIds,
+ if err := tpAlsPrfRPC.Call(context.Background(), utils.APIerSv1GetTPAttributeProfileIds,
&AttrGetTPAttributeProfileIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -186,7 +187,7 @@ func testTPAlsPrfUpdateTPAlsPrf(t *testing.T) {
},
}
var result string
- if err := tpAlsPrfRPC.Call(utils.APIerSv1SetTPAttributeProfile, tpAlsPrf, &result); err != nil {
+ if err := tpAlsPrfRPC.Call(context.Background(), utils.APIerSv1SetTPAttributeProfile, tpAlsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -223,7 +224,7 @@ func testTPAlsPrfGetTPAlsPrfAfterUpdate(t *testing.T) {
sort.Slice(revTPAlsPrf.Attributes, func(i, j int) bool {
return strings.Compare(revTPAlsPrf.Attributes[i].Path, revTPAlsPrf.Attributes[j].Path) == -1
})
- if err := tpAlsPrfRPC.Call(utils.APIerSv1GetTPAttributeProfile,
+ if err := tpAlsPrfRPC.Call(context.Background(), utils.APIerSv1GetTPAttributeProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Attr1"}, &reply); err != nil {
t.Fatal(err)
}
@@ -238,7 +239,7 @@ func testTPAlsPrfGetTPAlsPrfAfterUpdate(t *testing.T) {
func testTPAlsPrfRemTPAlsPrf(t *testing.T) {
var resp string
- if err := tpAlsPrfRPC.Call(utils.APIerSv1RemoveTPAttributeProfile,
+ if err := tpAlsPrfRPC.Call(context.Background(), utils.APIerSv1RemoveTPAttributeProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Attr1"},
&resp); err != nil {
t.Error(err)
@@ -249,7 +250,7 @@ func testTPAlsPrfRemTPAlsPrf(t *testing.T) {
func testTPAlsPrfGetTPAlsPrfAfterRemove(t *testing.T) {
var reply *utils.TPAttributeProfile
- if err := tpAlsPrfRPC.Call(utils.APIerSv1GetTPAttributeProfile,
+ if err := tpAlsPrfRPC.Call(context.Background(), utils.APIerSv1GetTPAttributeProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Attr1"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tpchargers.go b/apier/v1/tpchargers.go
index 073b4e8e1..eaab4485b 100644
--- a/apier/v1/tpchargers.go
+++ b/apier/v1/tpchargers.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPCharger creates a new ChargerProfile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPCharger(attr *utils.TPChargerProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPCharger(ctx *context.Context, attr *utils.TPChargerProfile, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -38,7 +39,7 @@ func (apierSv1 *APIerSv1) SetTPCharger(attr *utils.TPChargerProfile, reply *stri
}
// GetTPCharger queries specific ChargerProfile on Tariff plan
-func (apierSv1 *APIerSv1) GetTPCharger(attr *utils.TPTntID, reply *utils.TPChargerProfile) error {
+func (apierSv1 *APIerSv1) GetTPCharger(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPChargerProfile) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -62,7 +63,7 @@ type AttrGetTPChargerIds struct {
}
// GetTPChargerIDs queries Charger identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPChargerIDs(attrs *AttrGetTPChargerIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPChargerIDs(ctx *context.Context, attrs *AttrGetTPChargerIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -79,7 +80,7 @@ func (apierSv1 *APIerSv1) GetTPChargerIDs(attrs *AttrGetTPChargerIds, reply *[]s
}
// RemoveTPCharger removes specific ChargerProfile on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPCharger(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPCharger(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpchargers_it_test.go b/apier/v1/tpchargers_it_test.go
index d43c2dd93..8e6ff29fe 100644
--- a/apier/v1/tpchargers_it_test.go
+++ b/apier/v1/tpchargers_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"sort"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
tpChrgsCfgPath string
tpChrgsCfg *config.CGRConfig
- tpChrgsRPC *rpc.Client
+ tpChrgsRPC *birpc.Client
tpChrgs *utils.TPChargerProfile
tpChrgsDelay int
tpChrgsConfigDIR string //run tests for specific configuration
@@ -114,7 +115,7 @@ func testTPChrgsRPCConn(t *testing.T) {
func testTPChrgsGetTPChrgsBeforeSet(t *testing.T) {
var reply *utils.TPChargerProfile
- if err := tpChrgsRPC.Call(utils.APIerSv1GetTPCharger,
+ if err := tpChrgsRPC.Call(context.Background(), utils.APIerSv1GetTPCharger,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Chrgs"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -138,7 +139,7 @@ func testTPChrgsSetTPChrgs(t *testing.T) {
sort.Strings(tpChrgs.FilterIDs)
sort.Strings(tpChrgs.AttributeIDs)
var result string
- if err := tpChrgsRPC.Call(utils.APIerSv1SetTPCharger, tpChrgs, &result); err != nil {
+ if err := tpChrgsRPC.Call(context.Background(), utils.APIerSv1SetTPCharger, tpChrgs, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -147,7 +148,7 @@ func testTPChrgsSetTPChrgs(t *testing.T) {
func testTPChrgsGetTPChrgsAfterSet(t *testing.T) {
var reply *utils.TPChargerProfile
- if err := tpChrgsRPC.Call(utils.APIerSv1GetTPCharger,
+ if err := tpChrgsRPC.Call(context.Background(), utils.APIerSv1GetTPCharger,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Chrgs"}, &reply); err != nil {
t.Fatal(err)
}
@@ -161,7 +162,7 @@ func testTPChrgsGetTPChrgsAfterSet(t *testing.T) {
func testTPChrgsGetTPChrgsIDs(t *testing.T) {
var result []string
expectedTPID := []string{"cgrates.org:Chrgs"}
- if err := tpChrgsRPC.Call(utils.APIerSv1GetTPChargerIDs,
+ if err := tpChrgsRPC.Call(context.Background(), utils.APIerSv1GetTPChargerIDs,
&AttrGetTPAttributeProfileIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -172,7 +173,7 @@ func testTPChrgsGetTPChrgsIDs(t *testing.T) {
func testTPChrgsUpdateTPChrgs(t *testing.T) {
tpChrgs.AttributeIDs = []string{"Attr1", "Attr2", "Attr3"}
var result string
- if err := tpChrgsRPC.Call(utils.APIerSv1SetTPCharger, tpChrgs, &result); err != nil {
+ if err := tpChrgsRPC.Call(context.Background(), utils.APIerSv1SetTPCharger, tpChrgs, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -181,7 +182,7 @@ func testTPChrgsUpdateTPChrgs(t *testing.T) {
func testTPChrgsGetTPChrgsAfterUpdate(t *testing.T) {
var reply *utils.TPChargerProfile
- if err := tpChrgsRPC.Call(utils.APIerSv1GetTPCharger,
+ if err := tpChrgsRPC.Call(context.Background(), utils.APIerSv1GetTPCharger,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Chrgs"}, &reply); err != nil {
t.Fatal(err)
}
@@ -194,7 +195,7 @@ func testTPChrgsGetTPChrgsAfterUpdate(t *testing.T) {
func testTPChrgsRemTPChrgs(t *testing.T) {
var resp string
- if err := tpChrgsRPC.Call(utils.APIerSv1RemoveTPCharger,
+ if err := tpChrgsRPC.Call(context.Background(), utils.APIerSv1RemoveTPCharger,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Chrgs"},
&resp); err != nil {
t.Error(err)
@@ -205,7 +206,7 @@ func testTPChrgsRemTPChrgs(t *testing.T) {
func testTPChrgsGetTPChrgsAfterRemove(t *testing.T) {
var reply *utils.TPChargerProfile
- if err := tpChrgsRPC.Call(utils.APIerSv1GetTPCharger,
+ if err := tpChrgsRPC.Call(context.Background(), utils.APIerSv1GetTPCharger,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Chrgs"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tpdestinationrates.go b/apier/v1/tpdestinationrates.go
index c76ba21a3..eca76013e 100644
--- a/apier/v1/tpdestinationrates.go
+++ b/apier/v1/tpdestinationrates.go
@@ -21,11 +21,12 @@ package v1
// This file deals with tp_destination_rates management over APIs
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPDestinationRate creates a new DestinationRate profile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPDestinationRate(attrs *utils.TPDestinationRate, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPDestinationRate(ctx *context.Context, attrs *utils.TPDestinationRate, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID, utils.DestinationRates}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -43,7 +44,7 @@ type AttrGetTPDestinationRate struct {
}
// GetTPDestinationRate queries specific DestinationRate profile on tariff plan
-func (apierSv1 *APIerSv1) GetTPDestinationRate(attrs *AttrGetTPDestinationRate, reply *utils.TPDestinationRate) error {
+func (apierSv1 *APIerSv1) GetTPDestinationRate(ctx *context.Context, attrs *AttrGetTPDestinationRate, reply *utils.TPDestinationRate) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -64,7 +65,7 @@ type AttrTPDestinationRateIds struct {
}
// GetTPDestinationRateIds queries DestinationRate identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPDestinationRateIds(attrs *AttrGetTPRateIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPDestinationRateIds(ctx *context.Context, attrs *AttrGetTPRateIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -81,7 +82,7 @@ func (apierSv1 *APIerSv1) GetTPDestinationRateIds(attrs *AttrGetTPRateIds, reply
}
// RemoveTPDestinationRate removes specific DestinationRate on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPDestinationRate(attrs *AttrGetTPDestinationRate, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPDestinationRate(ctx *context.Context, attrs *AttrGetTPDestinationRate, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpdestinationrates_it_test.go b/apier/v1/tpdestinationrates_it_test.go
index 3ac692e67..6e4200f9a 100644
--- a/apier/v1/tpdestinationrates_it_test.go
+++ b/apier/v1/tpdestinationrates_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpDstRateCfgPath string
tpDstRateCfg *config.CGRConfig
- tpDstRateRPC *rpc.Client
+ tpDstRateRPC *birpc.Client
tpDstRate *utils.TPDestinationRate
tpDstRateDelay int
tpDstRateConfigDIR string //run tests for specific configuration
@@ -112,7 +113,7 @@ func testTPDstRateRpcConn(t *testing.T) {
func testTPDstRateGetTPDstRateBeforeSet(t *testing.T) {
var reply *utils.TPDestinationRate
- if err := tpDstRateRPC.Call(utils.APIerSv1GetTPDestinationRate,
+ if err := tpDstRateRPC.Call(context.Background(), utils.APIerSv1GetTPDestinationRate,
&AttrGetTPDestinationRate{TPid: "TP1", ID: "DR_FREESWITCH_USERS"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -133,7 +134,7 @@ func testTPDstRateSetTPDstRate(t *testing.T) {
},
}
var result string
- if err := tpDstRateRPC.Call(utils.APIerSv1SetTPDestinationRate, tpDstRate, &result); err != nil {
+ if err := tpDstRateRPC.Call(context.Background(), utils.APIerSv1SetTPDestinationRate, tpDstRate, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -142,7 +143,7 @@ func testTPDstRateSetTPDstRate(t *testing.T) {
func testTPDstRateGetTPDstRateAfterSet(t *testing.T) {
var reply *utils.TPDestinationRate
- if err := tpDstRateRPC.Call(utils.APIerSv1GetTPDestinationRate,
+ if err := tpDstRateRPC.Call(context.Background(), utils.APIerSv1GetTPDestinationRate,
&AttrGetTPDestinationRate{TPid: "TP1", ID: "DR_FREESWITCH_USERS"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpDstRate, reply) {
@@ -153,7 +154,7 @@ func testTPDstRateGetTPDstRateAfterSet(t *testing.T) {
func testTPDstRateGetTPDstRateIds(t *testing.T) {
var result []string
expectedTPID := []string{"DR_FREESWITCH_USERS"}
- if err := tpDstRateRPC.Call(utils.APIerSv1GetTPDestinationRateIds,
+ if err := tpDstRateRPC.Call(context.Background(), utils.APIerSv1GetTPDestinationRateIds,
&AttrTPDestinationRateIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -168,7 +169,7 @@ func testTPDstRateUpdateTPDstRate(t *testing.T) {
func testTPDstRateGetTPDstRateAfterUpdate(t *testing.T) {
var reply *utils.TPDestinationRate
- if err := tpDstRateRPC.Call(utils.APIerSv1GetTPDestinationRate,
+ if err := tpDstRateRPC.Call(context.Background(), utils.APIerSv1GetTPDestinationRate,
&AttrGetTPDestinationRate{TPid: "TP1", ID: "DR_FREESWITCH_USERS"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpDstRate, reply) {
@@ -178,7 +179,7 @@ func testTPDstRateGetTPDstRateAfterUpdate(t *testing.T) {
func testTPDstRateRemTPDstRate(t *testing.T) {
var resp string
- if err := tpDstRateRPC.Call(utils.APIerSv1RemoveTPDestinationRate,
+ if err := tpDstRateRPC.Call(context.Background(), utils.APIerSv1RemoveTPDestinationRate,
&AttrGetTPDestinationRate{TPid: "TP1", ID: "DR_FREESWITCH_USERS"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -189,7 +190,7 @@ func testTPDstRateRemTPDstRate(t *testing.T) {
func testTPDstRateGetTPDstRateAfterRemove(t *testing.T) {
var reply *utils.TPDestinationRate
- if err := tpDstRateRPC.Call(utils.APIerSv1GetTPDestinationRate,
+ if err := tpDstRateRPC.Call(context.Background(), utils.APIerSv1GetTPDestinationRate,
&AttrGetTPDestinationRate{TPid: "TP1", ID: "DR_FREESWITCH_USERS"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tpdestinations.go b/apier/v1/tpdestinations.go
index 5cbaee605..e83233b5b 100644
--- a/apier/v1/tpdestinations.go
+++ b/apier/v1/tpdestinations.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPDestination creates a new destination within a tariff plan
-func (apierSv1 *APIerSv1) SetTPDestination(attrs *utils.TPDestination, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPDestination(ctx *context.Context, attrs *utils.TPDestination, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID, utils.Prefixes}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -40,7 +41,7 @@ type AttrGetTPDestination struct {
}
// GetTPDestination queries a specific destination
-func (apierSv1 *APIerSv1) GetTPDestination(attrs *AttrGetTPDestination, reply *utils.TPDestination) error {
+func (apierSv1 *APIerSv1) GetTPDestination(ctx *context.Context, attrs *AttrGetTPDestination, reply *utils.TPDestination) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -63,7 +64,7 @@ type AttrGetTPDestinationIds struct {
}
// GetTPDestinationIDs queries destination identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPDestinationIDs(attrs *AttrGetTPDestinationIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPDestinationIDs(ctx *context.Context, attrs *AttrGetTPDestinationIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -80,7 +81,7 @@ func (apierSv1 *APIerSv1) GetTPDestinationIDs(attrs *AttrGetTPDestinationIds, re
}
// RemoveTPDestination removes specific Destination on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPDestination(attrs *AttrGetTPDestination, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPDestination(ctx *context.Context, attrs *AttrGetTPDestination, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpdestinations_it_test.go b/apier/v1/tpdestinations_it_test.go
index 4744a46d6..2d1e8c192 100644
--- a/apier/v1/tpdestinations_it_test.go
+++ b/apier/v1/tpdestinations_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpDestinationCfgPath string
tpDestinationCfg *config.CGRConfig
- tpDestinationRPC *rpc.Client
+ tpDestinationRPC *birpc.Client
tpDestination *utils.TPDestination
tpDestinationDelay int
tpDestinationConfigDIR string //run tests for specific configuration
@@ -117,7 +118,7 @@ func testTPDestinationsRpcConn(t *testing.T) {
func testTPDestinationsGetTPDestinationBeforeSet(t *testing.T) {
var reply *utils.TPDestination
- if err := tpDestinationRPC.Call(utils.APIerSv1GetTPDestination,
+ if err := tpDestinationRPC.Call(context.Background(), utils.APIerSv1GetTPDestination,
&AttrGetTPDestination{TPid: "TPD", ID: "GERMANY"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -131,7 +132,7 @@ func testTPDestinationsSetTPDestination(t *testing.T) {
Prefixes: []string{"+49", "+4915"},
}
var result string
- if err := tpDestinationRPC.Call(utils.APIerSv1SetTPDestination, tpDestination, &result); err != nil {
+ if err := tpDestinationRPC.Call(context.Background(), utils.APIerSv1SetTPDestination, tpDestination, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -140,7 +141,7 @@ func testTPDestinationsSetTPDestination(t *testing.T) {
func testTPDestinationsGetTPDestinationAfterSet(t *testing.T) {
var reply *utils.TPDestination
- if err := tpDestinationRPC.Call(utils.APIerSv1GetTPDestination,
+ if err := tpDestinationRPC.Call(context.Background(), utils.APIerSv1GetTPDestination,
&AttrGetTPDestination{TPid: "TPD", ID: "GERMANY"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpDestination.TPid, reply.TPid) {
@@ -156,7 +157,7 @@ func testTPDestinationsGetTPDestinationAfterSet(t *testing.T) {
func testTPDestinationsGetTPDestinationIds(t *testing.T) {
var result []string
expectedTPID := []string{"GERMANY"}
- if err := tpDestinationRPC.Call(utils.APIerSv1GetTPDestinationIDs,
+ if err := tpDestinationRPC.Call(context.Background(), utils.APIerSv1GetTPDestinationIDs,
&AttrGetTPDestinationIds{TPid: "TPD"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -168,7 +169,7 @@ func testTPDestinationsGetTPDestinationIds(t *testing.T) {
func testTPDestinationsUpdateTPDestination(t *testing.T) {
tpDestination.Prefixes = []string{"+49", "+4915", "+4916"}
var result string
- if err := tpDestinationRPC.Call(utils.APIerSv1SetTPDestination, tpDestination, &result); err != nil {
+ if err := tpDestinationRPC.Call(context.Background(), utils.APIerSv1SetTPDestination, tpDestination, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -178,7 +179,7 @@ func testTPDestinationsUpdateTPDestination(t *testing.T) {
func testTPDestinationsGetTPDestinationAfterUpdate(t *testing.T) {
var reply *utils.TPDestination
- if err := tpDestinationRPC.Call(utils.APIerSv1GetTPDestination,
+ if err := tpDestinationRPC.Call(context.Background(), utils.APIerSv1GetTPDestination,
&AttrGetTPDestination{TPid: "TPD", ID: "GERMANY"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpDestination.TPid, reply.TPid) {
@@ -193,7 +194,7 @@ func testTPDestinationsGetTPDestinationAfterUpdate(t *testing.T) {
func testTPDestinationsRemoveTPDestination(t *testing.T) {
var resp string
- if err := tpDestinationRPC.Call(utils.APIerSv1RemoveTPDestination,
+ if err := tpDestinationRPC.Call(context.Background(), utils.APIerSv1RemoveTPDestination,
&AttrGetTPDestination{TPid: "TPD", ID: "GERMANY"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -204,7 +205,7 @@ func testTPDestinationsRemoveTPDestination(t *testing.T) {
func testTPDestinationsGetTPDestinationAfterRemove(t *testing.T) {
var reply *utils.TPDestination
- if err := tpDestinationRPC.Call(utils.APIerSv1GetTPDestination,
+ if err := tpDestinationRPC.Call(context.Background(), utils.APIerSv1GetTPDestination,
&AttrGetTPDestination{TPid: "TPD", ID: "GERMANY"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/tpdispatchers.go b/apier/v1/tpdispatchers.go
index 9ece9c173..8764a07ab 100644
--- a/apier/v1/tpdispatchers.go
+++ b/apier/v1/tpdispatchers.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPDispatcherProfile creates a new DispatcherProfile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPDispatcherProfile(attr *utils.TPDispatcherProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPDispatcherProfile(ctx *context.Context, attr *utils.TPDispatcherProfile, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -38,7 +39,7 @@ func (apierSv1 *APIerSv1) SetTPDispatcherProfile(attr *utils.TPDispatcherProfile
}
// GetTPDispatcherProfile queries specific DispatcherProfile on Tariff plan
-func (apierSv1 *APIerSv1) GetTPDispatcherProfile(attr *utils.TPTntID, reply *utils.TPDispatcherProfile) error {
+func (apierSv1 *APIerSv1) GetTPDispatcherProfile(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPDispatcherProfile) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -63,7 +64,7 @@ type AttrGetTPDispatcherIds struct {
}
// GetTPDispatcherProfileIDs queries dispatcher identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPDispatcherProfileIDs(attrs *AttrGetTPDispatcherIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPDispatcherProfileIDs(ctx *context.Context, attrs *AttrGetTPDispatcherIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -80,7 +81,7 @@ func (apierSv1 *APIerSv1) GetTPDispatcherProfileIDs(attrs *AttrGetTPDispatcherId
}
// RemoveTPDispatcherProfile removes specific DispatcherProfile on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPDispatcherProfile(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPDispatcherProfile(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -96,7 +97,7 @@ func (apierSv1 *APIerSv1) RemoveTPDispatcherProfile(attrs *utils.TPTntID, reply
}
// SetTPDispatcherHost creates a new DispatcherHost within a tariff plan
-func (apierSv1 *APIerSv1) SetTPDispatcherHost(attr *utils.TPDispatcherHost, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPDispatcherHost(ctx *context.Context, attr *utils.TPDispatcherHost, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -111,7 +112,7 @@ func (apierSv1 *APIerSv1) SetTPDispatcherHost(attr *utils.TPDispatcherHost, repl
}
// GetTPDispatcherHost queries specific DispatcherHosts on Tariff plan
-func (apierSv1 *APIerSv1) GetTPDispatcherHost(attr *utils.TPTntID, reply *utils.TPDispatcherHost) error {
+func (apierSv1 *APIerSv1) GetTPDispatcherHost(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPDispatcherHost) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -131,7 +132,7 @@ func (apierSv1 *APIerSv1) GetTPDispatcherHost(attr *utils.TPTntID, reply *utils.
}
// GetTPDispatcherHostIDs queries dispatcher host identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPDispatcherHostIDs(attrs *AttrGetTPDispatcherIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPDispatcherHostIDs(ctx *context.Context, attrs *AttrGetTPDispatcherIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -148,7 +149,7 @@ func (apierSv1 *APIerSv1) GetTPDispatcherHostIDs(attrs *AttrGetTPDispatcherIds,
}
// RemoveTPDispatcherHost removes specific DispatcherHost on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPDispatcherHost(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPDispatcherHost(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpdispatchers_it_test.go b/apier/v1/tpdispatchers_it_test.go
index b3ea5ff82..2e1c54d21 100644
--- a/apier/v1/tpdispatchers_it_test.go
+++ b/apier/v1/tpdispatchers_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpDispatcherCfgPath string
tpDispatcherCfg *config.CGRConfig
- tpDispatcherRPC *rpc.Client
+ tpDispatcherRPC *birpc.Client
tpDispatcher *utils.TPDispatcherProfile
tpDispatcherDelay int
tpDispatcherConfigDIR string //run tests for specific configuration
@@ -113,7 +114,7 @@ func testTPDispatcherRpcConn(t *testing.T) {
func testTPDispatcherGetTPDispatcherBeforeSet(t *testing.T) {
var reply *utils.TPDispatcherProfile
- if err := tpDispatcherRPC.Call(utils.APIerSv1GetTPDispatcherProfile,
+ if err := tpDispatcherRPC.Call(context.Background(), utils.APIerSv1GetTPDispatcherProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -136,7 +137,7 @@ func testTPDispatcherSetTPDispatcher(t *testing.T) {
}
var result string
- if err := tpDispatcherRPC.Call(utils.APIerSv1SetTPDispatcherProfile, tpDispatcher, &result); err != nil {
+ if err := tpDispatcherRPC.Call(context.Background(), utils.APIerSv1SetTPDispatcherProfile, tpDispatcher, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -145,7 +146,7 @@ func testTPDispatcherSetTPDispatcher(t *testing.T) {
func testTPDispatcherGetTPDispatcherAfterSet(t *testing.T) {
var reply *utils.TPDispatcherProfile
- if err := tpDispatcherRPC.Call(utils.APIerSv1GetTPDispatcherProfile,
+ if err := tpDispatcherRPC.Call(context.Background(), utils.APIerSv1GetTPDispatcherProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Dsp1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpDispatcher, reply) {
@@ -156,7 +157,7 @@ func testTPDispatcherGetTPDispatcherAfterSet(t *testing.T) {
func testTPDispatcherGetTPDispatcherIds(t *testing.T) {
var result []string
expectedTPID := []string{"cgrates.org:Dsp1"}
- if err := tpDispatcherRPC.Call(utils.APIerSv1GetTPDispatcherProfileIDs,
+ if err := tpDispatcherRPC.Call(context.Background(), utils.APIerSv1GetTPDispatcherProfileIDs,
&AttrGetTPDispatcherIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -166,7 +167,7 @@ func testTPDispatcherGetTPDispatcherIds(t *testing.T) {
func testTPDispatcherUpdateTPDispatcher(t *testing.T) {
var result string
- if err := tpDispatcherRPC.Call(utils.APIerSv1SetTPDispatcherProfile, tpDispatcher, &result); err != nil {
+ if err := tpDispatcherRPC.Call(context.Background(), utils.APIerSv1SetTPDispatcherProfile, tpDispatcher, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -187,7 +188,7 @@ func testTPDispatcherGetTPDispatcherAfterUpdate(t *testing.T) {
Strategy: utils.MetaFirst,
Weight: 10,
}
- if err := tpDispatcherRPC.Call(utils.APIerSv1GetTPDispatcherProfile,
+ if err := tpDispatcherRPC.Call(context.Background(), utils.APIerSv1GetTPDispatcherProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Dsp1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpDispatcher, reply) && !reflect.DeepEqual(revHosts, reply) {
@@ -197,7 +198,7 @@ func testTPDispatcherGetTPDispatcherAfterUpdate(t *testing.T) {
func testTPDispatcherRemTPDispatcher(t *testing.T) {
var resp string
- if err := tpDispatcherRPC.Call(utils.APIerSv1RemoveTPDispatcherProfile,
+ if err := tpDispatcherRPC.Call(context.Background(), utils.APIerSv1RemoveTPDispatcherProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Dsp1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -207,7 +208,7 @@ func testTPDispatcherRemTPDispatcher(t *testing.T) {
func testTPDispatcherGetTPDispatcherAfterRemove(t *testing.T) {
var reply *utils.TPDispatcherProfile
- if err := tpDispatcherRPC.Call(utils.APIerSv1GetTPDispatcherProfile,
+ if err := tpDispatcherRPC.Call(context.Background(), utils.APIerSv1GetTPDispatcherProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Dsp1"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tpfilters.go b/apier/v1/tpfilters.go
index e589f4a78..4256e00fc 100644
--- a/apier/v1/tpfilters.go
+++ b/apier/v1/tpfilters.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPFilterProfile creates a new FilterProfile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPFilterProfile(attrs *utils.TPFilterProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPFilterProfile(ctx *context.Context, attrs *utils.TPFilterProfile, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -38,7 +39,7 @@ func (apierSv1 *APIerSv1) SetTPFilterProfile(attrs *utils.TPFilterProfile, reply
}
// GetTPFilterProfile queries specific FilterProfile on tariff plan
-func (apierSv1 *APIerSv1) GetTPFilterProfile(attr *utils.TPTntID, reply *utils.TPFilterProfile) error {
+func (apierSv1 *APIerSv1) GetTPFilterProfile(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPFilterProfile) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -62,7 +63,7 @@ type AttrGetTPFilterProfileIds struct {
}
// GetTPFilterProfileIds queries FilterProfile identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPFilterProfileIds(attrs *AttrGetTPFilterProfileIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPFilterProfileIds(ctx *context.Context, attrs *AttrGetTPFilterProfileIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -79,7 +80,7 @@ func (apierSv1 *APIerSv1) GetTPFilterProfileIds(attrs *AttrGetTPFilterProfileIds
}
// RemoveTPFilterProfile removes specific FilterProfile on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPFilterProfile(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPFilterProfile(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpfilters_it_test.go b/apier/v1/tpfilters_it_test.go
index d7e619e87..212c2133d 100644
--- a/apier/v1/tpfilters_it_test.go
+++ b/apier/v1/tpfilters_it_test.go
@@ -22,14 +22,15 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"sort"
"strings"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ import (
var (
tpFilterCfgPath string
tpFilterCfg *config.CGRConfig
- tpFilterRPC *rpc.Client
+ tpFilterRPC *birpc.Client
tpFilter *utils.TPFilterProfile
tpFilterDelay int
tpFilterConfigDIR string //run tests for specific configuration
@@ -115,7 +116,7 @@ func testTPFilterRpcConn(t *testing.T) {
func ttestTPFilterGetTPFilterBeforeSet(t *testing.T) {
var reply *utils.TPFilterProfile
- if err := tpFilterRPC.Call(utils.APIerSv1GetTPFilterProfile,
+ if err := tpFilterRPC.Call(context.Background(), utils.APIerSv1GetTPFilterProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Filter"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -142,7 +143,7 @@ func testTPFilterSetTPFilter(t *testing.T) {
sort.Strings(tpFilter.Filters[0].Values)
var result string
- if err := tpFilterRPC.Call(utils.APIerSv1SetTPFilterProfile, tpFilter, &result); err != nil {
+ if err := tpFilterRPC.Call(context.Background(), utils.APIerSv1SetTPFilterProfile, tpFilter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -151,7 +152,7 @@ func testTPFilterSetTPFilter(t *testing.T) {
func testTPFilterGetTPFilterAfterSet(t *testing.T) {
var reply *utils.TPFilterProfile
- if err := tpFilterRPC.Call(utils.APIerSv1GetTPFilterProfile,
+ if err := tpFilterRPC.Call(context.Background(), utils.APIerSv1GetTPFilterProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Filter"}, &reply); err != nil {
t.Fatal(err)
}
@@ -164,7 +165,7 @@ func testTPFilterGetTPFilterAfterSet(t *testing.T) {
func testTPFilterGetFilterIds(t *testing.T) {
var result []string
expectedTPID := []string{"cgrates.org:Filter"}
- if err := tpFilterRPC.Call(utils.APIerSv1GetTPFilterProfileIds,
+ if err := tpFilterRPC.Call(context.Background(), utils.APIerSv1GetTPFilterProfileIds,
&AttrGetTPFilterProfileIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -191,7 +192,7 @@ func testTPFilterUpdateTPFilter(t *testing.T) {
return strings.Compare(tpFilter.Filters[i].Element, tpFilter.Filters[j].Element) == -1
})
var result string
- if err := tpFilterRPC.Call(utils.APIerSv1SetTPFilterProfile, tpFilter, &result); err != nil {
+ if err := tpFilterRPC.Call(context.Background(), utils.APIerSv1SetTPFilterProfile, tpFilter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -200,7 +201,7 @@ func testTPFilterUpdateTPFilter(t *testing.T) {
func testTPFilterGetTPFilterAfterUpdate(t *testing.T) {
var reply *utils.TPFilterProfile
- if err := tpFilterRPC.Call(utils.APIerSv1GetTPFilterProfile,
+ if err := tpFilterRPC.Call(context.Background(), utils.APIerSv1GetTPFilterProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Filter"}, &reply); err != nil {
t.Fatal(err)
}
@@ -216,7 +217,7 @@ func testTPFilterGetTPFilterAfterUpdate(t *testing.T) {
func testTPFilterRemTPFilter(t *testing.T) {
var resp string
- if err := tpFilterRPC.Call(utils.APIerSv1RemoveTPFilterProfile,
+ if err := tpFilterRPC.Call(context.Background(), utils.APIerSv1RemoveTPFilterProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Filter"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -226,7 +227,7 @@ func testTPFilterRemTPFilter(t *testing.T) {
func testTPFilterGetTPFilterAfterRemove(t *testing.T) {
var reply *utils.TPFilterProfile
- if err := tpFilterRPC.Call(utils.APIerSv1GetTPFilterProfile,
+ if err := tpFilterRPC.Call(context.Background(), utils.APIerSv1GetTPFilterProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "Filter"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tprates.go b/apier/v1/tprates.go
index 7c8ea93d0..5d02951b1 100644
--- a/apier/v1/tprates.go
+++ b/apier/v1/tprates.go
@@ -21,11 +21,12 @@ package v1
// This file deals with tp_rates management over APIs
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPRate creates a new rate within a tariff plan
-func (apierSv1 *APIerSv1) SetTPRate(attrs *utils.TPRateRALs, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPRate(ctx *context.Context, attrs *utils.TPRateRALs, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID, utils.RateSlots}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -42,7 +43,7 @@ type AttrGetTPRate struct {
}
// GetTPRate queries specific Rate on tariff plan
-func (apierSv1 *APIerSv1) GetTPRate(attrs *AttrGetTPRate, reply *utils.TPRateRALs) error {
+func (apierSv1 *APIerSv1) GetTPRate(ctx *context.Context, attrs *AttrGetTPRate, reply *utils.TPRateRALs) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -63,7 +64,7 @@ type AttrGetTPRateIds struct {
}
// GetTPRateIds queries rate identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPRateIds(attrs *AttrGetTPRateIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPRateIds(ctx *context.Context, attrs *AttrGetTPRateIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -80,7 +81,7 @@ func (apierSv1 *APIerSv1) GetTPRateIds(attrs *AttrGetTPRateIds, reply *[]string)
}
// RemoveTPRate removes specific Rate on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPRate(attrs *AttrGetTPRate, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPRate(ctx *context.Context, attrs *AttrGetTPRate, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tprates_it_test.go b/apier/v1/tprates_it_test.go
index 1ed88084c..3fc8380ed 100644
--- a/apier/v1/tprates_it_test.go
+++ b/apier/v1/tprates_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpRateCfgPath string
tpRateCfg *config.CGRConfig
- tpRateRPC *rpc.Client
+ tpRateRPC *birpc.Client
tpRate *utils.TPRateRALs
tpRateDelay int
tpRateConfigDIR string //run tests for specific configuration
@@ -117,7 +118,7 @@ func testTPRatesRpcConn(t *testing.T) {
func testTPRatesGetTPRateforeSet(t *testing.T) {
var reply *utils.TPRateRALs
- if err := tpRateRPC.Call(utils.APIerSv1GetTPRate,
+ if err := tpRateRPC.Call(context.Background(), utils.APIerSv1GetTPRate,
&AttrGetTPRate{TPid: "TPidTpRate", ID: "RT_FS_USERS"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -145,7 +146,7 @@ func testTPRatesSetTPRate(t *testing.T) {
},
}
var result string
- if err := tpRateRPC.Call(utils.APIerSv1SetTPRate, tpRate, &result); err != nil {
+ if err := tpRateRPC.Call(context.Background(), utils.APIerSv1SetTPRate, tpRate, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -154,7 +155,7 @@ func testTPRatesSetTPRate(t *testing.T) {
func testTPRatesGetTPRateAfterSet(t *testing.T) {
var reply *utils.TPRateRALs
- if err := tpRateRPC.Call(utils.APIerSv1GetTPRate, &AttrGetTPRate{TPid: "TPidTpRate", ID: tpRate.ID}, &reply); err != nil {
+ if err := tpRateRPC.Call(context.Background(), utils.APIerSv1GetTPRate, &AttrGetTPRate{TPid: "TPidTpRate", ID: tpRate.ID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpRate, reply) {
t.Errorf("Expecting : %+v, received: %+v", tpRate, reply)
@@ -164,7 +165,7 @@ func testTPRatesGetTPRateAfterSet(t *testing.T) {
func testTPRatesGetTPRateIds(t *testing.T) {
var result []string
expectedTPID := []string{"RT_FS_USERS"}
- if err := tpRateRPC.Call(utils.APIerSv1GetTPRateIds, &AttrGetTPRateIds{TPid: "TPidTpRate"}, &result); err != nil {
+ if err := tpRateRPC.Call(context.Background(), utils.APIerSv1GetTPRateIds, &AttrGetTPRateIds{TPid: "TPidTpRate"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
t.Errorf("Expecting: %+v, received: %+v", expectedTPID, result)
@@ -196,7 +197,7 @@ func testTPRatesUpdateTPRate(t *testing.T) {
GroupIntervalStart: "3s",
},
}
- if err := tpRateRPC.Call(utils.APIerSv1SetTPRate, tpRate, &result); err != nil {
+ if err := tpRateRPC.Call(context.Background(), utils.APIerSv1SetTPRate, tpRate, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -205,7 +206,7 @@ func testTPRatesUpdateTPRate(t *testing.T) {
func testTPRatesGetTPRateAfterUpdate(t *testing.T) {
var reply *utils.TPRateRALs
- if err := tpRateRPC.Call(utils.APIerSv1GetTPRate,
+ if err := tpRateRPC.Call(context.Background(), utils.APIerSv1GetTPRate,
&AttrGetTPRate{TPid: "TPidTpRate", ID: tpRate.ID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpRate, reply) {
@@ -216,7 +217,7 @@ func testTPRatesGetTPRateAfterUpdate(t *testing.T) {
func testTPRatesRemoveTPRate(t *testing.T) {
var resp string
- if err := tpRateRPC.Call(utils.APIerSv1RemoveTPRate,
+ if err := tpRateRPC.Call(context.Background(), utils.APIerSv1RemoveTPRate,
&AttrGetTPRate{TPid: "TPidTpRate", ID: "RT_FS_USERS"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -226,7 +227,7 @@ func testTPRatesRemoveTPRate(t *testing.T) {
func testTPRatesGetTPRateAfterRemove(t *testing.T) {
var reply *utils.TPRateRALs
- if err := tpRateRPC.Call(utils.APIerSv1GetTPRate,
+ if err := tpRateRPC.Call(context.Background(), utils.APIerSv1GetTPRate,
&AttrGetTPRate{TPid: "TPidTpRate", ID: "RT_FS_USERS"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/tpratingplans.go b/apier/v1/tpratingplans.go
index d27c41075..550ac50fc 100644
--- a/apier/v1/tpratingplans.go
+++ b/apier/v1/tpratingplans.go
@@ -21,11 +21,12 @@ package v1
// This file deals with tp_destrates_timing management over APIs
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPRatingPlan creates a new DestinationRateTiming profile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPRatingPlan(attrs *utils.TPRatingPlan, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPRatingPlan(ctx *context.Context, attrs *utils.TPRatingPlan, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID, utils.RatingPlanBindings}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -43,7 +44,7 @@ type AttrGetTPRatingPlan struct {
}
// GetTPRatingPlan queries specific RatingPlan profile on tariff plan
-func (apierSv1 *APIerSv1) GetTPRatingPlan(attrs *AttrGetTPRatingPlan, reply *utils.TPRatingPlan) error {
+func (apierSv1 *APIerSv1) GetTPRatingPlan(ctx *context.Context, attrs *AttrGetTPRatingPlan, reply *utils.TPRatingPlan) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -64,7 +65,7 @@ type AttrGetTPRatingPlanIds struct {
}
// GetTPRatingPlanIds queries RatingPlan identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPRatingPlanIds(attrs *AttrGetTPRatingPlanIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPRatingPlanIds(ctx *context.Context, attrs *AttrGetTPRatingPlanIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -81,7 +82,7 @@ func (apierSv1 *APIerSv1) GetTPRatingPlanIds(attrs *AttrGetTPRatingPlanIds, repl
}
// RemoveTPRatingPlan removes specific RatingPlan on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPRatingPlan(attrs *AttrGetTPRatingPlan, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPRatingPlan(ctx *context.Context, attrs *AttrGetTPRatingPlan, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpratingplans_it_test.go b/apier/v1/tpratingplans_it_test.go
index 73b0c7d89..35243b592 100644
--- a/apier/v1/tpratingplans_it_test.go
+++ b/apier/v1/tpratingplans_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpRatingPlanCfgPath string
tpRatingPlanCfg *config.CGRConfig
- tpRatingPlanRPC *rpc.Client
+ tpRatingPlanRPC *birpc.Client
tpRatingPlan *utils.TPRatingPlan
tpRatingPlanDelay int
tpRatingPlanConfigDIR string //run tests for specific configuration
@@ -117,7 +118,7 @@ func testTPRatingPlansRpcConn(t *testing.T) {
func testTPRatingPlansGetTPRatingPlanBeforeSet(t *testing.T) {
var reply *utils.TPRatingPlan
- if err := tpRatingPlanRPC.Call(utils.APIerSv1GetTPRatingPlan,
+ if err := tpRatingPlanRPC.Call(context.Background(), utils.APIerSv1GetTPRatingPlan,
&AttrGetTPRatingPlan{TPid: "TPRP1", ID: "Plan1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -141,7 +142,7 @@ func testTPRatingPlansSetTPRatingPlan(t *testing.T) {
},
}
var result string
- if err := tpRatingPlanRPC.Call(utils.APIerSv1SetTPRatingPlan, tpRatingPlan, &result); err != nil {
+ if err := tpRatingPlanRPC.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, tpRatingPlan, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -150,7 +151,7 @@ func testTPRatingPlansSetTPRatingPlan(t *testing.T) {
func testTPRatingPlansGetTPRatingPlanAfterSet(t *testing.T) {
var respond *utils.TPRatingPlan
- if err := tpRatingPlanRPC.Call(utils.APIerSv1GetTPRatingPlan,
+ if err := tpRatingPlanRPC.Call(context.Background(), utils.APIerSv1GetTPRatingPlan,
&AttrGetTPRatingPlan{TPid: "TPRP1", ID: "Plan1"}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpRatingPlan.TPid, respond.TPid) {
@@ -165,7 +166,7 @@ func testTPRatingPlansGetTPRatingPlanAfterSet(t *testing.T) {
func testTPRatingPlansGetTPRatingPlanIds(t *testing.T) {
var result []string
expected := []string{"Plan1"}
- if err := tpRatingPlanRPC.Call(utils.APIerSv1GetTPRatingPlanIds,
+ if err := tpRatingPlanRPC.Call(context.Background(), utils.APIerSv1GetTPRatingPlanIds,
&AttrGetTPRatingPlanIds{TPid: tpRatingPlan.TPid}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, result) {
@@ -192,7 +193,7 @@ func testTPRatingPlansUpdateTPRatingPlan(t *testing.T) {
},
}
var result string
- if err := tpRatingPlanRPC.Call(utils.APIerSv1SetTPRatingPlan, tpRatingPlan, &result); err != nil {
+ if err := tpRatingPlanRPC.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, tpRatingPlan, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -201,7 +202,7 @@ func testTPRatingPlansUpdateTPRatingPlan(t *testing.T) {
func testTPRatingPlansGetTPRatingPlanAfterUpdate(t *testing.T) {
var respond *utils.TPRatingPlan
- if err := tpRatingPlanRPC.Call(utils.APIerSv1GetTPRatingPlan,
+ if err := tpRatingPlanRPC.Call(context.Background(), utils.APIerSv1GetTPRatingPlan,
&AttrGetTPRatingPlan{TPid: "TPRP1", ID: "Plan1"}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpRatingPlan.TPid, respond.TPid) {
@@ -215,7 +216,7 @@ func testTPRatingPlansGetTPRatingPlanAfterUpdate(t *testing.T) {
func testTPRatingPlansRemoveTPRatingPlan(t *testing.T) {
var resp string
- if err := tpRatingPlanRPC.Call(utils.APIerSv1RemoveTPRatingPlan,
+ if err := tpRatingPlanRPC.Call(context.Background(), utils.APIerSv1RemoveTPRatingPlan,
&AttrGetTPRatingPlan{TPid: "TPRP1", ID: "Plan1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -225,7 +226,7 @@ func testTPRatingPlansRemoveTPRatingPlan(t *testing.T) {
func testTPRatingPlansGetTPRatingPlanAfterRemove(t *testing.T) {
var respond *utils.TPRatingPlan
- if err := tpRatingPlanRPC.Call(utils.APIerSv1GetTPRatingPlan,
+ if err := tpRatingPlanRPC.Call(context.Background(), utils.APIerSv1GetTPRatingPlan,
&AttrGetTPRatingPlan{TPid: "TPRP1", ID: "Plan1"}, &respond); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/tpratingprofiles.go b/apier/v1/tpratingprofiles.go
index d6baa1881..db91d17f3 100644
--- a/apier/v1/tpratingprofiles.go
+++ b/apier/v1/tpratingprofiles.go
@@ -21,11 +21,12 @@ package v1
// This file deals with tp_rate_profiles management over APIs
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPRatingProfile creates a new RatingProfile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPRatingProfile(attrs *utils.TPRatingProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPRatingProfile(ctx *context.Context, attrs *utils.TPRatingProfile, reply *string) error {
if missing := utils.MissingStructFields(attrs,
[]string{utils.TPid, utils.LoadId, utils.Category, utils.Subject, utils.RatingPlanActivations}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
@@ -41,7 +42,7 @@ func (apierSv1 *APIerSv1) SetTPRatingProfile(attrs *utils.TPRatingProfile, reply
}
// GetTPRatingProfilesByLoadID queries specific RatingProfile on tariff plan
-func (apierSv1 *APIerSv1) GetTPRatingProfilesByLoadID(attrs *utils.TPRatingProfile, reply *[]*utils.TPRatingProfile) error {
+func (apierSv1 *APIerSv1) GetTPRatingProfilesByLoadID(ctx *context.Context, attrs *utils.TPRatingProfile, reply *[]*utils.TPRatingProfile) error {
mndtryFlds := []string{utils.TPid, utils.LoadId}
if len(attrs.Subject) != 0 { // If Subject provided as filter, make all related fields mandatory
mndtryFlds = append(mndtryFlds, utils.Category, utils.Subject)
@@ -64,7 +65,7 @@ func (apierSv1 *APIerSv1) GetTPRatingProfilesByLoadID(attrs *utils.TPRatingProfi
}
// GetTPRatingProfileLoadIds queries RatingProfile identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPRatingProfileLoadIds(attrs *utils.AttrTPRatingProfileIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPRatingProfileLoadIds(ctx *context.Context, attrs *utils.AttrTPRatingProfileIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -94,7 +95,7 @@ type AttrGetTPRatingProfile struct {
}
// GetTPRatingProfile queries specific RatingProfile on tariff plan
-func (apierSv1 *APIerSv1) GetTPRatingProfile(attrs *AttrGetTPRatingProfile, reply *utils.TPRatingProfile) error {
+func (apierSv1 *APIerSv1) GetTPRatingProfile(ctx *context.Context, attrs *AttrGetTPRatingProfile, reply *utils.TPRatingProfile) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.RatingProfileID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -120,7 +121,7 @@ type AttrGetTPRatingProfileIds struct {
}
// GetTPRatingProfileIds queries RatingProfiles identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPRatingProfileIds(attrs *AttrGetTPRatingProfileIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPRatingProfileIds(ctx *context.Context, attrs *AttrGetTPRatingProfileIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -138,7 +139,7 @@ func (apierSv1 *APIerSv1) GetTPRatingProfileIds(attrs *AttrGetTPRatingProfileIds
}
// RemoveTPRatingProfile removes specific RatingProfiles on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPRatingProfile(attrs *AttrGetTPRatingProfile, reply *string) (err error) {
+func (apierSv1 *APIerSv1) RemoveTPRatingProfile(ctx *context.Context, attrs *AttrGetTPRatingProfile, reply *string) (err error) {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.RatingProfileID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpratingprofiles_it_test.go b/apier/v1/tpratingprofiles_it_test.go
index 09ccad258..15be9234e 100644
--- a/apier/v1/tpratingprofiles_it_test.go
+++ b/apier/v1/tpratingprofiles_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpRatingProfileCfgPath string
tpRatingProfileCfg *config.CGRConfig
- tpRatingProfileRPC *rpc.Client
+ tpRatingProfileRPC *birpc.Client
tpRatingProfile *utils.TPRatingProfile
tpRatingProfileDelay int
tpRatingProfileConfigDIR string //run tests for specific configuration
@@ -120,7 +121,7 @@ func testTPRatingProfilesRpcConn(t *testing.T) {
func testTPRatingProfilesGetTPRatingProfileBeforeSet(t *testing.T) {
var reply *utils.TPRatingProfile
- if err := tpRatingProfileRPC.Call(utils.APIerSv1GetTPRatingProfile,
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1GetTPRatingProfile,
&AttrGetTPRatingProfile{TPid: "TPRProf1", RatingProfileID: tpRatingProfileID}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -147,7 +148,7 @@ func testTPRatingProfilesSetTPRatingProfile(t *testing.T) {
},
}
var result string
- if err := tpRatingProfileRPC.Call(utils.APIerSv1SetTPRatingProfile, tpRatingProfile, &result); err != nil {
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, tpRatingProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -156,7 +157,7 @@ func testTPRatingProfilesSetTPRatingProfile(t *testing.T) {
func testTPRatingProfilesGetTPRatingProfileAfterSet(t *testing.T) {
var respond *utils.TPRatingProfile
- if err := tpRatingProfileRPC.Call(utils.APIerSv1GetTPRatingProfile,
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1GetTPRatingProfile,
&AttrGetTPRatingProfile{TPid: "TPRProf1", RatingProfileID: tpRatingProfileID}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpRatingProfile.TPid, respond.TPid) {
@@ -177,7 +178,7 @@ func testTPRatingProfilesGetTPRatingProfileAfterSet(t *testing.T) {
func testTPRatingProfilesGetTPRatingProfileLoadIds(t *testing.T) {
var result []string
expected := []string{"RPrf"}
- if err := tpRatingProfileRPC.Call(utils.APIerSv1GetTPRatingProfileLoadIds,
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1GetTPRatingProfileLoadIds,
&utils.AttrTPRatingProfileIds{TPid: tpRatingProfile.TPid, Tenant: tpRatingProfile.Tenant,
Category: tpRatingProfile.Category, Subject: tpRatingProfile.Subject}, &result); err != nil {
t.Error(err)
@@ -188,7 +189,7 @@ func testTPRatingProfilesGetTPRatingProfileLoadIds(t *testing.T) {
func testTPRatingProfilesGetTPRatingProfilesByLoadID(t *testing.T) {
var respond *[]*utils.TPRatingProfile
- if err := tpRatingProfileRPC.Call(utils.APIerSv1GetTPRatingProfilesByLoadID,
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1GetTPRatingProfilesByLoadID,
&utils.TPRatingProfile{TPid: "TPRProf1", LoadId: "RPrf", Tenant: "Tenant1"}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpRatingProfile.TPid, (*respond)[0].TPid) {
@@ -225,7 +226,7 @@ func testTPRatingProfilesUpdateTPRatingProfile(t *testing.T) {
FallbackSubjects: "Retreat",
},
}
- if err := tpRatingProfileRPC.Call(utils.APIerSv1SetTPRatingProfile, tpRatingProfile, &result); err != nil {
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, tpRatingProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -234,7 +235,7 @@ func testTPRatingProfilesUpdateTPRatingProfile(t *testing.T) {
func testTPRatingProfilesGetTPRatingProfileAfterUpdate(t *testing.T) {
var respond *utils.TPRatingProfile
- if err := tpRatingProfileRPC.Call(utils.APIerSv1GetTPRatingProfile,
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1GetTPRatingProfile,
&AttrGetTPRatingProfile{TPid: "TPRProf1", RatingProfileID: tpRatingProfileID}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpRatingProfile.TPid, respond.TPid) {
@@ -255,7 +256,7 @@ func testTPRatingProfilesGetTPRatingProfileAfterUpdate(t *testing.T) {
func testTPRatingProfilesGetTPRatingProfileIds(t *testing.T) {
var respond []string
expected := []string{"RPrf:Tenant1:Category:Subject"}
- if err := tpRatingProfileRPC.Call(utils.APIerSv1GetTPRatingProfileIds,
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1GetTPRatingProfileIds,
&AttrGetTPRatingProfileIds{TPid: "TPRProf1"}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, respond) {
@@ -265,7 +266,7 @@ func testTPRatingProfilesGetTPRatingProfileIds(t *testing.T) {
func testTPRatingProfilesRemoveTPRatingProfile(t *testing.T) {
var resp string
- if err := tpRatingProfileRPC.Call(utils.APIerSv1RemoveTPRatingProfile,
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1RemoveTPRatingProfile,
&AttrGetTPRatingProfile{TPid: "TPRProf1", RatingProfileID: utils.ConcatenatedKey(tpRatingProfile.LoadId, tpRatingProfile.Tenant, tpRatingProfile.Category, tpRatingProfile.Subject)}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -275,7 +276,7 @@ func testTPRatingProfilesRemoveTPRatingProfile(t *testing.T) {
func testTPRatingProfilesGetTPRatingProfileAfterRemove(t *testing.T) {
var respond *utils.TPRatingProfile
- if err := tpRatingProfileRPC.Call(utils.APIerSv1GetTPRatingProfile,
+ if err := tpRatingProfileRPC.Call(context.Background(), utils.APIerSv1GetTPRatingProfile,
&AttrGetTPRatingProfile{TPid: "TPRProf1", RatingProfileID: tpRatingProfileID}, &respond); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/tpresources.go b/apier/v1/tpresources.go
index cb016ce45..0b7aeb307 100644
--- a/apier/v1/tpresources.go
+++ b/apier/v1/tpresources.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPResource creates a new resource within a tariff plan
-func (apierSv1 *APIerSv1) SetTPResource(attr *utils.TPResourceProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPResource(ctx *context.Context, attr *utils.TPResourceProfile, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID, utils.Limit}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -38,7 +39,7 @@ func (apierSv1 *APIerSv1) SetTPResource(attr *utils.TPResourceProfile, reply *st
}
// GetTPResource queries specific Resource on Tariff plan
-func (apierSv1 *APIerSv1) GetTPResource(attr *utils.TPTntID, reply *utils.TPResourceProfile) error {
+func (apierSv1 *APIerSv1) GetTPResource(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPResourceProfile) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -62,7 +63,7 @@ type AttrGetTPResourceIds struct {
}
// GetTPResourceIDs queries Resource identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPResourceIDs(attrs *AttrGetTPResourceIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPResourceIDs(ctx *context.Context, attrs *AttrGetTPResourceIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -79,7 +80,7 @@ func (apierSv1 *APIerSv1) GetTPResourceIDs(attrs *AttrGetTPResourceIds, reply *[
}
// RemoveTPResource removes specific Resource on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPResource(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPResource(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpresources_it_test.go b/apier/v1/tpresources_it_test.go
index df97db955..3e45b45ae 100644
--- a/apier/v1/tpresources_it_test.go
+++ b/apier/v1/tpresources_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"sort"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
tpResCfgPath string
tpResCfg *config.CGRConfig
- tpResRPC *rpc.Client
+ tpResRPC *birpc.Client
tpRes *utils.TPResourceProfile
tpResDelay int
tpResConfigDIR string //run tests for specific configuration
@@ -112,7 +113,7 @@ func testTPResRpcConn(t *testing.T) {
func testTPResGetTPResourceBeforeSet(t *testing.T) {
var reply *utils.TPResourceProfile
- if err := tpResRPC.Call(utils.APIerSv1GetTPResource,
+ if err := tpResRPC.Call(context.Background(), utils.APIerSv1GetTPResource,
&utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -139,7 +140,7 @@ func testTPResSetTPResource(t *testing.T) {
}
sort.Strings(tpRes.ThresholdIDs)
var result string
- if err := tpResRPC.Call(utils.APIerSv1SetTPResource, tpRes, &result); err != nil {
+ if err := tpResRPC.Call(context.Background(), utils.APIerSv1SetTPResource, tpRes, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -148,7 +149,7 @@ func testTPResSetTPResource(t *testing.T) {
func testTPResGetTPResourceAfterSet(t *testing.T) {
var respond *utils.TPResourceProfile
- if err := tpResRPC.Call(utils.APIerSv1GetTPResource, &utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"},
+ if err := tpResRPC.Call(context.Background(), utils.APIerSv1GetTPResource, &utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"},
&respond); err != nil {
t.Fatal(err)
}
@@ -162,7 +163,7 @@ func testTPResUpdateTPResource(t *testing.T) {
var result string
tpRes.FilterIDs = []string{"FLTR_1", "FLTR_STS1"}
sort.Strings(tpRes.FilterIDs)
- if err := tpResRPC.Call(utils.APIerSv1SetTPResource, tpRes, &result); err != nil {
+ if err := tpResRPC.Call(context.Background(), utils.APIerSv1SetTPResource, tpRes, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -171,7 +172,7 @@ func testTPResUpdateTPResource(t *testing.T) {
func testTPResGetTPResourceAfterUpdate(t *testing.T) {
var expectedTPR *utils.TPResourceProfile
- if err := tpResRPC.Call(utils.APIerSv1GetTPResource, &utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"},
+ if err := tpResRPC.Call(context.Background(), utils.APIerSv1GetTPResource, &utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"},
&expectedTPR); err != nil {
t.Fatal(err)
}
@@ -184,7 +185,7 @@ func testTPResGetTPResourceAfterUpdate(t *testing.T) {
func testTPResRemoveTPResource(t *testing.T) {
var resp string
- if err := tpResRPC.Call(utils.APIerSv1RemoveTPResource, &utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"},
+ if err := tpResRPC.Call(context.Background(), utils.APIerSv1RemoveTPResource, &utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"},
&resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -194,7 +195,7 @@ func testTPResRemoveTPResource(t *testing.T) {
func testTPResGetTPResourceAfterRemove(t *testing.T) {
var respond *utils.TPResourceProfile
- if err := tpResRPC.Call(utils.APIerSv1GetTPResource, &utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"},
+ if err := tpResRPC.Call(context.Background(), utils.APIerSv1GetTPResource, &utils.TPTntID{TPid: "TPR1", Tenant: "cgrates.org", ID: "ResGroup1"},
&respond); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/apier/v1/tproutes.go b/apier/v1/tproutes.go
index 3aae994b0..1aa3865e2 100644
--- a/apier/v1/tproutes.go
+++ b/apier/v1/tproutes.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPRouteProfile creates a new RouteProfile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPRouteProfile(attrs *utils.TPRouteProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPRouteProfile(ctx *context.Context, attrs *utils.TPRouteProfile, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -38,7 +39,7 @@ func (apierSv1 *APIerSv1) SetTPRouteProfile(attrs *utils.TPRouteProfile, reply *
}
// GetTPRouteProfile queries specific RouteProfile on tariff plan
-func (apierSv1 *APIerSv1) GetTPRouteProfile(attr *utils.TPTntID, reply *utils.TPRouteProfile) error {
+func (apierSv1 *APIerSv1) GetTPRouteProfile(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPRouteProfile) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -62,7 +63,7 @@ type AttrGetTPRouteProfileIDs struct {
}
// GetTPRouteProfileIDs queries RouteProfile identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPRouteProfileIDs(attrs *AttrGetTPRouteProfileIDs, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPRouteProfileIDs(ctx *context.Context, attrs *AttrGetTPRouteProfileIDs, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -79,7 +80,7 @@ func (apierSv1 *APIerSv1) GetTPRouteProfileIDs(attrs *AttrGetTPRouteProfileIDs,
}
// RemoveTPRouteProfile removes specific RouteProfile on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPRouteProfile(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPRouteProfile(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tproutes_it_test.go b/apier/v1/tproutes_it_test.go
index 6edf46c5c..ca3fea00c 100644
--- a/apier/v1/tproutes_it_test.go
+++ b/apier/v1/tproutes_it_test.go
@@ -22,14 +22,15 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"sort"
"strings"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ import (
var (
tpRouteCfgPath string
tpRouteCfg *config.CGRConfig
- tpRouteRPC *rpc.Client
+ tpRouteRPC *birpc.Client
tpRoutePrf *utils.TPRouteProfile
tpRouteDelay int
tpRouteConfigDIR string //run tests for specific configuration
@@ -115,7 +116,7 @@ func testTPRouteRPCConn(t *testing.T) {
func testTPRouteGetTPRouteBeforeSet(t *testing.T) {
var reply *utils.TPRoute
- if err := tpRouteRPC.Call(utils.APIerSv1GetTPRouteProfile,
+ if err := tpRouteRPC.Call(context.Background(), utils.APIerSv1GetTPRouteProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "RoutePrf"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -150,7 +151,7 @@ func testTPRouteSetTPRoute(t *testing.T) {
}
sort.Strings(tpRoutePrf.FilterIDs)
var result string
- if err := tpRouteRPC.Call(utils.APIerSv1SetTPRouteProfile,
+ if err := tpRouteRPC.Call(context.Background(), utils.APIerSv1SetTPRouteProfile,
tpRoutePrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -160,7 +161,7 @@ func testTPRouteSetTPRoute(t *testing.T) {
func testTPRouteGetTPRouteAfterSet(t *testing.T) {
var reply *utils.TPRouteProfile
- if err := tpRouteRPC.Call(utils.APIerSv1GetTPRouteProfile,
+ if err := tpRouteRPC.Call(context.Background(), utils.APIerSv1GetTPRouteProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "RoutePrf"}, &reply); err != nil {
t.Fatal(err)
}
@@ -173,7 +174,7 @@ func testTPRouteGetTPRouteAfterSet(t *testing.T) {
func testTPRouteGetTPRouteIDs(t *testing.T) {
var result []string
expectedTPID := []string{"cgrates.org:RoutePrf"}
- if err := tpRouteRPC.Call(utils.APIerSv1GetTPRouteProfileIDs,
+ if err := tpRouteRPC.Call(context.Background(), utils.APIerSv1GetTPRouteProfileIDs,
&AttrGetTPRouteProfileIDs{TPid: "TP1"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedTPID, result) {
@@ -208,7 +209,7 @@ func testTPRouteUpdateTPRoute(t *testing.T) {
},
}
var result string
- if err := tpRouteRPC.Call(utils.APIerSv1SetTPRouteProfile,
+ if err := tpRouteRPC.Call(context.Background(), utils.APIerSv1SetTPRouteProfile,
tpRoutePrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -221,7 +222,7 @@ func testTPRouteUpdateTPRoute(t *testing.T) {
func testTPRouteGetTPRouteAfterUpdate(t *testing.T) {
var reply *utils.TPRouteProfile
- if err := tpRouteRPC.Call(utils.APIerSv1GetTPRouteProfile,
+ if err := tpRouteRPC.Call(context.Background(), utils.APIerSv1GetTPRouteProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "RoutePrf"}, &reply); err != nil {
t.Fatal(err)
}
@@ -236,7 +237,7 @@ func testTPRouteGetTPRouteAfterUpdate(t *testing.T) {
func testTPRouteRemTPRoute(t *testing.T) {
var resp string
- if err := tpRouteRPC.Call(utils.APIerSv1RemoveTPRouteProfile,
+ if err := tpRouteRPC.Call(context.Background(), utils.APIerSv1RemoveTPRouteProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "RoutePrf"},
&resp); err != nil {
t.Error(err)
@@ -247,7 +248,7 @@ func testTPRouteRemTPRoute(t *testing.T) {
func testTPRouteGetTPRouteAfterRemove(t *testing.T) {
var reply *utils.TPRouteProfile
- if err := tpRouteRPC.Call(utils.APIerSv1GetTPRouteProfile,
+ if err := tpRouteRPC.Call(context.Background(), utils.APIerSv1GetTPRouteProfile,
&utils.TPTntID{TPid: "TP1", Tenant: "cgrates.org", ID: "RoutePrf"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tpsharedgroups.go b/apier/v1/tpsharedgroups.go
index 1b1b5ad9b..f4c17d60c 100644
--- a/apier/v1/tpsharedgroups.go
+++ b/apier/v1/tpsharedgroups.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPSharedGroups creates a new SharedGroups profile within a tariff plan
-func (apierSv1 *APIerSv1) SetTPSharedGroups(attrs *utils.TPSharedGroups, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPSharedGroups(ctx *context.Context, attrs *utils.TPSharedGroups, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID, utils.SharedGroups}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -40,7 +41,7 @@ type AttrGetTPSharedGroups struct {
}
// GetTPSharedGroups queries specific SharedGroup on tariff plan
-func (apierSv1 *APIerSv1) GetTPSharedGroups(attrs *AttrGetTPSharedGroups, reply *utils.TPSharedGroups) error {
+func (apierSv1 *APIerSv1) GetTPSharedGroups(ctx *context.Context, attrs *AttrGetTPSharedGroups, reply *utils.TPSharedGroups) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -61,7 +62,7 @@ type AttrGetTPSharedGroupIds struct {
}
// GetTPSharedGroupIds queries SharedGroups identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPSharedGroupIds(attrs *AttrGetTPSharedGroupIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPSharedGroupIds(ctx *context.Context, attrs *AttrGetTPSharedGroupIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -78,7 +79,7 @@ func (apierSv1 *APIerSv1) GetTPSharedGroupIds(attrs *AttrGetTPSharedGroupIds, re
}
// RemoveTPSharedGroups removes specific SharedGroups on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPSharedGroups(attrs *AttrGetTPSharedGroups, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPSharedGroups(ctx *context.Context, attrs *AttrGetTPSharedGroups, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpsharedgroups_it_test.go b/apier/v1/tpsharedgroups_it_test.go
index 5f80beed4..8c3f493cb 100644
--- a/apier/v1/tpsharedgroups_it_test.go
+++ b/apier/v1/tpsharedgroups_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpSharedGroupCfgPath string
tpSharedGroupCfg *config.CGRConfig
- tpSharedGroupRPC *rpc.Client
+ tpSharedGroupRPC *birpc.Client
tpSharedGroups *utils.TPSharedGroups
tpSharedGroupDelay int
tpSharedGroupConfigDIR string //run tests for specific configuration
@@ -117,7 +118,7 @@ func testTPSharedGroupsRpcConn(t *testing.T) {
func testTPSharedGroupsBeforeSet(t *testing.T) {
var reply *utils.TPSharedGroups
- if err := tpSharedGroupRPC.Call(utils.APIerSv1GetTPSharedGroups, &AttrGetTPSharedGroups{TPid: "TPS1", ID: "Group1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := tpSharedGroupRPC.Call(context.Background(), utils.APIerSv1GetTPSharedGroups, &AttrGetTPSharedGroups{TPid: "TPS1", ID: "Group1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
@@ -140,7 +141,7 @@ func testTPSharedGroupsSetSharedGroups(t *testing.T) {
},
}
var result string
- if err := tpSharedGroupRPC.Call(utils.APIerSv1SetTPSharedGroups, &tpSharedGroups, &result); err != nil {
+ if err := tpSharedGroupRPC.Call(context.Background(), utils.APIerSv1SetTPSharedGroups, &tpSharedGroups, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -149,7 +150,7 @@ func testTPSharedGroupsSetSharedGroups(t *testing.T) {
func testTPSharedGroupsAfterSet(t *testing.T) {
var respond *utils.TPSharedGroups
- if err := tpSharedGroupRPC.Call(utils.APIerSv1GetTPSharedGroups, &AttrGetTPSharedGroups{TPid: tpSharedGroups.TPid, ID: tpSharedGroups.ID}, &respond); err != nil {
+ if err := tpSharedGroupRPC.Call(context.Background(), utils.APIerSv1GetTPSharedGroups, &AttrGetTPSharedGroups{TPid: tpSharedGroups.TPid, ID: tpSharedGroups.ID}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpSharedGroups.TPid, respond.TPid) {
t.Errorf("Expecting: %+v, received: %+v", tpSharedGroups.TPid, respond.TPid)
@@ -163,7 +164,7 @@ func testTPSharedGroupsAfterSet(t *testing.T) {
func testTPSharedGroupsGetTPSharedGroupIds(t *testing.T) {
var result []string
expectedTPID := []string{"Group1"}
- if err := tpSharedGroupRPC.Call(utils.APIerSv1GetTPSharedGroupIds,
+ if err := tpSharedGroupRPC.Call(context.Background(), utils.APIerSv1GetTPSharedGroupIds,
&AttrGetTPSharedGroupIds{tpSharedGroups.TPid, utils.PaginatorWithSearch{}}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result, expectedTPID) {
@@ -190,7 +191,7 @@ func testTPSharedGroupsUpdateTPShareGroups(t *testing.T) {
RatingSubject: "SubPlus",
},
}
- if err := tpSharedGroupRPC.Call(utils.APIerSv1SetTPSharedGroups, tpSharedGroups, &result); err != nil {
+ if err := tpSharedGroupRPC.Call(context.Background(), utils.APIerSv1SetTPSharedGroups, tpSharedGroups, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -199,7 +200,7 @@ func testTPSharedGroupsUpdateTPShareGroups(t *testing.T) {
func testTpSharedGroupsGetTPSharedGroupsAfterUpdate(t *testing.T) {
var expectedTPS *utils.TPSharedGroups
- if err := tpSharedGroupRPC.Call(utils.APIerSv1GetTPSharedGroups, &AttrGetTPSharedGroups{TPid: tpSharedGroups.TPid, ID: tpSharedGroups.ID}, &expectedTPS); err != nil {
+ if err := tpSharedGroupRPC.Call(context.Background(), utils.APIerSv1GetTPSharedGroups, &AttrGetTPSharedGroups{TPid: tpSharedGroups.TPid, ID: tpSharedGroups.ID}, &expectedTPS); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpSharedGroups.TPid, expectedTPS.TPid) {
t.Errorf("Expecting: %+v, received: %+v", tpSharedGroups.TPid, expectedTPS.TPid)
@@ -212,7 +213,7 @@ func testTpSharedGroupsGetTPSharedGroupsAfterUpdate(t *testing.T) {
func testTPSharedGroupsRemoveTPSharedGroups(t *testing.T) {
var resp string
- if err := tpSharedGroupRPC.Call(utils.APIerSv1RemoveTPSharedGroups, &AttrGetTPSharedGroups{TPid: tpSharedGroups.TPid, ID: tpSharedGroups.ID}, &resp); err != nil {
+ if err := tpSharedGroupRPC.Call(context.Background(), utils.APIerSv1RemoveTPSharedGroups, &AttrGetTPSharedGroups{TPid: tpSharedGroups.TPid, ID: tpSharedGroups.ID}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
@@ -221,7 +222,7 @@ func testTPSharedGroupsRemoveTPSharedGroups(t *testing.T) {
func testTPSharedGroupsGetTPSharedGroupsAfterRemove(t *testing.T) {
var reply *utils.TPSharedGroups
- if err := tpSharedGroupRPC.Call(utils.APIerSv1GetTPSharedGroups, &AttrGetTPSharedGroups{TPid: "TPS1", ID: "Group1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := tpSharedGroupRPC.Call(context.Background(), utils.APIerSv1GetTPSharedGroups, &AttrGetTPSharedGroups{TPid: "TPS1", ID: "Group1"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
diff --git a/apier/v1/tpstats.go b/apier/v1/tpstats.go
index 99456fb61..fbf42214a 100644
--- a/apier/v1/tpstats.go
+++ b/apier/v1/tpstats.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPStat creates a new stat within a tariff plan
-func (apierSv1 *APIerSv1) SetTPStat(attr *utils.TPStatProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPStat(ctx *context.Context, attr *utils.TPStatProfile, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -38,7 +39,7 @@ func (apierSv1 *APIerSv1) SetTPStat(attr *utils.TPStatProfile, reply *string) er
}
// GetTPStat queries specific Stat on Tariff plan
-func (apierSv1 *APIerSv1) GetTPStat(attr *utils.TPTntID, reply *utils.TPStatProfile) error {
+func (apierSv1 *APIerSv1) GetTPStat(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPStatProfile) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -63,7 +64,7 @@ type AttrGetTPStatIds struct {
}
// GetTPStatIDs queries Stat identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPStatIDs(attrs *AttrGetTPStatIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPStatIDs(ctx *context.Context, attrs *AttrGetTPStatIds, reply *[]string) error {
if missing := utils.MissingStructFields(&attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -83,7 +84,7 @@ func (apierSv1 *APIerSv1) GetTPStatIDs(attrs *AttrGetTPStatIds, reply *[]string)
}
// RemoveTPStat removes specific Stat on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPStat(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPStat(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpstats_it_test.go b/apier/v1/tpstats_it_test.go
index 271ee2472..de9334db3 100644
--- a/apier/v1/tpstats_it_test.go
+++ b/apier/v1/tpstats_it_test.go
@@ -22,14 +22,15 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"sort"
"strings"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ import (
var (
tpStatCfgPath string
tpStatCfg *config.CGRConfig
- tpStatRPC *rpc.Client
+ tpStatRPC *birpc.Client
tpStat *utils.TPStatProfile
tpStatDelay int
tpStatConfigDIR string //run tests for specific configuration
@@ -113,7 +114,7 @@ func testTPStatsRpcConn(t *testing.T) {
func testTPStatsGetTPStatBeforeSet(t *testing.T) {
var reply *utils.TPStatProfile
- if err := tpStatRPC.Call(utils.APIerSv1GetTPStat,
+ if err := tpStatRPC.Call(context.Background(), utils.APIerSv1GetTPStat,
&utils.TPTntID{TPid: "TPS1", Tenant: "cgrates.org", ID: "Stat1"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -144,7 +145,7 @@ func testTPStatsSetTPStat(t *testing.T) {
}
sort.Strings(tpStat.ThresholdIDs)
var result string
- if err := tpStatRPC.Call(utils.APIerSv1SetTPStat, tpStat, &result); err != nil {
+ if err := tpStatRPC.Call(context.Background(), utils.APIerSv1SetTPStat, tpStat, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -153,7 +154,7 @@ func testTPStatsSetTPStat(t *testing.T) {
func testTPStatsGetTPStatAfterSet(t *testing.T) {
var respond *utils.TPStatProfile
- if err := tpStatRPC.Call(utils.APIerSv1GetTPStat,
+ if err := tpStatRPC.Call(context.Background(), utils.APIerSv1GetTPStat,
&utils.TPTntID{TPid: "TPS1", Tenant: "cgrates.org", ID: "Stat1"}, &respond); err != nil {
t.Fatal(err)
}
@@ -177,7 +178,7 @@ func testTPStatsUpdateTPStat(t *testing.T) {
sort.Slice(tpStat.Metrics, func(i, j int) bool {
return strings.Compare(tpStat.Metrics[i].MetricID, tpStat.Metrics[j].MetricID) == -1
})
- if err := tpStatRPC.Call(utils.APIerSv1SetTPStat, tpStat, &result); err != nil {
+ if err := tpStatRPC.Call(context.Background(), utils.APIerSv1SetTPStat, tpStat, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -186,7 +187,7 @@ func testTPStatsUpdateTPStat(t *testing.T) {
func testTPStatsGetTPStatAfterUpdate(t *testing.T) {
var expectedTPS *utils.TPStatProfile
- if err := tpStatRPC.Call(utils.APIerSv1GetTPStat,
+ if err := tpStatRPC.Call(context.Background(), utils.APIerSv1GetTPStat,
&utils.TPTntID{TPid: "TPS1", Tenant: "cgrates.org", ID: "Stat1"}, &expectedTPS); err != nil {
t.Fatal(err)
}
@@ -201,7 +202,7 @@ func testTPStatsGetTPStatAfterUpdate(t *testing.T) {
func testTPStatsRemoveTPStat(t *testing.T) {
var resp string
- if err := tpStatRPC.Call(utils.APIerSv1RemoveTPStat,
+ if err := tpStatRPC.Call(context.Background(), utils.APIerSv1RemoveTPStat,
&utils.TPTntID{TPid: "TPS1", Tenant: "cgrates.org", ID: "Stat1"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -211,7 +212,7 @@ func testTPStatsRemoveTPStat(t *testing.T) {
func testTPStatsGetTPStatAfterRemove(t *testing.T) {
var respond *utils.TPStatProfile
- if err := tpStatRPC.Call(utils.APIerSv1GetTPStat,
+ if err := tpStatRPC.Call(context.Background(), utils.APIerSv1GetTPStat,
&utils.TPTntID{TPid: "TPS1", Tenant: "cgrates.org", ID: "Stat1"},
&respond); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tpthresholds.go b/apier/v1/tpthresholds.go
index 7b9aabad7..378ca145d 100644
--- a/apier/v1/tpthresholds.go
+++ b/apier/v1/tpthresholds.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPThreshold creates a new threshold within a tariff plan
-func (apierSv1 *APIerSv1) SetTPThreshold(attr *utils.TPThresholdProfile, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPThreshold(ctx *context.Context, attr *utils.TPThresholdProfile, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -38,7 +39,7 @@ func (apierSv1 *APIerSv1) SetTPThreshold(attr *utils.TPThresholdProfile, reply *
}
// GetTPThreshold queries specific Threshold on Tariff plan
-func (apierSv1 *APIerSv1) GetTPThreshold(attr *utils.TPTntID, reply *utils.TPThresholdProfile) error {
+func (apierSv1 *APIerSv1) GetTPThreshold(ctx *context.Context, attr *utils.TPTntID, reply *utils.TPThresholdProfile) error {
if missing := utils.MissingStructFields(attr, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -63,7 +64,7 @@ type AttrGetTPThresholdIds struct {
}
// GetTPThresholdIDs queries Threshold identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPThresholdIDs(attrs *AttrGetTPThresholdIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPThresholdIDs(ctx *context.Context, attrs *AttrGetTPThresholdIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -83,7 +84,7 @@ func (apierSv1 *APIerSv1) GetTPThresholdIDs(attrs *AttrGetTPThresholdIds, reply
}
// RemoveTPThreshold removes specific Threshold on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPThreshold(attrs *utils.TPTntID, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPThreshold(ctx *context.Context, attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tpthresholds_it_test.go b/apier/v1/tpthresholds_it_test.go
index 64dc61303..e4e718129 100644
--- a/apier/v1/tpthresholds_it_test.go
+++ b/apier/v1/tpthresholds_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"sort"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
tpThresholdCfgPath string
tpThresholdCfg *config.CGRConfig
- tpThresholdRPC *rpc.Client
+ tpThresholdRPC *birpc.Client
tpThreshold *utils.TPThresholdProfile
tpThresholdDelay int
tpThresholdConfigDIR string //run tests for specific configuration
@@ -114,7 +115,7 @@ func testTPThreholdRpcConn(t *testing.T) {
func testTPThreholdGetTPThreholdBeforeSet(t *testing.T) {
var reply *utils.TPThresholdProfile
- if err := tpThresholdRPC.Call(utils.APIerSv1GetTPThreshold,
+ if err := tpThresholdRPC.Call(context.Background(), utils.APIerSv1GetTPThreshold,
&utils.TPTntID{TPid: "TH1", Tenant: "cgrates.org", ID: "Threshold"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -140,7 +141,7 @@ func testTPThreholdSetTPThrehold(t *testing.T) {
sort.Strings(tpThreshold.FilterIDs)
sort.Strings(tpThreshold.ActionIDs)
var result string
- if err := tpThresholdRPC.Call(utils.APIerSv1SetTPThreshold, tpThreshold, &result); err != nil {
+ if err := tpThresholdRPC.Call(context.Background(), utils.APIerSv1SetTPThreshold, tpThreshold, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -149,7 +150,7 @@ func testTPThreholdSetTPThrehold(t *testing.T) {
func testTPThreholdGetTPThreholdAfterSet(t *testing.T) {
var respond *utils.TPThresholdProfile
- if err := tpThresholdRPC.Call(utils.APIerSv1GetTPThreshold,
+ if err := tpThresholdRPC.Call(context.Background(), utils.APIerSv1GetTPThreshold,
&utils.TPTntID{TPid: "TH1", Tenant: "cgrates.org", ID: "Threshold"}, &respond); err != nil {
t.Fatal(err)
}
@@ -163,7 +164,7 @@ func testTPThreholdGetTPThreholdAfterSet(t *testing.T) {
func testTPThreholdGetTPThreholdIds(t *testing.T) {
var result []string
expectedTPID := []string{"cgrates.org:Threshold"}
- if err := tpThresholdRPC.Call(utils.APIerSv1GetTPThresholdIDs,
+ if err := tpThresholdRPC.Call(context.Background(), utils.APIerSv1GetTPThresholdIDs,
&AttrGetTPThresholdIds{TPid: tpThreshold.TPid}, &result); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(result, expectedTPID) {
@@ -174,7 +175,7 @@ func testTPThreholdGetTPThreholdIds(t *testing.T) {
func testTPThreholdUpdateTPThrehold(t *testing.T) {
var result string
tpThreshold.FilterIDs = []string{"FLTR_1", "FLTR_2", "FLTR_3"}
- if err := tpThresholdRPC.Call(utils.APIerSv1SetTPThreshold, tpThreshold, &result); err != nil {
+ if err := tpThresholdRPC.Call(context.Background(), utils.APIerSv1SetTPThreshold, tpThreshold, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -183,7 +184,7 @@ func testTPThreholdUpdateTPThrehold(t *testing.T) {
func testTPThreholdGetTPThreholdAfterUpdate(t *testing.T) {
var respond *utils.TPThresholdProfile
- if err := tpThresholdRPC.Call(utils.APIerSv1GetTPThreshold,
+ if err := tpThresholdRPC.Call(context.Background(), utils.APIerSv1GetTPThreshold,
&utils.TPTntID{TPid: "TH1", Tenant: "cgrates.org", ID: "Threshold"}, &respond); err != nil {
t.Fatal(err)
}
@@ -196,7 +197,7 @@ func testTPThreholdGetTPThreholdAfterUpdate(t *testing.T) {
func testTPThreholdRemTPThrehold(t *testing.T) {
var resp string
- if err := tpThresholdRPC.Call(utils.APIerSv1RemoveTPThreshold,
+ if err := tpThresholdRPC.Call(context.Background(), utils.APIerSv1RemoveTPThreshold,
&utils.TPTntID{TPid: "TH1", Tenant: "cgrates.org", ID: "Threshold"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -206,7 +207,7 @@ func testTPThreholdRemTPThrehold(t *testing.T) {
func testTPThreholdGetTPThreholdAfterRemove(t *testing.T) {
var reply *utils.TPThresholdProfile
- if err := tpThresholdRPC.Call(utils.APIerSv1GetTPThreshold,
+ if err := tpThresholdRPC.Call(context.Background(), utils.APIerSv1GetTPThreshold,
&utils.TPTntID{TPid: "TH1", Tenant: "cgrates.org", ID: "Threshold"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
diff --git a/apier/v1/tptimings.go b/apier/v1/tptimings.go
index 37e3b8994..68b4bd19d 100644
--- a/apier/v1/tptimings.go
+++ b/apier/v1/tptimings.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// SetTPTiming creates a new timing within a tariff plan
-func (apierSv1 *APIerSv1) SetTPTiming(attrs *utils.ApierTPTiming, reply *string) error {
+func (apierSv1 *APIerSv1) SetTPTiming(ctx *context.Context, attrs *utils.ApierTPTiming, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID, utils.YearsFieldName, utils.MonthsFieldName, utils.MonthDaysFieldName, utils.WeekDaysFieldName, utils.Time}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -40,7 +41,7 @@ type AttrGetTPTiming struct {
}
// GetTPTiming queries specific Timing on Tariff plan
-func (apierSv1 *APIerSv1) GetTPTiming(attrs *AttrGetTPTiming, reply *utils.ApierTPTiming) error {
+func (apierSv1 *APIerSv1) GetTPTiming(ctx *context.Context, attrs *AttrGetTPTiming, reply *utils.ApierTPTiming) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -61,7 +62,7 @@ type AttrGetTPTimingIds struct {
}
// GetTPTimingIds queries timing identities on specific tariff plan.
-func (apierSv1 *APIerSv1) GetTPTimingIds(attrs *AttrGetTPTimingIds, reply *[]string) error {
+func (apierSv1 *APIerSv1) GetTPTimingIds(ctx *context.Context, attrs *AttrGetTPTimingIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{utils.TPid}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -78,7 +79,7 @@ func (apierSv1 *APIerSv1) GetTPTimingIds(attrs *AttrGetTPTimingIds, reply *[]str
}
// RemoveTPTiming removes specific Timing on Tariff plan
-func (apierSv1 *APIerSv1) RemoveTPTiming(attrs AttrGetTPTiming, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveTPTiming(ctx *context.Context, attrs AttrGetTPTiming, reply *string) error {
if missing := utils.MissingStructFields(&attrs, []string{utils.TPid, utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/tptimings_it_test.go b/apier/v1/tptimings_it_test.go
index 84dab39f3..9dd450867 100644
--- a/apier/v1/tptimings_it_test.go
+++ b/apier/v1/tptimings_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
tpTimingCfgPath string
tpTimingCfg *config.CGRConfig
- tpTimingRPC *rpc.Client
+ tpTimingRPC *birpc.Client
tpTiming *utils.ApierTPTiming
tpTimingDelay int
tpTimingConfigDIR string //run tests for specific configuration
@@ -117,7 +118,7 @@ func testTPTimingsRpcConn(t *testing.T) {
func testTPTimingsGetTPTimingBeforeSet(t *testing.T) {
var reply *utils.ApierTPTiming
- if err := tpTimingRPC.Call(utils.APIerSv1GetTPTiming, &AttrGetTPTiming{TPid: "TPT1", ID: "Timining"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := tpTimingRPC.Call(context.Background(), utils.APIerSv1GetTPTiming, &AttrGetTPTiming{TPid: "TPT1", ID: "Timining"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
@@ -133,7 +134,7 @@ func testTPTimingsSetTPTiming(t *testing.T) {
Time: "15:00:00Z",
}
var result string
- if err := tpTimingRPC.Call(utils.APIerSv1SetTPTiming, &tpTiming, &result); err != nil {
+ if err := tpTimingRPC.Call(context.Background(), utils.APIerSv1SetTPTiming, &tpTiming, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -142,7 +143,7 @@ func testTPTimingsSetTPTiming(t *testing.T) {
func testTPTimingsGetTPTimingAfterSet(t *testing.T) {
var respond *utils.ApierTPTiming
- if err := tpTimingRPC.Call(utils.APIerSv1GetTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &respond); err != nil {
+ if err := tpTimingRPC.Call(context.Background(), utils.APIerSv1GetTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpTiming, respond) {
t.Errorf("Expecting: %+v, received: %+v", tpTiming, respond)
@@ -152,7 +153,7 @@ func testTPTimingsGetTPTimingAfterSet(t *testing.T) {
func testTPTimingsGetTPTimingIds(t *testing.T) {
var result []string
expectedTPID := []string{"Timing"}
- if err := tpTimingRPC.Call(utils.APIerSv1GetTPTimingIds, &AttrGetTPTimingIds{TPid: tpTiming.TPid}, &result); err != nil {
+ if err := tpTimingRPC.Call(context.Background(), utils.APIerSv1GetTPTimingIds, &AttrGetTPTimingIds{TPid: tpTiming.TPid}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result, expectedTPID) {
t.Errorf("Expecting: %+v, received: %+v", result, expectedTPID)
@@ -162,7 +163,7 @@ func testTPTimingsGetTPTimingIds(t *testing.T) {
func testTPTimingsUpdateTPTiming(t *testing.T) {
var result string
tpTiming.Years = "2015"
- if err := tpTimingRPC.Call(utils.APIerSv1SetTPTiming, &tpTiming, &result); err != nil {
+ if err := tpTimingRPC.Call(context.Background(), utils.APIerSv1SetTPTiming, &tpTiming, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -171,7 +172,7 @@ func testTPTimingsUpdateTPTiming(t *testing.T) {
func testTPTimingsGetTPTimingAfterUpdate(t *testing.T) {
var expectedTPS *utils.ApierTPTiming
- if err := tpTimingRPC.Call(utils.APIerSv1GetTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &expectedTPS); err != nil {
+ if err := tpTimingRPC.Call(context.Background(), utils.APIerSv1GetTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &expectedTPS); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpTiming, expectedTPS) {
t.Errorf("Expecting: %+v, received: %+v", tpTiming, expectedTPS)
@@ -180,7 +181,7 @@ func testTPTimingsGetTPTimingAfterUpdate(t *testing.T) {
func testTPTimingsRemoveTPTiming(t *testing.T) {
var resp string
- if err := tpTimingRPC.Call(utils.APIerSv1RemoveTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &resp); err != nil {
+ if err := tpTimingRPC.Call(context.Background(), utils.APIerSv1RemoveTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
@@ -189,7 +190,7 @@ func testTPTimingsRemoveTPTiming(t *testing.T) {
func testTPTimingsGetTPTimingAfterRemove(t *testing.T) {
var reply *utils.ApierTPTiming
- if err := tpTimingRPC.Call(utils.APIerSv1GetTPTiming, &AttrGetTPTiming{TPid: "TPT1", ID: "Timining"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := tpTimingRPC.Call(context.Background(), utils.APIerSv1GetTPTiming, &AttrGetTPTiming{TPid: "TPT1", ID: "Timining"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
diff --git a/apier/v1/triggers.go b/apier/v1/triggers.go
index 6cd9de00c..c0b1ee02c 100644
--- a/apier/v1/triggers.go
+++ b/apier/v1/triggers.go
@@ -23,6 +23,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/guardian"
@@ -30,7 +31,7 @@ import (
)
// Returns a list of ActionTriggers on an account
-func (apierSv1 *APIerSv1) GetAccountActionTriggers(attrs *utils.TenantAccount, reply *engine.ActionTriggers) error {
+func (apierSv1 *APIerSv1) GetAccountActionTriggers(ctx *context.Context, attrs *utils.TenantAccount, reply *engine.ActionTriggers) error {
if missing := utils.MissingStructFields(attrs, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -59,7 +60,7 @@ type AttrAddAccountActionTriggers struct {
Executed bool
}
-func (apierSv1 *APIerSv1) AddAccountActionTriggers(attr *AttrAddAccountActionTriggers, reply *string) (err error) {
+func (apierSv1 *APIerSv1) AddAccountActionTriggers(ctx *context.Context, attr *AttrAddAccountActionTriggers, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -118,7 +119,7 @@ type AttrRemoveAccountActionTriggers struct {
UniqueID string
}
-func (apierSv1 *APIerSv1) RemoveAccountActionTriggers(attr *AttrRemoveAccountActionTriggers, reply *string) error {
+func (apierSv1 *APIerSv1) RemoveAccountActionTriggers(ctx *context.Context, attr *AttrRemoveAccountActionTriggers, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -163,7 +164,7 @@ type AttrResetAccountActionTriggers struct {
Executed bool
}
-func (apierSv1 *APIerSv1) ResetAccountActionTriggers(attr *AttrResetAccountActionTriggers, reply *string) error {
+func (apierSv1 *APIerSv1) ResetAccountActionTriggers(ctx *context.Context, attr *AttrResetAccountActionTriggers, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -351,7 +352,7 @@ func (attr *AttrSetActionTrigger) UpdateActionTrigger(at *engine.ActionTrigger,
}
// SetAccountActionTriggers updates or creates if not present the ActionTrigger for an Account
-func (apierSv1 *APIerSv1) SetAccountActionTriggers(attr *AttrSetAccountActionTriggers, reply *string) error {
+func (apierSv1 *APIerSv1) SetAccountActionTriggers(ctx *context.Context, attr *AttrSetAccountActionTriggers, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -401,7 +402,7 @@ type AttrRemoveActionTrigger struct {
UniqueID string
}
-func (apierSv1 *APIerSv1) RemoveActionTrigger(attr *AttrRemoveActionTrigger, reply *string) (err error) {
+func (apierSv1 *APIerSv1) RemoveActionTrigger(ctx *context.Context, attr *AttrRemoveActionTrigger, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{"GroupID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -428,7 +429,7 @@ func (apierSv1 *APIerSv1) RemoveActionTrigger(attr *AttrRemoveActionTrigger, rep
return
}
// CacheReload
- if err = apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err = apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionTriggerIDs: []string{attr.GroupID},
}, reply); err != nil {
@@ -443,7 +444,7 @@ func (apierSv1 *APIerSv1) RemoveActionTrigger(attr *AttrRemoveActionTrigger, rep
}
// SetActionTrigger updates a ActionTrigger
-func (apierSv1 *APIerSv1) SetActionTrigger(attr *AttrSetActionTrigger, reply *string) (err error) {
+func (apierSv1 *APIerSv1) SetActionTrigger(ctx *context.Context, attr *AttrSetActionTrigger, reply *string) (err error) {
if missing := utils.MissingStructFields(attr, []string{"GroupID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -478,7 +479,7 @@ func (apierSv1 *APIerSv1) SetActionTrigger(attr *AttrSetActionTrigger, reply *st
return
}
// CacheReload
- if err = apierSv1.ConnMgr.Call(apierSv1.Config.ApierCfg().CachesConns, nil,
+ if err = apierSv1.ConnMgr.Call(context.TODO(), apierSv1.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionTriggerIDs: []string{attr.GroupID},
}, reply); err != nil {
@@ -496,7 +497,7 @@ type AttrGetActionTriggers struct {
GroupIDs []string
}
-func (apierSv1 *APIerSv1) GetActionTriggers(attr *AttrGetActionTriggers, atrs *engine.ActionTriggers) error {
+func (apierSv1 *APIerSv1) GetActionTriggers(ctx *context.Context, attr *AttrGetActionTriggers, atrs *engine.ActionTriggers) error {
var allAttrs engine.ActionTriggers
if len(attr.GroupIDs) > 0 {
for _, key := range attr.GroupIDs {
@@ -545,7 +546,7 @@ type AttrAddActionTrigger struct {
}
// Deprecated in rc8, replaced by AddAccountActionTriggers
-func (apierSv1 *APIerSv1) AddTriggeredAction(attr AttrAddActionTrigger, reply *string) error {
+func (apierSv1 *APIerSv1) AddTriggeredAction(ctx *context.Context, attr AttrAddActionTrigger, reply *string) error {
if missing := utils.MissingStructFields(&attr, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/versions.go b/apier/v1/versions.go
index 7ec3cafe9..17ad90a5c 100644
--- a/apier/v1/versions.go
+++ b/apier/v1/versions.go
@@ -19,12 +19,13 @@ along with this program. If not, see
package v1
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// Queries all versions from dataDB
-func (apierSv1 *APIerSv1) GetDataDBVersions(ign *string, reply *engine.Versions) error {
+func (apierSv1 *APIerSv1) GetDataDBVersions(ctx *context.Context, ign *string, reply *engine.Versions) error {
if vrs, err := apierSv1.DataManager.DataDB().GetVersions(""); err != nil {
return utils.NewErrServerError(err)
} else if len(vrs) == 0 {
@@ -36,7 +37,7 @@ func (apierSv1 *APIerSv1) GetDataDBVersions(ign *string, reply *engine.Versions)
}
// Queries all versions from stordb
-func (apierSv1 *APIerSv1) GetStorDBVersions(ign *string, reply *engine.Versions) error {
+func (apierSv1 *APIerSv1) GetStorDBVersions(ctx *context.Context, ign *string, reply *engine.Versions) error {
if vrs, err := apierSv1.StorDb.GetVersions(""); err != nil {
return utils.NewErrServerError(err)
} else if len(vrs) == 0 {
@@ -53,7 +54,7 @@ type SetVersionsArg struct {
}
// Queries all versions from dataDB
-func (apierSv1 *APIerSv1) SetDataDBVersions(arg *SetVersionsArg, reply *string) error {
+func (apierSv1 *APIerSv1) SetDataDBVersions(ctx *context.Context, arg *SetVersionsArg, reply *string) error {
if arg.Versions == nil {
arg.Versions = engine.CurrentDataDBVersions()
}
@@ -65,7 +66,7 @@ func (apierSv1 *APIerSv1) SetDataDBVersions(arg *SetVersionsArg, reply *string)
}
// Queries all versions from stordb
-func (apierSv1 *APIerSv1) SetStorDBVersions(arg *SetVersionsArg, reply *string) error {
+func (apierSv1 *APIerSv1) SetStorDBVersions(ctx *context.Context, arg *SetVersionsArg, reply *string) error {
if arg.Versions == nil {
arg.Versions = engine.CurrentDataDBVersions()
}
diff --git a/apier/v1/versions_it_test.go b/apier/v1/versions_it_test.go
index e1ccb1188..adda062fe 100644
--- a/apier/v1/versions_it_test.go
+++ b/apier/v1/versions_it_test.go
@@ -22,10 +22,11 @@ along with this program. If not, see
package v1
import (
- "net/rpc"
"path"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -34,7 +35,7 @@ import (
var (
vrsCfgPath string
vrsCfg *config.CGRConfig
- vrsRPC *rpc.Client
+ vrsRPC *birpc.Client
vrsDelay int
vrsConfigDIR string //run tests for specific configuration
vrsStorageType string
@@ -125,7 +126,7 @@ func testVrsDataDB(t *testing.T) {
"RatingProfile": 1, "Accounts": 3, "ActionPlans": 3, "Chargers": 2,
"Destinations": 1, "LoadIDs": 1, "SharedGroups": 2, "Stats": 4, "Resource": 1,
"Subscribers": 1, "Routes": 2, "Thresholds": 4, "Timing": 1, "Dispatchers": 2}
- if err := vrsRPC.Call(utils.APIerSv1GetDataDBVersions, utils.StringPointer(utils.EmptyString), &result); err != nil {
+ if err := vrsRPC.Call(context.Background(), utils.APIerSv1GetDataDBVersions, utils.StringPointer(utils.EmptyString), &result); err != nil {
t.Error(err)
} else if expectedVrs.Compare(result, vrsStorageType, true) != "" {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedVrs), utils.ToJSON(result))
@@ -139,7 +140,7 @@ func testVrsStorDB(t *testing.T) {
"TpSharedGroups": 1, "TpRoutes": 1, "SessionSCosts": 3, "TpRatingProfiles": 1, "TpStats": 1, "TpTiming": 1,
"CostDetails": 2, "TpAccountActions": 1, "TpActionPlans": 1, "TpChargers": 1, "TpRatingProfile": 1,
"TpRatingPlan": 1, "TpResources": 1}
- if err := vrsRPC.Call(utils.APIerSv1GetStorDBVersions, utils.StringPointer(utils.EmptyString), &result); err != nil {
+ if err := vrsRPC.Call(context.Background(), utils.APIerSv1GetStorDBVersions, utils.StringPointer(utils.EmptyString), &result); err != nil {
t.Error(err)
} else if expectedVrs.Compare(result, vrsStorageType, true) != "" {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(result), utils.ToJSON(expectedVrs))
@@ -153,7 +154,7 @@ func testVrsSetDataDBVrs(t *testing.T) {
"Attributes": 3,
},
}
- if err := vrsRPC.Call(utils.APIerSv1SetDataDBVersions, &args, &reply); err != nil {
+ if err := vrsRPC.Call(context.Background(), utils.APIerSv1SetDataDBVersions, &args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting: %+v, received: %+v", utils.OK, reply)
@@ -166,7 +167,7 @@ func testVrsSetDataDBVrs(t *testing.T) {
"Destinations": 1, "LoadIDs": 1, "SharedGroups": 2, "Stats": 4, "Resource": 1,
"Subscribers": 1, "Routes": 2, "Thresholds": 4, "Timing": 1,
"Dispatchers": 2}
- if err := vrsRPC.Call(utils.APIerSv1GetDataDBVersions, utils.StringPointer(utils.EmptyString), &result); err != nil {
+ if err := vrsRPC.Call(context.Background(), utils.APIerSv1GetDataDBVersions, utils.StringPointer(utils.EmptyString), &result); err != nil {
t.Error(err)
} else if expectedVrs.Compare(result, vrsStorageType, true) != "" {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedVrs), utils.ToJSON(result))
@@ -175,7 +176,7 @@ func testVrsSetDataDBVrs(t *testing.T) {
args = SetVersionsArg{
Versions: nil,
}
- if err := vrsRPC.Call(utils.APIerSv1SetDataDBVersions, &args, &reply); err != nil {
+ if err := vrsRPC.Call(context.Background(), utils.APIerSv1SetDataDBVersions, &args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting: %+v, received: %+v", utils.OK, reply)
@@ -189,7 +190,7 @@ func testVrsSetStorDBVrs(t *testing.T) {
"TpResources": 2,
},
}
- if err := vrsRPC.Call(utils.APIerSv1SetStorDBVersions, &args, &reply); err != nil {
+ if err := vrsRPC.Call(context.Background(), utils.APIerSv1SetStorDBVersions, &args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting: %+v, received: %+v", utils.OK, reply)
@@ -201,7 +202,7 @@ func testVrsSetStorDBVrs(t *testing.T) {
"TpSharedGroups": 1, "TpRoutes": 1, "SessionSCosts": 3, "TpRatingProfiles": 1, "TpStats": 1, "TpTiming": 1,
"CostDetails": 2, "TpAccountActions": 1, "TpActionPlans": 1, "TpChargers": 1, "TpRatingProfile": 1,
"TpRatingPlan": 1, "TpResources": 2}
- if err := vrsRPC.Call(utils.APIerSv1GetStorDBVersions, utils.StringPointer(utils.EmptyString), &result); err != nil {
+ if err := vrsRPC.Call(context.Background(), utils.APIerSv1GetStorDBVersions, utils.StringPointer(utils.EmptyString), &result); err != nil {
t.Error(err)
} else if expectedVrs.Compare(result, vrsStorageType, true) != "" {
t.Errorf("Expecting: %+v, received: %+v", result, expectedVrs)
@@ -210,7 +211,7 @@ func testVrsSetStorDBVrs(t *testing.T) {
args = SetVersionsArg{
Versions: nil,
}
- if err := vrsRPC.Call(utils.APIerSv1SetStorDBVersions, &args, &reply); err != nil {
+ if err := vrsRPC.Call(context.Background(), utils.APIerSv1SetStorDBVersions, &args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting: %+v, received: %+v", utils.OK, reply)
diff --git a/apier/v2/accounts.go b/apier/v2/accounts.go
index 4bdbe2e71..3b396f9bd 100644
--- a/apier/v2/accounts.go
+++ b/apier/v2/accounts.go
@@ -22,13 +22,14 @@ import (
"errors"
"math"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
)
-func (apiv2 *APIerSv2) GetAccounts(attr *utils.AttrGetAccounts, reply *[]*engine.Account) error {
+func (apiv2 *APIerSv2) GetAccounts(ctx *context.Context, attr *utils.AttrGetAccounts, reply *[]*engine.Account) error {
tnt := attr.Tenant
if tnt == utils.EmptyString {
tnt = apiv2.Config.GeneralCfg().DefaultTenant
@@ -83,7 +84,7 @@ func (apiv2 *APIerSv2) GetAccounts(attr *utils.AttrGetAccounts, reply *[]*engine
// GetAccountsCount sets in reply var the total number of accounts registered for the received tenant
// returns ErrNotFound in case of 0 accounts
-func (apiv2 *APIerSv2) GetAccountsCount(attr *utils.AttrGetAccountsCount, reply *int) (err error) {
+func (apiv2 *APIerSv2) GetAccountsCount(ctx *context.Context, attr *utils.AttrGetAccountsCount, reply *int) (err error) {
tnt := attr.Tenant
if tnt == utils.EmptyString {
tnt = apiv2.Config.GeneralCfg().DefaultTenant
@@ -101,7 +102,7 @@ func (apiv2 *APIerSv2) GetAccountsCount(attr *utils.AttrGetAccountsCount, reply
}
// Get balance
-func (apiv2 *APIerSv2) GetAccount(attr *utils.AttrGetAccount, reply *engine.Account) error {
+func (apiv2 *APIerSv2) GetAccount(ctx *context.Context, attr *utils.AttrGetAccount, reply *engine.Account) error {
tnt := attr.Tenant
if tnt == utils.EmptyString {
tnt = apiv2.Config.GeneralCfg().DefaultTenant
@@ -126,7 +127,7 @@ type AttrSetAccount struct {
ReloadScheduler bool
}
-func (apiv2 *APIerSv2) SetAccount(attr *AttrSetAccount, reply *string) error {
+func (apiv2 *APIerSv2) SetAccount(ctx *context.Context, attr *AttrSetAccount, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{utils.AccountField}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -215,7 +216,7 @@ func (apiv2 *APIerSv2) SetAccount(attr *AttrSetAccount, reply *string) error {
if err := apiv2.DataManager.SetAccountActionPlans(accID, acntAPids, true); err != nil {
return err
}
- return apiv2.ConnMgr.Call(apiv2.Config.ApierCfg().CachesConns, nil,
+ return apiv2.ConnMgr.Call(context.TODO(), apiv2.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
AccountActionPlanIDs: []string{accID},
ActionPlanIDs: apIDs,
diff --git a/apier/v2/accounts_it_test.go b/apier/v2/accounts_it_test.go
index a5a91cb82..e49cabedb 100644
--- a/apier/v2/accounts_it_test.go
+++ b/apier/v2/accounts_it_test.go
@@ -22,11 +22,13 @@ along with this program. If not, see
package v2
import (
- "net/rpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +39,7 @@ var (
accConfigDIR string //run tests for specific configuration
accCfgPath string
accCfg *config.CGRConfig
- accRPC *rpc.Client
+ accRPC *birpc.Client
sTestsAcc = []func(t *testing.T){
testAccountsInitCfg,
@@ -120,7 +122,7 @@ func testAccountsRPCConn(t *testing.T) {
func testApierSetActions(t *testing.T) {
var reply string
- if err := accRPC.Call(utils.APIerSv1SetActions, &v1.V1AttrSetActions{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetActions, &v1.V1AttrSetActions{
ActionsId: "TestAccountAction",
Actions: []*v1.V1TPAction{{
Identifier: utils.MetaTopUpReset,
@@ -138,7 +140,7 @@ func testApierSetActions(t *testing.T) {
func testAccountsSetActPlans(t *testing.T) {
var reply string
- if err := accRPC.Call(utils.APIerSv1SetActionPlan, &v1.AttrSetActionPlan{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &v1.AttrSetActionPlan{
Id: "TestAccountAP1",
ActionPlan: []*v1.AttrActionPlan{{
ActionsId: "TestAccountAction",
@@ -151,7 +153,7 @@ func testAccountsSetActPlans(t *testing.T) {
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply)
}
- if err := accRPC.Call(utils.APIerSv1SetActionPlan, &v1.AttrSetActionPlan{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &v1.AttrSetActionPlan{
Id: "TestAccountAP2",
ActionPlan: []*v1.AttrActionPlan{{
ActionsId: "TestAccountAction",
@@ -164,7 +166,7 @@ func testAccountsSetActPlans(t *testing.T) {
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply)
}
- if err := accRPC.Call(utils.APIerSv1SetActionPlan, &v1.AttrSetActionPlan{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &v1.AttrSetActionPlan{
Id: "TestAccountAP3",
ActionPlan: []*v1.AttrActionPlan{{
ActionsId: "TestAccountAction",
@@ -181,7 +183,7 @@ func testAccountsSetActPlans(t *testing.T) {
func testAccountsSet1(t *testing.T) {
var reply string
- if err := accRPC.Call(utils.APIerSv2SetAccount, AttrSetAccount{
+ if err := accRPC.Call(context.Background(), utils.APIerSv2SetAccount, AttrSetAccount{
Tenant: "cgrates.org",
Account: "dan",
ReloadScheduler: true,
@@ -192,7 +194,7 @@ func testAccountsSet1(t *testing.T) {
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetAccount received: %s", reply)
}
- if err := accRPC.Call(utils.APIerSv2SetAccount, AttrSetAccount{
+ if err := accRPC.Call(context.Background(), utils.APIerSv2SetAccount, AttrSetAccount{
Tenant: "cgrates.org",
Account: "dan2",
ReloadScheduler: true,
@@ -211,7 +213,7 @@ func testAccountsGetActionPlan1(t *testing.T) {
"cgrates.org:dan": true,
"cgrates.org:dan2": true,
}
- if err := accRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := accRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
v1.AttrGetActionPlan{ID: "TestAccountAP1"}, &aps); err != nil {
t.Error(err)
} else if len(aps) != 1 {
@@ -225,7 +227,7 @@ func testAccountsGetActionPlan1(t *testing.T) {
func testAccountsSet2(t *testing.T) {
var reply string
- if err := accRPC.Call(utils.APIerSv2SetAccount, AttrSetAccount{
+ if err := accRPC.Call(context.Background(), utils.APIerSv2SetAccount, AttrSetAccount{
Tenant: "cgrates.org",
Account: "dan",
ReloadScheduler: true,
@@ -240,7 +242,7 @@ func testAccountsSet2(t *testing.T) {
func testAccountsGetAccountActionPlan(t *testing.T) {
var reply []*v1.AccountActionTiming
- if err := accRPC.Call(utils.APIerSv1GetAccountActionPlan, utils.TenantAccount{
+ if err := accRPC.Call(context.Background(), utils.APIerSv1GetAccountActionPlan, utils.TenantAccount{
Tenant: "cgrates.org",
Account: "dan",
}, &reply); err != nil {
@@ -257,7 +259,7 @@ func testAccountsGetActionPlan2(t *testing.T) {
accIDsStrMp := utils.StringMap{
"cgrates.org:dan2": true,
}
- if err := accRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := accRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
v1.AttrGetActionPlan{ID: "TestAccountAP1"}, &aps); err != nil {
t.Error(err)
} else if len(aps) != 1 {
diff --git a/apier/v2/apier.go b/apier/v2/apier.go
index 1490810a7..99255ef56 100644
--- a/apier/v2/apier.go
+++ b/apier/v2/apier.go
@@ -27,6 +27,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -38,8 +39,8 @@ type APIerSv2 struct {
v1.APIerSv1
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (apiv2 *APIerSv2) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (apiv2 *APIerSv2) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(apiv2, serviceMethod, args, reply)
}
@@ -50,7 +51,7 @@ type AttrLoadRatingProfile struct {
}
// Process dependencies and load a specific rating profile from storDb into dataDb.
-func (apiv2 *APIerSv2) LoadRatingProfile(attrs *AttrLoadRatingProfile, reply *string) error {
+func (apiv2 *APIerSv2) LoadRatingProfile(ctx *context.Context, attrs *AttrLoadRatingProfile, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -80,7 +81,7 @@ type AttrLoadAccountActions struct {
}
// Process dependencies and load a specific AccountActions profile from storDb into dataDb.
-func (apiv2 *APIerSv2) LoadAccountActions(attrs *AttrLoadAccountActions, reply *string) error {
+func (apiv2 *APIerSv2) LoadAccountActions(ctx *context.Context, attrs *AttrLoadAccountActions, reply *string) error {
if len(attrs.TPid) == 0 {
return utils.NewErrMandatoryIeMissing("TPid")
}
@@ -106,7 +107,7 @@ func (apiv2 *APIerSv2) LoadAccountActions(attrs *AttrLoadAccountActions, reply *
return nil
}
-func (apiv2 *APIerSv2) LoadTariffPlanFromFolder(attrs *utils.AttrLoadTpFromFolder, reply *utils.LoadInstance) error {
+func (apiv2 *APIerSv2) LoadTariffPlanFromFolder(ctx *context.Context, attrs *utils.AttrLoadTpFromFolder, reply *utils.LoadInstance) error {
if len(attrs.FolderPath) == 0 {
return fmt.Errorf("%s:%s", utils.ErrMandatoryIeMissing.Error(), "FolderPath")
}
@@ -184,7 +185,7 @@ type AttrGetActions struct {
}
// Retrieves actions attached to specific ActionsId within cache
-func (apiv2 *APIerSv2) GetActions(attr *AttrGetActions, reply *map[string]engine.Actions) error {
+func (apiv2 *APIerSv2) GetActions(ctx *context.Context, attr *AttrGetActions, reply *map[string]engine.Actions) error {
var actionKeys []string
var err error
if len(attr.ActionIDs) == 0 {
@@ -236,7 +237,7 @@ type AttrGetActionsCount struct{}
// GetActionsCount sets in reply var the total number of actions registered for the received tenant
// returns ErrNotFound in case of 0 actions
-func (apiv2 *APIerSv2) GetActionsCount(attr *AttrGetActionsCount, reply *int) (err error) {
+func (apiv2 *APIerSv2) GetActionsCount(ctx *context.Context, attr *AttrGetActionsCount, reply *int) (err error) {
var actionKeys []string
if actionKeys, err = apiv2.DataManager.DataDB().GetKeysForPrefix(utils.ActionPrefix); err != nil {
return err
@@ -253,7 +254,7 @@ type AttrGetDestinations struct {
}
// GetDestinations returns a list of destination based on the destinationIDs given
-func (apiv2 *APIerSv2) GetDestinations(attr *AttrGetDestinations, reply *[]*engine.Destination) (err error) {
+func (apiv2 *APIerSv2) GetDestinations(ctx *context.Context, attr *AttrGetDestinations, reply *[]*engine.Destination) (err error) {
if len(attr.DestinationIDs) == 0 {
// get all destination ids
if attr.DestinationIDs, err = apiv2.DataManager.DataDB().GetKeysForPrefix(utils.DestinationPrefix); err != nil {
@@ -273,7 +274,7 @@ func (apiv2 *APIerSv2) GetDestinations(attr *AttrGetDestinations, reply *[]*engi
return
}
-func (apiv2 *APIerSv2) SetActions(attrs *utils.AttrSetActions, reply *string) error {
+func (apiv2 *APIerSv2) SetActions(ctx *context.Context, attrs *utils.AttrSetActions, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"ActionsId", "Actions"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -363,7 +364,7 @@ func (apiv2 *APIerSv2) SetActions(attrs *utils.AttrSetActions, reply *string) er
return utils.NewErrServerError(err)
}
//CacheReload
- if err := apiv2.ConnMgr.Call(apiv2.Config.ApierCfg().CachesConns, nil,
+ if err := apiv2.ConnMgr.Call(context.TODO(), apiv2.Config.ApierCfg().CachesConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionIDs: []string{attrs.ActionsId},
}, reply); err != nil {
@@ -378,7 +379,7 @@ func (apiv2 *APIerSv2) SetActions(attrs *utils.AttrSetActions, reply *string) er
}
// Ping return pong if the service is active
-func (apiv2 *APIerSv2) Ping(ign *utils.CGREvent, reply *string) error {
+func (apiv2 *APIerSv2) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
diff --git a/apier/v2/apierv2_it_test.go b/apier/v2/apierv2_it_test.go
index 26ee8642b..8b322d447 100644
--- a/apier/v2/apierv2_it_test.go
+++ b/apier/v2/apierv2_it_test.go
@@ -22,12 +22,13 @@ package v2
import (
"fmt"
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +38,7 @@ import (
var (
apierCfgPath string
apierCfg *config.CGRConfig
- apierRPC *rpc.Client
+ apierRPC *birpc.Client
dm *engine.DataManager // share db connection here so we can check data we set through APIs
APIerSv2ConfDIR string
@@ -142,11 +143,11 @@ func testAPIerSv2itAddBalance(t *testing.T) {
},
}
var reply string
- if err := apierRPC.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
var acnt engine.Account
- if err := apierRPC.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan"}, &acnt); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan"}, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary][0].Value != 5.0 {
t.Errorf("Unexpected balance received: %+v", acnt.BalanceMap[utils.MetaMonetary][0])
@@ -158,11 +159,11 @@ func testAPIerSv2itSetAction(t *testing.T) {
{Identifier: utils.MetaDisableAccount, Weight: 10.0},
}}
var reply string
- if err := apierRPC.Call(utils.APIerSv2SetActions, &attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetActions, &attrs, &reply); err != nil {
t.Error(err)
}
var acts map[string]engine.Actions
- if err := apierRPC.Call(utils.APIerSv2GetActions, &AttrGetActions{ActionIDs: []string{attrs.ActionsId}}, &acts); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetActions, &AttrGetActions{ActionIDs: []string{attrs.ActionsId}}, &acts); err != nil {
t.Error(err)
} else if len(acts) != 1 {
t.Errorf("Received actions: %+v", acts)
@@ -184,20 +185,20 @@ func testAPIerSv2itSetAccountActionTriggers(t *testing.T) {
},
}
var reply string
- if err := apierRPC.Call(utils.APIerSv2SetAccountActionTriggers, attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetAccountActionTriggers, attrs, &reply); err != nil {
t.Error(err)
}
var ats engine.ActionTriggers
- if err := apierRPC.Call(utils.APIerSv2GetAccountActionTriggers, utils.TenantAccount{Tenant: "cgrates.org", Account: "dan"}, &ats); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccountActionTriggers, utils.TenantAccount{Tenant: "cgrates.org", Account: "dan"}, &ats); err != nil {
t.Error(err)
} else if len(ats) != 1 || ats[0].ID != attrs.GroupID || ats[0].ThresholdValue != 50.0 {
t.Errorf("Received: %+v", ats)
}
attrs.ActionTrigger[utils.ThresholdValue] = 55 // Change the threshold
- if err := apierRPC.Call(utils.APIerSv2SetAccountActionTriggers, attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetAccountActionTriggers, attrs, &reply); err != nil {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2GetAccountActionTriggers, utils.TenantAccount{Tenant: "cgrates.org", Account: "dan"}, &ats); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccountActionTriggers, utils.TenantAccount{Tenant: "cgrates.org", Account: "dan"}, &ats); err != nil {
t.Error(err)
} else if len(ats) != 1 || ats[0].ID != attrs.GroupID || ats[0].ThresholdValue != 55.0 {
t.Errorf("Received: %+v", ats)
@@ -216,11 +217,11 @@ func testAPIerSv2itFraudMitigation(t *testing.T) {
},
}
var reply string
- if err := apierRPC.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
var acnt engine.Account
- if err := apierRPC.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan"}, &acnt); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaMonetary][0].Value != 60.0 {
t.Errorf("Unexpected balance received: %+v", acnt.BalanceMap[utils.MetaMonetary][0])
@@ -234,11 +235,11 @@ func testAPIerSv2itFraudMitigation(t *testing.T) {
utils.Disabled: false,
},
}
- if err := apierRPC.Call(utils.APIerSv2SetAccount, attrSetAcnt, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetAccount, attrSetAcnt, &reply); err != nil {
t.Fatal(err)
}
acnt = engine.Account{} // gob doesn't update the fields with default values
- if err := apierRPC.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan"}, &acnt); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "dan"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaMonetary][0].Value != 60.0 {
t.Errorf("Unexpected balance received: %+v", acnt.BalanceMap[utils.MetaMonetary][0])
@@ -254,7 +255,7 @@ func testAPIerSv2itSetAccountWithAP(t *testing.T) {
BalanceType: utils.MetaMonetary, Units: "5.0", Weight: 20.0},
}}
var reply string
- if err := apierRPC.Call(utils.APIerSv2SetActions, &argActs1, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetActions, &argActs1, &reply); err != nil {
t.Error(err)
}
tNow := time.Now().Add(time.Minute)
@@ -266,7 +267,7 @@ func testAPIerSv2itSetAccountWithAP(t *testing.T) {
if _, err := dm.GetActionPlan(argAP1.Id, false, true, utils.NonTransactional); err == nil || err != utils.ErrNotFound {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv1SetActionPlan, &argAP1, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &argAP1, &reply); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply)
@@ -280,7 +281,7 @@ func testAPIerSv2itSetAccountWithAP(t *testing.T) {
if _, err := dm.GetAccountActionPlans(acntID, false, true, utils.NonTransactional); err == nil || err != utils.ErrNotFound {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2SetAccount, &argSetAcnt1, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetAccount, &argSetAcnt1, &reply); err != nil {
t.Fatal(err)
}
if ap, err := dm.GetActionPlan(argAP1.Id, false, true, utils.NonTransactional); err != nil {
@@ -301,7 +302,7 @@ func testAPIerSv2itSetAccountWithAP(t *testing.T) {
if _, err := dm.GetActionPlan(argAP2.Id, false, true, utils.NonTransactional); err == nil || err != utils.ErrNotFound {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2SetActionPlan, argAP2, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetActionPlan, argAP2, &reply); err != nil {
t.Error("Got error on APIerSv2.SetActionPlan: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActionPlan received: %s", reply)
@@ -312,7 +313,7 @@ func testAPIerSv2itSetAccountWithAP(t *testing.T) {
Account: "TestAPIerSv2itSetAccountWithAP1",
ActionPlanIDs: []string{argAP2.Id},
}
- if err := apierRPC.Call(utils.APIerSv2SetAccount, &argSetAcnt2, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetAccount, &argSetAcnt2, &reply); err != nil {
t.Fatal(err)
}
if ap, err := dm.GetActionPlan(argAP2.Id, false, true, utils.NonTransactional); err != nil {
@@ -338,7 +339,7 @@ func testAPIerSv2itSetAccountWithAP(t *testing.T) {
ActionPlanIDs: []string{argAP2.Id},
ActionPlansOverwrite: true,
}
- if err := apierRPC.Call(utils.APIerSv2SetAccount, &argSetAcnt2, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetAccount, &argSetAcnt2, &reply); err != nil {
t.Fatal(err)
}
if ap, err := dm.GetActionPlan(argAP1.Id, false, true, utils.NonTransactional); err != nil {
@@ -362,7 +363,7 @@ func testAPIerSv2itSetAccountWithAP(t *testing.T) {
func testAPIerSv2itSetActionWithCategory(t *testing.T) {
var reply string
attrsSetAccount := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "TestAPIerSv2itSetActionWithCategory"}
- if err := apierRPC.Call(utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -374,19 +375,19 @@ func testAPIerSv2itSetActionWithCategory(t *testing.T) {
BalanceType: utils.MetaMonetary, Categories: "test", Units: "5.0", Weight: 20.0},
}}
- if err := apierRPC.Call(utils.APIerSv2SetActions, &argActs1, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetActions, &argActs1, &reply); err != nil {
t.Error(err)
}
attrsEA := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: argActs1.ActionsId}
- if err := apierRPC.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
var acnt engine.Account
- if err := apierRPC.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org",
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org",
Account: "TestAPIerSv2itSetActionWithCategory"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaMonetary][0].Value != 5.0 {
@@ -410,7 +411,7 @@ func testAPIerSv2itSetActionPlanWithWrongTiming(t *testing.T) {
},
}
- if err := apierRPC.Call(utils.APIerSv1SetActionPlan, &argAP1, &reply); err == nil ||
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &argAP1, &reply); err == nil ||
err.Error() != fmt.Sprintf("UNSUPPORTED_FORMAT:%s", tNow) {
t.Error("Expecting error ", err)
}
@@ -428,7 +429,7 @@ func testAPIerSv2itSetActionPlanWithWrongTiming2(t *testing.T) {
},
}
- if err := apierRPC.Call(utils.APIerSv1SetActionPlan, &argAP1, &reply); err == nil ||
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &argAP1, &reply); err == nil ||
err.Error() != fmt.Sprintf("UNSUPPORTED_FORMAT:aa:bb:cc") {
t.Error("Expecting error ", err)
}
@@ -436,7 +437,7 @@ func testAPIerSv2itSetActionPlanWithWrongTiming2(t *testing.T) {
func testAPIerSv2itBackwardsCompatible(t *testing.T) {
var reply string
- if err := apierRPC.Call("ApierV2.Ping", new(utils.CGREvent), &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), "ApierV2.Ping", new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Expecting : %+v, received: %+v", utils.Pong, reply)
@@ -445,26 +446,26 @@ func testAPIerSv2itBackwardsCompatible(t *testing.T) {
func testAPIerSv2itGetAccountsCount(t *testing.T) {
var reply1 int
- if err := apierRPC.Call(utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{
Tenant: "cgrates.org"}, &reply1); err != nil {
t.Error(err)
} else if reply1 != 3 {
t.Errorf("Expecting: 3, received: %+v", reply1)
}
var reply string
- if err := apierRPC.Call(utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
Account: "dan", Tenant: "cgrates.org"}, &reply); err != nil {
t.Errorf("Unexpected error : %+v", err)
}
- if err := apierRPC.Call(utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
Account: "TestAPIerSv2itSetAccountWithAP1", Tenant: "cgrates.org"}, &reply); err != nil {
t.Errorf("Unexpected error : %+v", err)
}
- if err := apierRPC.Call(utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
Account: "TestAPIerSv2itSetActionWithCategory", Tenant: "cgrates.org"}, &reply); err != nil {
t.Errorf("Unexpected error : %+v", err)
}
- if err := apierRPC.Call(utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{
Tenant: "cgrates.org"}, &reply1); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting %+v, received: %+v", utils.ErrNotFound, err)
}
@@ -472,15 +473,15 @@ func testAPIerSv2itGetAccountsCount(t *testing.T) {
Tenant: "cgrates.org",
Account: "TestAPIerSv2CountAccounts",
}
- if err := apierRPC.Call(utils.APIerSv2SetAccount, &argSetAccount, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetAccount, &argSetAccount, &reply); err != nil {
t.Fatal(err)
}
var acnt engine.Account
- if err := apierRPC.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{
Tenant: "cgrates.org", Account: "TestAPIerSv2CountAccounts"}, &acnt); err != nil {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{Tenant: "cgrates.org"}, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{Tenant: "cgrates.org"}, &reply1); err != nil {
t.Error(err)
} else if reply1 != 1 {
t.Errorf("Expecting: 1, received: %+v", reply1)
@@ -489,32 +490,32 @@ func testAPIerSv2itGetAccountsCount(t *testing.T) {
Tenant: "cgrates.org",
Account: "TestAPIerSv2CountAccounts2",
}
- if err := apierRPC.Call(utils.APIerSv2SetAccount, &argSetAccount, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetAccount, &argSetAccount, &reply); err != nil {
t.Fatal(err)
}
- if err := apierRPC.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{
Tenant: "cgrates.org", Account: "TestAPIerSv2CountAccounts2"}, &acnt); err != nil {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{Tenant: "cgrates.org"}, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{Tenant: "cgrates.org"}, &reply1); err != nil {
t.Error(err)
} else if reply1 != 2 {
t.Errorf("Expecting: 2, received: %+v", reply1)
}
- if err := apierRPC.Call(utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
Account: "TestAPIerSv2CountAccounts2", Tenant: "cgrates.org"}, &reply); err != nil {
t.Errorf("Unexpected error : %+v", err)
}
- if err := apierRPC.Call(utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{Tenant: "cgrates.org"}, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{Tenant: "cgrates.org"}, &reply1); err != nil {
t.Error(err)
} else if reply1 != 1 {
t.Errorf("Expecting: 1, received: %+v", reply1)
}
- if err := apierRPC.Call(utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv1RemoveAccount, &utils.AttrRemoveAccount{
Account: "TestAPIerSv2CountAccounts", Tenant: "cgrates.org"}, &reply); err != nil {
t.Errorf("Unexpected error : %+v", err)
}
- if err := apierRPC.Call(utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetAccountsCount, &utils.AttrGetAccountsCount{
Tenant: "cgrates.org"}, &reply1); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting %+v, received: %+v", utils.ErrNotFound, err)
}
@@ -522,7 +523,7 @@ func testAPIerSv2itGetAccountsCount(t *testing.T) {
func testAPIerSv2itGetActionsCount(t *testing.T) {
var reply1 int
- if err := apierRPC.Call(utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err != nil {
t.Error(err)
} else if reply1 != 3 {
t.Errorf("Expecting: 3, received : %+v", reply1)
@@ -531,10 +532,10 @@ func testAPIerSv2itGetActionsCount(t *testing.T) {
{Identifier: utils.MetaDisableAccount, Weight: 0.7},
}}
var reply string
- if err := apierRPC.Call(utils.APIerSv2SetActions, &attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetActions, &attrs, &reply); err != nil {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err != nil {
t.Error(err)
} else if reply1 != 4 {
t.Errorf("Expecting: 4, received : %+v", reply1)
@@ -543,10 +544,10 @@ func testAPIerSv2itGetActionsCount(t *testing.T) {
attrRemoveActions := &v1.AttrRemoveActions{
ActionIDs: []string{"DISABLE_ACCOUNT", "DISABLE_ACCOUNT2", "TestAPIerSv2itSetAccountWithAP_ACT_1"},
}
- if err := apierRPC.Call(utils.APIerSv2RemoveActions, &attrRemoveActions, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2RemoveActions, &attrRemoveActions, &reply); err != nil {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err != nil {
t.Error(err)
} else if reply1 != 1 {
t.Errorf("Expecting: 1, received : %+v", reply1)
@@ -554,19 +555,19 @@ func testAPIerSv2itGetActionsCount(t *testing.T) {
attrRemoveActions = &v1.AttrRemoveActions{
ActionIDs: []string{"TestAPIerSv2itSetActionWithCategory_ACT"},
}
- if err := apierRPC.Call(utils.APIerSv2RemoveActions, &attrRemoveActions, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2RemoveActions, &attrRemoveActions, &reply); err != nil {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting %+v, received: %+v", utils.ErrNotFound, err)
}
attrs = utils.AttrSetActions{ActionsId: "Test", Actions: []*utils.TPAction{
{Identifier: utils.MetaDisableAccount, Weight: 0.7},
}}
- if err := apierRPC.Call(utils.APIerSv2SetActions, &attrs, &reply); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2SetActions, &attrs, &reply); err != nil {
t.Error(err)
}
- if err := apierRPC.Call(utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err != nil {
+ if err := apierRPC.Call(context.Background(), utils.APIerSv2GetActionsCount, &AttrGetActionsCount{}, &reply1); err != nil {
t.Error(err)
} else if reply1 != 1 {
t.Errorf("Expecting: 1, received : %+v", reply1)
diff --git a/apier/v2/attributes.go b/apier/v2/attributes.go
index db907a81d..badd917bf 100644
--- a/apier/v2/attributes.go
+++ b/apier/v2/attributes.go
@@ -21,6 +21,7 @@ package v2
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -31,7 +32,7 @@ type AttributeWithAPIOpts struct {
}
// SetAttributeProfile add/update a new Attribute Profile
-func (APIerSv2 *APIerSv2) SetAttributeProfile(arg *AttributeWithAPIOpts, reply *string) error {
+func (APIerSv2 *APIerSv2) SetAttributeProfile(ctx *context.Context, arg *AttributeWithAPIOpts, reply *string) error {
if missing := utils.MissingStructFields(arg.APIAttributeProfile, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v2/attributes_it_test.go b/apier/v2/attributes_it_test.go
index 6592422f4..abe2aa00c 100644
--- a/apier/v2/attributes_it_test.go
+++ b/apier/v2/attributes_it_test.go
@@ -22,13 +22,15 @@ along with this program. If not, see
package v2
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +39,7 @@ import (
var (
alsPrfCfgPath string
alsPrfCfg *config.CGRConfig
- attrSRPC *rpc.Client
+ attrSRPC *birpc.Client
alsPrfConfigDIR string //run tests for specific configuration
sTestsAlsPrf = []func(t *testing.T){
@@ -132,7 +134,7 @@ func testAttributeSSetAlsPrf(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv2SetAttributeProfile, extAlsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv2SetAttributeProfile, extAlsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -159,7 +161,7 @@ func testAttributeSSetAlsPrf(t *testing.T) {
}
alsPrf.Compile()
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ExternalAttribute"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -194,7 +196,7 @@ func testAttributeSUpdateAlsPrf(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv2SetAttributeProfile, extAlsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv2SetAttributeProfile, extAlsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -226,7 +228,7 @@ func testAttributeSUpdateAlsPrf(t *testing.T) {
sort.Strings(alsPrf.AttributeProfile.Contexts)
alsPrf.Compile()
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ExternalAttribute"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -263,7 +265,7 @@ func testAttributeSSetAlsPrfWithoutTenant(t *testing.T) {
},
}
var result string
- if err := attrSRPC.Call(utils.APIerSv2SetAttributeProfile, extAlsPrf, &result); err != nil {
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv2SetAttributeProfile, extAlsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -290,7 +292,7 @@ func testAttributeSSetAlsPrfWithoutTenant(t *testing.T) {
}
alsPrf.Compile()
var reply *engine.AttributeProfile
- if err := attrSRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrSRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{ID: "ExternalAttribute"}}, &reply); err != nil {
t.Fatal(err)
}
diff --git a/apier/v2/cdrs.go b/apier/v2/cdrs.go
index 7558b9430..cc3a4c594 100644
--- a/apier/v2/cdrs.go
+++ b/apier/v2/cdrs.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v2
import (
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/engine"
@@ -26,7 +27,7 @@ import (
)
// Retrieves CDRs based on the filters
-func (apier *APIerSv2) GetCDRs(attrs *utils.RPCCDRsFilter, reply *[]*engine.ExternalCDR) error {
+func (apier *APIerSv2) GetCDRs(ctx *context.Context, attrs *utils.RPCCDRsFilter, reply *[]*engine.ExternalCDR) error {
cdrsFltr, err := attrs.AsCDRsFilter(apier.Config.GeneralCfg().DefaultTimezone)
if err != nil {
return utils.NewErrServerError(err)
@@ -46,7 +47,7 @@ func (apier *APIerSv2) GetCDRs(attrs *utils.RPCCDRsFilter, reply *[]*engine.Exte
return nil
}
-func (apier *APIerSv2) CountCDRs(attrs *utils.RPCCDRsFilter, reply *int64) error {
+func (apier *APIerSv2) CountCDRs(ctx *context.Context, attrs *utils.RPCCDRsFilter, reply *int64) error {
cdrsFltr, err := attrs.AsCDRsFilter(apier.Config.GeneralCfg().DefaultTimezone)
if err != nil {
if err.Error() != utils.NotFoundCaps {
@@ -68,11 +69,11 @@ type CDRsV2 struct {
v1.CDRsV1
}
-func (cdrSv2 *CDRsV2) StoreSessionCost(args *engine.ArgsV2CDRSStoreSMCost, reply *string) error {
- return cdrSv2.CDRs.V2StoreSessionCost(args, reply)
+func (cdrSv2 *CDRsV2) StoreSessionCost(ctx *context.Context, args *engine.ArgsV2CDRSStoreSMCost, reply *string) error {
+ return cdrSv2.CDRs.V2StoreSessionCost(ctx, args, reply)
}
// ProcessEvent will process an Event based on the flags attached
-func (cdrSv2 *CDRsV2) ProcessEvent(arg *engine.ArgV1ProcessEvent, evs *[]*utils.EventWithFlags) error {
- return cdrSv2.CDRs.V2ProcessEvent(arg, evs)
+func (cdrSv2 *CDRsV2) ProcessEvent(ctx *context.Context, arg *engine.ArgV1ProcessEvent, evs *[]*utils.EventWithFlags) error {
+ return cdrSv2.CDRs.V2ProcessEvent(ctx, arg, evs)
}
diff --git a/apier/v2/cdrs_it_test.go b/apier/v2/cdrs_it_test.go
index 4bf0b7418..67f522a63 100644
--- a/apier/v2/cdrs_it_test.go
+++ b/apier/v2/cdrs_it_test.go
@@ -21,13 +21,14 @@ along with this program. If not, see
package v2
import (
- "net/rpc"
"path"
"reflect"
"sync"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +38,7 @@ import (
var (
cdrsCfgPath string
cdrsCfg *config.CGRConfig
- cdrsRpc *rpc.Client
+ cdrsRpc *birpc.Client
cdrsConfDIR string // run the tests for specific configuration
// subtests to be executed for each confDIR
@@ -139,7 +140,7 @@ func testV2CDRsRpcConn(t *testing.T) {
func testV2CDRsLoadTariffPlanFromFolder(t *testing.T) {
var loadInst utils.LoadInstance
- if err := cdrsRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
&utils.AttrLoadTpFromFolder{FolderPath: path.Join(
*dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
t.Error(err)
@@ -170,7 +171,7 @@ func testV2CDRsProcessCDR(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -180,14 +181,14 @@ func testV2CDRsProcessCDR(t *testing.T) {
func testV2CDRsGetCdrs(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 3 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
}
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -201,7 +202,7 @@ func testV2CDRsGetCdrs(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -215,7 +216,7 @@ func testV2CDRsGetCdrs(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -248,7 +249,7 @@ func testV2CDRsRateCDRs(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
t.Errorf("Got error on APIerSv1.GetRatingProfile: %+v", err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Calling APIerSv1.GetRatingProfile expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
@@ -265,7 +266,7 @@ func testV2CDRsRateCDRs(t *testing.T) {
Overwrite: true,
}
var reply string
- if err := cdrsRpc.Call(utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.SetRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetRatingProfile got reply: ", reply)
@@ -280,13 +281,13 @@ func testV2CDRsRateCDRs(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetRatingProfile, attrGetRatingPlan, &rpl); err != nil {
t.Errorf("Got error on APIerSv1.GetRatingProfile: %+v", err)
} else if !reflect.DeepEqual(expected, rpl) {
t.Errorf("Calling APIerSv1.GetRatingProfile expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rpl))
}
- if err := cdrsRpc.Call(utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
RPCCDRsFilter: utils.RPCCDRsFilter{NotRunIDs: []string{"raw"}},
Flags: []string{"*chargers:false", utils.MetaRerate},
}, &reply); err != nil {
@@ -299,14 +300,14 @@ func testV2CDRsRateCDRs(t *testing.T) {
func testV2CDRsGetCdrs2(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 3 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
}
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -316,7 +317,7 @@ func testV2CDRsGetCdrs2(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -326,7 +327,7 @@ func testV2CDRsGetCdrs2(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -359,7 +360,7 @@ func testV2CDRsUsageNegative(t *testing.T) {
},
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, argsCdr, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsCdr, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -367,7 +368,7 @@ func testV2CDRsUsageNegative(t *testing.T) {
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}, OriginIDs: []string{"testV2CDRsUsageNegative"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -381,7 +382,7 @@ func testV2CDRsUsageNegative(t *testing.T) {
}
cdrs = nil // gob doesn't modify zero-value fields
args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, OriginIDs: []string{"testV2CDRsUsageNegative"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -395,7 +396,7 @@ func testV2CDRsUsageNegative(t *testing.T) {
}
cdrs = nil // gob doesn't modify zero-value fields
args = utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"}, OriginIDs: []string{"testV2CDRsUsageNegative"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -449,13 +450,13 @@ func testV2CDRsDifferentTenants(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := cdrsRpc.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := cdrsRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.com", ID: "ATTR_Tenant"}}, &reply); err != nil {
t.Fatal(err)
}
@@ -480,13 +481,13 @@ func testV2CDRsDifferentTenants(t *testing.T) {
utils.CacheOpt: utils.MetaReload,
},
}
- if err := cdrsRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply2 *engine.ChargerProfile
- if err := cdrsRpc.Call(utils.APIerSv1GetChargerProfile,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "CustomTenant", ID: "CustomCharger"}, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply2) {
@@ -514,7 +515,7 @@ func testV2CDRsDifferentTenants(t *testing.T) {
},
}
var reply3 string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, argsCdr, &reply3); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsCdr, &reply3); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply3 != utils.OK {
t.Error("Unexpected reply received: ", reply3)
@@ -522,7 +523,7 @@ func testV2CDRsDifferentTenants(t *testing.T) {
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{Tenants: []string{"CustomTenant"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 { // no raw Charger defined
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -531,7 +532,7 @@ func testV2CDRsDifferentTenants(t *testing.T) {
func testV2CDRsRemoveRatingProfiles(t *testing.T) {
var reply string
- if err := cdrsRpc.Call(utils.APIerSv1RemoveRatingProfile, &v1.AttrRemoveRatingProfile{
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1RemoveRatingProfile, &v1.AttrRemoveRatingProfile{
Tenant: "cgrates.org",
Category: utils.Call,
Subject: utils.MetaAny,
@@ -540,7 +541,7 @@ func testV2CDRsRemoveRatingProfiles(t *testing.T) {
} else if reply != utils.OK {
t.Errorf("Expected: %s, received: %s ", utils.OK, reply)
}
- if err := cdrsRpc.Call(utils.APIerSv1RemoveRatingProfile, &v1.AttrRemoveRatingProfile{
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1RemoveRatingProfile, &v1.AttrRemoveRatingProfile{
Tenant: "cgrates.org",
Category: utils.Call,
Subject: "SUPPLIER1",
@@ -573,7 +574,7 @@ func testV2CDRsProcessCDRNoRattingPlan(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -583,14 +584,14 @@ func testV2CDRsProcessCDRNoRattingPlan(t *testing.T) {
func testV2CDRsGetCdrsNoRattingPlan(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 10 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
}
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}, Accounts: []string{"testV2CDRsProcessCDR4"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -600,7 +601,7 @@ func testV2CDRsGetCdrsNoRattingPlan(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, Accounts: []string{"testV2CDRsProcessCDR4"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -613,7 +614,7 @@ func testV2CDRsGetCdrsNoRattingPlan(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"}, Accounts: []string{"testV2CDRsProcessCDR4"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -640,7 +641,7 @@ func testV2CDRsRateCDRsWithRatingPlan(t *testing.T) {
Overwrite: true,
}
var reply string
- if err := cdrsRpc.Call(utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.SetRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetRatingProfile got reply: ", reply)
@@ -656,13 +657,13 @@ func testV2CDRsRateCDRsWithRatingPlan(t *testing.T) {
RatingPlanId: "RP_TESTIT1"}},
Overwrite: true,
}
- if err := cdrsRpc.Call(utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetRatingProfile, &rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.SetRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.SetRatingProfile got reply: ", reply)
}
- if err := cdrsRpc.Call(utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
RPCCDRsFilter: utils.RPCCDRsFilter{NotRunIDs: []string{"raw"}, Accounts: []string{"testV2CDRsProcessCDR4"}},
Flags: []string{"*chargers:true", utils.MetaRerate},
}, &reply); err != nil {
@@ -675,14 +676,14 @@ func testV2CDRsRateCDRsWithRatingPlan(t *testing.T) {
func testV2CDRsGetCdrsWithRatingPlan(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 10 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
}
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}, Accounts: []string{"testV2CDRsProcessCDR4"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -693,7 +694,7 @@ func testV2CDRsGetCdrsWithRatingPlan(t *testing.T) {
}
cdrs = []*engine.ExternalCDR{} // gob will not update zero value fields
args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, Accounts: []string{"testV2CDRsProcessCDR4"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -707,7 +708,7 @@ func testV2CDRsGetCdrsWithRatingPlan(t *testing.T) {
}
cdrs = []*engine.ExternalCDR{} // gob will not update zero value fields
args = utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"}, Accounts: []string{"testV2CDRsProcessCDR4"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -723,7 +724,7 @@ func testV2CDRsGetCdrsWithRatingPlan(t *testing.T) {
func testV2CDRsSetThreshold(t *testing.T) {
var reply string
- if err := cdrsRpc.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "ACT_LOG",
Actions: []*utils.TPAction{{Identifier: utils.MetaLog}},
}, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
@@ -744,7 +745,7 @@ func testV2CDRsSetThreshold(t *testing.T) {
ActionIDs: []string{"ACT_LOG"},
},
}
- if err := cdrsRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -756,7 +757,7 @@ func testV2CDRsSetThreshold(t *testing.T) {
utils.AllowNegative: true,
},
}
- if err := cdrsRpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
t.Fatal(err)
}
attrs := &utils.AttrSetBalance{
@@ -769,7 +770,7 @@ func testV2CDRsSetThreshold(t *testing.T) {
utils.Weight: 10.0,
},
}
- if err := cdrsRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
}
@@ -796,7 +797,7 @@ func testV2CDRsProcessCDRWithThreshold(t *testing.T) {
},
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -805,7 +806,7 @@ func testV2CDRsProcessCDRWithThreshold(t *testing.T) {
func testV2CDRsGetThreshold(t *testing.T) {
var td engine.Threshold
- if err := cdrsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := cdrsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}}, &td); err != nil {
t.Error(err)
} else if td.Hits != 1 {
@@ -836,14 +837,14 @@ func testv2CDRsGetCDRsDest(t *testing.T) {
},
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.ExternalCDR
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{DestinationPrefixes: []string{"+4915117174963"}},
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{DestinationPrefixes: []string{"+4915117174963"}},
&cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 3 {
@@ -853,7 +854,7 @@ func testv2CDRsGetCDRsDest(t *testing.T) {
func testV2CDRsRerate(t *testing.T) {
var reply string
- if err := cdrsRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := cdrsRpc.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error(err)
@@ -876,7 +877,7 @@ func testV2CDRsRerate(t *testing.T) {
utils.CacheOpt: utils.MetaReload,
},
}
- if err := cdrsRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -886,7 +887,7 @@ func testV2CDRsRerate(t *testing.T) {
Tenant: "cgrates.org",
Account: "voiceAccount",
}
- if err := cdrsRpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
t.Fatal(err)
}
attrs := &utils.AttrSetBalance{
@@ -900,12 +901,12 @@ func testV2CDRsRerate(t *testing.T) {
utils.Weight: 10.0,
},
}
- if err := cdrsRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
var acnt *engine.Account
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "voiceAccount"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaVoice][0].Value != 600000000000 {
@@ -933,11 +934,11 @@ func testV2CDRsRerate(t *testing.T) {
}
var rplProcEv []*utils.EventWithFlags
- if err := cdrsRpc.Call(utils.CDRsV2ProcessEvent, args, &rplProcEv); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV2ProcessEvent, args, &rplProcEv); err != nil {
t.Error("Unexpected error: ", err.Error())
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "voiceAccount"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaVoice][0].Value != 480000000000 {
@@ -964,11 +965,11 @@ func testV2CDRsRerate(t *testing.T) {
},
}
- if err := cdrsRpc.Call(utils.CDRsV2ProcessEvent, args2, &rplProcEv); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV2ProcessEvent, args2, &rplProcEv); err != nil {
t.Error("Unexpected error: ", err.Error())
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "voiceAccount"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaVoice][0].Value != 540000000000 {
@@ -978,7 +979,7 @@ func testV2CDRsRerate(t *testing.T) {
func testv2CDRsDynaPrepaid(t *testing.T) {
var acnt engine.Account
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "CreatedAccount"}, &acnt); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -1003,13 +1004,13 @@ func testv2CDRsDynaPrepaid(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "CreatedAccount"}, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary][0].Value != 9.9694 {
@@ -1019,7 +1020,7 @@ func testv2CDRsDynaPrepaid(t *testing.T) {
func testV2CDRsDuplicateCDRs(t *testing.T) {
var reply string
- if err := cdrsRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := cdrsRpc.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error(err)
@@ -1042,7 +1043,7 @@ func testV2CDRsDuplicateCDRs(t *testing.T) {
utils.CacheOpt: utils.MetaReload,
},
}
- if err := cdrsRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -1052,7 +1053,7 @@ func testV2CDRsDuplicateCDRs(t *testing.T) {
Tenant: "cgrates.org",
Account: "testV2CDRsDuplicateCDRs",
}
- if err := cdrsRpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
t.Fatal(err)
}
attrs := &utils.AttrSetBalance{
@@ -1066,12 +1067,12 @@ func testV2CDRsDuplicateCDRs(t *testing.T) {
utils.Weight: 10.0,
},
}
- if err := cdrsRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
var acnt *engine.Account
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV2CDRsDuplicateCDRs"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaVoice][0].Value != 600000000000 {
@@ -1099,11 +1100,11 @@ func testV2CDRsDuplicateCDRs(t *testing.T) {
}
var rplProcEv []*utils.EventWithFlags
- if err := cdrsRpc.Call(utils.CDRsV2ProcessEvent, args, &rplProcEv); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV2ProcessEvent, args, &rplProcEv); err != nil {
t.Error("Unexpected error: ", err.Error())
}
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV2CDRsDuplicateCDRs"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaVoice][0].Value != 480000000000 {
@@ -1134,7 +1135,7 @@ func testV2CDRsDuplicateCDRs(t *testing.T) {
},
},
}
- if err := cdrsRpc.Call(utils.CDRsV2ProcessEvent, args2, &rplProcEv); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV2ProcessEvent, args2, &rplProcEv); err != nil {
t.Error("Unexpected error: ", err.Error())
}
wg.Done()
@@ -1142,7 +1143,7 @@ func testV2CDRsDuplicateCDRs(t *testing.T) {
}
wg.Wait()
- if err := cdrsRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV2CDRsDuplicateCDRs"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaVoice][0].Value != 540000000000 {
@@ -1158,7 +1159,7 @@ func testV2CDRsKillEngine(t *testing.T) {
func testV2CDRsResetThresholdAction(t *testing.T) {
var reply string
- if err := cdrsRpc.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "ACT_RESET_THD",
Actions: []*utils.TPAction{{Identifier: utils.MetaResetThreshold, ExtraParameters: "cgrates.org:THD_Test"}},
}, &reply); err != nil {
@@ -1167,11 +1168,11 @@ func testV2CDRsResetThresholdAction(t *testing.T) {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrs := utils.AttrExecuteAction{Tenant: "cgrates.org", ActionsId: "ACT_RESET_THD"}
- if err := cdrsRpc.Call(utils.APIerSv1ExecuteAction, attrs, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrs, &reply); err != nil {
t.Error(err)
}
var td engine.Threshold
- if err := cdrsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := cdrsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}}, &td); err != nil {
t.Error(err)
} else if td.Hits != 0 {
diff --git a/apier/v2/cdrs_offline_it_test.go b/apier/v2/cdrs_offline_it_test.go
index 0113ba6f5..c1e39f302 100644
--- a/apier/v2/cdrs_offline_it_test.go
+++ b/apier/v2/cdrs_offline_it_test.go
@@ -21,12 +21,14 @@ along with this program. If not, see
package v2
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
@@ -37,7 +39,7 @@ import (
var (
cdrsOfflineCfgPath string
cdrsOfflineCfg *config.CGRConfig
- cdrsOfflineRpc *rpc.Client
+ cdrsOfflineRpc *birpc.Client
cdrsOfflineConfDIR string // run the tests for specific configuration
// subtests to be executed for each confDIR
@@ -111,7 +113,7 @@ func testV2cdrsOfflineRpcConn(t *testing.T) {
func testV2CDRsOfflineLoadData(t *testing.T) {
var loadInst utils.LoadInstance
- if err := cdrsOfflineRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
&utils.AttrLoadTpFromFolder{FolderPath: path.Join(
*dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
t.Error(err)
@@ -132,11 +134,11 @@ func testV2CDRsOfflineBalanceUpdate(t *testing.T) {
},
}
var reply string
- if err := cdrsOfflineRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
var acnt *engine.Account
- if err := cdrsOfflineRpc.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "test"}, &acnt); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "test"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaMonetary][0].Value != 10.0 {
t.Errorf("Unexpected balance received: %+v", acnt.BalanceMap[utils.MetaMonetary][0])
@@ -149,13 +151,13 @@ func testV2CDRsOfflineBalanceUpdate(t *testing.T) {
attrsAA := &utils.AttrSetActions{ActionsId: "ACT_LOG", Actions: []*utils.TPAction{
{Identifier: utils.MetaLog},
}}
- if err := cdrsOfflineRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
//make sure that the threshold don't exit
- if err := cdrsOfflineRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &thReply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -174,12 +176,12 @@ func testV2CDRsOfflineBalanceUpdate(t *testing.T) {
Async: false,
},
}
- if err := cdrsOfflineRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := cdrsOfflineRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &thReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, thReply) {
@@ -207,7 +209,7 @@ func testV2CDRsOfflineBalanceUpdate(t *testing.T) {
t.Error("Unexpected error received: ", err)
}
//process cdr should trigger balance update event
- if err := cdrsOfflineRpc.Call(utils.CDRsV1ProcessCDR, &engine.CDRWithAPIOpts{CDR: cdr}, &reply); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.CDRsV1ProcessCDR, &engine.CDRWithAPIOpts{CDR: cdr}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -224,7 +226,7 @@ func testV2CDRsOfflineExpiryBalance(t *testing.T) {
{Identifier: utils.MetaTopUp, BalanceType: utils.MetaMonetary, BalanceId: "NewBalance", Units: "10",
ExpiryTime: utils.MetaUnlimited, BalanceWeight: "10", Weight: 20.0},
}}
- if err := cdrsOfflineRpc.Call(utils.APIerSv2SetActions, acc, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2SetActions, acc, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -232,13 +234,13 @@ func testV2CDRsOfflineExpiryBalance(t *testing.T) {
atm1 := &v1.AttrActionPlan{ActionsId: "ACT_TOPUP_TEST2", Time: "*asap", Weight: 20.0}
atms1 := &v1.AttrSetActionPlan{Id: "AP_TEST2", ActionPlan: []*v1.AttrActionPlan{atm1}}
- if err := cdrsOfflineRpc.Call(utils.APIerSv1SetActionPlan, &atms1, &reply); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv1SetActionPlan, &atms1, &reply); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetActionPlan received: %s", reply)
}
- if err := cdrsOfflineRpc.Call(utils.APIerSv2SetAccount,
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2SetAccount,
&AttrSetAccount{Tenant: "cgrates.org", Account: "test2",
ActionPlanIDs: []string{"AP_TEST2"}, ReloadScheduler: true},
&reply); err != nil {
@@ -249,7 +251,7 @@ func testV2CDRsOfflineExpiryBalance(t *testing.T) {
var acnt *engine.Account
//verify if the third balance was added
- if err := cdrsOfflineRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "test2"}, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].Len() != 1 {
@@ -263,13 +265,13 @@ func testV2CDRsOfflineExpiryBalance(t *testing.T) {
attrsA := &utils.AttrSetActions{ActionsId: "ACT_LOG", Actions: []*utils.TPAction{
{Identifier: utils.MetaLog},
}}
- if err := cdrsOfflineRpc.Call(utils.APIerSv2SetActions, attrsA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
//make sure that the threshold don't exit
- if err := cdrsOfflineRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test2"}, &thReply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -292,12 +294,12 @@ func testV2CDRsOfflineExpiryBalance(t *testing.T) {
Async: false,
},
}
- if err := cdrsOfflineRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := cdrsOfflineRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test2"}, &thReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, thReply) {
@@ -322,7 +324,7 @@ func testV2CDRsOfflineExpiryBalance(t *testing.T) {
},
}
//process cdr should trigger balance update event
- if err := cdrsOfflineRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -342,15 +344,15 @@ func testV2CDRsBalancesWithSameWeight(t *testing.T) {
},
}
var reply string
- if err := cdrsOfflineRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
attrs.Balance[utils.ID] = "SpecialBalance2"
- if err := cdrsOfflineRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
var acnt *engine.Account
- if err := cdrsOfflineRpc.Call(utils.APIerSv2GetAccount,
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "specialTest"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || len(acnt.BalanceMap[utils.MetaMonetary]) != 2 {
@@ -378,7 +380,7 @@ func testV2CDRsBalancesWithSameWeight(t *testing.T) {
t.Error("Unexpected error received: ", err)
}
//process cdr should trigger balance update event
- if err := cdrsOfflineRpc.Call(utils.CDRsV1ProcessCDR, &engine.CDRWithAPIOpts{CDR: cdr}, &reply); err != nil {
+ if err := cdrsOfflineRpc.Call(context.Background(), utils.CDRsV1ProcessCDR, &engine.CDRWithAPIOpts{CDR: cdr}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
diff --git a/apier/v2/dispatcher.go b/apier/v2/dispatcher.go
index 705af186d..1c9402701 100644
--- a/apier/v2/dispatcher.go
+++ b/apier/v2/dispatcher.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package v2
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -33,10 +34,10 @@ type DispatcherSCDRsV2 struct {
dS *dispatchers.DispatcherService
}
-func (dS *DispatcherSCDRsV2) StoreSessionCost(args *engine.ArgsV2CDRSStoreSMCost, reply *string) error {
- return dS.dS.CDRsV2StoreSessionCost(args, reply)
+func (dS *DispatcherSCDRsV2) StoreSessionCost(ctx *context.Context, args *engine.ArgsV2CDRSStoreSMCost, reply *string) error {
+ return dS.dS.CDRsV2StoreSessionCost(ctx, args, reply)
}
-func (dS *DispatcherSCDRsV2) ProcessEvent(args *engine.ArgV1ProcessEvent, reply *[]*utils.EventWithFlags) error {
- return dS.dS.CDRsV2ProcessEvent(args, reply)
+func (dS *DispatcherSCDRsV2) ProcessEvent(ctx *context.Context, args *engine.ArgV1ProcessEvent, reply *[]*utils.EventWithFlags) error {
+ return dS.dS.CDRsV2ProcessEvent(ctx, args, reply)
}
diff --git a/apier/v2/lib_test.go b/apier/v2/lib_test.go
index 8bdd01564..e2636c3fc 100644
--- a/apier/v2/lib_test.go
+++ b/apier/v2/lib_test.go
@@ -21,9 +21,9 @@ package v2
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -35,12 +35,12 @@ var (
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/apier/v2/tp_it_test.go b/apier/v2/tp_it_test.go
index df9ae5d27..543881d1a 100644
--- a/apier/v2/tp_it_test.go
+++ b/apier/v2/tp_it_test.go
@@ -22,11 +22,13 @@ along with this program. If not, see
package v2
import (
- "net/rpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -36,7 +38,7 @@ import (
var (
tpCfgPath string
tpCfg *config.CGRConfig
- tpRPC *rpc.Client
+ tpRPC *birpc.Client
err error
delay int
configDIR string // relative path towards a config directory under samples prefix
@@ -174,7 +176,7 @@ func testTPitTimings(t *testing.T) {
// Test set
var reply string
for _, tm := range []*utils.ApierTPTiming{tmPeak, tmOffPeakMorning, tmOffPeakEvening, tmOffPeakWeekend, tmDummyRemove} {
- if err := tpRPC.Call(utils.APIerSv2SetTPTiming, tm, &reply); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2SetTPTiming, tm, &reply); err != nil {
t.Error("Got error on APIerSv2.SetTPTiming: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv2.SetTPTiming: ", reply)
@@ -182,20 +184,20 @@ func testTPitTimings(t *testing.T) {
}
// Test get
var rplyTmDummy *utils.ApierTPTiming
- if err := tpRPC.Call(utils.APIerSv2GetTPTiming, v1.AttrGetTPTiming{tmDummyRemove.TPid, tmDummyRemove.ID}, &rplyTmDummy); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetTPTiming, v1.AttrGetTPTiming{tmDummyRemove.TPid, tmDummyRemove.ID}, &rplyTmDummy); err != nil {
t.Error("Calling APIerSv2.GetTPTiming, got error: ", err.Error())
} else if !reflect.DeepEqual(tmDummyRemove, rplyTmDummy) {
t.Errorf("Calling APIerSv2.GetTPTiming expected: %v, received: %v", tmDummyRemove, rplyTmDummy)
}
var rplyTmIDs []string
expectedTmIDs := []string{"OFFPEAK_EVENING", "OFFPEAK_MORNING", "OFFPEAK_WEEKEND", "PEAK", tmDummyRemove.ID}
- if err := tpRPC.Call(utils.APIerSv1GetTPTimingIds, &v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1GetTPTimingIds, &v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil {
t.Error("Calling APIerSv1.GetTPTimingIds, got error: ", err.Error())
} else if len(expectedTmIDs) != len(rplyTmIDs) {
t.Errorf("Calling APIerSv1.GetTPTimingIds expected: %v, received: %v", expectedTmIDs, rplyTmIDs)
}
// Test remove
- if err := tpRPC.Call(utils.APIerSv2RemoveTPTiming, v1.AttrGetTPTiming{tmDummyRemove.TPid, tmDummyRemove.ID}, &reply); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2RemoveTPTiming, v1.AttrGetTPTiming{tmDummyRemove.TPid, tmDummyRemove.ID}, &reply); err != nil {
t.Error("Calling APIerSv2.RemoveTPTiming, got error: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv2.RemoveTPTiming received: ", reply)
@@ -203,7 +205,7 @@ func testTPitTimings(t *testing.T) {
// Test getIds
rplyTmIDs = []string{}
expectedTmIDs = []string{"OFFPEAK_EVENING", "OFFPEAK_MORNING", "OFFPEAK_WEEKEND", "PEAK"}
- if err := tpRPC.Call(utils.APIerSv1GetTPTimingIds, &v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1GetTPTimingIds, &v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil {
t.Error("Calling APIerSv1.GetTPTimingIds, got error: ", err.Error())
} else if len(expectedTmIDs) != len(rplyTmIDs) {
t.Errorf("Calling APIerSv1.GetTPTimingIds expected: %v, received: %v", expectedTmIDs, rplyTmIDs)
@@ -226,7 +228,7 @@ func testTPitDestinations(t *testing.T) {
dstDEMobile := &utils.TPDestination{TPid: testTPid, ID: "DST_DE_MOBILE", Prefixes: []string{"+49151", "+49161", "+49171"}}
dstDUMMY := &utils.TPDestination{TPid: testTPid, ID: "DUMMY_REMOVE", Prefixes: []string{"999"}}
for _, dst := range []*utils.TPDestination{dst1002, dst1003, dst1007, dstFS, dstDEMobile, dstDUMMY} {
- if err := tpRPC.Call(utils.APIerSv2SetTPDestination, dst, &reply); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2SetTPDestination, dst, &reply); err != nil {
t.Error("Got error on APIerSv2.SetTPDestination: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv2.SetTPDestination: ", reply)
@@ -234,13 +236,13 @@ func testTPitDestinations(t *testing.T) {
}
// Test get
var rplyDst *utils.TPDestination
- if err := tpRPC.Call(utils.APIerSv2GetTPDestination, &AttrGetTPDestination{testTPid, dstDEMobile.ID}, &rplyDst); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetTPDestination, &AttrGetTPDestination{testTPid, dstDEMobile.ID}, &rplyDst); err != nil {
t.Error("Calling APIerSv2.GetTPDestination, got error: ", err.Error())
} else if len(dstDEMobile.Prefixes) != len(rplyDst.Prefixes) {
t.Errorf("Calling APIerSv2.GetTPDestination expected: %v, received: %v", dstDEMobile, rplyDst)
}
// Test remove
- if err := tpRPC.Call(utils.APIerSv2RemoveTPDestination, &AttrGetTPDestination{testTPid, dstDUMMY.ID}, &reply); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2RemoveTPDestination, &AttrGetTPDestination{testTPid, dstDUMMY.ID}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Received: ", reply)
@@ -248,7 +250,7 @@ func testTPitDestinations(t *testing.T) {
// Test getIds
var rplyDstIds []string
expectedDstIds := []string{"DST_1002", "DST_1003", "DST_1007", "DST_DE_MOBILE", "DST_FS"}
- if err := tpRPC.Call(utils.APIerSv2GetTPDestinationIDs, v1.AttrGetTPDestinationIds{TPid: testTPid}, &rplyDstIds); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetTPDestinationIDs, v1.AttrGetTPDestinationIds{TPid: testTPid}, &rplyDstIds); err != nil {
t.Error("Calling APIerSv1.GetTPDestinationIDs, got error: ", err.Error())
} else if len(expectedDstIds) != len(rplyDstIds) {
t.Errorf("Calling APIerSv2.GetTPDestinationIDs expected: %v, received: %v", expectedDstIds, rplyDstIds)
diff --git a/apier/v2/tpdestinations.go b/apier/v2/tpdestinations.go
index c46efb20c..40a8d2ab1 100644
--- a/apier/v2/tpdestinations.go
+++ b/apier/v2/tpdestinations.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package v2
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// Creates a new destination within a tariff plan
-func (self *APIerSv2) SetTPDestination(attrs *utils.TPDestination, reply *string) error {
+func (self *APIerSv2) SetTPDestination(ctx *context.Context, attrs *utils.TPDestination, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "ID", "Prefixes"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -40,7 +41,7 @@ type AttrGetTPDestination struct {
}
// Queries a specific destination
-func (self *APIerSv2) GetTPDestination(attrs *AttrGetTPDestination, reply *utils.TPDestination) error {
+func (self *APIerSv2) GetTPDestination(ctx *context.Context, attrs *AttrGetTPDestination, reply *utils.TPDestination) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tag"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -54,7 +55,7 @@ func (self *APIerSv2) GetTPDestination(attrs *AttrGetTPDestination, reply *utils
return nil
}
-func (self *APIerSv2) RemoveTPDestination(attrs *AttrGetTPDestination, reply *string) error {
+func (self *APIerSv2) RemoveTPDestination(ctx *context.Context, attrs *AttrGetTPDestination, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tag"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/cmd/cgr-console/cgr-console.go b/cmd/cgr-console/cgr-console.go
index 98feb200a..dce983fd7 100644
--- a/cmd/cgr-console/cgr-console.go
+++ b/cmd/cgr-console/cgr-console.go
@@ -28,6 +28,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/console"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/rpcclient"
@@ -35,21 +36,24 @@ import (
)
var (
- cgrConsoleFlags = flag.NewFlagSet(utils.CgrConsole, flag.ContinueOnError)
- historyFN = os.Getenv(utils.HomeCgr) + utils.HistoryCgr
- version = cgrConsoleFlags.Bool(utils.VersionCgr, false, "Prints the application version.")
- verbose = cgrConsoleFlags.Bool(utils.VerboseCgr, false, "Show extra info about command execution.")
- server = cgrConsoleFlags.String(utils.MailerServerCfg, "127.0.0.1:2012", "server address host:port")
- rpcEncoding = cgrConsoleFlags.String(utils.RpcEncodingCgr, utils.MetaJSON, "RPC encoding used <*gob|*json>")
- certificatePath = cgrConsoleFlags.String(utils.CertPathCgr, utils.EmptyString, "path to certificate for tls connection")
- keyPath = cgrConsoleFlags.String(utils.KeyPathCgr, utils.EmptyString, "path to key for tls connection")
- caPath = cgrConsoleFlags.String(utils.CAPathCgr, utils.EmptyString, "path to CA for tls connection(only for self sign certificate)")
- tls = cgrConsoleFlags.Bool(utils.TLSNoCaps, false, "TLS connection")
- replyTimeOut = cgrConsoleFlags.Int(utils.ReplyTimeoutCfg, 300, "Reply timeout in seconds ")
- client *rpcclient.RPCClient
+ cgrConsoleFlags = flag.NewFlagSet(utils.CgrConsole, flag.ContinueOnError)
+ historyFN = os.Getenv(utils.HomeCgr) + utils.HistoryCgr
+ version = cgrConsoleFlags.Bool(utils.VersionCgr, false, "Prints the application version.")
+ verbose = cgrConsoleFlags.Bool(utils.VerboseCgr, false, "Show extra info about command execution.")
+ server = cgrConsoleFlags.String(utils.MailerServerCfg, "127.0.0.1:2012", "server address host:port")
+ rpcEncoding = cgrConsoleFlags.String(utils.RpcEncodingCgr, utils.MetaJSON, "RPC encoding used <*gob|*json>")
+ certificatePath = cgrConsoleFlags.String(utils.CertPathCgr, utils.EmptyString, "path to certificate for tls connection")
+ keyPath = cgrConsoleFlags.String(utils.KeyPathCgr, utils.EmptyString, "path to key for tls connection")
+ caPath = cgrConsoleFlags.String(utils.CAPathCgr, utils.EmptyString, "path to CA for tls connection(only for self sign certificate)")
+ tls = cgrConsoleFlags.Bool(utils.TLSNoCaps, false, "TLS connection")
+ connectAttempts = cgrConsoleFlags.Int(utils.ConnectAttemptsCfg, 3, "Connect attempts")
+ reconnects = cgrConsoleFlags.Int(utils.ReconnectsCfg, 3, "Reconnect attempts")
+ maxReconnectInterval = cgrConsoleFlags.Int(utils.MaxReconnectIntervalCfg, 0, "Maximum reconnect interval")
+ connectTimeout = cgrConsoleFlags.Int(utils.ConnectTimeoutCfg, 1, "Connect timeout in seconds ")
+ replyTimeout = cgrConsoleFlags.Int(utils.ReplyTimeoutCfg, 300, "Reply timeout in seconds ")
)
-func executeCommand(command string) {
+func executeCommand(command string, client *rpcclient.RPCClient) {
if strings.TrimSpace(command) == utils.EmptyString {
return
}
@@ -106,7 +110,7 @@ func executeCommand(command string) {
param = param.(*console.StringMapWrapper).Items
}
- if rpcErr := client.Call(cmd.RpcMethod(), param, res); rpcErr != nil {
+ if rpcErr := client.Call(context.TODO(), cmd.RpcMethod(), param, res); rpcErr != nil {
fmt.Println("Error executing command: " + rpcErr.Error())
} else {
fmt.Println(cmd.GetFormatedResult(res))
@@ -128,17 +132,17 @@ func main() {
}
return
}
- var err error
- client, err = rpcclient.NewRPCClient(utils.TCP, *server, *tls, *keyPath, *certificatePath, *caPath, 3, 3,
- time.Second, time.Duration(*replyTimeOut)*time.Second, *rpcEncoding, nil, false, nil)
+ client, err := rpcclient.NewRPCClient(context.TODO(), utils.TCP, *server, *tls, *keyPath, *certificatePath, *caPath, *connectAttempts, *reconnects,
+ time.Duration(*maxReconnectInterval)*time.Second, utils.FibDuration, time.Duration(*connectTimeout)*time.Second,
+ time.Duration(*replyTimeout)*time.Second, *rpcEncoding, nil, false, nil)
if err != nil {
cgrConsoleFlags.PrintDefaults()
log.Fatal("Could not connect to server " + *server)
}
if len(cgrConsoleFlags.Args()) != 0 {
- executeCommand(strings.Join(cgrConsoleFlags.Args(), utils.SepCgr))
+ executeCommand(strings.Join(cgrConsoleFlags.Args(), utils.SepCgr), client)
return
}
@@ -190,7 +194,7 @@ func main() {
fmt.Println("\nbye!")
stop = true
default:
- executeCommand(command)
+ executeCommand(command, client)
}
}
}
diff --git a/cmd/cgr-console/cgr-console_flags_test.go b/cmd/cgr-console/cgr-console_flags_test.go
index 526ab7696..44050a50b 100644
--- a/cmd/cgr-console/cgr-console_flags_test.go
+++ b/cmd/cgr-console/cgr-console_flags_test.go
@@ -71,7 +71,7 @@ func TestCgrConsoleFlags(t *testing.T) {
if err := cgrConsoleFlags.Parse([]string{"-reply_timeout", "200"}); err != nil {
t.Fatal(err)
- } else if *replyTimeOut != 200 {
+ } else if *replyTimeout != 200 {
t.Errorf("Expected 200 but received %+v", *rpcEncoding)
}
}
diff --git a/cmd/cgr-console/cgr-console_it_test.go b/cmd/cgr-console/cgr-console_it_test.go
index 2053c34e6..54f3684ce 100644
--- a/cmd/cgr-console/cgr-console_it_test.go
+++ b/cmd/cgr-console/cgr-console_it_test.go
@@ -27,8 +27,6 @@ import (
"errors"
"flag"
"fmt"
- "net/rpc"
- "net/rpc/jsonrpc"
"os"
"os/exec"
"path"
@@ -38,6 +36,10 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
@@ -50,7 +52,7 @@ var (
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
waitRater = flag.Int("wait_rater", 100, "Number of milliseconds to wait for rater to start and cache")
encoding = flag.String("rpc", utils.MetaJSON, "what encoding whould be uused for rpc comunication")
- cnslRPC *rpc.Client
+ cnslRPC *birpc.Client
)
var (
@@ -312,12 +314,12 @@ func testConsoleItStartEngine(t *testing.T) {
}
}
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
@@ -3584,7 +3586,7 @@ func testConsoleItActiveSessions(t *testing.T) {
func testConsoleItPassiveSessions(t *testing.T) {
var reply string
- err := cnslRPC.Call(utils.SessionSv1DeactivateSessions, &utils.SessionIDsWithArgsDispatcher{}, &reply)
+ err := cnslRPC.Call(context.Background(), utils.SessionSv1DeactivateSessions, &utils.SessionIDsWithArgsDispatcher{}, &reply)
if err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -3594,7 +3596,7 @@ func testConsoleItPassiveSessions(t *testing.T) {
APIOpts: make(map[string]any),
}
var reply2 []*sessions.ExternalSession
- if err := cnslRPC.Call(utils.SessionSv1GetPassiveSessions, args, &reply2); err != nil {
+ if err := cnslRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, args, &reply2); err != nil {
t.Error(err)
}
expected := []*sessions.ExternalSession{
diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go
index 8ad6c14ba..f26ea1a6c 100644
--- a/cmd/cgr-engine/cgr-engine.go
+++ b/cmd/cgr-engine/cgr-engine.go
@@ -34,6 +34,8 @@ import (
"syscall"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/loaders"
"github.com/cgrates/cgrates/registrarc"
@@ -76,11 +78,11 @@ func startFilterService(filterSChan chan *engine.FilterS, cacheS *engine.CacheS,
}
// initCacheS inits the CacheS and starts precaching as well as populating internal channel for RPC conns
-func initCacheS(internalCacheSChan chan rpcclient.ClientConnector,
+func initCacheS(internalCacheSChan chan birpc.ClientConnector,
server *cores.Server, dm *engine.DataManager, shdChan *utils.SyncedChan,
anz *services.AnalyzerService,
- cpS *engine.CapsStats) (chS *engine.CacheS) {
- chS = engine.NewCacheS(cfg, dm, cpS)
+ cpS *engine.CapsStats) (*engine.CacheS, error) {
+ chS := engine.NewCacheS(cfg, dm, cpS)
go func() {
if err := chS.Precache(); err != nil {
utils.Logger.Crit(fmt.Sprintf("<%s> could not init, error: %s", utils.CacheS, err.Error()))
@@ -88,55 +90,63 @@ func initCacheS(internalCacheSChan chan rpcclient.ClientConnector,
}
}()
- chSv1 := v1.NewCacheSv1(chS)
+ srv, err := engine.NewService(chS)
+ if err != nil {
+ return nil, err
+ }
if !cfg.DispatcherSCfg().Enabled {
- server.RpcRegister(chSv1)
+ for _, s := range srv {
+ server.RpcRegister(s)
+ }
}
- var rpc rpcclient.ClientConnector = chS
- if anz.IsRunning() {
- rpc = anz.GetAnalyzerS().NewAnalyzerConnector(rpc, utils.MetaInternal, utils.EmptyString, utils.CacheS)
- }
- internalCacheSChan <- rpc
- return
+ internalCacheSChan <- anz.GetInternalCodec(srv, utils.CacheS)
+ return chS, nil
}
-func initGuardianSv1(internalGuardianSChan chan rpcclient.ClientConnector, server *cores.Server,
- anz *services.AnalyzerService) {
- grdSv1 := v1.NewGuardianSv1()
+func initGuardianSv1(internalGuardianSChan chan birpc.ClientConnector, server *cores.Server,
+ anz *services.AnalyzerService) error {
+ srv, err := engine.NewService(v1.NewGuardianSv1())
+ if err != nil {
+ return err
+ }
if !cfg.DispatcherSCfg().Enabled {
- server.RpcRegister(grdSv1)
+ for _, s := range srv {
+ server.RpcRegister(s)
+ }
}
- var rpc rpcclient.ClientConnector = grdSv1
- if anz.IsRunning() {
- rpc = anz.GetAnalyzerS().NewAnalyzerConnector(rpc, utils.MetaInternal, utils.EmptyString, utils.GuardianS)
- }
- internalGuardianSChan <- rpc
+ internalGuardianSChan <- anz.GetInternalCodec(srv, utils.GuardianS)
+ return nil
}
-func initServiceManagerV1(internalServiceManagerChan chan rpcclient.ClientConnector,
+func initServiceManagerV1(internalServiceManagerChan chan birpc.ClientConnector,
srvMngr *servmanager.ServiceManager, server *cores.Server,
- anz *services.AnalyzerService) {
+ anz *services.AnalyzerService) error {
+ srv, err := engine.NewService(v1.NewServiceManagerV1(srvMngr))
+ if err != nil {
+ return err
+ }
if !cfg.DispatcherSCfg().Enabled {
- server.RpcRegister(v1.NewServiceManagerV1(srvMngr))
+ for _, s := range srv {
+ server.RpcRegister(s)
+ }
}
- var rpc rpcclient.ClientConnector = srvMngr
- if anz.IsRunning() {
- rpc = anz.GetAnalyzerS().NewAnalyzerConnector(rpc, utils.MetaInternal, utils.EmptyString, utils.ServiceManager)
- }
- internalServiceManagerChan <- rpc
+ internalServiceManagerChan <- anz.GetInternalCodec(srv, utils.ServiceManager)
+ return nil
}
-func initConfigSv1(internalConfigChan chan rpcclient.ClientConnector,
- server *cores.Server, anz *services.AnalyzerService) {
- cfgSv1 := v1.NewConfigSv1(cfg)
+func initConfigSv1(internalConfigChan chan birpc.ClientConnector,
+ server *cores.Server, anz *services.AnalyzerService) error {
+ srv, err := engine.NewService(v1.NewConfigSv1(cfg))
+ if err != nil {
+ return err
+ }
if !cfg.DispatcherSCfg().Enabled {
- server.RpcRegister(cfgSv1)
+ for _, s := range srv {
+ server.RpcRegister(s)
+ }
}
- var rpc rpcclient.ClientConnector = cfgSv1
- if anz.IsRunning() {
- rpc = anz.GetAnalyzerS().NewAnalyzerConnector(rpc, utils.MetaInternal, utils.EmptyString, utils.ConfigSv1)
- }
- internalConfigChan <- rpc
+ internalConfigChan <- anz.GetInternalCodec(srv, utils.ConfigSv1)
+ return nil
}
func startRPC(server *cores.Server, internalRaterChan,
@@ -144,7 +154,7 @@ func startRPC(server *cores.Server, internalRaterChan,
internalAttrSChan, internalChargerSChan, internalThdSChan, internalSuplSChan,
internalSMGChan, internalAnalyzerSChan, internalDispatcherSChan,
internalLoaderSChan, internalRALsv1Chan, internalCacheSChan,
- internalEEsChan chan rpcclient.ClientConnector,
+ internalEEsChan chan birpc.ClientConnector,
shdChan *utils.SyncedChan) {
if !cfg.DispatcherSCfg().Enabled {
select { // Any of the rpc methods will unlock listening to rpc requests
@@ -277,6 +287,7 @@ func singnalHandler(shdWg *sync.WaitGroup, shdChan *utils.SyncedChan) {
go func() {
var reply string
if err := config.CgrConfig().V1ReloadConfig(
+ context.TODO(),
&config.ReloadArgs{
Section: utils.EmptyString,
Path: config.CgrConfig().ConfigPath, // use the same path
@@ -289,7 +300,7 @@ func singnalHandler(shdWg *sync.WaitGroup, shdChan *utils.SyncedChan) {
}
}
-func runPreload(loader *services.LoaderService, internalLoaderSChan chan rpcclient.ClientConnector,
+func runPreload(loader *services.LoaderService, internalLoaderSChan chan birpc.ClientConnector,
shdChan *utils.SyncedChan) {
if !cfg.LoaderCfg().Enabled() {
utils.Logger.Err(fmt.Sprintf("<%s> not enabled but required by preload mechanism", utils.LoaderS))
@@ -302,11 +313,12 @@ func runPreload(loader *services.LoaderService, internalLoaderSChan chan rpcclie
var reply string
for _, loaderID := range strings.Split(*preload, utils.FieldsSep) {
- if err := loader.GetLoaderS().V1Load(&loaders.ArgsProcessFolder{
- ForceLock: true, // force lock will unlock the file in case is locked and return error
- LoaderID: loaderID,
- StopOnError: true,
- }, &reply); err != nil {
+ if err := loader.GetLoaderS().V1Load(context.TODO(),
+ &loaders.ArgsProcessFolder{
+ ForceLock: true, // force lock will unlock the file in case is locked and return error
+ LoaderID: loaderID,
+ StopOnError: true,
+ }, &reply); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> preload failed on loadID <%s> , err: <%s>", utils.LoaderS, loaderID, err.Error()))
shdChan.CloseOnce()
return
@@ -436,32 +448,32 @@ func main() {
cfg.LazySanityCheck()
// init the channel here because we need to pass them to connManager
- internalServeManagerChan := make(chan rpcclient.ClientConnector, 1)
- internalConfigChan := make(chan rpcclient.ClientConnector, 1)
- internalCoreSv1Chan := make(chan rpcclient.ClientConnector, 1)
- internalCacheSChan := make(chan rpcclient.ClientConnector, 1)
- internalGuardianSChan := make(chan rpcclient.ClientConnector, 1)
- internalAnalyzerSChan := make(chan rpcclient.ClientConnector, 1)
- internalCDRServerChan := make(chan rpcclient.ClientConnector, 1)
- internalAttributeSChan := make(chan rpcclient.ClientConnector, 1)
- internalDispatcherSChan := make(chan rpcclient.ClientConnector, 1)
- internalSessionSChan := make(chan rpcclient.ClientConnector, 1)
- internalChargerSChan := make(chan rpcclient.ClientConnector, 1)
- internalThresholdSChan := make(chan rpcclient.ClientConnector, 1)
- internalStatSChan := make(chan rpcclient.ClientConnector, 1)
- internalResourceSChan := make(chan rpcclient.ClientConnector, 1)
- internalRouteSChan := make(chan rpcclient.ClientConnector, 1)
- internalSchedulerSChan := make(chan rpcclient.ClientConnector, 1)
- internalRALsChan := make(chan rpcclient.ClientConnector, 1)
- internalResponderChan := make(chan rpcclient.ClientConnector, 1)
- internalAPIerSv1Chan := make(chan rpcclient.ClientConnector, 1)
- internalAPIerSv2Chan := make(chan rpcclient.ClientConnector, 1)
- internalLoaderSChan := make(chan rpcclient.ClientConnector, 1)
- internalEEsChan := make(chan rpcclient.ClientConnector, 1)
+ internalServeManagerChan := make(chan birpc.ClientConnector, 1)
+ internalConfigChan := make(chan birpc.ClientConnector, 1)
+ internalCoreSv1Chan := make(chan birpc.ClientConnector, 1)
+ internalCacheSChan := make(chan birpc.ClientConnector, 1)
+ internalGuardianSChan := make(chan birpc.ClientConnector, 1)
+ internalAnalyzerSChan := make(chan birpc.ClientConnector, 1)
+ internalCDRServerChan := make(chan birpc.ClientConnector, 1)
+ internalAttributeSChan := make(chan birpc.ClientConnector, 1)
+ internalDispatcherSChan := make(chan birpc.ClientConnector, 1)
+ internalSessionSChan := make(chan birpc.ClientConnector, 1)
+ internalChargerSChan := make(chan birpc.ClientConnector, 1)
+ internalThresholdSChan := make(chan birpc.ClientConnector, 1)
+ internalStatSChan := make(chan birpc.ClientConnector, 1)
+ internalResourceSChan := make(chan birpc.ClientConnector, 1)
+ internalRouteSChan := make(chan birpc.ClientConnector, 1)
+ internalSchedulerSChan := make(chan birpc.ClientConnector, 1)
+ internalRALsChan := make(chan birpc.ClientConnector, 1)
+ internalResponderChan := make(chan birpc.ClientConnector, 1)
+ internalAPIerSv1Chan := make(chan birpc.ClientConnector, 1)
+ internalAPIerSv2Chan := make(chan birpc.ClientConnector, 1)
+ internalLoaderSChan := make(chan birpc.ClientConnector, 1)
+ internalEEsChan := make(chan birpc.ClientConnector, 1)
// initialize the connManager before creating the DMService
// because we need to pass the connection to it
- connManager := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connManager := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAnalyzer): internalAnalyzerSChan,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier): internalAPIerSv2Chan,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): internalAttributeSChan,
@@ -575,11 +587,17 @@ func main() {
cS = coreS.GetCoreS()
// init CacheS
- cacheS := initCacheS(internalCacheSChan, server, dmService.GetDM(), shdChan, anz, coreS.GetCoreS().CapsStats)
+ cacheS, err := initCacheS(internalCacheSChan, server, dmService.GetDM(), shdChan, anz, coreS.GetCoreS().CapsStats)
+ if err != nil {
+ log.Fatal(err)
+ }
engine.Cache = cacheS
// init GuardianSv1
- initGuardianSv1(internalGuardianSChan, server, anz)
+ err = initGuardianSv1(internalGuardianSChan, server, anz)
+ if err != nil {
+ log.Fatal(err)
+ }
// Start ServiceManager
srvManager := servmanager.NewServiceManager(cfg, shdChan, shdWg, connManager)
@@ -636,7 +654,10 @@ func main() {
go startFilterService(filterSChan, cacheS, connManager,
cfg, dmService.GetDM())
- initServiceManagerV1(internalServeManagerChan, srvManager, server, anz)
+ err = initServiceManagerV1(internalServeManagerChan, srvManager, server, anz)
+ if err != nil {
+ log.Fatal(err)
+ }
// init internalRPCSet to share internal connections among the engine
engine.IntRPC = engine.NewRPCClientSet()
@@ -664,7 +685,10 @@ func main() {
engine.IntRPC.AddInternalRPCClient(utils.EeSv1, internalEEsChan)
engine.IntRPC.AddInternalRPCClient(utils.DispatcherSv1, internalDispatcherSChan)
- initConfigSv1(internalConfigChan, server, anz)
+ err = initConfigSv1(internalConfigChan, server, anz)
+ if err != nil {
+ log.Fatal(err)
+ }
if *preload != utils.EmptyString {
runPreload(ldrs, internalLoaderSChan, shdChan)
diff --git a/cmd/cgr-loader/cgr-loader_remove_it_test.go b/cmd/cgr-loader/cgr-loader_remove_it_test.go
index 5507aed85..7aba1b131 100644
--- a/cmd/cgr-loader/cgr-loader_remove_it_test.go
+++ b/cmd/cgr-loader/cgr-loader_remove_it_test.go
@@ -24,8 +24,6 @@ package main
import (
"bytes"
"errors"
- "net/rpc"
- "net/rpc/jsonrpc"
"os/exec"
"path"
"reflect"
@@ -33,6 +31,10 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -42,7 +44,7 @@ var (
cgrLdrCfgPath string
cgrLdrCfgDir string
cgrLdrCfg *config.CGRConfig
- cgrLdrRPC *rpc.Client
+ cgrLdrRPC *birpc.Client
cgrLdrTests = []func(t *testing.T){
testCgrLdrInitCfg,
testCgrLdrInitDataDB,
@@ -125,7 +127,7 @@ func testCgrLdrRPCConn(t *testing.T) {
func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
//attributesPrf
var replyAttr *engine.AttributeProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACNT_1001"}},
&replyAttr); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -133,7 +135,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
//filtersPrf
var replyFltr *engine.Filter
- if err := cgrLdrRPC.Call(utils.APIerSv1GetFilter,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_1"}},
&replyFltr); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -141,7 +143,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
// resourcesPrf
var replyResPrf *engine.ResourceProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "RES_ACNT_1001"}},
&replyResPrf); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -149,7 +151,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
// resource
var replyRes *engine.Resource
- if err := cgrLdrRPC.Call(utils.ResourceSv1GetResource,
+ if err := cgrLdrRPC.Call(context.Background(), utils.ResourceSv1GetResource,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "RES_ACNT_1001"}},
&replyRes); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -157,7 +159,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
// routesPrf
var replyRts *engine.RouteProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}},
&replyRts); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -165,7 +167,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
// statsPrf
var replySts *engine.StatQueueProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}},
&replySts); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -173,7 +175,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
// statQueue
var replyStQue *engine.StatQueue
- if err := cgrLdrRPC.Call(utils.StatSv1GetStatQueue,
+ if err := cgrLdrRPC.Call(context.Background(), utils.StatSv1GetStatQueue,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}},
&replyStQue); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -181,7 +183,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
// thresholdPrf
var replyThdPrf *engine.ThresholdProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1"}},
&replyThdPrf); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -189,7 +191,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
// threshold
var rplyThd *engine.Threshold
- if err := cgrLdrRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := cgrLdrRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1"}},
&rplyThd); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+q, received %v", utils.ErrNotFound.Error(), err)
@@ -197,7 +199,7 @@ func testCgrLdrGetSubsystemsNotLoadedLoad(t *testing.T) {
//chargers
var replyChrgr *engine.ChargerProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Raw"},
&replyChrgr); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+v, received %v", utils.ErrNotFound.Error(), err)
@@ -237,7 +239,7 @@ func testCgrLdrGetAttributeProfileAfterLoad(t *testing.T) {
},
}
var replyAttr *engine.AttributeProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACNT_1001"}},
&replyAttr); err != nil {
t.Error(err)
@@ -278,7 +280,7 @@ func testCgrLdrGetFilterAfterLoad(t *testing.T) {
},
}
var replyFltr *engine.Filter
- if err := cgrLdrRPC.Call(utils.APIerSv1GetFilter,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_1"}},
&replyFltr); err != nil {
t.Error(err)
@@ -298,7 +300,7 @@ func testCgrLdrGetResourceProfileAfterLoad(t *testing.T) {
ThresholdIDs: []string{},
}
var replyRes *engine.ResourceProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "RES_ACNT_1001"}},
&replyRes); err != nil {
t.Error(err)
@@ -314,7 +316,7 @@ func testCgrLdrGetResourceAfterLoad(t *testing.T) {
Usages: map[string]*engine.ResourceUsage{},
}
var replyRes *engine.Resource
- if err := cgrLdrRPC.Call(utils.ResourceSv1GetResource,
+ if err := cgrLdrRPC.Call(context.Background(), utils.ResourceSv1GetResource,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "RES_ACNT_1001"}},
&replyRes); err != nil {
t.Error(err)
@@ -343,7 +345,7 @@ func testCgrLdrGetRouteProfileAfterLoad(t *testing.T) {
},
}
var replyRts *engine.RouteProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}},
&replyRts); err != nil {
t.Error(err)
@@ -387,7 +389,7 @@ func testCgrLdrGetStatsProfileAfterLoad(t *testing.T) {
},
}
var replySts *engine.StatQueueProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}},
&replySts); err != nil {
t.Error(err)
@@ -411,7 +413,7 @@ func testCgrLdrGetStatQueueAfterLoad(t *testing.T) {
"*asr": "N/A",
}
replyStQue := make(map[string]string)
- if err := cgrLdrRPC.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := cgrLdrRPC.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}},
&replyStQue); err != nil {
t.Error(err)
@@ -434,7 +436,7 @@ func testCgrLdrGetThresholdProfileAfterLoad(t *testing.T) {
ActionIDs: []string{"TOPUP_MONETARY_10"},
}
var replyThdPrf *engine.ThresholdProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}},
&replyThdPrf); err != nil {
t.Error(err)
@@ -450,7 +452,7 @@ func testCgrLdrGetThresholdAfterLoad(t *testing.T) {
Hits: 0,
}
var replyThdPrf *engine.Threshold
- if err := cgrLdrRPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := cgrLdrRPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}},
&replyThdPrf); err != nil {
t.Error(err)
@@ -470,7 +472,7 @@ func testCgrLdrGetChargerProfileAfterLoad(t *testing.T) {
}
var replyChrgr *engine.ChargerProfile
- if err := cgrLdrRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := cgrLdrRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Raw"},
&replyChrgr); err != nil {
t.Error(err)
@@ -501,12 +503,12 @@ func testCgrLdrKillEngine(t *testing.T) {
}
}
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/cmd/cgr-tester/cdr_repl/process_cdr.go b/cmd/cgr-tester/cdr_repl/process_cdr.go
index 735064d5f..740a9bc3a 100644
--- a/cmd/cgr-tester/cdr_repl/process_cdr.go
+++ b/cmd/cgr-tester/cdr_repl/process_cdr.go
@@ -25,6 +25,7 @@ import (
"path"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -43,8 +44,8 @@ func main() {
if cdrsMasterCfg, err = config.NewCGRConfigFromPath(cdrsMasterCfgPath); err != nil {
log.Fatal("Got config error: ", err.Error())
}
- cdrsMasterRpc, err = rpcclient.NewRPCClient(utils.TCP, cdrsMasterCfg.ListenCfg().RPCJSONListen, false, "", "", "", 1, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+ cdrsMasterRpc, err = rpcclient.NewRPCClient(context.TODO(), utils.TCP, cdrsMasterCfg.ListenCfg().RPCJSONListen, false, "", "", "", 1, 1,
+ 0, utils.FibDuration, time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
if err != nil {
log.Fatal("Could not connect to rater: ", err.Error())
}
@@ -59,7 +60,7 @@ func main() {
}
var reply string
for _, cdr := range cdrs {
- if err := cdrsMasterRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
+ if err := cdrsMasterRpc.Call(context.TODO(), utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
log.Fatal("Unexpected error: ", err.Error())
} else if reply != utils.OK {
log.Fatal("Unexpected reply received: ", reply)
diff --git a/cmd/cgr-tester/cgr-tester.go b/cmd/cgr-tester/cgr-tester.go
index ee8bfad5a..c4f195e0d 100644
--- a/cmd/cgr-tester/cgr-tester.go
+++ b/cmd/cgr-tester/cgr-tester.go
@@ -23,14 +23,15 @@ import (
"fmt"
"log"
"math"
- "net/rpc"
- "net/rpc/jsonrpc"
"os"
"runtime"
"runtime/pprof"
"sync"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -144,12 +145,12 @@ func durInternalRater(cd *engine.CallDescriptorWithAPIOpts) (time.Duration, erro
func durRemoteRater(cd *engine.CallDescriptorWithAPIOpts) (time.Duration, error) {
result := engine.CallCost{}
- var client *rpc.Client
+ var client *birpc.Client
var err error
if *json {
client, err = jsonrpc.Dial(utils.TCP, *raterAddress)
} else {
- client, err = rpc.Dial(utils.TCP, *raterAddress)
+ client, err = birpc.Dial(utils.TCP, *raterAddress)
}
if err != nil {
@@ -164,7 +165,7 @@ func durRemoteRater(cd *engine.CallDescriptorWithAPIOpts) (time.Duration, error)
for i := 0; i < *runs; i++ {
go func() {
sem <- 1
- client.Call(utils.ResponderGetCost, cd, &result)
+ client.Call(context.Background(), utils.ResponderGetCost, cd, &result)
<-sem
finish <- 1
// divCall = client.Go(utils.ResponderGetCost, cd, &result, nil)
@@ -176,7 +177,7 @@ func durRemoteRater(cd *engine.CallDescriptorWithAPIOpts) (time.Duration, error)
// <-divCall.Done
} else {
for j := 0; j < *runs; j++ {
- client.Call(utils.ResponderGetCost, cd, &result)
+ client.Call(context.Background(), utils.ResponderGetCost, cd, &result)
}
}
log.Printf("Result:%s\n", utils.ToJSON(result))
@@ -370,7 +371,7 @@ func main() {
tmpTime = timeoutStamp
timeout = time.After(totalUsage + *timeoutDur + 140*time.Millisecond)
}
- if err := callSessions(&authDur, &initDur, &updateDur, &terminateDur, &cdrDur,
+ if err := callSessions(context.TODO(), &authDur, &initDur, &updateDur, &terminateDur, &cdrDur,
&reqAuth, &reqInit, &reqUpdate, &reqTerminate, &reqCdr,
digitMin, digitMax, totalUsage); err != nil {
log.Fatal(err.Error())
diff --git a/cmd/cgr-tester/sessions.go b/cmd/cgr-tester/sessions.go
index 1ee8453d7..f00e6c2fe 100644
--- a/cmd/cgr-tester/sessions.go
+++ b/cmd/cgr-tester/sessions.go
@@ -26,24 +26,27 @@ import (
"sync/atomic"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
)
var (
- brpc *rpc2.Client
+ brpc *birpc.BirpcClient
disconnectEvChan = make(chan *utils.AttrDisconnectSession, 1)
)
-func handleDisconnectSession(clnt *rpc2.Client,
+type smock struct{}
+
+func (*smock) DisconnectSession(ctx *context.Context,
args *utils.AttrDisconnectSession, reply *string) error {
disconnectEvChan <- args
*reply = utils.OK
return nil
}
-func callSessions(authDur, initDur, updateDur, terminateDur, cdrDur *[]time.Duration,
+func callSessions(ctx *context.Context, authDur, initDur, updateDur, terminateDur, cdrDur *[]time.Duration,
reqAuth, reqInit, reqUpdate, reqTerminate, reqCdr *uint64,
digitMin, digitMax int64, totalUsage time.Duration) (err error) {
@@ -71,11 +74,13 @@ func callSessions(authDur, initDur, updateDur, terminateDur, cdrDur *[]time.Dura
APIOpts: map[string]any{},
}
- clntHandlers := map[string]any{
- utils.SessionSv1DisconnectSession: handleDisconnectSession}
- brpc, err = utils.NewBiJSONrpcClient(tstCfg.SessionSCfg().ListenBijson, clntHandlers)
+ srv, err := birpc.NewService(new(smock), utils.SessionSv1, true)
if err != nil {
- return
+ return err
+ }
+ brpc, err = utils.NewBiJSONrpcClient(tstCfg.SessionSCfg().ListenBijson, srv)
+ if err != nil {
+ return err
}
//
@@ -90,7 +95,7 @@ func callSessions(authDur, initDur, updateDur, terminateDur, cdrDur *[]time.Dura
var authRply sessions.V1AuthorizeReply
atomic.AddUint64(reqAuth, 1)
authStartTime := time.Now()
- if err = brpc.Call(utils.SessionSv1AuthorizeEvent, authArgs, &authRply); err != nil {
+ if err = brpc.Call(ctx, utils.SessionSv1AuthorizeEvent, authArgs, &authRply); err != nil {
return
}
appendMu.Lock()
@@ -115,7 +120,7 @@ func callSessions(authDur, initDur, updateDur, terminateDur, cdrDur *[]time.Dura
var initRply sessions.V1InitSessionReply
atomic.AddUint64(reqInit, 1)
initStartTime := time.Now()
- if err = brpc.Call(utils.SessionSv1InitiateSession, initArgs, &initRply); err != nil {
+ if err = brpc.Call(ctx, utils.SessionSv1InitiateSession, initArgs, &initRply); err != nil {
return
}
appendMu.Lock()
@@ -141,7 +146,7 @@ func callSessions(authDur, initDur, updateDur, terminateDur, cdrDur *[]time.Dura
var upRply sessions.V1UpdateSessionReply
atomic.AddUint64(reqUpdate, 1)
updateStartTime := time.Now()
- if err = brpc.Call(utils.SessionSv1UpdateSession, upArgs, &upRply); err != nil {
+ if err = brpc.Call(ctx, utils.SessionSv1UpdateSession, upArgs, &upRply); err != nil {
return
}
appendMu.Lock()
@@ -167,7 +172,7 @@ func callSessions(authDur, initDur, updateDur, terminateDur, cdrDur *[]time.Dura
var tRply string
atomic.AddUint64(reqTerminate, 1)
terminateStartTime := time.Now()
- if err = brpc.Call(utils.SessionSv1TerminateSession, tArgs, &tRply); err != nil {
+ if err = brpc.Call(ctx, utils.SessionSv1TerminateSession, tArgs, &tRply); err != nil {
return
}
appendMu.Lock()
@@ -187,7 +192,7 @@ func callSessions(authDur, initDur, updateDur, terminateDur, cdrDur *[]time.Dura
var pRply string
atomic.AddUint64(reqCdr, 1)
cdrStartTime := time.Now()
- if err = brpc.Call(utils.SessionSv1ProcessCDR, procArgs, &pRply); err != nil {
+ if err = brpc.Call(ctx, utils.SessionSv1ProcessCDR, procArgs, &pRply); err != nil {
return
}
appendMu.Lock()
diff --git a/config/config.go b/config/config.go
index aa882e89c..9183db6f0 100644
--- a/config/config.go
+++ b/config/config.go
@@ -33,6 +33,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/rpcclient"
"github.com/cgrates/cgrates/utils"
@@ -1163,8 +1164,8 @@ func (cfg *CGRConfig) GetReloadChan(sectID string) chan struct{} {
return cfg.rldChans[sectID]
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (cfg *CGRConfig) Call(serviceMethod string,
+// Call implements birpc.ClientConnector interface for internal RPC
+func (cfg *CGRConfig) Call(ctx *context.Context, serviceMethod string,
args any, reply any) error {
return utils.APIerRPCCall(cfg, serviceMethod, args, reply)
}
@@ -1582,7 +1583,7 @@ type ReloadArgs struct {
}
// V1ReloadConfig reloads the configuration
-func (cfg *CGRConfig) V1ReloadConfig(args *ReloadArgs, reply *string) (err error) {
+func (cfg *CGRConfig) V1ReloadConfig(ctx *context.Context, args *ReloadArgs, reply *string) (err error) {
if missing := utils.MissingStructFields(args, []string{"Path"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -1623,7 +1624,7 @@ type SectionWithAPIOpts struct {
}
// V1GetConfig will retrieve from CGRConfig a section
-func (cfg *CGRConfig) V1GetConfig(args *SectionWithAPIOpts, reply *map[string]any) (err error) {
+func (cfg *CGRConfig) V1GetConfig(ctx *context.Context, args *SectionWithAPIOpts, reply *map[string]any) (err error) {
args.Section = utils.FirstNonEmpty(args.Section, utils.MetaAll)
cfg.cacheDPMux.RLock()
if mp, has := cfg.cacheDP[args.Section]; has && mp != nil {
@@ -1747,7 +1748,7 @@ type SetConfigArgs struct {
}
// V1SetConfig reloads the sections of config
-func (cfg *CGRConfig) V1SetConfig(args *SetConfigArgs, reply *string) (err error) {
+func (cfg *CGRConfig) V1SetConfig(ctx *context.Context, args *SetConfigArgs, reply *string) (err error) {
if len(args.Config) == 0 {
*reply = utils.OK
return
@@ -1787,7 +1788,7 @@ func (cfg *CGRConfig) V1SetConfig(args *SetConfigArgs, reply *string) (err error
}
// V1GetConfigAsJSON will retrieve from CGRConfig a section as a string
-func (cfg *CGRConfig) V1GetConfigAsJSON(args *SectionWithAPIOpts, reply *string) (err error) {
+func (cfg *CGRConfig) V1GetConfigAsJSON(ctx *context.Context, args *SectionWithAPIOpts, reply *string) (err error) {
args.Section = utils.FirstNonEmpty(args.Section, utils.MetaAll)
cfg.cacheDPMux.RLock()
if mp, has := cfg.cacheDP[args.Section]; has && mp != nil {
@@ -1914,7 +1915,7 @@ type SetConfigFromJSONArgs struct {
}
// V1SetConfigFromJSON reloads the sections of config
-func (cfg *CGRConfig) V1SetConfigFromJSON(args *SetConfigFromJSONArgs, reply *string) (err error) {
+func (cfg *CGRConfig) V1SetConfigFromJSON(ctx *context.Context, args *SetConfigFromJSONArgs, reply *string) (err error) {
if len(args.Config) == 0 {
*reply = utils.OK
return
diff --git a/config/config_it_test.go b/config/config_it_test.go
index ae17beb60..4bf9af8b0 100644
--- a/config/config_it_test.go
+++ b/config/config_it_test.go
@@ -33,6 +33,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/rpcclient"
)
@@ -138,10 +139,11 @@ func testCGRConfigReloadAttributeS(t *testing.T) {
cfg.rldChans[section] = make(chan struct{}, 1)
}
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: ATTRIBUTE_JSN,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: ATTRIBUTE_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -172,11 +174,12 @@ func testCGRConfigReloadChargerSDryRun(t *testing.T) {
cfg.rldChans[section] = make(chan struct{}, 1)
}
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: ChargerSCfgJson,
- DryRun: true,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: ChargerSCfgJson,
+ DryRun: true,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -194,10 +197,11 @@ func testCGRConfigReloadChargerS(t *testing.T) {
cfg.rldChans[section] = make(chan struct{}, 1)
}
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: ChargerSCfgJson,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: ChargerSCfgJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -221,10 +225,11 @@ func testCGRConfigReloadThresholdS(t *testing.T) {
cfg.rldChans[section] = make(chan struct{}, 1)
}
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: THRESHOLDS_JSON,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: THRESHOLDS_JSON,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -250,10 +255,11 @@ func testCGRConfigReloadStatS(t *testing.T) {
cfg.rldChans[section] = make(chan struct{}, 1)
}
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: STATS_JSON,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: STATS_JSON,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -280,10 +286,11 @@ func testCGRConfigReloadResourceS(t *testing.T) {
cfg.rldChans[section] = make(chan struct{}, 1)
}
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: RESOURCES_JSON,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: RESOURCES_JSON,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -311,10 +318,11 @@ func testCGRConfigReloadSupplierS(t *testing.T) {
cfg.rldChans[section] = make(chan struct{}, 1)
}
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: RouteSJson,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: RouteSJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -348,17 +356,19 @@ func testCGRConfigV1ReloadConfigFromPathInvalidSection(t *testing.T) {
}
expectedErr := "Invalid section: "
var reply string
- if err := cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: "InvalidSection",
- }, &reply); err == nil || err.Error() != expectedErr {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: "InvalidSection",
+ }, &reply); err == nil || err.Error() != expectedErr {
t.Errorf("Expected %+v. received %+v", expectedErr, err)
}
expectedErr = utils.NewErrMandatoryIeMissing("Path").Error()
- if err := cfg.V1ReloadConfig(&ReloadArgs{
- Section: "InvalidSection",
- }, &reply); err == nil || err.Error() != expectedErr {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Section: "InvalidSection",
+ }, &reply); err == nil || err.Error() != expectedErr {
t.Errorf("Expected %+v. received %+v", expectedErr, err)
}
}
@@ -370,9 +380,10 @@ func testV1ReloadConfigFromPathConfigSanity(t *testing.T) {
for _, section := range sortedCfgSections {
cfg.rldChans[section] = make(chan struct{}, 1)
}
- if err := cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutinternal"),
- Section: ChargerSCfgJson}, &reply); err == nil || err.Error() != expectedErr {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutinternal"),
+ Section: ChargerSCfgJson}, &reply); err == nil || err.Error() != expectedErr {
t.Errorf("Expected %+v, received %+v", expectedErr, err)
}
}
@@ -392,10 +403,11 @@ func testCGRConfigReloadSchedulerS(t *testing.T) {
cfg.rldChans[section] = make(chan struct{}, 1)
}
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: SCHEDULER_JSN,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: SCHEDULER_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -420,10 +432,11 @@ func testCGRConfigReloadCDRs(t *testing.T) {
}
cfg.RalsCfg().Enabled = true
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: CDRS_JSN,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: CDRS_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -458,10 +471,11 @@ func testCGRConfigReloadRALs(t *testing.T) {
blMap := cfg.RalsCfg().BalanceRatingSubject
maxComp := cfg.RalsCfg().MaxComputedUsage
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: RALS_JSN,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: RALS_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -490,10 +504,11 @@ func testCGRConfigReloadSessionS(t *testing.T) {
cfg.ChargerSCfg().Enabled = true
cfg.CdrsCfg().Enabled = true
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: SessionSJson,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: SessionSJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -549,10 +564,11 @@ func testCGRConfigReloadERs(t *testing.T) {
}
cfg.SessionSCfg().Enabled = true
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "ers_example"),
- Section: ERsJson,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "ers_example"),
+ Section: ERsJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -654,10 +670,11 @@ func testCGRConfigReloadDNSAgent(t *testing.T) {
}
cfg.SessionSCfg().Enabled = true
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_reload"),
- Section: DNSAgentJson,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_reload"),
+ Section: DNSAgentJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -690,10 +707,11 @@ func testCGRConfigReloadFreeswitchAgent(t *testing.T) {
}
cfg.SessionSCfg().Enabled = true
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "freeswitch_reload"),
- Section: FreeSWITCHAgentJSN,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "freeswitch_reload"),
+ Section: FreeSWITCHAgentJSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -871,10 +889,11 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
var reply string
var rcv map[string]any
- if err := cfg.V1ReloadConfig(&ReloadArgs{
- Path: "/usr/share/cgrates/conf/samples/ers_example",
- Section: ERsJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: "/usr/share/cgrates/conf/samples/ers_example",
+ Section: ERsJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Errorf("Expected: %s \n,received: %s", utils.OK, reply)
@@ -883,7 +902,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
expected = map[string]any{
ERsJson: expected,
}
- if err := cfg.V1GetConfig(&SectionWithAPIOpts{Section: ERsJson}, &rcv); err != nil {
+ if err := cfg.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: ERsJson}, &rcv); err != nil {
t.Error(err)
} else if utils.ToJSON(expected) != utils.ToJSON(rcv) {
t.Errorf("Expected: %+v, \n received: %+v", utils.ToJSON(expected), utils.ToJSON(rcv))
@@ -905,19 +924,20 @@ func testCGRConfigReloadConfigFromJSONSessionS(t *testing.T) {
cfg.ChargerSCfg().Enabled = true
cfg.CdrsCfg().Enabled = true
var reply string
- if err = cfg.V1SetConfig(&SetConfigArgs{
- Config: map[string]any{
- "sessions": map[string]any{
- "enabled": true,
- "resources_conns": []string{"*localhost"},
- "routes_conns": []string{"*localhost"},
- "attributes_conns": []string{"*localhost"},
- "rals_conns": []string{"*internal"},
- "cdrs_conns": []string{"*internal"},
- "chargers_conns": []string{"*internal"},
+ if err = cfg.V1SetConfig(context.Background(),
+ &SetConfigArgs{
+ Config: map[string]any{
+ "sessions": map[string]any{
+ "enabled": true,
+ "resources_conns": []string{"*localhost"},
+ "routes_conns": []string{"*localhost"},
+ "attributes_conns": []string{"*localhost"},
+ "rals_conns": []string{"*internal"},
+ "cdrs_conns": []string{"*internal"},
+ "chargers_conns": []string{"*internal"},
+ },
},
- },
- }, &reply); err != nil {
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -966,16 +986,19 @@ func testCGRConfigReloadConfigFromStringSessionS(t *testing.T) {
cfg.ChargerSCfg().Enabled = true
cfg.CdrsCfg().Enabled = true
var reply string
- if err = cfg.V1SetConfigFromJSON(&SetConfigFromJSONArgs{
- Config: `{"sessions":{
- "enabled": true,
- "resources_conns": ["*localhost"],
- "routes_conns": ["*localhost"],
- "attributes_conns": ["*localhost"],
- "rals_conns": ["*internal"],
- "cdrs_conns": ["*internal"],
- "chargers_conns": ["*localhost"]
- }}`}, &reply); err != nil {
+ if err = cfg.V1SetConfigFromJSON(context.Background(),
+ &SetConfigFromJSONArgs{
+ Config: `{
+ "sessions":{
+ "enabled": true,
+ "resources_conns": ["*localhost"],
+ "routes_conns": ["*localhost"],
+ "attributes_conns": ["*localhost"],
+ "rals_conns": ["*internal"],
+ "cdrs_conns": ["*internal"],
+ "chargers_conns": ["*localhost"]
+ }
+}`}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
@@ -1016,7 +1039,7 @@ func testCGRConfigReloadConfigFromStringSessionS(t *testing.T) {
var rcv string
expected := `{"sessions":{"alterable_fields":[],"attributes_conns":["*localhost"],"cdrs_conns":["*internal"],"channel_sync_interval":"0","chargers_conns":["*localhost"],"client_protocol":1,"debit_interval":"0","default_usage":{"*any":"3h0m0s","*data":"1048576","*sms":"1","*voice":"3h0m0s"},"enabled":true,"listen_bigob":"","listen_bijson":"127.0.0.1:2014","min_dur_low_balance":"0","rals_conns":["*internal"],"replication_conns":[],"resources_conns":["*localhost"],"routes_conns":["*localhost"],"scheduler_conns":[],"session_indexes":[],"session_ttl":"0","stats_conns":[],"stir":{"allowed_attest":["*any"],"default_attest":"A","payload_maxduration":"-1","privatekey_path":"","publickey_path":""},"store_session_costs":false,"terminate_attempts":5,"thresholds_conns":[]}}`
- if err := cfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: SessionSJson}, &rcv); err != nil {
+ if err := cfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: SessionSJson}, &rcv); err != nil {
t.Error(err)
} else if expected != rcv {
t.Errorf("Expected: %+q, \n received: %s", expected, rcv)
@@ -1032,10 +1055,11 @@ func testCGRConfigReloadAll(t *testing.T) {
cfg.ChargerSCfg().Enabled = true
cfg.CdrsCfg().Enabled = true
var reply string
- if err = cfg.V1ReloadConfig(&ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
- Section: utils.MetaAll,
- }, &reply); err != nil {
+ if err = cfg.V1ReloadConfig(context.Background(),
+ &ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo2"),
+ Section: utils.MetaAll,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %s", reply)
diff --git a/config/config_test.go b/config/config_test.go
index e4734a92c..34f5f6f7c 100644
--- a/config/config_test.go
+++ b/config/config_test.go
@@ -26,6 +26,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/rpcclient"
"github.com/cgrates/cgrates/utils"
@@ -3447,13 +3448,13 @@ func TestCgrCfgV1GetConfigAllConfig(t *testing.T) {
t.Error(err)
}
expected := cgrCfg.AsMapInterface(cgrCfg.GeneralCfg().RSRSep)
- if err := cgrCfg.V1GetConfig(&SectionWithAPIOpts{Section: utils.EmptyString}, &rcv); err != nil {
+ if err := cgrCfg.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: utils.EmptyString}, &rcv); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(expected, rcv) {
t.Errorf("Expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
- if err := cgrCfg.V1GetConfig(&SectionWithAPIOpts{Section: utils.EmptyString}, &rcv); err != nil {
+ if err := cgrCfg.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: utils.EmptyString}, &rcv); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(expected, rcv) {
@@ -3481,7 +3482,7 @@ func TestCgrCfgV1GetConfigSectionLoader(t *testing.T) {
},
}
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfig(&SectionWithAPIOpts{Section: LoaderJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: LoaderJson}, &reply); err != nil {
t.Error(err)
} else if mp, can := reply[LoaderJson].([]map[string]any); !can {
t.Errorf("Unexpected type: %t", reply[LoaderJson])
@@ -3499,7 +3500,7 @@ func TestCgrCfgV1GetConfigSectionHTTPAgent(t *testing.T) {
HttpAgentJson: []map[string]any{},
}
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfig(&SectionWithAPIOpts{Section: HttpAgentJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: HttpAgentJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, reply) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3517,7 +3518,7 @@ func TestCgrCfgV1GetConfigSectionCoreS(t *testing.T) {
},
}
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfig(&SectionWithAPIOpts{Section: CoreSCfgJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: CoreSCfgJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, reply) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3546,7 +3547,7 @@ func TestCgrCfgV1GetConfigListen(t *testing.T) {
var rcv map[string]any
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(jsnCfg); err != nil {
t.Error(err)
- } else if err := cgrCfg.V1GetConfig(&SectionWithAPIOpts{Section: LISTEN_JSN}, &rcv); err != nil {
+ } else if err := cgrCfg.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: LISTEN_JSN}, &rcv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("Expected: %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rcv))
@@ -3597,7 +3598,7 @@ func TestV1GetConfigGeneral(t *testing.T) {
if err != nil {
t.Error(err)
}
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: GENERAL_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: GENERAL_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3625,7 +3626,7 @@ func TestV1GetConfigDataDB(t *testing.T) {
DATADB_JSN: expected,
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: DATADB_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: DATADB_JSN}, &reply); err != nil {
t.Error(err)
} else if mp, can := reply[DATADB_JSN].(map[string]any); !can {
t.Errorf("Unexpected type: %t", reply[DATADB_JSN])
@@ -3667,7 +3668,7 @@ func TestV1GetConfigStorDB(t *testing.T) {
STORDB_JSN: expected,
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: STORDB_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: STORDB_JSN}, &reply); err != nil {
t.Error(err)
} else if mp, can := reply[STORDB_JSN].(map[string]any); !can {
t.Errorf("Unexpected type: %t", reply[STORDB_JSN])
@@ -3693,7 +3694,7 @@ func TestV1GetConfigTLS(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: TlsCfgJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: TlsCfgJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3710,7 +3711,7 @@ func TestV1GetConfigCache(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: CACHE_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: CACHE_JSN}, &reply); err != nil {
t.Error(err)
} else if mp, can := reply[CACHE_JSN].(map[string]any); !can {
t.Errorf("Unexpected type: %t", reply[CACHE_JSN])
@@ -3752,7 +3753,7 @@ func TestV1GetConfigHTTP(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: HTTP_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: HTTP_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3769,7 +3770,7 @@ func TestV1GetConfigFilterS(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: FilterSjsn}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: FilterSjsn}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3800,7 +3801,7 @@ func TestV1GetConfigRals(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: RALS_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: RALS_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3820,7 +3821,7 @@ func TestV1GetConfigScheduler(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: SCHEDULER_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: SCHEDULER_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3846,7 +3847,7 @@ func TestV1GetConfigCdrs(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: CDRS_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: CDRS_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3895,7 +3896,7 @@ func TestV1GetConfigSessionS(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: SessionSJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: SessionSJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3926,7 +3927,7 @@ func TestV1GetConfigFsAgent(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: FreeSWITCHAgentJSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: FreeSWITCHAgentJSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3952,7 +3953,7 @@ func TestV1GetConfigKamailioAgent(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: KamailioAgentJSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: KamailioAgentJSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -3980,7 +3981,7 @@ func TestV1GetConfigAsteriskAgent(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: AsteriskAgentJSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: AsteriskAgentJSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4009,7 +4010,7 @@ func TestV1GetConfigDiameterAgent(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: DA_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: DA_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4035,7 +4036,7 @@ func TestV1GetConfigRadiusAgent(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: RA_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: RA_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4059,7 +4060,7 @@ func TestV1GetConfigDNSAgent(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: DNSAgentJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: DNSAgentJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4088,7 +4089,7 @@ func TestV1GetConfigAttribute(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: ATTRIBUTE_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: ATTRIBUTE_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4108,7 +4109,7 @@ func TestV1GetConfigChargers(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: ChargerSCfgJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: ChargerSCfgJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4133,7 +4134,7 @@ func TestV1GetConfigResourceS(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: RESOURCES_JSON}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: RESOURCES_JSON}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4159,7 +4160,7 @@ func TestV1GetConfigStats(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: STATS_JSON}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: STATS_JSON}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4183,7 +4184,7 @@ func TestV1GetConfigThresholds(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: THRESHOLDS_JSON}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: THRESHOLDS_JSON}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4212,7 +4213,7 @@ func TestV1GetConfigRoutes(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: RouteSJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: RouteSJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4253,7 +4254,7 @@ func TestV1GetConfigSuretax(t *testing.T) {
}
cfgCgr := NewDefaultCGRConfig()
cfgCgr.SureTaxCfg().Timezone = time.UTC
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: SURETAX_JSON}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: SURETAX_JSON}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4275,7 +4276,7 @@ func TestV1GetConfigDispatcherS(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: DispatcherSJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: DispatcherSJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4299,7 +4300,7 @@ func TestV1GetConfigDispatcherH(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: RegistrarCJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: RegistrarCJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4321,7 +4322,7 @@ func TestV1GetConfigSectionLoader(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: CgrLoaderCfgJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: CgrLoaderCfgJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4374,7 +4375,7 @@ func TestV1GetConfigSectionMigrator(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: CgrMigratorCfgJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: CgrMigratorCfgJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4393,7 +4394,7 @@ func TestV1GetConfigSectionApierS(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: ApierS}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: ApierS}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4437,7 +4438,7 @@ func TestV1GetConfigSectionEES(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: EEsJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: EEsJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4480,7 +4481,7 @@ func TestV1GetConfigSectionERS(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: ERsJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: ERsJson}, &reply); err != nil {
t.Error(err)
} else if mp, can := reply[ERsJson].(map[string]any); !can {
t.Errorf("Unexpected type: %t", reply[ERsJson])
@@ -4539,7 +4540,7 @@ func TestV1GetConfigSectionRPConns(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: RPCConnsJsonName}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: RPCConnsJsonName}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4560,7 +4561,7 @@ func TestV1GetConfigSectionSIPAgent(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: SIPAgentJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: SIPAgentJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4600,7 +4601,7 @@ func TestV1GetConfigSectionTemplates(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: TemplatesJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: TemplatesJson}, &reply); err != nil {
t.Error(err)
} else if mp, can := reply[TemplatesJson].(map[string][]map[string]any); !can {
t.Errorf("Unexpected type: %t", reply[TemplatesJson])
@@ -4626,7 +4627,7 @@ func TestV1GetConfigSectionConfigs(t *testing.T) {
}
cfgCgr := NewDefaultCGRConfig()
cfgCgr.ConfigSCfg().Enabled = true
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: ConfigSJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: ConfigSJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4634,7 +4635,7 @@ func TestV1GetConfigSectionConfigs(t *testing.T) {
var result string
cfgCgr2 := NewDefaultCGRConfig()
- if err = cfgCgr2.V1SetConfig(&SetConfigArgs{Config: reply, DryRun: true}, &result); err != nil {
+ if err = cfgCgr2.V1SetConfig(context.Background(), &SetConfigArgs{Config: reply, DryRun: true}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Errorf("Unexpected result")
@@ -4643,7 +4644,7 @@ func TestV1GetConfigSectionConfigs(t *testing.T) {
}
cfgCgr2 = NewDefaultCGRConfig()
- if err = cfgCgr2.V1SetConfig(&SetConfigArgs{Config: reply}, &result); err != nil {
+ if err = cfgCgr2.V1SetConfig(context.Background(), &SetConfigArgs{Config: reply}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Errorf("Unexpected result")
@@ -4660,7 +4661,7 @@ func TestV1GetConfigSectionAPIBans(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: APIBanCfgJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: APIBanCfgJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4678,7 +4679,7 @@ func TestV1GetConfigSectionMailer(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: MAILER_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: MAILER_JSN}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4697,7 +4698,7 @@ func TestV1GetConfigSectionAnalyzer(t *testing.T) {
},
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: AnalyzerCfgJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: AnalyzerCfgJson}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(reply))
@@ -4708,7 +4709,7 @@ func TestV1GetConfigSectionInvalidSection(t *testing.T) {
var reply map[string]any
expected := "Invalid section"
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfig(&SectionWithAPIOpts{Section: "invalidSection"}, &reply); err == nil || err.Error() != expected {
+ if err := cfgCgr.V1GetConfig(context.Background(), &SectionWithAPIOpts{Section: "invalidSection"}, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -4716,7 +4717,7 @@ func TestV1GetConfigSectionInvalidSection(t *testing.T) {
func TestV1ReloadConfigEmptyConfig(t *testing.T) {
var reply string
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1SetConfig(&SetConfigArgs{}, &reply); err != nil {
+ if err := cgrCfg.V1SetConfig(context.Background(), &SetConfigArgs{}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected output: %+v", reply)
@@ -4727,11 +4728,12 @@ func TestV1ReloadConfigUnmarshalError(t *testing.T) {
var reply string
expected := "json: unsupported type: chan int"
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1SetConfig(&SetConfigArgs{
- Config: map[string]any{
- "randomValue": make(chan int),
+ if err := cgrCfg.V1SetConfig(context.Background(),
+ &SetConfigArgs{
+ Config: map[string]any{
+ "randomValue": make(chan int),
+ },
},
- },
&reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -4744,7 +4746,7 @@ func TestV1ReloadConfigJSONWithLocks(t *testing.T) {
}
expected := "Invalid section: "
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1SetConfig(&SetConfigArgs{Config: section}, &reply); err == nil || err.Error() != expected {
+ if err := cfgCgr.V1SetConfig(context.Background(), &SetConfigArgs{Config: section}, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -4766,7 +4768,7 @@ func TestV1ReloadConfigCheckingSanity(t *testing.T) {
expected := ` not enabled but requested by component`
if cfgCgr, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if err := cfgCgr.V1SetConfig(&SetConfigArgs{Config: ralsMap}, &reply); err == nil || err.Error() != expected {
+ } else if err := cfgCgr.V1SetConfig(context.Background(), &SetConfigArgs{Config: ralsMap}, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -4781,7 +4783,7 @@ func TestV1GetConfigAsJSONGeneral(t *testing.T) {
expected := `{"general":{"connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","failed_posts_dir":"/var/spool/cgrates/failed_posts","failed_posts_ttl":"5s","locking_timeout":"0","log_level":6,"logger":"*syslog","max_parallel_conns":100,"max_reconnect_interval":"0","node_id":"ENGINE1","poster_attempts":3,"reconnects":-1,"reply_timeout":"2s","rounding_decimals":5,"rsr_separator":";","tpexport_dir":"/var/spool/cgrates/tpe"}}`
if cfgCgr, err := NewCGRConfigFromJSONStringWithDefaults(strJSON); err != nil {
t.Error(err)
- } else if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: GENERAL_JSN}, &reply); err != nil {
+ } else if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: GENERAL_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4792,7 +4794,7 @@ func TestV1GetConfigAsJSONDataDB(t *testing.T) {
var reply string
expected := `{"data_db":{"db_host":"127.0.0.1","db_name":"10","db_password":"","db_port":6379,"db_type":"*redis","db_user":"cgrates","items":{"*account_action_plans":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*accounts":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*action_plans":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*action_triggers":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*actions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*attribute_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*attribute_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*charger_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*charger_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*destinations":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*dispatcher_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*dispatcher_hosts":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*dispatcher_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*filters":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*load_ids":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rating_plans":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rating_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resource_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resource_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resources":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*reverse_destinations":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*reverse_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*route_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*route_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*shared_groups":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*stat_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*statqueue_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*statqueues":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*threshold_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*threshold_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*thresholds":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*timings":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*versions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false}},"opts":{"mongoQueryTimeout":"10s","redisCACertificate":"","redisClientCertificate":"","redisClientKey":"","redisCluster":false,"redisClusterOndownDelay":"0s","redisClusterSync":"5s","redisConnectAttempts":20,"redisConnectTimeout":"0s","redisMaxConns":10,"redisReadTimeout":"0s","redisSentinel":"","redisTLS":false,"redisWriteTimeout":"0s"},"remote_conn_id":"","remote_conns":[],"replication_cache":"","replication_conns":[],"replication_filtered":false}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: DATADB_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: DATADB_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4803,7 +4805,7 @@ func TestV1GetConfigAsJSONStorDB(t *testing.T) {
var reply string
expected := `{"stor_db":{"db_host":"127.0.0.1","db_name":"cgrates","db_password":"","db_port":3306,"db_type":"*mysql","db_user":"cgrates","items":{"*cdrs":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*session_costs":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_account_actions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_action_plans":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_action_triggers":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_actions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_attributes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_chargers":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_destination_rates":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_destinations":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_dispatcher_hosts":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_dispatcher_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_filters":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_rates":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_rating_plans":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_rating_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_resources":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_routes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_shared_groups":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_stats":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_thresholds":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*tp_timings":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*versions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false}},"opts":{"mongoQueryTimeout":"10s","mysqlDSNParams":{},"mysqlLocation":"Local","pgSSLMode":"disable","sqlConnMaxLifetime":"0s","sqlMaxIdleConns":10,"sqlMaxOpenConns":100},"prefix_indexed_fields":[],"remote_conns":null,"replication_conns":null,"string_indexed_fields":[]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: STORDB_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: STORDB_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4814,7 +4816,7 @@ func TestV1GetConfigAsJSONTls(t *testing.T) {
var reply string
expected := `{"tls":{"ca_certificate":"","client_certificate":"","client_key":"","server_certificate":"","server_key":"","server_name":"","server_policy":4}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: TlsCfgJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: TlsCfgJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4825,7 +4827,7 @@ func TestV1GetConfigAsJSONTCache(t *testing.T) {
var reply string
expected := `{"caches":{"partitions":{"*account_action_plans":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*action_plans":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*action_triggers":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*actions":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*apiban":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"2m0s"},"*attribute_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*attribute_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*caps_events":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*cdr_ids":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10m0s"},"*charger_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*charger_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*closed_sessions":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10s"},"*destinations":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*diameter_messages":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"},"*dispatcher_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*dispatcher_hosts":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*dispatcher_loads":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*dispatcher_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*dispatcher_routes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*dispatchers":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*event_charges":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10s"},"*event_resources":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*filters":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*load_ids":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rating_plans":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rating_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*replication_hosts":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resource_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resource_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resources":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*reverse_destinations":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*reverse_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*route_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*route_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rpc_connections":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rpc_responses":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"2s"},"*sentrypeer":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":true,"ttl":"24h0m0s"},"*shared_groups":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*stat_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*statqueue_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*statqueues":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*stir":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"},"*threshold_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*threshold_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*thresholds":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*timings":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*uch":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"}},"remote_conns":[],"replication_conns":[]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: CACHE_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: CACHE_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4836,7 +4838,7 @@ func TestV1GetConfigAsJSONTListen(t *testing.T) {
var reply string
expected := `{"listen":{"http":"127.0.0.1:2080","http_tls":"127.0.0.1:2280","rpc_gob":"127.0.0.1:2013","rpc_gob_tls":"127.0.0.1:2023","rpc_json":"127.0.0.1:2012","rpc_json_tls":"127.0.0.1:2022"}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: LISTEN_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: LISTEN_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4847,7 +4849,7 @@ func TestV1GetConfigAsJSONHTTP(t *testing.T) {
var reply string
expected := `{"http":{"auth_users":{},"client_opts":{"dialFallbackDelay":"300ms","dialKeepAlive":"30s","dialTimeout":"30s","disableCompression":false,"disableKeepAlives":false,"expectContinueTimeout":"0s","forceAttemptHttp2":true,"idleConnTimeout":"1m30s","maxConnsPerHost":0,"maxIdleConns":100,"maxIdleConnsPerHost":2,"responseHeaderTimeout":"0s","skipTlsVerify":false,"tlsHandshakeTimeout":"10s"},"freeswitch_cdrs_url":"/freeswitch_json","http_cdrs":"/cdr_http","json_rpc_url":"/jsonrpc","registrars_url":"/registrar","use_basic_auth":false,"ws_url":"/ws"}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: HTTP_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: HTTP_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4858,7 +4860,7 @@ func TestV1GetConfigAsJSONFilterS(t *testing.T) {
var reply string
expected := `{"filters":{"apiers_conns":[],"resources_conns":[],"stats_conns":[]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: FilterSjsn}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: FilterSjsn}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4869,7 +4871,7 @@ func TestV1GetConfigAsJSONRals(t *testing.T) {
var reply string
expected := `{"rals":{"balance_rating_subject":{"*any":"*zero1ns","*voice":"*zero1s"},"enabled":false,"max_computed_usage":{"*any":"189h0m0s","*data":"107374182400","*mms":"10000","*sms":"10000","*voice":"72h0m0s"},"max_increments":1000000,"remove_expired":true,"rp_subject_prefix_matching":false,"stats_conns":[],"thresholds_conns":[]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: RALS_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: RALS_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4880,7 +4882,7 @@ func TestV1GetConfigAsJSONScheduler(t *testing.T) {
var reply string
expected := `{"schedulers":{"cdrs_conns":[],"dynaprepaid_actionplans":[],"enabled":false,"filters":[],"stats_conns":[],"thresholds_conns":[]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: SCHEDULER_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: SCHEDULER_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4891,7 +4893,7 @@ func TestV1GetConfigAsJSONCdrs(t *testing.T) {
var reply string
expected := `{"cdrs":{"attributes_conns":[],"chargers_conns":[],"ees_conns":[],"enabled":false,"extra_fields":[],"online_cdr_exports":[],"rals_conns":[],"scheduler_conns":[],"session_cost_retries":5,"stats_conns":[],"store_cdrs":true,"thresholds_conns":[]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: CDRS_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: CDRS_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4902,7 +4904,7 @@ func TestV1GetConfigAsJSONSessionS(t *testing.T) {
var reply string
expected := `{"sessions":{"alterable_fields":[],"attributes_conns":[],"cdrs_conns":[],"channel_sync_interval":"0","chargers_conns":[],"client_protocol":1,"debit_interval":"0","default_usage":{"*any":"3h0m0s","*data":"1048576","*sms":"1","*voice":"3h0m0s"},"enabled":false,"listen_bigob":"","listen_bijson":"127.0.0.1:2014","min_dur_low_balance":"0","rals_conns":[],"replication_conns":[],"resources_conns":[],"routes_conns":[],"scheduler_conns":[],"session_indexes":[],"session_ttl":"0","stats_conns":[],"stir":{"allowed_attest":["*any"],"default_attest":"A","payload_maxduration":"-1","privatekey_path":"","publickey_path":""},"store_session_costs":false,"terminate_attempts":5,"thresholds_conns":[]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: SessionSJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: SessionSJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4913,7 +4915,7 @@ func TestV1GetConfigAsJSONFreeSwitchAgent(t *testing.T) {
var reply string
expected := `{"freeswitch_agent":{"create_cdr":false,"empty_balance_ann_file":"","empty_balance_context":"","enabled":false,"event_socket_conns":[{"address":"127.0.0.1:8021","alias":"127.0.0.1:8021","max_reconnect_interval":"0s","password":"ClueCon","reconnects":5}],"extra_fields":"","low_balance_ann_file":"","max_wait_connection":"2s","sessions_conns":["*birpc_internal"],"subscribe_park":true}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: FreeSWITCHAgentJSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: FreeSWITCHAgentJSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4924,7 +4926,7 @@ func TestV1GetConfigAsJSONFKamailioAgent(t *testing.T) {
var reply string
expected := `{"kamailio_agent":{"create_cdr":false,"enabled":false,"evapi_conns":[{"address":"127.0.0.1:8448","alias":"","max_reconnect_interval":"0s","reconnects":5}],"sessions_conns":["*birpc_internal"],"timezone":""}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: KamailioAgentJSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: KamailioAgentJSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4935,7 +4937,7 @@ func TestV1GetConfigAsJSONAsteriskAgent(t *testing.T) {
var reply string
expected := `{"asterisk_agent":{"asterisk_conns":[{"address":"127.0.0.1:8088","alias":"","connect_attempts":3,"max_reconnect_interval":"0s","password":"CGRateS.org","reconnects":5,"user":"cgrates"}],"create_cdr":false,"enabled":false,"sessions_conns":["*birpc_internal"]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: AsteriskAgentJSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: AsteriskAgentJSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4946,7 +4948,7 @@ func TestV1GetConfigAsJSONADiameterAgent(t *testing.T) {
var reply string
expected := `{"diameter_agent":{"asr_template":"","concurrent_requests":-1,"dictionaries_path":"/usr/share/cgrates/diameter/dict/","enabled":false,"forced_disconnect":"*none","listen":"127.0.0.1:3868","listen_net":"tcp","origin_host":"CGR-DA","origin_realm":"cgrates.org","product_name":"CGRateS","rar_template":"","request_processors":[],"sessions_conns":["*birpc_internal"],"synced_conn_requests":false,"vendor_id":0}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: DA_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: DA_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4957,7 +4959,7 @@ func TestV1GetConfigAsJSONARadiusAgent(t *testing.T) {
var reply string
expected := `{"radius_agent":{"client_dictionaries":{"*default":"/usr/share/cgrates/radius/dict/"},"client_secrets":{"*default":"CGRateS.org"},"enabled":false,"listen_acct":"127.0.0.1:1813","listen_auth":"127.0.0.1:1812","listen_net":"udp","request_processors":[],"sessions_conns":["*internal"]}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: RA_JSN}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: RA_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4968,7 +4970,7 @@ func TestV1GetConfigAsJSONDNSAgent(t *testing.T) {
var reply string
expected := `{"dns_agent":{"enabled":false,"listeners":[{"address":"127.0.0.1:53","network":"udp"}],"request_processors":[],"sessions_conns":["*internal"],"timezone":""}}`
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: DNSAgentJson}, &reply); err != nil {
+ if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: DNSAgentJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4979,7 +4981,7 @@ func TestV1GetConfigAsJSONAttributes(t *testing.T) {
var reply string
expected := `{"attributes":{"any_context":true,"apiers_conns":[],"enabled":false,"indexed_selects":true,"nested_fields":false,"opts":{"*processRuns":1,"*profileIDs":[],"*profileIgnoreFilters":false,"*profileRuns":0},"prefix_indexed_fields":[],"resources_conns":[],"stats_conns":[],"suffix_indexed_fields":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: ATTRIBUTE_JSN}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: ATTRIBUTE_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -4990,7 +4992,7 @@ func TestV1GetConfigAsJSONChargerS(t *testing.T) {
var reply string
expected := `{"chargers":{"attributes_conns":[],"enabled":false,"indexed_selects":true,"nested_fields":false,"prefix_indexed_fields":[],"suffix_indexed_fields":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: ChargerSCfgJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: ChargerSCfgJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5001,7 +5003,7 @@ func TestV1GetConfigAsJSONResourceS(t *testing.T) {
var reply string
expected := `{"resources":{"enabled":false,"indexed_selects":true,"nested_fields":false,"opts":{"*units":1,"*usageID":""},"prefix_indexed_fields":[],"store_interval":"","suffix_indexed_fields":[],"thresholds_conns":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: RESOURCES_JSON}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: RESOURCES_JSON}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5012,7 +5014,7 @@ func TestV1GetConfigAsJSONStatS(t *testing.T) {
var reply string
expected := `{"stats":{"enabled":false,"indexed_selects":true,"nested_fields":false,"opts":{"*profileIDs":[],"*profileIgnoreFilters":false},"prefix_indexed_fields":[],"store_interval":"","store_uncompressed_limit":0,"suffix_indexed_fields":[],"thresholds_conns":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: STATS_JSON}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: STATS_JSON}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5023,7 +5025,7 @@ func TestV1GetConfigAsJSONThresholdS(t *testing.T) {
var reply string
expected := `{"thresholds":{"enabled":false,"indexed_selects":true,"nested_fields":false,"opts":{"*profileIDs":[],"*profileIgnoreFilters":false},"prefix_indexed_fields":[],"store_interval":"","suffix_indexed_fields":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: THRESHOLDS_JSON}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: THRESHOLDS_JSON}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5034,7 +5036,7 @@ func TestV1GetConfigAsJSONRouteS(t *testing.T) {
var reply string
expected := `{"routes":{"attributes_conns":[],"default_ratio":1,"enabled":false,"indexed_selects":true,"nested_fields":false,"opts":{"*context":"*routes","*ignoreErrors":false,"*maxCost":""},"prefix_indexed_fields":[],"rals_conns":[],"resources_conns":[],"stats_conns":[],"suffix_indexed_fields":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: RouteSJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: RouteSJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5047,7 +5049,7 @@ func TestV1GetConfigAsJSONSureTax(t *testing.T) {
cgrCfg := NewDefaultCGRConfig()
cgrCfg.SureTaxCfg().Timezone = time.UTC
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: SURETAX_JSON}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: SURETAX_JSON}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5058,7 +5060,7 @@ func TestV1GetConfigAsJSONDispatcherS(t *testing.T) {
var reply string
expected := `{"dispatchers":{"any_subsystem":true,"attributes_conns":[],"enabled":false,"indexed_selects":true,"nested_fields":false,"prefix_indexed_fields":[],"prevent_loop":false,"suffix_indexed_fields":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: DispatcherSJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: DispatcherSJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5069,7 +5071,7 @@ func TestV1GetConfigAsJSONDispatcherH(t *testing.T) {
var reply string
expected := `{"registrarc":{"dispatchers":{"hosts":[],"refresh_interval":"5m0s","registrars_conns":[]},"rpc":{"hosts":[],"refresh_interval":"5m0s","registrars_conns":[]}}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: RegistrarCJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: RegistrarCJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5080,7 +5082,7 @@ func TestV1GetConfigAsJSONLoaders(t *testing.T) {
var reply string
expected := `{"loaders":[{"caches_conns":["*internal"],"data":[{"fields":[{"mandatory":true,"path":"Tenant","tag":"TenantID","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ProfileID","type":"*variable","value":"~*req.1"},{"path":"Contexts","tag":"Contexts","type":"*variable","value":"~*req.2"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.3"},{"path":"ActivationInterval","tag":"ActivationInterval","type":"*variable","value":"~*req.4"},{"path":"AttributeFilterIDs","tag":"AttributeFilterIDs","type":"*variable","value":"~*req.5"},{"path":"Path","tag":"Path","type":"*variable","value":"~*req.6"},{"path":"Type","tag":"Type","type":"*variable","value":"~*req.7"},{"path":"Value","tag":"Value","type":"*variable","value":"~*req.8"},{"path":"Blocker","tag":"Blocker","type":"*variable","value":"~*req.9"},{"path":"Weight","tag":"Weight","type":"*variable","value":"~*req.10"}],"file_name":"Attributes.csv","flags":null,"type":"*attributes"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"Type","tag":"Type","type":"*variable","value":"~*req.2"},{"path":"Element","tag":"Element","type":"*variable","value":"~*req.3"},{"path":"Values","tag":"Values","type":"*variable","value":"~*req.4"},{"path":"ActivationInterval","tag":"ActivationInterval","type":"*variable","value":"~*req.5"}],"file_name":"Filters.csv","flags":null,"type":"*filters"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"ActivationInterval","tag":"ActivationInterval","type":"*variable","value":"~*req.3"},{"path":"UsageTTL","tag":"TTL","type":"*variable","value":"~*req.4"},{"path":"Limit","tag":"Limit","type":"*variable","value":"~*req.5"},{"path":"AllocationMessage","tag":"AllocationMessage","type":"*variable","value":"~*req.6"},{"path":"Blocker","tag":"Blocker","type":"*variable","value":"~*req.7"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.8"},{"path":"Weight","tag":"Weight","type":"*variable","value":"~*req.9"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.10"}],"file_name":"Resources.csv","flags":null,"type":"*resources"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"ActivationInterval","tag":"ActivationInterval","type":"*variable","value":"~*req.3"},{"path":"QueueLength","tag":"QueueLength","type":"*variable","value":"~*req.4"},{"path":"TTL","tag":"TTL","type":"*variable","value":"~*req.5"},{"path":"MinItems","tag":"MinItems","type":"*variable","value":"~*req.6"},{"path":"MetricIDs","tag":"MetricIDs","type":"*variable","value":"~*req.7"},{"path":"MetricFilterIDs","tag":"MetricFilterIDs","type":"*variable","value":"~*req.8"},{"path":"Blocker","tag":"Blocker","type":"*variable","value":"~*req.9"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.10"},{"path":"Weight","tag":"Weight","type":"*variable","value":"~*req.11"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.12"}],"file_name":"Stats.csv","flags":null,"type":"*stats"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"ActivationInterval","tag":"ActivationInterval","type":"*variable","value":"~*req.3"},{"path":"MaxHits","tag":"MaxHits","type":"*variable","value":"~*req.4"},{"path":"MinHits","tag":"MinHits","type":"*variable","value":"~*req.5"},{"path":"MinSleep","tag":"MinSleep","type":"*variable","value":"~*req.6"},{"path":"Blocker","tag":"Blocker","type":"*variable","value":"~*req.7"},{"path":"Weight","tag":"Weight","type":"*variable","value":"~*req.8"},{"path":"ActionIDs","tag":"ActionIDs","type":"*variable","value":"~*req.9"},{"path":"Async","tag":"Async","type":"*variable","value":"~*req.10"}],"file_name":"Thresholds.csv","flags":null,"type":"*thresholds"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"ActivationInterval","tag":"ActivationInterval","type":"*variable","value":"~*req.3"},{"path":"Sorting","tag":"Sorting","type":"*variable","value":"~*req.4"},{"path":"SortingParameters","tag":"SortingParameters","type":"*variable","value":"~*req.5"},{"path":"RouteID","tag":"RouteID","type":"*variable","value":"~*req.6"},{"path":"RouteFilterIDs","tag":"RouteFilterIDs","type":"*variable","value":"~*req.7"},{"path":"RouteAccountIDs","tag":"RouteAccountIDs","type":"*variable","value":"~*req.8"},{"path":"RouteRatingPlanIDs","tag":"RouteRatingPlanIDs","type":"*variable","value":"~*req.9"},{"path":"RouteResourceIDs","tag":"RouteResourceIDs","type":"*variable","value":"~*req.10"},{"path":"RouteStatIDs","tag":"RouteStatIDs","type":"*variable","value":"~*req.11"},{"path":"RouteWeight","tag":"RouteWeight","type":"*variable","value":"~*req.12"},{"path":"RouteBlocker","tag":"RouteBlocker","type":"*variable","value":"~*req.13"},{"path":"RouteParameters","tag":"RouteParameters","type":"*variable","value":"~*req.14"},{"path":"Weight","tag":"Weight","type":"*variable","value":"~*req.15"}],"file_name":"Routes.csv","flags":null,"type":"*routes"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"ActivationInterval","tag":"ActivationInterval","type":"*variable","value":"~*req.3"},{"path":"RunID","tag":"RunID","type":"*variable","value":"~*req.4"},{"path":"AttributeIDs","tag":"AttributeIDs","type":"*variable","value":"~*req.5"},{"path":"Weight","tag":"Weight","type":"*variable","value":"~*req.6"}],"file_name":"Chargers.csv","flags":null,"type":"*chargers"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"Contexts","tag":"Contexts","type":"*variable","value":"~*req.2"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.3"},{"path":"ActivationInterval","tag":"ActivationInterval","type":"*variable","value":"~*req.4"},{"path":"Strategy","tag":"Strategy","type":"*variable","value":"~*req.5"},{"path":"StrategyParameters","tag":"StrategyParameters","type":"*variable","value":"~*req.6"},{"path":"ConnID","tag":"ConnID","type":"*variable","value":"~*req.7"},{"path":"ConnFilterIDs","tag":"ConnFilterIDs","type":"*variable","value":"~*req.8"},{"path":"ConnWeight","tag":"ConnWeight","type":"*variable","value":"~*req.9"},{"path":"ConnBlocker","tag":"ConnBlocker","type":"*variable","value":"~*req.10"},{"path":"ConnParameters","tag":"ConnParameters","type":"*variable","value":"~*req.11"},{"path":"Weight","tag":"Weight","type":"*variable","value":"~*req.12"}],"file_name":"DispatcherProfiles.csv","flags":null,"type":"*dispatchers"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"Address","tag":"Address","type":"*variable","value":"~*req.2"},{"path":"Transport","tag":"Transport","type":"*variable","value":"~*req.3"},{"path":"ConnectAttempts","tag":"ConnectAttempts","type":"*variable","value":"~*req.4"},{"path":"Reconnects","tag":"Reconnects","type":"*variable","value":"~*req.5"},{"path":"MaxReconnectInterval","tag":"MaxReconnectInterval","type":"*variable","value":"~*req.6"},{"path":"ConnectTimeout","tag":"ConnectTimeout","type":"*variable","value":"~*req.7"},{"path":"ReplyTimeout","tag":"ReplyTimeout","type":"*variable","value":"~*req.8"},{"path":"TLS","tag":"TLS","type":"*variable","value":"~*req.9"},{"path":"ClientKey","tag":"ClientKey","type":"*variable","value":"~*req.10"},{"path":"ClientCertificate","tag":"ClientCertificate","type":"*variable","value":"~*req.11"},{"path":"CaCertificate","tag":"CaCertificate","type":"*variable","value":"~*req.12"}],"file_name":"DispatcherHosts.csv","flags":null,"type":"*dispatcher_hosts"}],"dry_run":false,"enabled":false,"field_separator":",","id":"*default","lockfile_path":".cgr.lck","run_delay":"0","tenant":"","tp_in_dir":"/var/spool/cgrates/loader/in","tp_out_dir":"/var/spool/cgrates/loader/out"}]}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: LoaderJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: LoaderJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5091,7 +5093,7 @@ func TestV1GetConfigAsJSONCgrLoader(t *testing.T) {
var reply string
expected := `{"loader":{"caches_conns":["*localhost"],"data_path":"./","disable_reverse":false,"field_separator":",","gapi_credentials":".gapi/credentials.json","gapi_token":".gapi/token.json","scheduler_conns":["*localhost"],"tpid":""}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: CgrLoaderCfgJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: CgrLoaderCfgJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5102,7 +5104,7 @@ func TestV1GetConfigAsJSONCgrMigrator(t *testing.T) {
var reply string
expected := `{"migrator":{"out_datadb_encoding":"msgpack","out_datadb_host":"127.0.0.1","out_datadb_name":"10","out_datadb_opts":{"mongoQueryTimeout":"0s","redisCACertificate":"","redisClientCertificate":"","redisClientKey":"","redisCluster":false,"redisClusterOndownDelay":"0s","redisClusterSync":"5s","redisConnectAttempts":20,"redisConnectTimeout":"0s","redisMaxConns":10,"redisReadTimeout":"0s","redisSentinel":"","redisTLS":false,"redisWriteTimeout":"0s"},"out_datadb_password":"","out_datadb_port":"6379","out_datadb_type":"*redis","out_datadb_user":"cgrates","out_stordb_host":"127.0.0.1","out_stordb_name":"cgrates","out_stordb_opts":{"mongoQueryTimeout":"0s","mysqlDSNParams":null,"mysqlLocation":"","pgSSLMode":"","sqlConnMaxLifetime":"0s","sqlMaxIdleConns":0,"sqlMaxOpenConns":0},"out_stordb_password":"","out_stordb_port":"3306","out_stordb_type":"*mysql","out_stordb_user":"cgrates","users_filters":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: CgrMigratorCfgJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: CgrMigratorCfgJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5113,7 +5115,7 @@ func TestV1GetConfigAsJSONApierS(t *testing.T) {
var reply string
expected := `{"apiers":{"attributes_conns":[],"caches_conns":["*internal"],"ees_conns":[],"enabled":false,"scheduler_conns":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: ApierS}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: ApierS}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5124,7 +5126,7 @@ func TestV1GetConfigAsJSONCfgEES(t *testing.T) {
var reply string
expected := `{"ees":{"attributes_conns":[],"cache":{"*file_csv":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"}},"enabled":false,"exporters":[{"attempts":1,"attribute_context":"","attribute_ids":[],"concurrent_requests":0,"export_path":"/var/spool/cgrates/ees","failed_posts_dir":"/var/spool/cgrates/failed_posts","fields":[],"filters":[],"flags":[],"id":"*default","opts":{},"synchronous":false,"timezone":"","type":"*none"}]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: EEsJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: EEsJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5135,7 +5137,7 @@ func TestV1GetConfigAsJSONCfgERS(t *testing.T) {
var reply string
expected := `{"ers":{"enabled":false,"partial_cache_ttl":"1s","readers":[{"cache_dump_fields":[],"concurrent_requests":1024,"fields":[{"mandatory":true,"path":"*cgreq.ToR","tag":"ToR","type":"*variable","value":"~*req.2"},{"mandatory":true,"path":"*cgreq.OriginID","tag":"OriginID","type":"*variable","value":"~*req.3"},{"mandatory":true,"path":"*cgreq.RequestType","tag":"RequestType","type":"*variable","value":"~*req.4"},{"mandatory":true,"path":"*cgreq.Tenant","tag":"Tenant","type":"*variable","value":"~*req.6"},{"mandatory":true,"path":"*cgreq.Category","tag":"Category","type":"*variable","value":"~*req.7"},{"mandatory":true,"path":"*cgreq.Account","tag":"Account","type":"*variable","value":"~*req.8"},{"mandatory":true,"path":"*cgreq.Subject","tag":"Subject","type":"*variable","value":"~*req.9"},{"mandatory":true,"path":"*cgreq.Destination","tag":"Destination","type":"*variable","value":"~*req.10"},{"mandatory":true,"path":"*cgreq.SetupTime","tag":"SetupTime","type":"*variable","value":"~*req.11"},{"mandatory":true,"path":"*cgreq.AnswerTime","tag":"AnswerTime","type":"*variable","value":"~*req.12"},{"mandatory":true,"path":"*cgreq.Usage","tag":"Usage","type":"*variable","value":"~*req.13"}],"filters":[],"flags":[],"id":"*default","opts":{"csvFieldSeparator":",","csvHeaderDefineChar":":","csvRowLength":0,"natsSubject":"cgrates_cdrs","partialCacheAction":"*none","partialOrderField":"~*req.AnswerTime","xmlRootPath":""},"partial_commit_fields":[],"processed_path":"/var/spool/cgrates/ers/out","run_delay":"0","source_path":"/var/spool/cgrates/ers/in","tenant":"","timezone":"","type":"*none"}],"sessions_conns":["*internal"]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: ERsJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: ERsJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5146,7 +5148,7 @@ func TestV1GetConfigAsJSONSIPAgent(t *testing.T) {
var reply string
expected := `{"sip_agent":{"enabled":false,"listen":"127.0.0.1:5060","listen_net":"udp","request_processors":[],"retransmission_timer":1000000000,"sessions_conns":["*internal"],"timezone":""}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: SIPAgentJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: SIPAgentJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5157,7 +5159,7 @@ func TestV1GetConfigAsJSONConfigS(t *testing.T) {
var reply string
expected := `{"configs":{"enabled":false,"root_dir":"/var/spool/cgrates/configs","url":"/configs/"}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: ConfigSJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: ConfigSJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5168,7 +5170,7 @@ func TestV1GetConfigAsJSONApiBan(t *testing.T) {
var reply string
expected := `{"apiban":{"keys":[]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: APIBanCfgJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: APIBanCfgJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5179,7 +5181,7 @@ func TestV1GetConfigAsJSONSentryPeer(t *testing.T) {
var reply string
expected := `{"sentrypeer":{"Audience":"https://sentrypeer.com/api","ClientID":"","ClientSecret":"","GrantType":"client_credentials","IpUrl":"https://sentrypeer.com/api/ip-addresses","NumberUrl":"https://sentrypeer.com/api/phone-numbers","TokenURL":"https://authz.sentrypeer.com/oauth/token"}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: SentryPeerCfgJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: SentryPeerCfgJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5190,7 +5192,7 @@ func TestV1GetConfigAsJSONRPCConns(t *testing.T) {
var reply string
expected := `{"rpc_conns":{"*bijson_localhost":{"conns":[{"address":"127.0.0.1:2014","transport":"*birpc_json"}],"poolSize":0,"strategy":"*first"},"*birpc_internal":{"conns":[{"address":"*birpc_internal","transport":""}],"poolSize":0,"strategy":"*first"},"*internal":{"conns":[{"address":"*internal","transport":""}],"poolSize":0,"strategy":"*first"},"*localhost":{"conns":[{"address":"127.0.0.1:2012","transport":"*json"}],"poolSize":0,"strategy":"*first"}}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: RPCConnsJsonName}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: RPCConnsJsonName}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5201,7 +5203,7 @@ func TestV1GetConfigAsJSONTemplates(t *testing.T) {
var reply string
expected := `{"templates":{"*asr":[{"mandatory":true,"path":"*diamreq.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*diamreq.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*req.Destination-Host"},{"mandatory":true,"path":"*diamreq.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*req.Destination-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Realm","tag":"DestinationRealm","type":"*variable","value":"~*req.Origin-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Host","tag":"DestinationHost","type":"*variable","value":"~*req.Origin-Host"},{"mandatory":true,"path":"*diamreq.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"}],"*cca":[{"mandatory":true,"path":"*rep.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"path":"*rep.Result-Code","tag":"ResultCode","type":"*constant","value":"2001"},{"mandatory":true,"path":"*rep.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*vars.OriginHost"},{"mandatory":true,"path":"*rep.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*vars.OriginRealm"},{"mandatory":true,"path":"*rep.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"},{"mandatory":true,"path":"*rep.CC-Request-Type","tag":"CCRequestType","type":"*variable","value":"~*req.CC-Request-Type"},{"mandatory":true,"path":"*rep.CC-Request-Number","tag":"CCRequestNumber","type":"*variable","value":"~*req.CC-Request-Number"}],"*cdrLog":[{"mandatory":true,"path":"*cdr.ToR","tag":"ToR","type":"*variable","value":"~*req.BalanceType"},{"mandatory":true,"path":"*cdr.OriginHost","tag":"OriginHost","type":"*constant","value":"127.0.0.1"},{"mandatory":true,"path":"*cdr.RequestType","tag":"RequestType","type":"*constant","value":"*none"},{"mandatory":true,"path":"*cdr.Tenant","tag":"Tenant","type":"*variable","value":"~*req.Tenant"},{"mandatory":true,"path":"*cdr.Account","tag":"Account","type":"*variable","value":"~*req.Account"},{"mandatory":true,"path":"*cdr.Subject","tag":"Subject","type":"*variable","value":"~*req.Account"},{"mandatory":true,"path":"*cdr.Cost","tag":"Cost","type":"*variable","value":"~*req.Cost"},{"mandatory":true,"path":"*cdr.Source","tag":"Source","type":"*constant","value":"*cdrLog"},{"mandatory":true,"path":"*cdr.Usage","tag":"Usage","type":"*constant","value":"1"},{"mandatory":true,"path":"*cdr.RunID","tag":"RunID","type":"*variable","value":"~*req.ActionType"},{"mandatory":true,"path":"*cdr.SetupTime","tag":"SetupTime","type":"*constant","value":"*now"},{"mandatory":true,"path":"*cdr.AnswerTime","tag":"AnswerTime","type":"*constant","value":"*now"},{"mandatory":true,"path":"*cdr.PreRated","tag":"PreRated","type":"*constant","value":"true"}],"*err":[{"mandatory":true,"path":"*rep.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*rep.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*vars.OriginHost"},{"mandatory":true,"path":"*rep.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*vars.OriginRealm"}],"*errSip":[{"mandatory":true,"path":"*rep.Request","tag":"Request","type":"*constant","value":"SIP/2.0 500 Internal Server Error"}],"*rar":[{"mandatory":true,"path":"*diamreq.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*diamreq.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*req.Destination-Host"},{"mandatory":true,"path":"*diamreq.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*req.Destination-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Realm","tag":"DestinationRealm","type":"*variable","value":"~*req.Origin-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Host","tag":"DestinationHost","type":"*variable","value":"~*req.Origin-Host"},{"mandatory":true,"path":"*diamreq.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"},{"path":"*diamreq.Re-Auth-Request-Type","tag":"ReAuthRequestType","type":"*constant","value":"0"}]}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: TemplatesJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: TemplatesJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5212,7 +5214,7 @@ func TestV1GetConfigAsJSONHTTPAgent(t *testing.T) {
var reply string
expected := `{"http_agent":[]}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: HttpAgentJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: HttpAgentJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5223,7 +5225,7 @@ func TestV1GetConfigAsJSONMailer(t *testing.T) {
var reply string
expected := `{"mailer":{"auth_password":"CGRateS.org","auth_user":"cgrates","from_address":"cgr-mailer@localhost.localdomain","server":"localhost"}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: MAILER_JSN}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: MAILER_JSN}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5234,7 +5236,7 @@ func TestV1GetConfigAsJSONAnalyzer(t *testing.T) {
var reply string
expected := `{"analyzers":{"cleanup_interval":"1h0m0s","db_path":"/var/spool/cgrates/analyzers","enabled":false,"index_type":"*scorch","ttl":"24h0m0s"}}`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: AnalyzerCfgJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: AnalyzerCfgJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5247,7 +5249,7 @@ func TestV1GetConfigAsJSONCoreS(t *testing.T) {
cgrCfg := NewDefaultCGRConfig()
cgrCfg.coreSCfg.Caps = 10
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: CoreSCfgJson}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: CoreSCfgJson}, &reply); err != nil {
t.Error(err)
} else if expected != reply {
t.Errorf("Expected %+v \n, received %+v", expected, reply)
@@ -5258,7 +5260,7 @@ func TestV1GetConfigAsJSONCoreS(t *testing.T) {
for _, section := range sortedCfgSections {
cfgCgr2.rldChans[section] = make(chan struct{}, 1)
}
- if err = cfgCgr2.V1SetConfigFromJSON(&SetConfigFromJSONArgs{Config: reply, DryRun: true}, &result); err != nil {
+ if err = cfgCgr2.V1SetConfigFromJSON(context.Background(), &SetConfigFromJSONArgs{Config: reply, DryRun: true}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Errorf("Unexpected result")
@@ -5268,7 +5270,7 @@ func TestV1GetConfigAsJSONCoreS(t *testing.T) {
for _, section := range sortedCfgSections {
cfgCgr2.rldChans[section] = make(chan struct{}, 1)
}
- if err = cfgCgr2.V1SetConfigFromJSON(&SetConfigFromJSONArgs{Config: reply}, &result); err != nil {
+ if err = cfgCgr2.V1SetConfigFromJSON(context.Background(), &SetConfigFromJSONArgs{Config: reply}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Errorf("Unexpected result")
@@ -5291,7 +5293,7 @@ func TestV1GetConfigAsJSONCheckConfigSanity(t *testing.T) {
cfgCgr2.rldChans[section] = make(chan struct{}, 1)
}
- if err = cfgCgr2.V1SetConfigFromJSON(&SetConfigFromJSONArgs{Config: args}, &result); err == nil || err.Error() != expected {
+ if err = cfgCgr2.V1SetConfigFromJSON(context.Background(), &SetConfigFromJSONArgs{Config: args}, &result); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -5300,7 +5302,7 @@ func TestV1GetConfigAsJSONInvalidSection(t *testing.T) {
var reply string
expected := `Invalid section`
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: "InvalidSection"}, &reply); err == nil || err.Error() != expected {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: "InvalidSection"}, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -5318,12 +5320,12 @@ func TestV1GetConfigAsJSONAllConfig(t *testing.T) {
t.Fatal(err)
}
cgrCfg.SureTaxCfg().Timezone = time.UTC
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: utils.EmptyString}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: utils.EmptyString}, &reply); err != nil {
t.Fatal(err)
} else if expected != reply {
t.Fatalf("Expected %+v \n, received %+v", expected, reply)
}
- if err := cgrCfg.V1GetConfigAsJSON(&SectionWithAPIOpts{Section: utils.EmptyString}, &reply); err != nil {
+ if err := cgrCfg.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Section: utils.EmptyString}, &reply); err != nil {
t.Fatal(err)
} else if expected != reply {
t.Fatalf("Expected %+v \n, received %+v", expected, reply)
@@ -5336,7 +5338,7 @@ func TestV1ReloadConfigFromJSONEmptyConfig(t *testing.T) {
for _, section := range sortedCfgSections {
cgrCfg.rldChans[section] = make(chan struct{}, 1)
}
- if err := cgrCfg.V1SetConfigFromJSON(&SetConfigFromJSONArgs{Config: utils.EmptyString}, &reply); err != nil {
+ if err := cgrCfg.V1SetConfigFromJSON(context.Background(), &SetConfigFromJSONArgs{Config: utils.EmptyString}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply")
@@ -5350,7 +5352,7 @@ func TestV1ReloadConfigFromJSONInvalidSection(t *testing.T) {
for _, section := range sortedCfgSections {
cgrCfg.rldChans[section] = make(chan struct{}, 1)
}
- if err := cgrCfg.V1SetConfigFromJSON(&SetConfigFromJSONArgs{Config: "InvalidSection"}, &reply); err == nil || err.Error() != expected {
+ if err := cgrCfg.V1SetConfigFromJSON(context.Background(), &SetConfigFromJSONArgs{Config: "InvalidSection"}, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -5719,7 +5721,7 @@ func TestLoadConfigFromReaderLoadFunctionsError(t *testing.T) {
func TestCallOnCGRConfig(t *testing.T) {
expected := "UNSUPPORTED_SERVICE_METHOD"
cgrcfg := NewDefaultCGRConfig()
- if err := cgrcfg.Call("inexistentMethod", nil, nil); err == nil || err.Error() != expected {
+ if err := cgrcfg.Call(context.Background(), "inexistentMethod", nil, nil); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
diff --git a/console/account_actionplan_get_test.go b/console/account_actionplan_get_test.go
index 814aed328..f45a3d437 100644
--- a/console/account_actionplan_get_test.go
+++ b/console/account_actionplan_get_test.go
@@ -36,15 +36,15 @@ func TestCmdGetAccountActionPlan(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/account_remove_test.go b/console/account_remove_test.go
index e546ec65d..1e9d998a1 100644
--- a/console/account_remove_test.go
+++ b/console/account_remove_test.go
@@ -36,15 +36,15 @@ func TestCmdRemoveAccount(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/account_set_test.go b/console/account_set_test.go
index 9844e67ba..014a4097e 100644
--- a/console/account_set_test.go
+++ b/console/account_set_test.go
@@ -36,15 +36,15 @@ func TestCmdSetAccount(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/account_trigger_add_test.go b/console/account_trigger_add_test.go
index 18a8bc68f..f64726f14 100644
--- a/console/account_trigger_add_test.go
+++ b/console/account_trigger_add_test.go
@@ -36,16 +36,16 @@ func TestCmdAccountTriggerAdd(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/account_trigger_remove_test.go b/console/account_trigger_remove_test.go
index e2b5b15c0..0a77adbf6 100644
--- a/console/account_trigger_remove_test.go
+++ b/console/account_trigger_remove_test.go
@@ -35,15 +35,15 @@ func TestCmdAccountTriggerRemove(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/account_trigger_reset_test.go b/console/account_trigger_reset_test.go
index c9633a69b..e0a785ccd 100644
--- a/console/account_trigger_reset_test.go
+++ b/console/account_trigger_reset_test.go
@@ -35,15 +35,15 @@ func TestCmdAccountTriggerReset(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/account_trigger_set_test.go b/console/account_trigger_set_test.go
index 76e17df91..2786b75dd 100644
--- a/console/account_trigger_set_test.go
+++ b/console/account_trigger_set_test.go
@@ -35,15 +35,15 @@ func TestCmdAccountTriggerSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/accounts_test.go b/console/accounts_test.go
index 0f794a143..5a927d1b9 100644
--- a/console/accounts_test.go
+++ b/console/accounts_test.go
@@ -36,15 +36,15 @@ func TestCmdAccounts(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/action_execute_test.go b/console/action_execute_test.go
index 39646db12..5851b0e83 100644
--- a/console/action_execute_test.go
+++ b/console/action_execute_test.go
@@ -36,15 +36,15 @@ func TestCmdActionExecute(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/actionplan_get_test.go b/console/actionplan_get_test.go
index 96d37af06..29f69a338 100644
--- a/console/actionplan_get_test.go
+++ b/console/actionplan_get_test.go
@@ -36,15 +36,15 @@ func TestCmdActionPlanGet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/actionplan_remove_test.go b/console/actionplan_remove_test.go
index 5e1c722e5..876ab2229 100644
--- a/console/actionplan_remove_test.go
+++ b/console/actionplan_remove_test.go
@@ -36,15 +36,15 @@ func TestCmdActionPlanRemove(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/actionplan_set_test.go b/console/actionplan_set_test.go
index 343e50223..9346f0684 100644
--- a/console/actionplan_set_test.go
+++ b/console/actionplan_set_test.go
@@ -36,15 +36,15 @@ func TestCmdActionPlanSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/active_sessions_test.go b/console/active_sessions_test.go
index cd3880748..03c0bbd68 100644
--- a/console/active_sessions_test.go
+++ b/console/active_sessions_test.go
@@ -36,15 +36,15 @@ func TestCmdActiveSessions(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/attributes_for_event_test.go b/console/attributes_for_event_test.go
index 78a6b16a0..c6636c778 100644
--- a/console/attributes_for_event_test.go
+++ b/console/attributes_for_event_test.go
@@ -36,15 +36,15 @@ func TestCmdAttributesForEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/attributes_process_event_test.go b/console/attributes_process_event_test.go
index 90b5d1c1f..62ce1f2f6 100644
--- a/console/attributes_process_event_test.go
+++ b/console/attributes_process_event_test.go
@@ -36,15 +36,15 @@ func TestCmdAttributesProcessEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/attributes_profile_ids_test.go b/console/attributes_profile_ids_test.go
index fcc4a2beb..8f6feb429 100644
--- a/console/attributes_profile_ids_test.go
+++ b/console/attributes_profile_ids_test.go
@@ -36,15 +36,15 @@ func TestCmdAttributesProfileIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/attributes_profile_rem_test.go b/console/attributes_profile_rem_test.go
index e41d1ae83..33ef6ae72 100644
--- a/console/attributes_profile_rem_test.go
+++ b/console/attributes_profile_rem_test.go
@@ -36,15 +36,15 @@ func TestCmdAttributesProfileRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/attributes_profile_set_test.go b/console/attributes_profile_set_test.go
index e77ccc3e4..38be3c493 100644
--- a/console/attributes_profile_set_test.go
+++ b/console/attributes_profile_set_test.go
@@ -36,15 +36,15 @@ func TestCmdAttributesProfileSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/attributes_profile_test.go b/console/attributes_profile_test.go
index d406c9696..65e59d91d 100644
--- a/console/attributes_profile_test.go
+++ b/console/attributes_profile_test.go
@@ -36,15 +36,15 @@ func TestCmdAttributesProfile(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/balance_add_test.go b/console/balance_add_test.go
index 79cca09bd..347a8004c 100644
--- a/console/balance_add_test.go
+++ b/console/balance_add_test.go
@@ -36,15 +36,15 @@ func TestCmdBalanceAdd(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/balance_debit_test.go b/console/balance_debit_test.go
index 025d459e1..60a0b544b 100644
--- a/console/balance_debit_test.go
+++ b/console/balance_debit_test.go
@@ -36,15 +36,15 @@ func TestCmdBalanceDebit(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/balance_remove_test.go b/console/balance_remove_test.go
index 1df36f508..4f988d4f4 100644
--- a/console/balance_remove_test.go
+++ b/console/balance_remove_test.go
@@ -35,15 +35,15 @@ func TestCmdBalanceRemove(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/balance_set_test.go b/console/balance_set_test.go
index 1fd75fb97..279f1eff2 100644
--- a/console/balance_set_test.go
+++ b/console/balance_set_test.go
@@ -36,15 +36,15 @@ func TestCmdBalanceSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_clear_test.go b/console/cache_clear_test.go
index efedccc4d..393130f58 100644
--- a/console/cache_clear_test.go
+++ b/console/cache_clear_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheClear(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_group_item_id_test.go b/console/cache_group_item_id_test.go
index 8564fd2f3..cb3a5e4c0 100644
--- a/console/cache_group_item_id_test.go
+++ b/console/cache_group_item_id_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheGroupItemId(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_has_group_test.go b/console/cache_has_group_test.go
index 7da590c51..c658818b3 100644
--- a/console/cache_has_group_test.go
+++ b/console/cache_has_group_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheHasGroup(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_has_item_test.go b/console/cache_has_item_test.go
index 79ec6dd94..aa9e9ffe3 100644
--- a/console/cache_has_item_test.go
+++ b/console/cache_has_item_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheHasItem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_item_expiry_time_test.go b/console/cache_item_expiry_time_test.go
index 1838bc4d0..1ac734f28 100644
--- a/console/cache_item_expiry_time_test.go
+++ b/console/cache_item_expiry_time_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheExpiryTime(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_item_ids_test.go b/console/cache_item_ids_test.go
index 54fd6e715..a2b659d79 100644
--- a/console/cache_item_ids_test.go
+++ b/console/cache_item_ids_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheItermIds(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_precache_status_test.go b/console/cache_precache_status_test.go
index 9af81dc57..0d7300332 100644
--- a/console/cache_precache_status_test.go
+++ b/console/cache_precache_status_test.go
@@ -36,15 +36,15 @@ func TestCmdCachePrecacheStatus(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_reload_test.go b/console/cache_reload_test.go
index c0b0199e0..05b7ab13a 100644
--- a/console/cache_reload_test.go
+++ b/console/cache_reload_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheReload(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_remove_group_test.go b/console/cache_remove_group_test.go
index 4020dff74..9ffcf7ab4 100644
--- a/console/cache_remove_group_test.go
+++ b/console/cache_remove_group_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheRemoveGroup(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_remove_item_test.go b/console/cache_remove_item_test.go
index 57d43e5ec..0cac8bdb9 100644
--- a/console/cache_remove_item_test.go
+++ b/console/cache_remove_item_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheRemoveItem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cache_stats_test.go b/console/cache_stats_test.go
index 92aa609c0..a6083341e 100644
--- a/console/cache_stats_test.go
+++ b/console/cache_stats_test.go
@@ -36,15 +36,15 @@ func TestCmdCacheStats(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cdrs_test.go b/console/cdrs_test.go
index e918a5f89..2ce81b5aa 100644
--- a/console/cdrs_test.go
+++ b/console/cdrs_test.go
@@ -36,15 +36,15 @@ func TestCmdCdrs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/chargers_for_event_test.go b/console/chargers_for_event_test.go
index 5be956e68..6a3c0e322 100644
--- a/console/chargers_for_event_test.go
+++ b/console/chargers_for_event_test.go
@@ -36,15 +36,15 @@ func TestCmdChargersForEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/chargers_process_event_test.go b/console/chargers_process_event_test.go
index a9246c1f3..d57fd8174 100644
--- a/console/chargers_process_event_test.go
+++ b/console/chargers_process_event_test.go
@@ -35,15 +35,15 @@ func TestCmdChargersProcessEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/chargers_profile_ids_test.go b/console/chargers_profile_ids_test.go
index 25332d8a5..9ed499948 100644
--- a/console/chargers_profile_ids_test.go
+++ b/console/chargers_profile_ids_test.go
@@ -35,15 +35,15 @@ func TestCmdChargersProfileIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/chargers_profile_rem_test.go b/console/chargers_profile_rem_test.go
index 033e845f2..b15e69b72 100644
--- a/console/chargers_profile_rem_test.go
+++ b/console/chargers_profile_rem_test.go
@@ -35,15 +35,15 @@ func TestCmdChargersProfileRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/chargers_profile_set_test.go b/console/chargers_profile_set_test.go
index b68286943..b399d33b9 100644
--- a/console/chargers_profile_set_test.go
+++ b/console/chargers_profile_set_test.go
@@ -35,15 +35,15 @@ func TestCmdChargersProfileSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/chargers_profile_test.go b/console/chargers_profile_test.go
index 2770bda29..27f10f2df 100644
--- a/console/chargers_profile_test.go
+++ b/console/chargers_profile_test.go
@@ -36,15 +36,15 @@ func TestCmdChargersProfile(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameterme
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/compute_actionplan_indexes_test.go b/console/compute_actionplan_indexes_test.go
index 9851d1fae..bb3d54e91 100644
--- a/console/compute_actionplan_indexes_test.go
+++ b/console/compute_actionplan_indexes_test.go
@@ -35,7 +35,7 @@ func TestCmdComputeActionPlanIndexes(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
@@ -45,7 +45,7 @@ func TestCmdComputeActionPlanIndexes(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(EmptyWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/compute_filter_indexes_test.go b/console/compute_filter_indexes_test.go
index 17947664b..ffd6ac23b 100644
--- a/console/compute_filter_indexes_test.go
+++ b/console/compute_filter_indexes_test.go
@@ -35,15 +35,15 @@ func TestCmdComputeFilterIndexes(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cost_details_test.go b/console/cost_details_test.go
index 732b6be35..f1e99beb5 100644
--- a/console/cost_details_test.go
+++ b/console/cost_details_test.go
@@ -35,15 +35,15 @@ func TestCmdCostDetails(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/cost_test.go b/console/cost_test.go
index 9bb44a2d4..ad0a50800 100644
--- a/console/cost_test.go
+++ b/console/cost_test.go
@@ -35,15 +35,15 @@ func TestCmdCost(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/datacost_test.go b/console/datacost_test.go
index 2c2882a71..6ad3a34a0 100644
--- a/console/datacost_test.go
+++ b/console/datacost_test.go
@@ -35,15 +35,15 @@ func TestCmdDatacost(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/datadb_versions_test.go b/console/datadb_versions_test.go
index 8dbb84836..f9aedd6b3 100644
--- a/console/datadb_versions_test.go
+++ b/console/datadb_versions_test.go
@@ -35,7 +35,7 @@ func TestCmdDataDBVersions(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
@@ -45,7 +45,7 @@ func TestCmdDataDBVersions(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(EmptyWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/debit_max_test.go b/console/debit_max_test.go
index 5dcf4a91f..104c9414f 100644
--- a/console/debit_max_test.go
+++ b/console/debit_max_test.go
@@ -35,15 +35,15 @@ func TestCmdDebitMax(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/debit_test.go b/console/debit_test.go
index 396e6cd8f..fc8214efa 100644
--- a/console/debit_test.go
+++ b/console/debit_test.go
@@ -35,15 +35,15 @@ func TestCmdDebit(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/destination_set_test.go b/console/destination_set_test.go
index 134bc8c0f..9197d1675 100644
--- a/console/destination_set_test.go
+++ b/console/destination_set_test.go
@@ -35,15 +35,15 @@ func TestCmdDestinationSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/destinations_test.go b/console/destinations_test.go
index 00fe47104..bcbca8fd1 100644
--- a/console/destinations_test.go
+++ b/console/destinations_test.go
@@ -36,15 +36,15 @@ func TestCmdDestinations(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_for_event_test.go b/console/dispatchers_for_event_test.go
index b4e7309df..5024e95fa 100644
--- a/console/dispatchers_for_event_test.go
+++ b/console/dispatchers_for_event_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersForEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_host_ids_test.go b/console/dispatchers_host_ids_test.go
index 23664569c..b64e1baf6 100644
--- a/console/dispatchers_host_ids_test.go
+++ b/console/dispatchers_host_ids_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersHostIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_host_rem_test.go b/console/dispatchers_host_rem_test.go
index 0b91a8ce5..fb94048e1 100644
--- a/console/dispatchers_host_rem_test.go
+++ b/console/dispatchers_host_rem_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersHostRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_host_set_test.go b/console/dispatchers_host_set_test.go
index 907ac00c9..ab32b4c2a 100644
--- a/console/dispatchers_host_set_test.go
+++ b/console/dispatchers_host_set_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersHostSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_host_test.go b/console/dispatchers_host_test.go
index 039764729..d09724b4e 100644
--- a/console/dispatchers_host_test.go
+++ b/console/dispatchers_host_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersHost(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_profile_ids_test.go b/console/dispatchers_profile_ids_test.go
index 942d8a8bc..395541c7e 100644
--- a/console/dispatchers_profile_ids_test.go
+++ b/console/dispatchers_profile_ids_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersProfileIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_profile_rem_test.go b/console/dispatchers_profile_rem_test.go
index f798d7859..bbd226374 100644
--- a/console/dispatchers_profile_rem_test.go
+++ b/console/dispatchers_profile_rem_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersProfileRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_profile_set_test.go b/console/dispatchers_profile_set_test.go
index 4a1596735..e08852b80 100644
--- a/console/dispatchers_profile_set_test.go
+++ b/console/dispatchers_profile_set_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersProfileSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/dispatchers_profile_test.go b/console/dispatchers_profile_test.go
index e4a3339a2..385a9e831 100644
--- a/console/dispatchers_profile_test.go
+++ b/console/dispatchers_profile_test.go
@@ -36,15 +36,15 @@ func TestCmdDispatchersProfile(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/filter_ids_test.go b/console/filter_ids_test.go
index c57c6180a..f96a06c54 100644
--- a/console/filter_ids_test.go
+++ b/console/filter_ids_test.go
@@ -36,15 +36,15 @@ func TestCmdFilterIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/filter_indexes_remove_test.go b/console/filter_indexes_remove_test.go
index 75e5aa9ae..18e84f71e 100644
--- a/console/filter_indexes_remove_test.go
+++ b/console/filter_indexes_remove_test.go
@@ -36,15 +36,15 @@ func TestCmdFilterIndexesRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/filter_indexes_test.go b/console/filter_indexes_test.go
index 124f0272f..f63c14f79 100644
--- a/console/filter_indexes_test.go
+++ b/console/filter_indexes_test.go
@@ -36,15 +36,15 @@ func TestCmdFilterIndexes(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/filter_remove_test.go b/console/filter_remove_test.go
index bc35e3746..7709493ac 100644
--- a/console/filter_remove_test.go
+++ b/console/filter_remove_test.go
@@ -36,15 +36,15 @@ func TestCmdFilterRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/filter_set_test.go b/console/filter_set_test.go
index 318e7244a..49a9d44bb 100644
--- a/console/filter_set_test.go
+++ b/console/filter_set_test.go
@@ -36,15 +36,15 @@ func TestCmdFilterSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/filter_test.go b/console/filter_test.go
index 76162514f..5ed2595ef 100644
--- a/console/filter_test.go
+++ b/console/filter_test.go
@@ -36,15 +36,15 @@ func TestCmdFilter(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/get_json_section_test.go b/console/get_json_section_test.go
index 28a53f9d8..dc2fd82b0 100644
--- a/console/get_json_section_test.go
+++ b/console/get_json_section_test.go
@@ -36,15 +36,15 @@ func TestCmdGetJSONSection(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/import_tp_from_folder_test.go b/console/import_tp_from_folder_test.go
index c8ca0f4af..ac6fa0dd3 100644
--- a/console/import_tp_from_folder_test.go
+++ b/console/import_tp_from_folder_test.go
@@ -36,15 +36,15 @@ func TestCmdTPFromFolder(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/load_history_test.go b/console/load_history_test.go
index 6a0d7445a..904e8686e 100644
--- a/console/load_history_test.go
+++ b/console/load_history_test.go
@@ -36,15 +36,15 @@ func TestCmdLoadHistory(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/load_ids_test.go b/console/load_ids_test.go
index a58775588..9c0b11282 100644
--- a/console/load_ids_test.go
+++ b/console/load_ids_test.go
@@ -35,7 +35,7 @@ func TestCmdLoadIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -44,7 +44,7 @@ func TestCmdLoadIDs(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/load_times_test.go b/console/load_times_test.go
index 8126e398b..808a26343 100644
--- a/console/load_times_test.go
+++ b/console/load_times_test.go
@@ -36,15 +36,15 @@ func TestCmdLoadTimes(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/load_tp_from_folder_test.go b/console/load_tp_from_folder_test.go
index 9936202b7..1f0f64dd9 100644
--- a/console/load_tp_from_folder_test.go
+++ b/console/load_tp_from_folder_test.go
@@ -36,15 +36,15 @@ func TestCmdLoadTPFromFolder(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/load_tp_from_stordb_test.go b/console/load_tp_from_stordb_test.go
index 0319f831a..852d03e9d 100644
--- a/console/load_tp_from_stordb_test.go
+++ b/console/load_tp_from_stordb_test.go
@@ -36,15 +36,15 @@ func TestCmdLoadTPFromStorDB(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/loader_load_test.go b/console/loader_load_test.go
index c8911a6f7..6722448e1 100644
--- a/console/loader_load_test.go
+++ b/console/loader_load_test.go
@@ -36,15 +36,15 @@ func TestCmdLoaderLoad(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/loader_remove_test.go b/console/loader_remove_test.go
index c069417eb..9e9c01283 100644
--- a/console/loader_remove_test.go
+++ b/console/loader_remove_test.go
@@ -36,15 +36,15 @@ func TestCmdLoaderRemove(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/maxduration_test.go b/console/maxduration_test.go
index 4fcfdaa1e..d18bb81a0 100644
--- a/console/maxduration_test.go
+++ b/console/maxduration_test.go
@@ -35,15 +35,15 @@ func TestCmdMaxDuration(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/maxusage_test.go b/console/maxusage_test.go
index bf189e2ba..67460111d 100644
--- a/console/maxusage_test.go
+++ b/console/maxusage_test.go
@@ -36,15 +36,15 @@ func TestCmdMaxUsage(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/passive_sessions_test.go b/console/passive_sessions_test.go
index 6de89eb22..886b32f34 100644
--- a/console/passive_sessions_test.go
+++ b/console/passive_sessions_test.go
@@ -36,15 +36,15 @@ func TestCmdPassiveSessions(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/ping_test.go b/console/ping_test.go
index f3479d457..81dacf574 100644
--- a/console/ping_test.go
+++ b/console/ping_test.go
@@ -43,7 +43,7 @@ func TestCmdPingRoutesLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -52,7 +52,7 @@ func TestCmdPingRoutesLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -77,7 +77,7 @@ func TestCmdPingAttributesLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -86,7 +86,7 @@ func TestCmdPingAttributesLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -112,7 +112,7 @@ func TestCmdPingChargerSLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -121,7 +121,7 @@ func TestCmdPingChargerSLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -147,7 +147,7 @@ func TestCmdPingResourcesLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -156,7 +156,7 @@ func TestCmdPingResourcesLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -182,7 +182,7 @@ func TestCmdPingStatServiceLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -191,7 +191,7 @@ func TestCmdPingStatServiceLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -216,7 +216,7 @@ func TestCmdPingThresholdsLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -225,7 +225,7 @@ func TestCmdPingThresholdsLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -250,7 +250,7 @@ func TestCmdPingSessionsLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -259,7 +259,7 @@ func TestCmdPingSessionsLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -284,7 +284,7 @@ func TestCmdPingLoaderSLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -293,7 +293,7 @@ func TestCmdPingLoaderSLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -318,7 +318,7 @@ func TestCmdPingDispatcherSLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -327,7 +327,7 @@ func TestCmdPingDispatcherSLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -352,7 +352,7 @@ func TestCmdPingAnalyzerSLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -361,7 +361,7 @@ func TestCmdPingAnalyzerSLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -386,7 +386,7 @@ func TestCmdPingSchedulerSLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -395,7 +395,7 @@ func TestCmdPingSchedulerSLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -420,7 +420,7 @@ func TestCmdPingRALsLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -429,7 +429,7 @@ func TestCmdPingRALsLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -454,7 +454,7 @@ func TestCmdPingReplicatorLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -463,7 +463,7 @@ func TestCmdPingReplicatorLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -488,7 +488,7 @@ func TestCmdPingApierSLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -497,7 +497,7 @@ func TestCmdPingApierSLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
@@ -522,7 +522,7 @@ func TestCmdPingEEsLow(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -531,7 +531,7 @@ func TestCmdPingEEsLow(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/ratingplan_cost_test.go b/console/ratingplan_cost_test.go
index 8ec9512ed..b976f415f 100644
--- a/console/ratingplan_cost_test.go
+++ b/console/ratingplan_cost_test.go
@@ -36,15 +36,15 @@ func TestCmdRatingPlanCost(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/ratingprofile_ids_test.go b/console/ratingprofile_ids_test.go
index 52e449e09..83f14f676 100644
--- a/console/ratingprofile_ids_test.go
+++ b/console/ratingprofile_ids_test.go
@@ -36,15 +36,15 @@ func TestCmdRatingPlanIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/ratingprofile_remove_test.go b/console/ratingprofile_remove_test.go
index c3da0a2a9..6eb8ce71c 100644
--- a/console/ratingprofile_remove_test.go
+++ b/console/ratingprofile_remove_test.go
@@ -35,15 +35,15 @@ func TestCmdRatingPlanRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
diff --git a/console/ratingprofile_set_test.go b/console/ratingprofile_set_test.go
index 8be1a9138..8dbb7b2ba 100644
--- a/console/ratingprofile_set_test.go
+++ b/console/ratingprofile_set_test.go
@@ -36,15 +36,15 @@ func TestCmdRatingPlanSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/ratingprofile_test.go b/console/ratingprofile_test.go
index 083d09fba..9b930f115 100644
--- a/console/ratingprofile_test.go
+++ b/console/ratingprofile_test.go
@@ -36,15 +36,15 @@ func TestCmdRatingPlan(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/reload_config_test.go b/console/reload_config_test.go
index d4433789c..748d21cdf 100644
--- a/console/reload_config_test.go
+++ b/console/reload_config_test.go
@@ -36,15 +36,15 @@ func TestCmdReloadConfig(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_allocate_test.go b/console/resources_allocate_test.go
index f084567f6..b2aa6a027 100644
--- a/console/resources_allocate_test.go
+++ b/console/resources_allocate_test.go
@@ -36,15 +36,15 @@ func TestCmdResourcesAllocate(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_authorize_test.go b/console/resources_authorize_test.go
index 1a46281a6..726f991e2 100644
--- a/console/resources_authorize_test.go
+++ b/console/resources_authorize_test.go
@@ -36,15 +36,15 @@ func TestCmdResourcesAuthorize(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_for_event_test.go b/console/resources_for_event_test.go
index 4600fb46a..6c5c219b4 100644
--- a/console/resources_for_event_test.go
+++ b/console/resources_for_event_test.go
@@ -36,15 +36,15 @@ func TestCmdResourcesForEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_profile_ids_test.go b/console/resources_profile_ids_test.go
index a8a6492ba..9a1202376 100644
--- a/console/resources_profile_ids_test.go
+++ b/console/resources_profile_ids_test.go
@@ -36,15 +36,15 @@ func TestCmdResourcesProfileIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_profile_rem_test.go b/console/resources_profile_rem_test.go
index 1aec01b00..dc0aadf8b 100644
--- a/console/resources_profile_rem_test.go
+++ b/console/resources_profile_rem_test.go
@@ -36,15 +36,15 @@ func TestCmdResourcesProfileRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_profile_set_test.go b/console/resources_profile_set_test.go
index 08d8366ac..7911e6c8a 100644
--- a/console/resources_profile_set_test.go
+++ b/console/resources_profile_set_test.go
@@ -36,15 +36,15 @@ func TestCmdResourcesProfileSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_profiles_test.go b/console/resources_profiles_test.go
index 02132753b..6bd2839be 100644
--- a/console/resources_profiles_test.go
+++ b/console/resources_profiles_test.go
@@ -36,15 +36,15 @@ func TestCmdResourcesProfile(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_release_test.go b/console/resources_release_test.go
index 9a2e638b3..07ecfbf25 100644
--- a/console/resources_release_test.go
+++ b/console/resources_release_test.go
@@ -36,15 +36,15 @@ func TestCmdResourcesRelease(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/resources_test.go b/console/resources_test.go
index 9bd743964..adfa01e94 100644
--- a/console/resources_test.go
+++ b/console/resources_test.go
@@ -36,15 +36,15 @@ func TestCmdResources(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/routes_profile_ids_test.go b/console/routes_profile_ids_test.go
index 6607b81a9..6249d5883 100644
--- a/console/routes_profile_ids_test.go
+++ b/console/routes_profile_ids_test.go
@@ -36,15 +36,15 @@ func TestCmdRoutesProfileIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/routes_profile_remove_test.go b/console/routes_profile_remove_test.go
index a40c444ed..9d1d85e3a 100644
--- a/console/routes_profile_remove_test.go
+++ b/console/routes_profile_remove_test.go
@@ -36,15 +36,15 @@ func TestCmdRoutesProfileRemove(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/routes_profile_set_test.go b/console/routes_profile_set_test.go
index 5355da554..5fc557b78 100644
--- a/console/routes_profile_set_test.go
+++ b/console/routes_profile_set_test.go
@@ -36,15 +36,15 @@ func TestCmdRoutesProfileSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/routes_profile_test.go b/console/routes_profile_test.go
index 037d01354..35f6587c3 100644
--- a/console/routes_profile_test.go
+++ b/console/routes_profile_test.go
@@ -36,15 +36,15 @@ func TestCmdRoutesProfile(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/routes_profiles_for_event_test.go b/console/routes_profiles_for_event_test.go
index 3d6a45834..7a758885c 100644
--- a/console/routes_profiles_for_event_test.go
+++ b/console/routes_profiles_for_event_test.go
@@ -36,15 +36,15 @@ func TestCmdRoutesProfilesForEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/routes_test.go b/console/routes_test.go
index 6e61cdfee..a3e0ddeb1 100644
--- a/console/routes_test.go
+++ b/console/routes_test.go
@@ -36,15 +36,15 @@ func TestCmdRoutes(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/scheduler_execute_test.go b/console/scheduler_execute_test.go
index e69c4af5f..cda26cc78 100644
--- a/console/scheduler_execute_test.go
+++ b/console/scheduler_execute_test.go
@@ -36,15 +36,15 @@ func TestCmdSchedulerExecute(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/scheduler_queue_test.go b/console/scheduler_queue_test.go
index 5a4c38de6..7b85c6abd 100644
--- a/console/scheduler_queue_test.go
+++ b/console/scheduler_queue_test.go
@@ -36,15 +36,15 @@ func TestCmdSchedulerQueue(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/scheduler_reload_test.go b/console/scheduler_reload_test.go
index b551ca15c..5e9268e3c 100644
--- a/console/scheduler_reload_test.go
+++ b/console/scheduler_reload_test.go
@@ -36,15 +36,15 @@ func TestCmdSchedulerReload(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/session_authorize_event_test.go b/console/session_authorize_event_test.go
index 6333d51e9..f74d3c513 100644
--- a/console/session_authorize_event_test.go
+++ b/console/session_authorize_event_test.go
@@ -36,15 +36,15 @@ func TestCmdSessionAuthorizeEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/session_force_disconnect_test.go b/console/session_force_disconnect_test.go
index d79782d3c..989b6ce64 100644
--- a/console/session_force_disconnect_test.go
+++ b/console/session_force_disconnect_test.go
@@ -36,15 +36,15 @@ func TestCmdSessionForceDisconnect(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/session_initiate_test.go b/console/session_initiate_test.go
index 263526a39..560e0d625 100644
--- a/console/session_initiate_test.go
+++ b/console/session_initiate_test.go
@@ -36,15 +36,15 @@ func TestCmdSessionInitiate(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/session_process_cdr_test.go b/console/session_process_cdr_test.go
index 6fbb544d8..fe130e4e8 100644
--- a/console/session_process_cdr_test.go
+++ b/console/session_process_cdr_test.go
@@ -36,15 +36,15 @@ func TestCmdSessionProcessCDR(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/session_process_message_test.go b/console/session_process_message_test.go
index a6b2ad150..48b5c9c20 100644
--- a/console/session_process_message_test.go
+++ b/console/session_process_message_test.go
@@ -36,15 +36,15 @@ func TestCmdSessionProcessMessage(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/session_terminate_test.go b/console/session_terminate_test.go
index 2014da8be..8ec64be28 100644
--- a/console/session_terminate_test.go
+++ b/console/session_terminate_test.go
@@ -36,15 +36,15 @@ func TestCmdSessionTerminate(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/session_update_test.go b/console/session_update_test.go
index 080b2840a..ef83d1cc7 100644
--- a/console/session_update_test.go
+++ b/console/session_update_test.go
@@ -36,15 +36,15 @@ func TestCmdSessionUpdate(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/set_datadb_versions_test.go b/console/set_datadb_versions_test.go
index fd047f755..99e221118 100644
--- a/console/set_datadb_versions_test.go
+++ b/console/set_datadb_versions_test.go
@@ -35,15 +35,15 @@ func TestCmdSetDataDBVersions(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/set_stordb_versions_test.go b/console/set_stordb_versions_test.go
index 0b71c22df..b3094a54f 100644
--- a/console/set_stordb_versions_test.go
+++ b/console/set_stordb_versions_test.go
@@ -35,15 +35,15 @@ func TestCmdSetStorDBVersions(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/sharedgroup_test.go b/console/sharedgroup_test.go
index 0b56f28ce..55f966400 100644
--- a/console/sharedgroup_test.go
+++ b/console/sharedgroup_test.go
@@ -35,7 +35,7 @@ func TestCmdSharedGroup(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -44,7 +44,7 @@ func TestCmdSharedGroup(t *testing.T) {
t.Errorf("Expected <%T>, Received <%T>", new(StringWrapper), result)
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/sleep_test.go b/console/sleep_test.go
index 561b2b196..e5468b8d4 100644
--- a/console/sleep_test.go
+++ b/console/sleep_test.go
@@ -35,15 +35,15 @@ func TestCmdSleep(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/stats_for_event_test.go b/console/stats_for_event_test.go
index c1f7ed09f..0213ff523 100644
--- a/console/stats_for_event_test.go
+++ b/console/stats_for_event_test.go
@@ -35,15 +35,15 @@ func TestCmdStatsForEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/stats_metrics_test.go b/console/stats_metrics_test.go
index cdfab6305..2f4c89441 100644
--- a/console/stats_metrics_test.go
+++ b/console/stats_metrics_test.go
@@ -35,15 +35,15 @@ func TestCmdStatsMetrics(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/stats_process_event_test.go b/console/stats_process_event_test.go
index bcc7f7059..784db52bb 100644
--- a/console/stats_process_event_test.go
+++ b/console/stats_process_event_test.go
@@ -35,15 +35,15 @@ func TestCmdStatsProcessEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/stats_profile_ids_test.go b/console/stats_profile_ids_test.go
index a961b58b9..44f0f6f02 100644
--- a/console/stats_profile_ids_test.go
+++ b/console/stats_profile_ids_test.go
@@ -35,15 +35,15 @@ func TestCmdStatsProfileIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/stats_profile_rem_test.go b/console/stats_profile_rem_test.go
index 4f5423375..59e569039 100644
--- a/console/stats_profile_rem_test.go
+++ b/console/stats_profile_rem_test.go
@@ -35,15 +35,15 @@ func TestCmdStatsProfileRem(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/stats_profile_set_test.go b/console/stats_profile_set_test.go
index e63867f4b..213d8686f 100644
--- a/console/stats_profile_set_test.go
+++ b/console/stats_profile_set_test.go
@@ -35,15 +35,15 @@ func TestCmdStatsProfileSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/stats_profile_test.go b/console/stats_profile_test.go
index d5c0d38f4..fded96208 100644
--- a/console/stats_profile_test.go
+++ b/console/stats_profile_test.go
@@ -35,15 +35,15 @@ func TestCmdStatsProfile(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/status_test.go b/console/status_test.go
index d9fa36b15..5e13a9478 100644
--- a/console/status_test.go
+++ b/console/status_test.go
@@ -35,15 +35,15 @@ func TestCmdStatus(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/stordb_versions_test.go b/console/stordb_versions_test.go
index f92fa6b82..279e37e93 100644
--- a/console/stordb_versions_test.go
+++ b/console/stordb_versions_test.go
@@ -35,7 +35,7 @@ func TestCmdStorDBVersions(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// for coverage purpose
@@ -45,7 +45,7 @@ func TestCmdStorDBVersions(t *testing.T) {
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/threshold_test.go b/console/threshold_test.go
index e3ab8cdb8..b3f7ca461 100644
--- a/console/threshold_test.go
+++ b/console/threshold_test.go
@@ -35,15 +35,15 @@ func TestCmdThreshold(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/thresholds_for_event_test.go b/console/thresholds_for_event_test.go
index 561b262f0..ec0fa4089 100644
--- a/console/thresholds_for_event_test.go
+++ b/console/thresholds_for_event_test.go
@@ -35,15 +35,15 @@ func TestCmdThresholdsForEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/thresholds_process_event_test.go b/console/thresholds_process_event_test.go
index 11d3568a7..884a35b72 100644
--- a/console/thresholds_process_event_test.go
+++ b/console/thresholds_process_event_test.go
@@ -35,15 +35,15 @@ func TestCmdThresholdsProcessEvent(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/thresholds_profile_ids_test.go b/console/thresholds_profile_ids_test.go
index 54f3bbba6..b7baf2a31 100644
--- a/console/thresholds_profile_ids_test.go
+++ b/console/thresholds_profile_ids_test.go
@@ -35,15 +35,15 @@ func TestCmdThresholdsProfileIDs(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/thresholds_profile_remove_test.go b/console/thresholds_profile_remove_test.go
index 03d6e0ceb..177fcace7 100644
--- a/console/thresholds_profile_remove_test.go
+++ b/console/thresholds_profile_remove_test.go
@@ -35,15 +35,15 @@ func TestCmdThresholdsProfileRemove(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/thresholds_profile_set_test.go b/console/thresholds_profile_set_test.go
index b8bd9d6ff..ab67c25e9 100644
--- a/console/thresholds_profile_set_test.go
+++ b/console/thresholds_profile_set_test.go
@@ -35,15 +35,15 @@ func TestCmdThresholdsProfileSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/thresholds_profile_test.go b/console/thresholds_profile_test.go
index f01b3b941..8daf46014 100644
--- a/console/thresholds_profile_test.go
+++ b/console/thresholds_profile_test.go
@@ -35,15 +35,15 @@ func TestCmdThresholdsProfile(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/trigger_remove_test.go b/console/trigger_remove_test.go
index c95ab69bc..30e37cc9f 100644
--- a/console/trigger_remove_test.go
+++ b/console/trigger_remove_test.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package console
import (
- v1 "github.com/cgrates/cgrates/apier/v1"
- "github.com/cgrates/cgrates/utils"
"reflect"
"strings"
"testing"
+
+ v1 "github.com/cgrates/cgrates/apier/v1"
+ "github.com/cgrates/cgrates/utils"
)
func TestCmdTriggerRemove(t *testing.T) {
@@ -34,15 +35,15 @@ func TestCmdTriggerRemove(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/trigger_set_test.go b/console/trigger_set_test.go
index b6594004f..58281d9b7 100644
--- a/console/trigger_set_test.go
+++ b/console/trigger_set_test.go
@@ -35,15 +35,15 @@ func TestCmdTriggerSet(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/console/triggers_test.go b/console/triggers_test.go
index ccdb590ad..69b9c36b5 100644
--- a/console/triggers_test.go
+++ b/console/triggers_test.go
@@ -35,15 +35,15 @@ func TestCmdTriggers(t *testing.T) {
if !ok {
t.Fatal("method not found")
}
- if m.Type.NumIn() != 3 { // ApierSv1 is consider and we expect 3 inputs
+ if m.Type.NumIn() != 4 { // expecting 4 inputs
t.Fatalf("invalid number of input parameters ")
}
// verify the type of input parameter
- if ok := m.Type.In(1).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
+ if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
t.Fatalf("cannot assign input parameter")
}
// verify the type of output parameter
- if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
+ if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
t.Fatalf("cannot assign output parameter")
}
// for coverage purpose
diff --git a/cores/caps.go b/cores/caps.go
index be38fd602..690848d52 100644
--- a/cores/caps.go
+++ b/cores/caps.go
@@ -20,11 +20,9 @@ package cores
import (
"net"
- "net/rpc"
- "net/rpc/jsonrpc"
- "github.com/cenkalti/rpc2"
- jsonrpc2 "github.com/cenkalti/rpc2/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/analyzers"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -39,8 +37,8 @@ type conn interface {
RemoteAddr() net.Addr
}
-func newCapsGOBCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) (r rpc.ServerCodec) {
- r = newCapsServerCodec(newGobServerCodec(conn), caps)
+func newCapsGOBCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) (r birpc.ServerCodec) {
+ r = newCapsServerCodec(birpc.NewServerCodec(conn), caps)
if anz != nil {
from := conn.RemoteAddr()
var fromstr string
@@ -57,7 +55,7 @@ func newCapsGOBCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerServic
return
}
-func newCapsJSONCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) (r rpc.ServerCodec) {
+func newCapsJSONCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) (r birpc.ServerCodec) {
r = newCapsServerCodec(jsonrpc.NewServerCodec(conn), caps)
if anz != nil {
from := conn.RemoteAddr()
@@ -75,7 +73,7 @@ func newCapsJSONCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerServi
return
}
-func newCapsServerCodec(sc rpc.ServerCodec, caps *engine.Caps) rpc.ServerCodec {
+func newCapsServerCodec(sc birpc.ServerCodec, caps *engine.Caps) birpc.ServerCodec {
if !caps.IsLimited() {
return sc
}
@@ -86,11 +84,11 @@ func newCapsServerCodec(sc rpc.ServerCodec, caps *engine.Caps) rpc.ServerCodec {
}
type capsServerCodec struct {
- sc rpc.ServerCodec
+ sc birpc.ServerCodec
caps *engine.Caps
}
-func (c *capsServerCodec) ReadRequestHeader(r *rpc.Request) error {
+func (c *capsServerCodec) ReadRequestHeader(r *birpc.Request) error {
return c.sc.ReadRequestHeader(r)
}
@@ -100,7 +98,7 @@ func (c *capsServerCodec) ReadRequestBody(x any) error {
}
return c.sc.ReadRequestBody(x)
}
-func (c *capsServerCodec) WriteResponse(r *rpc.Response, x any) error {
+func (c *capsServerCodec) WriteResponse(r *birpc.Response, x any) error {
if r.Error == utils.ErrMaxConcurrentRPCExceededNoCaps.Error() {
r.Error = utils.ErrMaxConcurrentRPCExceeded.Error()
} else {
@@ -110,8 +108,8 @@ func (c *capsServerCodec) WriteResponse(r *rpc.Response, x any) error {
}
func (c *capsServerCodec) Close() error { return c.sc.Close() }
-func newCapsBiRPCGOBCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) (r rpc2.Codec) {
- r = newCapsBiRPCCodec(rpc2.NewGobCodec(conn), caps)
+func newCapsBiRPCGOBCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) (r birpc.BirpcCodec) {
+ r = newCapsBiRPCCodec(birpc.NewGobBirpcCodec(conn), caps)
if anz != nil {
from := conn.RemoteAddr()
var fromstr string
@@ -128,8 +126,8 @@ func newCapsBiRPCGOBCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerS
return
}
-func newCapsBiRPCJSONCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) (r rpc2.Codec) {
- r = newCapsBiRPCCodec(jsonrpc2.NewJSONCodec(conn), caps)
+func newCapsBiRPCJSONCodec(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) (r birpc.BirpcCodec) {
+ r = newCapsBiRPCCodec(jsonrpc.NewJSONBirpcCodec(conn), caps)
if anz != nil {
from := conn.RemoteAddr()
var fromstr string
@@ -146,7 +144,7 @@ func newCapsBiRPCJSONCodec(conn conn, caps *engine.Caps, anz *analyzers.Analyzer
return
}
-func newCapsBiRPCCodec(sc rpc2.Codec, caps *engine.Caps) rpc2.Codec {
+func newCapsBiRPCCodec(sc birpc.BirpcCodec, caps *engine.Caps) birpc.BirpcCodec {
if !caps.IsLimited() {
return sc
}
@@ -157,19 +155,19 @@ func newCapsBiRPCCodec(sc rpc2.Codec, caps *engine.Caps) rpc2.Codec {
}
type capsBiRPCCodec struct {
- sc rpc2.Codec
+ sc birpc.BirpcCodec
caps *engine.Caps
}
// ReadHeader must read a message and populate either the request
// or the response by inspecting the incoming message.
-func (c *capsBiRPCCodec) ReadHeader(req *rpc2.Request, resp *rpc2.Response) (err error) {
+func (c *capsBiRPCCodec) ReadHeader(req *birpc.Request, resp *birpc.Response) (err error) {
if err = c.sc.ReadHeader(req, resp); err != nil ||
- req.Method == utils.EmptyString { // caps will not process replies
+ req.ServiceMethod == utils.EmptyString { // caps will not process replies
return
}
if err = c.caps.Allocate(); err != nil {
- req.Method = utils.SessionSv1CapsError
+ req.ServiceMethod = utils.SessionSv1CapsError
err = nil
}
return
@@ -186,12 +184,12 @@ func (c *capsBiRPCCodec) ReadResponseBody(x any) error {
}
// WriteRequest must be safe for concurrent use by multiple goroutines.
-func (c *capsBiRPCCodec) WriteRequest(req *rpc2.Request, x any) error {
+func (c *capsBiRPCCodec) WriteRequest(req *birpc.Request, x any) error {
return c.sc.WriteRequest(req, x)
}
// WriteResponse must be safe for concurrent use by multiple goroutines.
-func (c *capsBiRPCCodec) WriteResponse(r *rpc2.Response, x any) error {
+func (c *capsBiRPCCodec) WriteResponse(r *birpc.Response, x any) error {
if r.Error == utils.ErrMaxConcurrentRPCExceededNoCaps.Error() {
r.Error = utils.ErrMaxConcurrentRPCExceeded.Error()
} else {
diff --git a/cores/caps_test.go b/cores/caps_test.go
index 377a20300..0988b16e5 100644
--- a/cores/caps_test.go
+++ b/cores/caps_test.go
@@ -19,14 +19,12 @@ package cores
import (
"net"
- "net/rpc"
- "net/rpc/jsonrpc"
"reflect"
"syscall"
"testing"
- "github.com/cenkalti/rpc2"
- jsonrpc2 "github.com/cenkalti/rpc2/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/analyzers"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -35,7 +33,7 @@ import (
type mockServerCodec struct{}
-func (c *mockServerCodec) ReadRequestHeader(r *rpc.Request) (err error) {
+func (c *mockServerCodec) ReadRequestHeader(r *birpc.Request) (err error) {
r.Seq = 0
r.ServiceMethod = utils.CoreSv1Ping
return
@@ -44,7 +42,7 @@ func (c *mockServerCodec) ReadRequestHeader(r *rpc.Request) (err error) {
func (c *mockServerCodec) ReadRequestBody(x any) (err error) {
return utils.ErrNotImplemented
}
-func (c *mockServerCodec) WriteResponse(r *rpc.Response, x any) error {
+func (c *mockServerCodec) WriteResponse(r *birpc.Response, x any) error {
return nil
}
func (c *mockServerCodec) Close() error { return nil }
@@ -65,8 +63,8 @@ func TestNewCapsServerCodec(t *testing.T) {
t.Errorf("Expected: %v ,received:%v", exp, codec)
}
var err error
- r := new(rpc.Request)
- expR := &rpc.Request{
+ r := new(birpc.Request)
+ expR := &birpc.Request{
Seq: 0,
ServiceMethod: utils.CoreSv1Ping,
}
@@ -84,18 +82,16 @@ func TestNewCapsServerCodec(t *testing.T) {
t.Errorf("Expected error: %v ,received: %v ", utils.ErrMaxConcurrentRPCExceededNoCaps, err)
}
- if err = codec.WriteResponse(&rpc.Response{
- Error: "error",
- Seq: 0,
- ServiceMethod: utils.CoreSv1Ping,
+ if err = codec.WriteResponse(&birpc.Response{
+ Error: "error",
+ Seq: 0,
}, "reply"); err != nil {
t.Fatal(err)
}
- if err = codec.WriteResponse(&rpc.Response{
- Error: utils.ErrMaxConcurrentRPCExceededNoCaps.Error(),
- Seq: 0,
- ServiceMethod: utils.CoreSv1Ping,
+ if err = codec.WriteResponse(&birpc.Response{
+ Error: utils.ErrMaxConcurrentRPCExceededNoCaps.Error(),
+ Seq: 0,
}, "reply"); err != nil {
t.Fatal(err)
}
@@ -112,20 +108,6 @@ func (*mockConn) Close() error { return nil }
func (*mockConn) LocalAddr() net.Addr { return utils.LocalAddr() }
func (*mockConn) RemoteAddr() net.Addr { return utils.LocalAddr() }
-func TestNewCapsGOBCodec(t *testing.T) {
- conn := new(mockConn)
- cr := engine.NewCaps(0, utils.MetaBusy)
- anz := &analyzers.AnalyzerService{}
- exp := newGobServerCodec(conn)
- if r := newCapsGOBCodec(conn, cr, nil); !reflect.DeepEqual(r, exp) {
- t.Errorf("Expected: %v ,received:%v", exp, r)
- }
- exp = analyzers.NewAnalyzerServerCodec(newGobServerCodec(conn), anz, utils.MetaGOB, utils.Local, utils.Local)
- if r := newCapsGOBCodec(conn, cr, anz); !reflect.DeepEqual(r, exp) {
- t.Errorf("Expected: %v ,received:%v", exp, r)
- }
-}
-
func TestNewCapsJSONCodec(t *testing.T) {
conn := new(mockConn)
cr := engine.NewCaps(0, utils.MetaBusy)
@@ -142,16 +124,16 @@ func TestNewCapsJSONCodec(t *testing.T) {
type mockBiRPCCodec struct{}
-func (mockBiRPCCodec) ReadHeader(r *rpc2.Request, _ *rpc2.Response) error {
+func (mockBiRPCCodec) ReadHeader(r *birpc.Request, _ *birpc.Response) error {
r.Seq = 0
- r.Method = utils.CoreSv1Ping
+ r.ServiceMethod = utils.CoreSv1Ping
return nil
}
-func (mockBiRPCCodec) ReadRequestBody(any) error { return utils.ErrNotImplemented }
-func (mockBiRPCCodec) ReadResponseBody(any) error { return nil }
-func (mockBiRPCCodec) WriteRequest(*rpc2.Request, any) error { return nil }
-func (mockBiRPCCodec) WriteResponse(*rpc2.Response, any) error { return nil }
-func (mockBiRPCCodec) Close() error { return nil }
+func (mockBiRPCCodec) ReadRequestBody(any) error { return utils.ErrNotImplemented }
+func (mockBiRPCCodec) ReadResponseBody(any) error { return nil }
+func (mockBiRPCCodec) WriteRequest(*birpc.Request, any) error { return nil }
+func (mockBiRPCCodec) WriteResponse(*birpc.Response, any) error { return nil }
+func (mockBiRPCCodec) Close() error { return nil }
func TestNewCapsBiRPCCodec(t *testing.T) {
mk := new(mockBiRPCCodec)
@@ -169,10 +151,10 @@ func TestNewCapsBiRPCCodec(t *testing.T) {
t.Errorf("Expected: %v ,received:%v", exp, codec)
}
var err error
- r := new(rpc2.Request)
- expR := &rpc2.Request{
- Seq: 0,
- Method: utils.CoreSv1Ping,
+ r := new(birpc.Request)
+ expR := &birpc.Request{
+ Seq: 0,
+ ServiceMethod: utils.CoreSv1Ping,
}
if err = codec.ReadHeader(r, nil); err != nil {
t.Fatal(err)
@@ -180,7 +162,7 @@ func TestNewCapsBiRPCCodec(t *testing.T) {
t.Errorf("Expected: %v ,received:%v", expR, r)
}
- expR.Method = utils.SessionSv1CapsError
+ expR.ServiceMethod = utils.SessionSv1CapsError
if err = codec.ReadHeader(r, nil); err != nil {
t.Fatal(err)
@@ -192,7 +174,7 @@ func TestNewCapsBiRPCCodec(t *testing.T) {
t.Fatal(err)
}
- if err = codec.WriteResponse(&rpc2.Response{
+ if err = codec.WriteResponse(&birpc.Response{
Error: "error",
Seq: 0,
}, "reply"); err != nil {
@@ -203,14 +185,14 @@ func TestNewCapsBiRPCCodec(t *testing.T) {
t.Fatal(err)
}
- if err = codec.WriteRequest(&rpc2.Request{
- Seq: 0,
- Method: utils.CoreSv1Ping,
+ if err = codec.WriteRequest(&birpc.Request{
+ Seq: 0,
+ ServiceMethod: utils.CoreSv1Ping,
}, "reply"); err != nil {
t.Fatal(err)
}
- if err = codec.WriteResponse(&rpc2.Response{
+ if err = codec.WriteResponse(&birpc.Response{
Error: utils.ErrMaxConcurrentRPCExceededNoCaps.Error(),
Seq: 0,
}, "reply"); err != nil {
@@ -225,11 +207,11 @@ func TestNewCapsGOBBiRPCCodec(t *testing.T) {
conn := new(mockConn)
cr := engine.NewCaps(0, utils.MetaBusy)
anz := &analyzers.AnalyzerService{}
- exp := rpc2.NewGobCodec(conn)
+ exp := birpc.NewGobBirpcCodec(conn)
if r := newCapsBiRPCGOBCodec(conn, cr, nil); !reflect.DeepEqual(r, exp) {
t.Errorf("Expected: %v ,received:%v", exp, r)
}
- exp = analyzers.NewAnalyzerBiRPCCodec(rpc2.NewGobCodec(conn), anz, rpcclient.BiRPCGOB, utils.Local, utils.Local)
+ exp = analyzers.NewAnalyzerBiRPCCodec(birpc.NewGobBirpcCodec(conn), anz, rpcclient.BiRPCGOB, utils.Local, utils.Local)
if r := newCapsBiRPCGOBCodec(conn, cr, anz); !reflect.DeepEqual(r, exp) {
t.Errorf("Expected: %v ,received:%v", exp, r)
}
@@ -239,11 +221,11 @@ func TestNewCapsJSONBiRPCCodec(t *testing.T) {
conn := new(mockConn)
cr := engine.NewCaps(0, utils.MetaBusy)
anz := &analyzers.AnalyzerService{}
- exp := jsonrpc2.NewJSONCodec(conn)
+ exp := jsonrpc.NewJSONBirpcCodec(conn)
if r := newCapsBiRPCJSONCodec(conn, cr, nil); !reflect.DeepEqual(r, exp) {
t.Errorf("Expected: %v ,received:%v", exp, r)
}
- exp = analyzers.NewAnalyzerBiRPCCodec(jsonrpc2.NewJSONCodec(conn), anz, rpcclient.BiRPCJSON, utils.Local, utils.Local)
+ exp = analyzers.NewAnalyzerBiRPCCodec(jsonrpc.NewJSONBirpcCodec(conn), anz, rpcclient.BiRPCJSON, utils.Local, utils.Local)
if r := newCapsBiRPCJSONCodec(conn, cr, anz); !reflect.DeepEqual(r, exp) {
t.Errorf("Expected: %v ,received:%v", exp, r)
}
diff --git a/cores/core.go b/cores/core.go
index f6f73270d..6913fda3d 100644
--- a/cores/core.go
+++ b/cores/core.go
@@ -29,6 +29,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -127,8 +128,8 @@ func MemProfiling(memProfDir string, interval time.Duration, nrFiles int, shdWg
}
}
-// Status returns the status of the engine
-func (cS *CoreService) Status(arg *utils.TenantWithAPIOpts, reply *map[string]any) (err error) {
+// V1Status returns the status of the engine
+func (cS *CoreService) V1Status(_ *context.Context, _ *utils.TenantWithAPIOpts, reply *map[string]any) (err error) {
memstats := new(runtime.MemStats)
runtime.ReadMemStats(memstats)
response := make(map[string]any)
@@ -203,7 +204,52 @@ func (cS *CoreService) StopMemoryProfiling() (err error) {
return
}
-// Panic is used print the Message sent as a panic
-func (cS *CoreService) Panic(args *utils.PanicMessageArgs, _ *string) error {
+// Sleep is used to test the concurrent requests mechanism
+func (cS *CoreService) V1Sleep(_ *context.Context, arg *utils.DurationArgs, reply *string) error {
+ time.Sleep(arg.Duration)
+ *reply = utils.OK
+ return nil
+}
+
+// StartCPUProfiling is used to start CPUProfiling in the given path
+func (cS *CoreService) V1StartCPUProfiling(_ *context.Context, args *utils.DirectoryArgs, reply *string) error {
+ if err := cS.StartCPUProfiling(path.Join(args.DirPath, utils.CpuPathCgr)); err != nil {
+ return err
+ }
+ *reply = utils.OK
+ return nil
+}
+
+// StopCPUProfiling is used to stop CPUProfiling. The file should be written on the path
+// where the CPUProfiling already started
+func (cS *CoreService) V1StopCPUProfiling(_ *context.Context, _ *utils.TenantWithAPIOpts, reply *string) error {
+ if err := cS.StopCPUProfiling(); err != nil {
+ return err
+ }
+ *reply = utils.OK
+ return nil
+}
+
+// StartMemoryProfiling is used to start MemoryProfiling in the given path
+func (cS *CoreService) V1StartMemoryProfiling(_ *context.Context, args *utils.MemoryPrf, reply *string) error {
+ if err := cS.StartMemoryProfiling(args); err != nil {
+ return err
+ }
+ *reply = utils.OK
+ return nil
+}
+
+// V1StopMemoryProfiling is used to stop MemoryProfiling. The file should be written on the path
+// where the MemoryProfiling already started
+func (cS *CoreService) V1StopMemoryProfiling(_ *context.Context, _ *utils.TenantWithAPIOpts, reply *string) error {
+ if err := cS.StopMemoryProfiling(); err != nil {
+ return err
+ }
+ *reply = utils.OK
+ return nil
+}
+
+// V1Panic is used print the Message sent as a panic
+func (cS *CoreService) V1Panic(_ *context.Context, args *utils.PanicMessageArgs, _ *string) error {
panic(args.Message)
}
diff --git a/cores/core_test.go b/cores/core_test.go
index 06f85a072..99bcbbb4b 100644
--- a/cores/core_test.go
+++ b/cores/core_test.go
@@ -25,6 +25,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -83,7 +84,7 @@ func TestCoreServiceStatus(t *testing.T) {
utils.MemoryUsage: "CHANGED_MEMORY_USAGE",
utils.NodeID: cfgDflt.GeneralCfg().NodeID,
}
- if err := cores.Status(args, &reply); err != nil {
+ if err := cores.V1Status(context.Background(), args, &reply); err != nil {
t.Error(err)
} else {
reply[utils.RunningSince] = "TIME_CHANGED"
@@ -106,7 +107,7 @@ func TestCoreServiceStatus(t *testing.T) {
}
utils.GitLastLog = `Date: wrong format
`
- if err := cores.Status(args, &reply); err != nil {
+ if err := cores.V1Status(context.Background(), args, &reply); err != nil {
t.Error(err)
}
diff --git a/cores/gob_codec.go b/cores/gob_codec.go
deleted file mode 100644
index 2a2e32b26..000000000
--- a/cores/gob_codec.go
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
-Copyright (C) ITsysCOM GmbH
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see
-*/
-
-package cores
-
-import (
- "bufio"
- "encoding/gob"
- "io"
- "log"
- "net/rpc"
-)
-
-// All of the logic follows standard library implementation in this file
-// Only here to use as object
-
-func newGobServerCodec(conn io.ReadWriteCloser) rpc.ServerCodec {
- buf := bufio.NewWriter(conn)
- return &gobServerCodec{
- rwc: conn,
- dec: gob.NewDecoder(conn),
- enc: gob.NewEncoder(buf),
- encBuf: buf,
- }
-}
-
-type gobServerCodec struct {
- rwc io.ReadWriteCloser
- dec *gob.Decoder
- enc *gob.Encoder
- encBuf *bufio.Writer
- closed bool
-}
-
-func (c *gobServerCodec) ReadRequestHeader(r *rpc.Request) error {
- return c.dec.Decode(r)
-}
-
-func (c *gobServerCodec) ReadRequestBody(body any) error {
- return c.dec.Decode(body)
-}
-
-func (c *gobServerCodec) WriteResponse(r *rpc.Response, body any) (err error) {
- if err = c.enc.Encode(r); err != nil {
- if c.encBuf.Flush() == nil {
- // Gob couldn't encode the header. Should not happen, so if it does,
- // shut down the connection to signal that the connection is broken.
- log.Println("rpc: gob error encoding response:", err)
- c.Close()
- }
- return
- }
- if err = c.enc.Encode(body); err != nil {
- if c.encBuf.Flush() == nil {
- // Was a gob problem encoding the body but the header has been written.
- // Shut down the connection to signal that the connection is broken.
- log.Println("rpc: gob error encoding body:", err)
- c.Close()
- }
- return
- }
- return c.encBuf.Flush()
-}
-
-func (c *gobServerCodec) Close() error {
- if c.closed {
- // Only call c.rwc.Close once; otherwise the semantics are undefined.
- return nil
- }
- c.closed = true
- return c.rwc.Close()
-}
diff --git a/cores/gob_codec_test.go b/cores/gob_codec_test.go
deleted file mode 100644
index 7c2458344..000000000
--- a/cores/gob_codec_test.go
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
-Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
-Copyright (C) ITsysCOM GmbH
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see
-*/
-
-package cores
-
-import (
- "bufio"
- "encoding/gob"
- "io"
- "log"
- "net/rpc"
- "testing"
-
- "github.com/cgrates/cgrates/utils"
-)
-
-type mockRWC struct{}
-
-func (*mockRWC) Read(p []byte) (n int, err error) {
- return 0, nil
-}
-
-func (mk *mockRWC) Write(p []byte) (n int, err error) {
- return 0, nil
-}
-
-func (mk *mockRWC) Close() error {
- return nil
-}
-
-// Mocking For getting a nil error when the interface argument is nil in encoding
-type mockReadWriteCloserErrorNilInterface struct {
- mockRWC
-}
-
-func (mk *mockReadWriteCloserErrorNilInterface) Write(p []byte) (n int, err error) {
- return len(p), nil
-}
-
-func TestWriteResponseInterface(t *testing.T) {
- log.SetOutput(io.Discard)
- resp := &rpc.Response{
- ServiceMethod: utils.APIerSv1Ping,
- Seq: 123,
- }
- conn := new(mockReadWriteCloserErrorNilInterface)
- exp := newGobServerCodec(conn)
- expected := "gob: cannot encode nil value"
- if err := exp.WriteResponse(resp, nil); err == nil || err.Error() != expected {
- t.Errorf("Expected %+v, received %+v", expected, err)
- }
-}
-
-type mockReadWriteCloserErrorNilResponse struct {
- mockRWC
-}
-
-func (mk *mockReadWriteCloserErrorNilResponse) Write(p []byte) (n int, err error) {
- return 4, utils.ErrNotImplemented
-}
-
-func TestWriteResponseResponse(t *testing.T) {
- log.SetOutput(io.Discard)
- resp := &rpc.Response{
- ServiceMethod: utils.APIerSv1Ping,
- Seq: 123,
- Error: "err",
- }
- conn := new(mockReadWriteCloserErrorNilResponse)
- buf := bufio.NewWriter(conn)
- gsrv := gobServerCodec{
- enc: gob.NewEncoder(buf),
- encBuf: buf,
- rwc: conn,
- dec: gob.NewDecoder(conn),
- }
- if err := gsrv.WriteResponse(resp, "string"); err == nil || err != utils.ErrNotImplemented {
- t.Errorf("Expected %+v, received %+v", utils.ErrNotImplemented, err)
- }
-
- buf = bufio.NewWriter(conn)
- gsrv.encBuf = buf
-
- if err := gsrv.WriteResponse(resp, "string"); err == nil || err != utils.ErrNotImplemented {
- t.Errorf("Expected %+v, received %+v", utils.ErrNotImplemented, err)
- }
-}
-
-func TestReadRequestHeader(t *testing.T) {
- conn := new(mockReadWriteCloserErrorNilResponse)
- buf := bufio.NewWriter(conn)
- gsrv := gobServerCodec{
- enc: gob.NewEncoder(buf),
- encBuf: buf,
- rwc: conn,
- dec: gob.NewDecoder(conn),
- }
- expected := "gob: DecodeValue of unassignable value"
- if err := gsrv.ReadRequestHeader(nil); err == nil || err.Error() != expected {
- t.Errorf("Expected %+v, received %+v", expected, err)
- }
-}
-
-func TestReadRequestBody(t *testing.T) {
- conn := new(mockReadWriteCloserErrorNilResponse)
- buf := bufio.NewWriter(conn)
- gsrv := gobServerCodec{
- enc: gob.NewEncoder(buf),
- encBuf: buf,
- rwc: conn,
- dec: gob.NewDecoder(conn),
- }
- expected := "gob: attempt to decode into a non-pointer"
- if err := gsrv.ReadRequestBody(2); err == nil || err.Error() != expected {
- t.Errorf("Expected %+v, received %+v", expected, err)
- }
-}
-
-func TestClose(t *testing.T) {
- conn := new(mockRWC)
- exp := newGobServerCodec(conn)
- //now after calling, it will be closed
- if err := exp.Close(); err != nil {
- t.Error(err)
- }
-
- //calling again the function won t close
- if err := exp.Close(); err != nil {
- t.Error(err)
- }
-}
diff --git a/cores/server.go b/cores/server.go
index 0a98a683e..e4154a9fa 100644
--- a/cores/server.go
+++ b/cores/server.go
@@ -29,13 +29,12 @@ import (
"net"
"net/http"
"net/http/pprof"
- "net/rpc"
"os"
"strings"
"sync"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/analyzers"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -46,8 +45,10 @@ func NewServer(caps *engine.Caps) (s *Server) {
return &Server{
httpMux: http.NewServeMux(),
httpsMux: http.NewServeMux(),
- stopbiRPCServer: make(chan struct{}, 1),
+ stopBiRPCServer: make(chan struct{}, 1),
caps: caps,
+ rpcSrv: birpc.NewServer(),
+ birpcSrv: birpc.NewBirpcServer(),
}
}
@@ -55,8 +56,9 @@ type Server struct {
sync.RWMutex
rpcEnabled bool
httpEnabled bool
- birpcSrv *rpc2.Server
- stopbiRPCServer chan struct{} // used in order to fully stop the biRPC
+ rpcSrv *birpc.Server
+ birpcSrv *birpc.BirpcServer
+ stopBiRPCServer chan struct{} // used in order to fully stop the biRPC
httpsMux *http.ServeMux
httpMux *http.ServeMux
caps *engine.Caps
@@ -69,7 +71,7 @@ func (s *Server) SetAnalyzer(anz *analyzers.AnalyzerService) {
func (s *Server) RpcRegister(rcvr any) {
utils.RegisterRpcParams(utils.EmptyString, rcvr)
- rpc.Register(rcvr)
+ s.rpcSrv.Register(rcvr)
s.Lock()
s.rpcEnabled = true
s.Unlock()
@@ -77,12 +79,16 @@ func (s *Server) RpcRegister(rcvr any) {
func (s *Server) RpcRegisterName(name string, rcvr any) {
utils.RegisterRpcParams(name, rcvr)
- rpc.RegisterName(name, rcvr)
+ s.rpcSrv.RegisterName(name, rcvr)
s.Lock()
s.rpcEnabled = true
s.Unlock()
}
+func (s *Server) RpcUnregisterName(name string) {
+ s.rpcSrv.UnregisterName(name)
+}
+
func (s *Server) RegisterHttpFunc(pattern string, handler func(http.ResponseWriter, *http.Request)) {
if s.httpMux != nil {
s.httpMux.HandleFunc(pattern, handler)
@@ -108,19 +114,15 @@ func (s *Server) RegisterHttpHandler(pattern string, handler http.Handler) {
}
// Registers a new BiJsonRpc name
-func (s *Server) BiRPCRegisterName(method string, handlerFunc any) {
- s.RLock()
- isNil := s.birpcSrv == nil
- s.RUnlock()
- if isNil {
- s.Lock()
- s.birpcSrv = rpc2.NewServer()
- s.Unlock()
- }
- s.birpcSrv.Handle(method, handlerFunc)
+func (s *Server) BiRPCRegisterName(name string, rcvr any) {
+ s.birpcSrv.RegisterName(name, rcvr)
}
-func (s *Server) serveCodec(addr, codecName string, newCodec func(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) rpc.ServerCodec,
+func (s *Server) BiRPCUnregisterName(name string) {
+ s.birpcSrv.UnregisterName(name)
+}
+
+func (s *Server) serveCodec(addr, codecName string, newCodec func(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) birpc.ServerCodec,
shdChan *utils.SyncedChan) {
s.RLock()
enabled := s.rpcEnabled
@@ -139,9 +141,9 @@ func (s *Server) serveCodec(addr, codecName string, newCodec func(conn conn, cap
s.accept(l, codecName, newCodec, shdChan)
}
-func (s *Server) accept(l net.Listener, codecName string, newCodec func(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) rpc.ServerCodec,
+func (s *Server) accept(l net.Listener, codecName string, newCodec func(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) birpc.ServerCodec,
shdChan *utils.SyncedChan) {
- errCnt := 0
+ var errCnt int
var lastErrorTime time.Time
for {
conn, err := l.Accept()
@@ -159,7 +161,7 @@ func (s *Server) accept(l net.Listener, codecName string, newCodec func(conn con
}
continue
}
- go rpc.ServeCodec(newCodec(conn, s.caps, s.anz))
+ go s.rpcSrv.ServeCodec(newCodec(conn, s.caps, s.anz))
}
}
@@ -176,7 +178,7 @@ func (s *Server) handleRequest(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
rmtIP, _ := utils.GetRemoteIP(r)
rmtAddr, _ := net.ResolveIPAddr(utils.EmptyString, rmtIP)
- res := newRPCRequest(r.Body, rmtAddr, s.caps, s.anz).Call()
+ res := newRPCRequest(s.rpcSrv, r.Body, rmtAddr, s.caps, s.anz).Call()
io.Copy(w, res)
}
@@ -248,62 +250,59 @@ func (s *Server) ServeHTTP(addr string, jsonRPCURL string, wsRPCURL string,
}
// ServeBiRPC create a goroutine to listen and serve as BiRPC server
-func (s *Server) ServeBiRPC(addrJSON, addrGOB string, onConn func(*rpc2.Client), onDis func(*rpc2.Client)) (err error) {
- s.RLock()
- isNil := s.birpcSrv == nil
- s.RUnlock()
- if isNil {
- return fmt.Errorf("BiRPCServer should not be nil")
- }
-
+func (s *Server) ServeBiRPC(addrJSON, addrGOB string, onConn, onDis func(birpc.ClientConnector)) (err error) {
s.birpcSrv.OnConnect(onConn)
s.birpcSrv.OnDisconnect(onDis)
if addrJSON != utils.EmptyString {
var ljson net.Listener
- if ljson, err = s.listenBiRPC(s.birpcSrv, addrJSON, utils.JSONCaps, newCapsBiRPCJSONCodec); err != nil {
+ if ljson, err = listenBiRPC(s.birpcSrv, addrJSON, utils.JSONCaps, func(conn conn) birpc.BirpcCodec {
+ return newCapsBiRPCJSONCodec(conn, s.caps, s.anz)
+ }, s.stopBiRPCServer); err != nil {
return
}
defer ljson.Close()
}
if addrGOB != utils.EmptyString {
var lgob net.Listener
- if lgob, err = s.listenBiRPC(s.birpcSrv, addrGOB, utils.GOBCaps, newCapsBiRPCGOBCodec); err != nil {
+ if lgob, err = listenBiRPC(s.birpcSrv, addrGOB, utils.GOBCaps, func(conn conn) birpc.BirpcCodec {
+ return newCapsBiRPCGOBCodec(conn, s.caps, s.anz)
+ }, s.stopBiRPCServer); err != nil {
return
}
defer lgob.Close()
}
- <-s.stopbiRPCServer // wait until server is stopped to close the listener
+ <-s.stopBiRPCServer // wait until server is stopped to close the listener
return
}
-func (s *Server) listenBiRPC(srv *rpc2.Server, addr, codecName string, newCodec func(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) rpc2.Codec) (lBiRPC net.Listener, err error) {
+func listenBiRPC(srv *birpc.BirpcServer, addr, codecName string, newCodec func(conn conn) birpc.BirpcCodec, stopBiRPCServer chan struct{}) (lBiRPC net.Listener, err error) {
if lBiRPC, err = net.Listen(utils.TCP, addr); err != nil {
log.Printf("ServeBi%s listen error: %s \n", codecName, err)
return
}
utils.Logger.Info(fmt.Sprintf("Starting CGRateS Bi%s server at <%s>", codecName, addr))
- go s.acceptBiRPC(srv, lBiRPC, codecName, newCodec)
+ go acceptBiRPC(srv, lBiRPC, codecName, newCodec, stopBiRPCServer)
return
}
-func (s *Server) acceptBiRPC(srv *rpc2.Server, l net.Listener, codecName string, newCodec func(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) rpc2.Codec) {
+func acceptBiRPC(srv *birpc.BirpcServer, l net.Listener, codecName string, newCodec func(conn conn) birpc.BirpcCodec, stopBiRPCServer chan struct{}) {
for {
conn, err := l.Accept()
if err != nil {
if strings.Contains(err.Error(), "use of closed network connection") { // if closed by us do not log
return
}
- s.stopbiRPCServer <- struct{}{}
+ stopBiRPCServer <- struct{}{}
utils.Logger.Crit(fmt.Sprintf("Stopped Bi%s server beacause %s", codecName, err))
return // stop if we get Accept error
}
- go srv.ServeCodec(newCodec(conn, s.caps, s.anz))
+ go srv.ServeCodec(newCodec(conn))
}
}
// StopBiRPC stops the go routine create with ServeBiJSON
func (s *Server) StopBiRPC() {
- s.stopbiRPCServer <- struct{}{}
+ s.stopBiRPCServer <- struct{}{}
s.Lock()
s.birpcSrv = nil
s.Unlock()
@@ -317,16 +316,18 @@ type rpcRequest struct {
remoteAddr net.Addr
caps *engine.Caps
anzWarpper *analyzers.AnalyzerService
+ srv *birpc.Server
}
// newRPCRequest returns a new rpcRequest.
-func newRPCRequest(r io.ReadCloser, remoteAddr net.Addr, caps *engine.Caps, anz *analyzers.AnalyzerService) *rpcRequest {
+func newRPCRequest(srv *birpc.Server, r io.ReadCloser, remoteAddr net.Addr, caps *engine.Caps, anz *analyzers.AnalyzerService) *rpcRequest {
return &rpcRequest{
r: r,
rw: new(bytes.Buffer),
remoteAddr: remoteAddr,
caps: caps,
anzWarpper: anz,
+ srv: srv,
}
}
@@ -351,7 +352,7 @@ func (r *rpcRequest) Close() error {
// Call invokes the RPC request, waits for it to complete, and returns the results.
func (r *rpcRequest) Call() io.Reader {
- rpc.ServeCodec(newCapsJSONCodec(r, r.caps, r.anzWarpper))
+ r.srv.ServeCodec(newCapsJSONCodec(r, r.caps, r.anzWarpper))
return r.rw
}
@@ -395,7 +396,7 @@ func loadTLSConfig(serverCrt, serverKey, caCert string, serverPolicy int,
}
func (s *Server) serveCodecTLS(addr, codecName, serverCrt, serverKey, caCert string,
- serverPolicy int, serverName string, newCodec func(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) rpc.ServerCodec,
+ serverPolicy int, serverName string, newCodec func(conn conn, caps *engine.Caps, anz *analyzers.AnalyzerService) birpc.ServerCodec,
shdChan *utils.SyncedChan) {
s.RLock()
enabled := s.rpcEnabled
@@ -429,7 +430,7 @@ func (s *Server) ServeJSONTLS(addr, serverCrt, serverKey, caCert string,
}
func (s *Server) handleWebSocket(ws *websocket.Conn) {
- rpc.ServeCodec(newCapsJSONCodec(ws, s.caps, s.anz))
+ s.rpcSrv.ServeCodec(newCapsJSONCodec(ws, s.caps, s.anz))
}
func (s *Server) ServeHTTPTLS(addr, serverCrt, serverKey, caCert string, serverPolicy int,
diff --git a/cores/server_it_test.go b/cores/server_it_test.go
index 63c92c650..14ed45c2f 100644
--- a/cores/server_it_test.go
+++ b/cores/server_it_test.go
@@ -30,7 +30,6 @@ import (
"net"
"net/http"
"net/http/httptest"
- "net/rpc/jsonrpc"
"os"
"path"
"reflect"
@@ -39,7 +38,9 @@ import (
"testing"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -65,7 +66,6 @@ var (
testServeBiJSONEmptyBiRPCServer,
testServeBiJSONInvalidPort,
testServeBiGoB,
- testServeBiGoBEmptyBiRPCServer,
testServeBiGoBInvalidPort,
testServeGOBTLS,
testServeJSONTls,
@@ -76,7 +76,6 @@ var (
testServeHTTPTLSError,
testServeHTTPTLSHttpNotEnabled,
testHandleRequest,
- testBiRPCRegisterName,
testAcceptBiRPC,
testAcceptBiRPCError,
testRpcRegisterActions,
@@ -94,11 +93,7 @@ func TestServerIT(t *testing.T) {
type mockRegister string
-func (x *mockRegister) ForTest(method *rpc2.Client, args *any, reply *any) error {
- return nil
-}
-
-func (robj *mockRegister) Ping(in string, out *string) error {
+func (robj *mockRegister) Ping(ctx *context.Context, in string, out *string) error {
*out = utils.Pong
return nil
}
@@ -324,7 +319,7 @@ func testServeBiJSON(t *testing.T) {
caps := engine.NewCaps(100, utils.MetaBusy)
server = NewServer(caps)
server.RpcRegister(new(mockRegister))
- server.birpcSrv = rpc2.NewServer()
+ server.birpcSrv = birpc.NewBirpcServer()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
@@ -365,7 +360,7 @@ func testServeBiJSONInvalidPort(t *testing.T) {
caps := engine.NewCaps(100, utils.MetaBusy)
server = NewServer(caps)
server.RpcRegister(new(mockRegister))
- server.birpcSrv = rpc2.NewServer()
+ server.birpcSrv = birpc.NewBirpcServer()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
@@ -386,7 +381,7 @@ func testServeBiGoB(t *testing.T) {
caps := engine.NewCaps(100, utils.MetaBusy)
server = NewServer(caps)
server.RpcRegister(new(mockRegister))
- server.birpcSrv = rpc2.NewServer()
+ server.birpcSrv = birpc.NewBirpcServer()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
@@ -401,33 +396,12 @@ func testServeBiGoB(t *testing.T) {
runtime.Gosched()
}
-func testServeBiGoBEmptyBiRPCServer(t *testing.T) {
- cfg := config.NewDefaultCGRConfig()
- caps := engine.NewCaps(100, utils.MetaBusy)
- server = NewServer(caps)
- server.RpcRegister(new(mockRegister))
-
- data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
-
- ss := sessions.NewSessionS(cfg, dm, nil)
-
- expectedErr := "BiRPCServer should not be nil"
- go func() {
- if err := server.ServeBiRPC("", ":93430", ss.OnBiJSONConnect, ss.OnBiJSONDisconnect); err == nil || err.Error() != "BiRPCServer should not be nil" {
- t.Errorf("Expected %+v, received %+v", expectedErr, err)
- }
- }()
-
- runtime.Gosched()
-}
-
func testServeBiGoBInvalidPort(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
caps := engine.NewCaps(100, utils.MetaBusy)
server = NewServer(caps)
server.RpcRegister(new(mockRegister))
- server.birpcSrv = rpc2.NewServer()
+ server.birpcSrv = birpc.NewBirpcServer()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
@@ -731,34 +705,23 @@ func testServeHTTPTLSHttpNotEnabled(t *testing.T) {
shdChan.CloseOnce()
}
-func testBiRPCRegisterName(t *testing.T) {
- caps := engine.NewCaps(0, utils.MetaBusy)
- server := NewServer(caps)
-
- handler := func(method *rpc2.Client, args *any, reply *any) error {
- return nil
- }
- go server.BiRPCRegisterName(utils.APIerSv1Ping, handler)
- runtime.Gosched()
-
- server.StopBiRPC()
-}
-
func testAcceptBiRPC(t *testing.T) {
caps := engine.NewCaps(0, utils.MetaBusy)
server := NewServer(caps)
server.RpcRegister(new(mockRegister))
- server.birpcSrv = rpc2.NewServer()
+ server.birpcSrv = birpc.NewBirpcServer()
p1, p2 := net.Pipe()
l := &mockListener{
p1: p1,
}
- go server.acceptBiRPC(server.birpcSrv, l, utils.JSONCaps, newCapsBiRPCJSONCodec)
+ go acceptBiRPC(server.birpcSrv, l, utils.JSONCaps, func(conn conn) birpc.BirpcCodec {
+ return newCapsBiRPCJSONCodec(conn, server.caps, server.anz)
+ }, server.stopBiRPCServer)
rpc := jsonrpc.NewClient(p2)
var reply string
- expected := "rpc2: can't find method AttributeSv1.Ping"
- if err := rpc.Call(utils.AttributeSv1Ping, utils.CGREvent{}, &reply); err == nil || err.Error() != expected {
+ expected := "birpc: can't find method AttributeSv1.Ping"
+ if err := rpc.Call(context.Background(), utils.AttributeSv1Ping, utils.CGREvent{}, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -778,11 +741,13 @@ func testAcceptBiRPCError(t *testing.T) {
caps := engine.NewCaps(10, utils.MetaBusy)
server := NewServer(caps)
server.RpcRegister(new(mockRegister))
- server.birpcSrv = rpc2.NewServer()
+ server.birpcSrv = birpc.NewBirpcServer()
//it will contain "use of closed network connection"
l := new(mockListenError)
- go server.acceptBiRPC(server.birpcSrv, l, utils.JSONCaps, newCapsBiRPCJSONCodec)
+ go acceptBiRPC(server.birpcSrv, l, utils.JSONCaps, func(conn conn) birpc.BirpcCodec {
+ return newCapsBiRPCJSONCodec(conn, server.caps, server.anz)
+ }, server.stopBiRPCServer)
runtime.Gosched()
}
@@ -798,7 +763,7 @@ func testRpcRegisterActions(t *testing.T) {
rmtIP, _ := utils.GetRemoteIP(r)
rmtAddr, _ := net.ResolveIPAddr(utils.EmptyString, rmtIP)
- rpcReq := newRPCRequest(r.Body, rmtAddr, server.caps, nil)
+ rpcReq := newRPCRequest(server.rpcSrv, r.Body, rmtAddr, server.caps, nil)
rpcReq.remoteAddr = utils.NewNetAddr("network", "127.0.0.1:2012")
if n, err := rpcReq.Write([]byte(`TEST`)); err != nil {
@@ -840,7 +805,7 @@ func testWebSocket(t *testing.T) {
rpc := jsonrpc.NewClient(conn1)
var reply string
- err = rpc.Call("mockRegister.Ping", "", &reply)
+ err = rpc.Call(context.Background(), "mockRegister.Ping", "", &reply)
if err != nil {
t.Fatal(err)
}
diff --git a/cores/server_test.go b/cores/server_test.go
index 72afd1539..49be949c7 100644
--- a/cores/server_test.go
+++ b/cores/server_test.go
@@ -44,9 +44,11 @@ func TestNewServer(t *testing.T) {
caps: caps,
}
rcv := NewServer(caps)
- rcv.stopbiRPCServer = nil
+ rcv.stopBiRPCServer = nil
+ rcv.rpcSrv = nil
+ rcv.birpcSrv = nil
if !reflect.DeepEqual(expected, rcv) {
- t.Errorf("Expected %+v, received %+v", expected, rcv)
+ t.Errorf("\nExpected %+v,\nreceived %+v", expected, rcv)
}
cfgDflt.AnalyzerSCfg().DBPath = "/tmp/analyzers"
diff --git a/data/ansible/drone/main.yaml b/data/ansible/drone/main.yaml
index 27988d2e2..f167a6291 100644
--- a/data/ansible/drone/main.yaml
+++ b/data/ansible/drone/main.yaml
@@ -11,7 +11,7 @@
docker_runner_capacity: 20
drone_user_create: cgrates
- drone_user_filter:
+ drone_user_filter:
- cgrates
- danbogos
- TeoV
@@ -26,34 +26,34 @@
- apt-transport-https
- ca-certificates
- openssl
- - gnupg-agent
+ - gnupg-agent
- software-properties-common
- python3
- python3-pip
- virtualenv
- python3-setuptools
- rootUser : root
-
- remote_user: '{{ user }}'
+ rootUser: root
+
+ remote_user: "{{ user }}"
tasks:
-###########################################################################################################################
-###########################################################################################################################
-# install dependencies
+ ###########################################################################################################################
+ ###########################################################################################################################
+ # install dependencies
- name: Install dependencies
become: yes
apt: name={{ dependencies }} state=present
-
- - name: Configure docker
+
+ - name: Configure docker
include: docker.yaml
-###########################################################################################################################
-###########################################################################################################################
-# Install Go
+ ###########################################################################################################################
+ ###########################################################################################################################
+ # Install Go
- name: Install Go
import_role:
name: ../roles/go
-###########################################################################################################################
-###########################################################################################################################
+ ###########################################################################################################################
+ ###########################################################################################################################
- name: clean go cache
become: yes
shell: "go clean --cache"
@@ -70,16 +70,16 @@
become: yes
file:
state: directory
- mode: 'u=rwx,go=rx'
+ mode: "u=rwx,go=rx"
owner: "{{ user }}"
group: "{{ user }}"
- dest: '/home/{{ user }}/go/src/github.com/Trial97/drone-email'
+ dest: "/home/{{ user }}/go/src/github.com/Trial97/drone-email"
become_user: "{{ user }}"
- name: git clone mailer
git:
repo: https://github.com/Trial97/drone-email.git
- dest: '/home/{{ user }}/go/src/github.com/Trial97/drone-email'
+ dest: "/home/{{ user }}/go/src/github.com/Trial97/drone-email"
update: yes
force: yes
version: "master"
@@ -90,23 +90,22 @@
become: yes
shell: docker build -t trial97/drone-email /home/{{ user }}/go/src/github.com/Trial97/drone-email
args:
- chdir: '/home/{{ user }}/go/src/github.com/Trial97/drone-email'
-
+ chdir: "/home/{{ user }}/go/src/github.com/Trial97/drone-email"
- name: create drone-cli directory
become: yes
file:
state: directory
- mode: 'u=rwx,go=rx'
+ mode: "u=rwx,go=rx"
owner: "{{ user }}"
group: "{{ user }}"
- dest: '/home/{{ user }}/go/src/github.com/drone/drone-cli'
+ dest: "/home/{{ user }}/go/src/github.com/drone/drone-cli"
become_user: "{{ user }}"
- name: git clone mailer
git:
repo: https://github.com/drone/drone-cli.git
- dest: '/home/{{ user }}/go/src/github.com/drone/drone-cli'
+ dest: "/home/{{ user }}/go/src/github.com/drone/drone-cli"
update: yes
force: yes
version: "master"
@@ -116,7 +115,7 @@
- name: build drone-cli
shell: go build -o /home/{{ user }}/go/bin/drone-cli ./main.go
args:
- chdir: '/home/{{ user }}/go/src/github.com/drone/drone-cli/drone'
+ chdir: "/home/{{ user }}/go/src/github.com/drone/drone-cli/drone"
environment:
PATH: "{{ lookup('env','PATH') }}:/home/{{ user }}/go/bin:/usr/local/go/bin:{{ ansible_env.PATH }}"
@@ -124,16 +123,16 @@
become: yes
file:
state: directory
- mode: 'u=rwx,go=rx'
+ mode: "u=rwx,go=rx"
owner: "{{ user }}"
group: "{{ user }}"
- dest: '{{ cgrates_dir }}'
+ dest: "{{ cgrates_dir }}"
become_user: "{{ user }}"
- name: git clone cgrates
git:
repo: https://github.com/cgrates/cgrates.git
- dest: '{{ cgrates_dir }}'
+ dest: "{{ cgrates_dir }}"
update: yes
force: yes
version: "master"
@@ -141,8 +140,7 @@
become_user: "{{ user }}"
- name: copy storage scripts
- shell:
- mkdir -p postgres;
+ shell: mkdir -p postgres;
cp {{ cgrates_dir }}/data/storage/postgres/create_cdrs_tables.sql ./postgres/create_cdrs_tables.sql;
cp {{ cgrates_dir }}/data/storage/postgres/create_tariffplan_tables.sql ./postgres/create_tariffplan_tables.sql;
cp {{ cgrates_dir }}/data/storage/mysql/create_cdrs_tables.sql ./mysql/create_cdrs_tables.sql;
@@ -151,28 +149,28 @@
cp {{ cgrates_dir }}/data/storage/mongo/create_user.js ./create_user.js;
args:
warn: false
- chdir: '{{ cgrates_dir }}/data/docker/integration/scripts'
+ chdir: "{{ cgrates_dir }}/data/docker/integration/scripts"
- name: build Docker image for integration
become: yes
shell: docker build -t cgrates-integration {{ cgrates_dir }}/data/docker/integration/
args:
- chdir: '{{ cgrates_dir }}/data/docker/integration'
+ chdir: "{{ cgrates_dir }}/data/docker/integration"
- name: create drone directory
become: yes
file:
state: directory
- mode: 'u=rwx,go=rx'
+ mode: "u=rwx,go=rx"
owner: "{{ user }}"
group: "{{ user }}"
- dest: '{{ drone_dir }}'
+ dest: "{{ drone_dir }}"
become_user: "{{ user }}"
- name: git clone drone
git:
repo: https://github.com/drone/drone.git
- dest: '{{ drone_dir }}'
+ dest: "{{ drone_dir }}"
update: yes
force: yes
become: yes
@@ -183,7 +181,7 @@
environment:
PATH: "{{ lookup('env','PATH') }}:/home/{{ user }}/go/bin:/usr/local/go/bin:{{ ansible_env.PATH }}"
args:
- chdir: '{{ drone_dir }}'
+ chdir: "{{ drone_dir }}"
- name: install validate plugin
shell: "go get github.com/Trial97/droneAuth"
@@ -195,12 +193,11 @@
src: users.json.j2
dest: /home/{{ user }}/users.json
- - name: generate RPCSecret
+ - name: generate RPCSecret
shell: "openssl rand -hex 16"
register: drone_secret
-
- - name: generate token
+ - name: generate token
shell: "openssl rand -hex 16"
register: drone_token
@@ -208,14 +205,14 @@
template:
src: .env.j2
dest: /home/{{ user }}/.env
-
+
- name: start validate plugin
shell: "droneAuth -secret={{ drone_secret.stdout }} -cfg=/home/{{ user }}/users.json -endpoint={{ drone_validate_plugin_endpoint }}>/dev/null 2>&1 &"
async: 10
poll: 0
environment:
PATH: "{{ lookup('env','PATH') }}:/home/{{ user }}/go/bin:/usr/local/go/bin:{{ ansible_env.PATH }}"
-
+
- name: start drone
become: yes
shell: "drone-server --env-file=/home/{{ user }}/.env >/home/{{ user }}/drone.log 2>&1 &"
@@ -223,13 +220,13 @@
poll: 0
environment:
PATH: "{{ lookup('env','PATH') }}:/home/{{ user }}/go/bin:/usr/local/go/bin:{{ ansible_env.PATH }}"
-
+
- name: Check if drone-runner is running
become: yes
shell: docker container ls -q -f="name=drone-runner"
register: continerList2
- - name: Start drone-runner
+ - name: Start drone-runner
become: yes
shell: docker run -d -v /var/run/docker.sock:/var/run/docker.sock -e DRONE_RPC_PROTO="https" -e DRONE_RPC_HOST="{{ drone_server_host }}" -e DRONE_RPC_SECRET="{{ drone_secret.stdout }}" -e DRONE_RUNNER_CAPACITY={{ docker_runner_capacity }} -e DRONE_RUNNER_NAME=cgrates -p 3000:3000 --restart always --name runner drone/drone-runner-docker:1
when: continerList2.stdout_lines|length == 0
@@ -238,13 +235,13 @@
copy:
dest: "/home/{{ user }}/credentials.json"
content: "{{ gapi_credentials }}"
-
- - name: Creating token file
+
+ - name: Creating token file
copy:
dest: "/home/{{ user }}/token.json"
content: "{{ gapi_token }}"
- - name: add secrets
+ - name: add secrets
become: yes
shell: |
drone-cli orgsecret add {{ item }} credentials @/home/{{ user }}/credentials.json --allow-pull-request;
@@ -253,14 +250,14 @@
PATH: "{{ lookup('env','PATH') }}:/home/{{ user }}/go/bin:/usr/local/go/bin:{{ ansible_env.PATH }}"
DRONE_SERVER: "https://{{ drone_server_host }}"
DRONE_TOKEN: "{{ drone_token.stdout }}"
- with_items: '{{ drone_user_filter }}'
+ with_items: "{{ drone_user_filter }}"
- name: Removeing credentials file
file:
path: "/home/{{ user }}/credentials.json"
state: absent
-
- - name: Removeing token file
+
+ - name: Removeing token file
file:
path: "/home/{{ user }}/token.json"
- state: absent
\ No newline at end of file
+ state: absent
diff --git a/dispatchers/attributes.go b/dispatchers/attributes.go
index 0f5c7445b..1fb0b5e38 100644
--- a/dispatchers/attributes.go
+++ b/dispatchers/attributes.go
@@ -19,12 +19,13 @@ along with this program. If not, see
package dispatchers
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// AttributeSv1Ping interrogates AttributeS server responsible to process the event
-func (dS *DispatcherService) AttributeSv1Ping(args *utils.CGREvent,
+func (dS *DispatcherService) AttributeSv1Ping(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
@@ -43,7 +44,7 @@ func (dS *DispatcherService) AttributeSv1Ping(args *utils.CGREvent,
}
// AttributeSv1GetAttributeForEvent is the dispatcher method for AttributeSv1.GetAttributeForEvent
-func (dS *DispatcherService) AttributeSv1GetAttributeForEvent(args *utils.CGREvent,
+func (dS *DispatcherService) AttributeSv1GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.AttributeProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
@@ -59,7 +60,7 @@ func (dS *DispatcherService) AttributeSv1GetAttributeForEvent(args *utils.CGREve
}
// AttributeSv1ProcessEvent .
-func (dS *DispatcherService) AttributeSv1ProcessEvent(args *utils.CGREvent,
+func (dS *DispatcherService) AttributeSv1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.AttrSProcessEventReply) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
diff --git a/dispatchers/attributes_it_test.go b/dispatchers/attributes_it_test.go
index ad0e0dc47..29499d95e 100644
--- a/dispatchers/attributes_it_test.go
+++ b/dispatchers/attributes_it_test.go
@@ -25,6 +25,7 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -88,13 +89,13 @@ func TestDspAttributeSNoConn(t *testing.T) {
func testDspAttrPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
reply = ""
- if err := allEngine2.RPC.Call(utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine2.RPC.Call(context.Background(), utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -106,27 +107,27 @@ func testDspAttrPingFailover(t *testing.T) {
utils.OptsAPIKey: "attr12345",
},
}
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine.stopEngine(t)
reply = ""
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
reply = ""
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
allEngine2.startEngine(t)
reply = ""
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -135,7 +136,7 @@ func testDspAttrPingFailover(t *testing.T) {
func testDspAttrPingFailoverNotFoundHost(t *testing.T) {
var reply string
- if err := allEngine2.RPC.Call(utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine2.RPC.Call(context.Background(), utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -151,18 +152,18 @@ func testDspAttrPingFailoverNotFoundHost(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t) // stop the engine and we expect to get error
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine2.startEngine(t)
reply = ""
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -171,13 +172,13 @@ func testDspAttrPingFailoverNotFoundHost(t *testing.T) {
func testDspAttrPingFailover2(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
reply = ""
- if err := allEngine2.RPC.Call(utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine2.RPC.Call(context.Background(), utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -190,20 +191,20 @@ func testDspAttrPingFailover2(t *testing.T) {
},
}
allEngine.stopEngine(t) // stop the engine and the call should go to the second engine
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
reply = ""
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
allEngine2.startEngine(t)
reply = ""
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -263,12 +264,12 @@ func testDspAttrGetAttrFailover(t *testing.T) {
var attrReply *engine.AttributeProfile
var rplyEv engine.AttrSProcessEventReply
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := dispEngine.RPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
args, &rplyEv); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
} else if reflect.DeepEqual(eRply, &rplyEv) {
@@ -278,7 +279,7 @@ func testDspAttrGetAttrFailover(t *testing.T) {
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err != nil {
t.Error(err)
}
@@ -291,7 +292,7 @@ func testDspAttrGetAttrFailover(t *testing.T) {
eRply.APIOpts[utils.MetaNodeID] = "DispatcherS1"
eRply.APIOpts[utils.MetaSubsys] = "*dispatchers"
- if err := dispEngine.RPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
args, &rplyEv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRply, &rplyEv) {
@@ -304,7 +305,7 @@ func testDspAttrGetAttrFailover(t *testing.T) {
func testDspAttrPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -312,7 +313,7 @@ func testDspAttrPing(t *testing.T) {
if dispEngine.RPC == nil {
t.Fatal(dispEngine.RPC)
}
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "attr12345",
@@ -336,7 +337,7 @@ func testDspAttrTestMissingArgDispatcher(t *testing.T) {
},
}
var attrReply *engine.AttributeProfile
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err == nil || err.Error() != utils.NewErrMandatoryIeMissing(utils.APIKey).Error() {
t.Errorf("Error:%v rply=%s", err, utils.ToJSON(attrReply))
}
@@ -354,7 +355,7 @@ func testDspAttrTestMissingApiKey(t *testing.T) {
},
}
var attrReply *engine.AttributeProfile
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err == nil || err.Error() != utils.NewErrMandatoryIeMissing(utils.APIKey).Error() {
t.Errorf("Error:%v rply=%s", err, utils.ToJSON(attrReply))
}
@@ -372,7 +373,7 @@ func testDspAttrTestUnknownApiKey(t *testing.T) {
},
}
var attrReply *engine.AttributeProfile
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err == nil || err.Error() != utils.ErrUnknownApiKey.Error() {
t.Error(err)
}
@@ -391,7 +392,7 @@ func testDspAttrTestAuthKey(t *testing.T) {
},
}
var attrReply *engine.AttributeProfile
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
@@ -429,7 +430,7 @@ func testDspAttrTestAuthKey2(t *testing.T) {
eAttrPrf.Attributes[0].FilterIDs = nil // empty slice are nil in gob
}
var attrReply *engine.AttributeProfile
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err != nil {
t.Error(err)
}
@@ -461,7 +462,7 @@ func testDspAttrTestAuthKey2(t *testing.T) {
}
var rplyEv engine.AttrSProcessEventReply
- if err := dispEngine.RPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
args, &rplyEv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRply, &rplyEv) {
@@ -484,7 +485,7 @@ func testDspAttrTestAuthKey3(t *testing.T) {
},
}
var attrReply *engine.AttributeProfile
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -542,13 +543,13 @@ func testDspAttrGetAttrRoundRobin(t *testing.T) {
var attrReply *engine.AttributeProfile
var rplyEv engine.AttrSProcessEventReply
// To ALL2
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
// To ALL
- if err := dispEngine.RPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
args, &attrReply); err != nil {
t.Error(err)
}
@@ -560,7 +561,7 @@ func testDspAttrGetAttrRoundRobin(t *testing.T) {
}
// To ALL2
- if err := dispEngine.RPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
args, &rplyEv); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
} else if reflect.DeepEqual(eRply, &rplyEv) {
@@ -572,7 +573,7 @@ func testDspAttrGetAttrRoundRobin(t *testing.T) {
eRply.APIOpts[utils.MetaNodeID] = "DispatcherS1"
eRply.APIOpts[utils.MetaSubsys] = "*dispatchers"
// To ALL
- if err := dispEngine.RPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
args, &rplyEv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRply, &rplyEv) {
@@ -616,7 +617,7 @@ func testDspAttrGetAttrInternal(t *testing.T) {
}
var rplyEv engine.AttrSProcessEventReply
- if err := dispEngine.RPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
args, &rplyEv); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRply, &rplyEv) {
@@ -627,7 +628,7 @@ func testDspAttrGetAttrInternal(t *testing.T) {
func testDspAttrPingNoArgDispatcher(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -635,7 +636,7 @@ func testDspAttrPingNoArgDispatcher(t *testing.T) {
if dispEngine.RPC == nil {
t.Fatal(dispEngine.RPC)
}
- if err := dispEngine.RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{Tenant: "cgrates.org"}, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{Tenant: "cgrates.org"}, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
diff --git a/dispatchers/attributes_test.go b/dispatchers/attributes_test.go
index 149780aa1..fa621b74e 100644
--- a/dispatchers/attributes_test.go
+++ b/dispatchers/attributes_test.go
@@ -22,6 +22,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -32,7 +33,7 @@ func TestDspAttributeSv1PingError(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrEvent := &utils.CGREvent{}
var reply *string
- err := dspSrv.AttributeSv1Ping(cgrEvent, reply)
+ err := dspSrv.AttributeSv1Ping(context.Background(), cgrEvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -50,7 +51,7 @@ func TestDspAttributeSv1PingErrorTenant(t *testing.T) {
APIOpts: nil,
}
var reply *string
- err := dspSrv.AttributeSv1Ping(cgrEvent, reply)
+ err := dspSrv.AttributeSv1Ping(context.Background(), cgrEvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -61,7 +62,7 @@ func TestDspAttributeSv1PingErrorNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- err := dspSrv.AttributeSv1Ping(nil, reply)
+ err := dspSrv.AttributeSv1Ping(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -80,7 +81,7 @@ func TestDspAttributeSv1PingErrorAttributeSConns(t *testing.T) {
APIOpts: nil,
}
var reply *string
- err := dspSrv.AttributeSv1Ping(cgrEvent, reply)
+ err := dspSrv.AttributeSv1Ping(context.Background(), cgrEvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -95,7 +96,7 @@ func TestDspAttributeSv1GetAttributeForEventError(t *testing.T) {
Time: &time.Time{},
}
var reply *engine.AttributeProfile
- err := dspSrv.AttributeSv1GetAttributeForEvent(processEvent, reply)
+ err := dspSrv.AttributeSv1GetAttributeForEvent(context.Background(), processEvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -111,7 +112,7 @@ func TestDspAttributeSv1GetAttributeForEventErrorTenant(t *testing.T) {
Time: &time.Time{},
}
var reply *engine.AttributeProfile
- err := dspSrv.AttributeSv1GetAttributeForEvent(processEvent, reply)
+ err := dspSrv.AttributeSv1GetAttributeForEvent(context.Background(), processEvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -127,7 +128,7 @@ func TestDspAttributeSv1GetAttributeForEventErrorAttributeS(t *testing.T) {
}
var reply *engine.AttributeProfile
- err := dspSrv.AttributeSv1GetAttributeForEvent(processEvent, reply)
+ err := dspSrv.AttributeSv1GetAttributeForEvent(context.Background(), processEvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -143,7 +144,7 @@ func TestDspAttributeSv1ProcessEventError(t *testing.T) {
}
var reply *engine.AttrSProcessEventReply
- err := dspSrv.AttributeSv1ProcessEvent(processEvent, reply)
+ err := dspSrv.AttributeSv1ProcessEvent(context.Background(), processEvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -160,7 +161,7 @@ func TestDspAttributeSv1ProcessEventErrorAttributeSConns(t *testing.T) {
}
var reply *engine.AttrSProcessEventReply
- err := dspSrv.AttributeSv1ProcessEvent(processEvent, reply)
+ err := dspSrv.AttributeSv1ProcessEvent(context.Background(), processEvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
diff --git a/dispatchers/caches.go b/dispatchers/caches.go
index b160d6d5d..5eed6fbad 100644
--- a/dispatchers/caches.go
+++ b/dispatchers/caches.go
@@ -21,12 +21,13 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
)
// CacheSv1Ping interogates CacheSv1 server responsible to process the event
-func (dS *DispatcherService) CacheSv1Ping(args *utils.CGREvent,
+func (dS *DispatcherService) CacheSv1Ping(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
@@ -45,7 +46,7 @@ func (dS *DispatcherService) CacheSv1Ping(args *utils.CGREvent,
}
// CacheSv1GetItemIDs returns the IDs for cacheID with given prefix
-func (dS *DispatcherService) CacheSv1GetItemIDs(args *utils.ArgsGetCacheItemIDsWithAPIOpts,
+func (dS *DispatcherService) CacheSv1GetItemIDs(ctx *context.Context, args *utils.ArgsGetCacheItemIDsWithAPIOpts,
reply *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -64,7 +65,7 @@ func (dS *DispatcherService) CacheSv1GetItemIDs(args *utils.ArgsGetCacheItemIDsW
}
// CacheSv1HasItem verifies the existence of an Item in cache
-func (dS *DispatcherService) CacheSv1HasItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (dS *DispatcherService) CacheSv1HasItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *bool) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -84,7 +85,7 @@ func (dS *DispatcherService) CacheSv1HasItem(args *utils.ArgsGetCacheItemWithAPI
utils.MetaCaches, utils.CacheSv1HasItem, args, reply)
}
-func (dS *DispatcherService) CacheSv1GetItem(args *utils.ArgsGetCacheItemWithAPIOpts, reply *any) (err error) {
+func (dS *DispatcherService) CacheSv1GetItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts, reply *any) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -104,7 +105,7 @@ func (dS *DispatcherService) CacheSv1GetItem(args *utils.ArgsGetCacheItemWithAPI
}
// CacheSv1GetItemExpiryTime returns the expiryTime for an item
-func (dS *DispatcherService) CacheSv1GetItemExpiryTime(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (dS *DispatcherService) CacheSv1GetItemExpiryTime(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *time.Time) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -124,7 +125,7 @@ func (dS *DispatcherService) CacheSv1GetItemExpiryTime(args *utils.ArgsGetCacheI
}
// CacheSv1RemoveItem removes the Item with ID from cache
-func (dS *DispatcherService) CacheSv1RemoveItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (dS *DispatcherService) CacheSv1RemoveItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -143,7 +144,7 @@ func (dS *DispatcherService) CacheSv1RemoveItem(args *utils.ArgsGetCacheItemWith
}
// CacheSv1RemoveItems removes the Item with ID from cache
-func (dS *DispatcherService) CacheSv1RemoveItems(args *utils.AttrReloadCacheWithAPIOpts,
+func (dS *DispatcherService) CacheSv1RemoveItems(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -162,7 +163,7 @@ func (dS *DispatcherService) CacheSv1RemoveItems(args *utils.AttrReloadCacheWith
}
// CacheSv1Clear will clear partitions in the cache (nil fol all, empty slice for none)
-func (dS *DispatcherService) CacheSv1Clear(args *utils.AttrCacheIDsWithAPIOpts,
+func (dS *DispatcherService) CacheSv1Clear(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -181,7 +182,7 @@ func (dS *DispatcherService) CacheSv1Clear(args *utils.AttrCacheIDsWithAPIOpts,
}
// CacheSv1GetCacheStats returns CacheStats filtered by cacheIDs
-func (dS *DispatcherService) CacheSv1GetCacheStats(args *utils.AttrCacheIDsWithAPIOpts,
+func (dS *DispatcherService) CacheSv1GetCacheStats(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts,
reply *map[string]*ltcache.CacheStats) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -200,7 +201,7 @@ func (dS *DispatcherService) CacheSv1GetCacheStats(args *utils.AttrCacheIDsWithA
}
// CacheSv1PrecacheStatus checks status of active precache processes
-func (dS *DispatcherService) CacheSv1PrecacheStatus(args *utils.AttrCacheIDsWithAPIOpts, reply *map[string]string) (err error) {
+func (dS *DispatcherService) CacheSv1PrecacheStatus(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts, reply *map[string]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -217,7 +218,7 @@ func (dS *DispatcherService) CacheSv1PrecacheStatus(args *utils.AttrCacheIDsWith
}, utils.MetaCaches, utils.CacheSv1PrecacheStatus, args, reply)
}
-func (dS *DispatcherService) CacheSv1GetItemWithRemote(args *utils.ArgsGetCacheItemWithAPIOpts, reply *any) (err error) {
+func (dS *DispatcherService) CacheSv1GetItemWithRemote(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts, reply *any) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -237,7 +238,7 @@ func (dS *DispatcherService) CacheSv1GetItemWithRemote(args *utils.ArgsGetCacheI
}
// CacheSv1HasGroup checks existence of a group in cache
-func (dS *DispatcherService) CacheSv1HasGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (dS *DispatcherService) CacheSv1HasGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
reply *bool) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -256,7 +257,7 @@ func (dS *DispatcherService) CacheSv1HasGroup(args *utils.ArgsGetGroupWithAPIOpt
}
// CacheSv1GetGroupItemIDs returns a list of itemIDs in a cache group
-func (dS *DispatcherService) CacheSv1GetGroupItemIDs(args *utils.ArgsGetGroupWithAPIOpts,
+func (dS *DispatcherService) CacheSv1GetGroupItemIDs(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
reply *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -275,7 +276,7 @@ func (dS *DispatcherService) CacheSv1GetGroupItemIDs(args *utils.ArgsGetGroupWit
}
// CacheSv1RemoveGroup will remove a group and all items belonging to it from cache
-func (dS *DispatcherService) CacheSv1RemoveGroup(args *utils.ArgsGetGroupWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1RemoveGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -293,7 +294,7 @@ func (dS *DispatcherService) CacheSv1RemoveGroup(args *utils.ArgsGetGroupWithAPI
}
// CacheSv1ReloadCache reloads cache from DB for a prefix or completely
-func (dS *DispatcherService) CacheSv1ReloadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1ReloadCache(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -311,7 +312,7 @@ func (dS *DispatcherService) CacheSv1ReloadCache(args *utils.AttrReloadCacheWith
}
// CacheSv1LoadCache loads cache from DB for a prefix or completely
-func (dS *DispatcherService) CacheSv1LoadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1LoadCache(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -329,7 +330,7 @@ func (dS *DispatcherService) CacheSv1LoadCache(args *utils.AttrReloadCacheWithAP
}
// CacheSv1ReplicateRemove remove an item
-func (dS *DispatcherService) CacheSv1ReplicateRemove(args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1ReplicateRemove(ctx *context.Context, args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -347,7 +348,7 @@ func (dS *DispatcherService) CacheSv1ReplicateRemove(args *utils.ArgCacheReplica
}
// CacheSv1ReplicateSet replicate an item
-func (dS *DispatcherService) CacheSv1ReplicateSet(args *utils.ArgCacheReplicateSet, reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1ReplicateSet(ctx *context.Context, args *utils.ArgCacheReplicateSet, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
diff --git a/dispatchers/caches_it_test.go b/dispatchers/caches_it_test.go
index 6eaf6047c..576c6d589 100644
--- a/dispatchers/caches_it_test.go
+++ b/dispatchers/caches_it_test.go
@@ -27,6 +27,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -73,7 +74,7 @@ func TestDspCacheSv1(t *testing.T) {
func testDspChcPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.CacheSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.CacheSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -81,7 +82,7 @@ func testDspChcPing(t *testing.T) {
if dispEngine.RPC == nil {
t.Fatal(dispEngine.RPC)
}
- if err := dispEngine.RPC.Call(utils.CacheSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
@@ -108,7 +109,7 @@ func testDspChcLoadAfterFolder(t *testing.T) {
},
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CacheSv1GetCacheStats, args, &rcvStats); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1GetCacheStats, args, &rcvStats); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v, \n received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
@@ -120,7 +121,7 @@ func testDspChcLoadAfterFolder(t *testing.T) {
utils.OptsAPIKey: "chc12345",
}
argsR.Tenant = "cgrates.org"
- if err := dispEngine.RPC.Call(utils.CacheSv1LoadCache, argsR, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1LoadCache, argsR, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -156,7 +157,7 @@ func testDspChcLoadAfterFolder(t *testing.T) {
expStats[utils.CacheAttributeFilterIndexes].Groups = 4
expStats[utils.CacheReverseFilterIndexes].Items = 8
expStats[utils.CacheReverseFilterIndexes].Groups = 6
- if err := dispEngine.RPC.Call(utils.CacheSv1GetCacheStats, &args, &rcvStats); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1GetCacheStats, &args, &rcvStats); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v, \n received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
@@ -217,7 +218,7 @@ func testDspChcPrecacheStatus(t *testing.T) {
utils.CacheReplicationHosts: utils.MetaReady,
}
- if err := dispEngine.RPC.Call(utils.CacheSv1PrecacheStatus, utils.AttrCacheIDsWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1PrecacheStatus, utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.OptsAPIKey: "chc12345",
},
@@ -241,7 +242,7 @@ func testDspChcGetItemIDs(t *testing.T) {
},
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
}
sort.Strings(rcvKeys)
@@ -263,7 +264,7 @@ func testDspChcHasItem(t *testing.T) {
},
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: %v , received:%v", expected, reply)
@@ -283,7 +284,7 @@ func testDspChcGetItemExpiryTime(t *testing.T) {
},
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CacheSv1GetItemExpiryTime, argsAPI, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1GetItemExpiryTime, argsAPI, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, reply) {
t.Errorf("Expected: %v , received:%v", expected, reply)
@@ -292,7 +293,7 @@ func testDspChcGetItemExpiryTime(t *testing.T) {
func testDspChcReloadCache(t *testing.T) {
reply := ""
- if err := dispEngine.RPC.Call(utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
APIOpts: map[string]any{
utils.OptsAPIKey: "chc12345",
},
@@ -316,18 +317,18 @@ func testDspChcRemoveItem(t *testing.T) {
},
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: %v , received:%v", true, reply)
}
var remReply string
- if err := dispEngine.RPC.Call(utils.CacheSv1RemoveItem, argsAPI, &remReply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1RemoveItem, argsAPI, &remReply); err != nil {
t.Error(err)
} else if remReply != utils.OK {
t.Errorf("Expected: %v , received:%v", utils.OK, remReply)
}
- if err := dispEngine.RPC.Call(utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1HasItem, argsAPI, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: %v , received:%v", false, reply)
@@ -336,7 +337,7 @@ func testDspChcRemoveItem(t *testing.T) {
func testDspChcClear(t *testing.T) {
reply := ""
- if err := dispEngine.RPC.Call(utils.CacheSv1Clear, utils.AttrCacheIDsWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1Clear, utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.OptsAPIKey: "chc12345",
},
@@ -348,7 +349,7 @@ func testDspChcClear(t *testing.T) {
}
var rcvStats map[string]*ltcache.CacheStats
expStats := engine.GetDefaultEmptyCacheStats()
- if err := dispEngine.RPC.Call(utils.CacheSv1GetCacheStats, utils.AttrCacheIDsWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.CacheSv1GetCacheStats, utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.OptsAPIKey: "chc12345",
},
diff --git a/dispatchers/caches_test.go b/dispatchers/caches_test.go
index f228bb2bc..a236ebd65 100644
--- a/dispatchers/caches_test.go
+++ b/dispatchers/caches_test.go
@@ -22,6 +22,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -39,7 +40,7 @@ func TestDspCacheSv1PingError(t *testing.T) {
APIOpts: nil,
}
var reply *string
- result := dspSrv.CacheSv1Ping(CGREvent, reply)
+ result := dspSrv.CacheSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -50,7 +51,7 @@ func TestDspCacheSv1PingErrorArgs(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.CacheSv1Ping(nil, reply)
+ result := dspSrv.CacheSv1Ping(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -69,7 +70,7 @@ func TestDspCacheSv1PingErrorAttributeSConns(t *testing.T) {
APIOpts: nil,
}
var reply *string
- result := dspSrv.CacheSv1Ping(CGREvent, reply)
+ result := dspSrv.CacheSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -82,7 +83,7 @@ func TestDspCacheSv1GetItemIDsError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgsGetCacheItemIDsWithAPIOpts{}
var reply *[]string
- result := dspSrv.CacheSv1GetItemIDs(CGREvent, reply)
+ result := dspSrv.CacheSv1GetItemIDs(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -96,7 +97,7 @@ func TestDspCacheSv1GetItemIDsErrorArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.CacheSv1GetItemIDs(CGREvent, reply)
+ result := dspSrv.CacheSv1GetItemIDs(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -109,7 +110,7 @@ func TestDspCacheSv1HasItemError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgsGetCacheItemWithAPIOpts{}
var reply *bool
- result := dspSrv.CacheSv1HasItem(CGREvent, reply)
+ result := dspSrv.CacheSv1HasItem(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -123,7 +124,7 @@ func TestDspCacheSv1HasItemErrorArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *bool
- result := dspSrv.CacheSv1HasItem(CGREvent, reply)
+ result := dspSrv.CacheSv1HasItem(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -136,7 +137,7 @@ func TestDspCacheSv1GetItemExpiryTimeCacheSv1GetItemExpiryTimeError(t *testing.T
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgsGetCacheItemWithAPIOpts{}
var reply *time.Time
- result := dspSrv.CacheSv1GetItemExpiryTime(CGREvent, reply)
+ result := dspSrv.CacheSv1GetItemExpiryTime(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -150,7 +151,7 @@ func TestDspCacheSv1GetItemExpiryTimeCacheSv1GetItemExpiryTimeErrorArgsNil(t *te
Tenant: "tenant",
}
var reply *time.Time
- result := dspSrv.CacheSv1GetItemExpiryTime(CGREvent, reply)
+ result := dspSrv.CacheSv1GetItemExpiryTime(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -163,7 +164,7 @@ func TestDspCacheSv1RemoveItemError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgsGetCacheItemWithAPIOpts{}
var reply *string
- result := dspSrv.CacheSv1RemoveItem(CGREvent, reply)
+ result := dspSrv.CacheSv1RemoveItem(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -177,7 +178,7 @@ func TestDspCacheSv1RemoveItemArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CacheSv1RemoveItem(CGREvent, reply)
+ result := dspSrv.CacheSv1RemoveItem(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -190,7 +191,7 @@ func TestDspCacheSv1RemoveItemsError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.AttrReloadCacheWithAPIOpts{}
var reply *string
- result := dspSrv.CacheSv1RemoveItems(CGREvent, reply)
+ result := dspSrv.CacheSv1RemoveItems(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -204,7 +205,7 @@ func TestDspCacheSv1RemoveItemsArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CacheSv1RemoveItems(CGREvent, reply)
+ result := dspSrv.CacheSv1RemoveItems(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -217,7 +218,7 @@ func TestDspCacheSv1ClearError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.AttrCacheIDsWithAPIOpts{}
var reply *string
- result := dspSrv.CacheSv1Clear(CGREvent, reply)
+ result := dspSrv.CacheSv1Clear(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -231,7 +232,7 @@ func TestDspCacheSv1ClearArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CacheSv1Clear(CGREvent, reply)
+ result := dspSrv.CacheSv1Clear(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -244,7 +245,7 @@ func TestDspCacheSv1GetCacheStatsError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.AttrCacheIDsWithAPIOpts{}
var reply *map[string]*ltcache.CacheStats
- result := dspSrv.CacheSv1GetCacheStats(CGREvent, reply)
+ result := dspSrv.CacheSv1GetCacheStats(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -258,7 +259,7 @@ func TestDspCacheSv1GetCacheStatsArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]*ltcache.CacheStats
- result := dspSrv.CacheSv1GetCacheStats(CGREvent, reply)
+ result := dspSrv.CacheSv1GetCacheStats(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -271,7 +272,7 @@ func TestDspCacheSv1PrecacheStatusError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.AttrCacheIDsWithAPIOpts{}
var reply *map[string]string
- result := dspSrv.CacheSv1PrecacheStatus(CGREvent, reply)
+ result := dspSrv.CacheSv1PrecacheStatus(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -285,7 +286,7 @@ func TestDspCacheSv1PrecacheStatusArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]string
- result := dspSrv.CacheSv1PrecacheStatus(CGREvent, reply)
+ result := dspSrv.CacheSv1PrecacheStatus(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -298,7 +299,7 @@ func TestDspCacheSv1HasGroupError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgsGetGroupWithAPIOpts{}
var reply *bool
- result := dspSrv.CacheSv1HasGroup(CGREvent, reply)
+ result := dspSrv.CacheSv1HasGroup(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -312,7 +313,7 @@ func TestDspCacheSv1HasGroupArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *bool
- result := dspSrv.CacheSv1HasGroup(CGREvent, reply)
+ result := dspSrv.CacheSv1HasGroup(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -325,7 +326,7 @@ func TestDspCacheSv1GetGroupItemIDsError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgsGetGroupWithAPIOpts{}
var reply *[]string
- result := dspSrv.CacheSv1GetGroupItemIDs(CGREvent, reply)
+ result := dspSrv.CacheSv1GetGroupItemIDs(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -339,7 +340,7 @@ func TestDspCacheSv1GetGroupItemIDsArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.CacheSv1GetGroupItemIDs(CGREvent, reply)
+ result := dspSrv.CacheSv1GetGroupItemIDs(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -352,7 +353,7 @@ func TestDspCacheSv1RemoveGroupError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgsGetGroupWithAPIOpts{}
var reply *string
- result := dspSrv.CacheSv1RemoveGroup(CGREvent, reply)
+ result := dspSrv.CacheSv1RemoveGroup(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -366,7 +367,7 @@ func TestDspCacheSv1RemoveGroupArgsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CacheSv1RemoveGroup(CGREvent, reply)
+ result := dspSrv.CacheSv1RemoveGroup(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -379,7 +380,7 @@ func TestDspCacheSv1ReloadCacheError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.AttrReloadCacheWithAPIOpts{}
var reply *string
- result := dspSrv.CacheSv1ReloadCache(CGREvent, reply)
+ result := dspSrv.CacheSv1ReloadCache(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -393,7 +394,7 @@ func TestDspCacheSv1ReloadCacheNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CacheSv1ReloadCache(CGREvent, reply)
+ result := dspSrv.CacheSv1ReloadCache(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -406,7 +407,7 @@ func TestDspCacheSv1LoadCacheError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.AttrReloadCacheWithAPIOpts{}
var reply *string
- result := dspSrv.CacheSv1LoadCache(CGREvent, reply)
+ result := dspSrv.CacheSv1LoadCache(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -420,7 +421,7 @@ func TestDspCacheSv1LoadCacheNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CacheSv1LoadCache(CGREvent, reply)
+ result := dspSrv.CacheSv1LoadCache(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -433,7 +434,7 @@ func TestDspCacheSv1ReplicateRemoveError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgCacheReplicateRemove{}
var reply *string
- result := dspSrv.CacheSv1ReplicateRemove(CGREvent, reply)
+ result := dspSrv.CacheSv1ReplicateRemove(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -447,7 +448,7 @@ func TestDspCacheSv1ReplicateRemoveNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CacheSv1ReplicateRemove(CGREvent, reply)
+ result := dspSrv.CacheSv1ReplicateRemove(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -460,7 +461,7 @@ func TestDspCacheSv1ReplicateSetError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.ArgCacheReplicateSet{}
var reply *string
- result := dspSrv.CacheSv1ReplicateSet(CGREvent, reply)
+ result := dspSrv.CacheSv1ReplicateSet(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -474,7 +475,7 @@ func TestDspCacheSv1ReplicateSetNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CacheSv1ReplicateSet(CGREvent, reply)
+ result := dspSrv.CacheSv1ReplicateSet(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -516,7 +517,7 @@ func TestDspCacheSv1GetItemWithRemote(t *testing.T) {
t.Error(err)
}
var reply any
- if err := dsp.CacheSv1GetItemWithRemote(args, &reply); err == nil {
+ if err := dsp.CacheSv1GetItemWithRemote(context.Background(), args, &reply); err == nil {
t.Error(err)
}
}
@@ -554,7 +555,7 @@ func TestDspCacheSv1GetItem(t *testing.T) {
t.Error(err)
}
var reply any
- if err := dsp.CacheSv1GetItem(args, &reply); err == nil {
+ if err := dsp.CacheSv1GetItem(context.Background(), args, &reply); err == nil {
t.Error(err)
}
diff --git a/dispatchers/cdrs.go b/dispatchers/cdrs.go
index 861986bc9..e3826dfd9 100644
--- a/dispatchers/cdrs.go
+++ b/dispatchers/cdrs.go
@@ -21,12 +21,13 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// CDRsV1Ping interogates CDRsV1 server responsible to process the event
-func (dS *DispatcherService) CDRsV1Ping(args *utils.CGREvent,
+func (dS *DispatcherService) CDRsV1Ping(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
@@ -46,7 +47,7 @@ func (dS *DispatcherService) CDRsV1Ping(args *utils.CGREvent,
}
// CDRsV1GetCDRs returns the CDRs that match the filter
-func (dS *DispatcherService) CDRsV1GetCDRs(args *utils.RPCCDRsFilterWithAPIOpts, reply *[]*engine.CDR) (err error) {
+func (dS *DispatcherService) CDRsV1GetCDRs(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, reply *[]*engine.CDR) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -64,7 +65,7 @@ func (dS *DispatcherService) CDRsV1GetCDRs(args *utils.RPCCDRsFilterWithAPIOpts,
}
// CDRsV1GetCDRsCount counts the cdrs that match the filter
-func (dS *DispatcherService) CDRsV1GetCDRsCount(args *utils.RPCCDRsFilterWithAPIOpts, reply *int64) (err error) {
+func (dS *DispatcherService) CDRsV1GetCDRsCount(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, reply *int64) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -81,7 +82,7 @@ func (dS *DispatcherService) CDRsV1GetCDRsCount(args *utils.RPCCDRsFilterWithAPI
}, utils.MetaCDRs, utils.CDRsV1GetCDRsCount, args, reply)
}
-func (dS *DispatcherService) CDRsV1StoreSessionCost(args *engine.AttrCDRSStoreSMCost, reply *string) (err error) {
+func (dS *DispatcherService) CDRsV1StoreSessionCost(ctx *context.Context, args *engine.AttrCDRSStoreSMCost, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -98,7 +99,7 @@ func (dS *DispatcherService) CDRsV1StoreSessionCost(args *engine.AttrCDRSStoreSM
}, utils.MetaCDRs, utils.CDRsV1StoreSessionCost, args, reply)
}
-func (dS *DispatcherService) CDRsV1RateCDRs(args *engine.ArgRateCDRs, reply *string) (err error) {
+func (dS *DispatcherService) CDRsV1RateCDRs(ctx *context.Context, args *engine.ArgRateCDRs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -115,7 +116,7 @@ func (dS *DispatcherService) CDRsV1RateCDRs(args *engine.ArgRateCDRs, reply *str
}, utils.MetaCDRs, utils.CDRsV1RateCDRs, args, reply)
}
-func (dS *DispatcherService) CDRsV1ProcessExternalCDR(args *engine.ExternalCDRWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) CDRsV1ProcessExternalCDR(ctx *context.Context, args *engine.ExternalCDRWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -132,7 +133,7 @@ func (dS *DispatcherService) CDRsV1ProcessExternalCDR(args *engine.ExternalCDRWi
}, utils.MetaCDRs, utils.CDRsV1ProcessExternalCDR, args, reply)
}
-func (dS *DispatcherService) CDRsV1ProcessEvent(args *engine.ArgV1ProcessEvent, reply *string) (err error) {
+func (dS *DispatcherService) CDRsV1ProcessEvent(ctx *context.Context, args *engine.ArgV1ProcessEvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.CGREvent.Tenant != utils.EmptyString {
tnt = args.CGREvent.Tenant
@@ -147,7 +148,7 @@ func (dS *DispatcherService) CDRsV1ProcessEvent(args *engine.ArgV1ProcessEvent,
utils.CDRsV1ProcessEvent, args, reply)
}
-func (dS *DispatcherService) CDRsV1ProcessCDR(args *engine.CDRWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) CDRsV1ProcessCDR(ctx *context.Context, args *engine.CDRWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -164,7 +165,7 @@ func (dS *DispatcherService) CDRsV1ProcessCDR(args *engine.CDRWithAPIOpts, reply
}, utils.MetaCDRs, utils.CDRsV1ProcessCDR, args, reply)
}
-func (dS *DispatcherService) CDRsV2ProcessEvent(args *engine.ArgV1ProcessEvent, reply *[]*utils.EventWithFlags) (err error) {
+func (dS *DispatcherService) CDRsV2ProcessEvent(ctx *context.Context, args *engine.ArgV1ProcessEvent, reply *[]*utils.EventWithFlags) (err error) {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = dS.cfg.GeneralCfg().DefaultTenant
@@ -179,7 +180,7 @@ func (dS *DispatcherService) CDRsV2ProcessEvent(args *engine.ArgV1ProcessEvent,
utils.CDRsV2ProcessEvent, args, reply)
}
-func (dS *DispatcherService) CDRsV2StoreSessionCost(args *engine.ArgsV2CDRSStoreSMCost, reply *string) (err error) {
+func (dS *DispatcherService) CDRsV2StoreSessionCost(ctx *context.Context, args *engine.ArgsV2CDRSStoreSMCost, reply *string) (err error) {
tnt := args.Tenant
if tnt == utils.EmptyString {
tnt = dS.cfg.GeneralCfg().DefaultTenant
diff --git a/dispatchers/cdrs_it_test.go b/dispatchers/cdrs_it_test.go
index 86902d571..f6ec363b2 100644
--- a/dispatchers/cdrs_it_test.go
+++ b/dispatchers/cdrs_it_test.go
@@ -25,6 +25,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -99,12 +100,12 @@ func TestDspCDRsITMySQLWithoutAuth(t *testing.T) {
func testDspCDRsPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.CDRsV1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.CDRsV1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.CDRsV1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "cdrs12345",
@@ -141,7 +142,7 @@ func testDspCDRsProcessEvent(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -161,7 +162,7 @@ func testDspCDRsCountCDR(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRsCount, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRsCount, args, &reply); err != nil {
t.Error(err)
} else if reply != 1 {
t.Errorf("Received: %+v", reply)
@@ -181,7 +182,7 @@ func testDspCDRsGetCDR(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRs, &args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 1 {
t.Errorf("Received: %+v", reply)
@@ -202,7 +203,7 @@ func testDspCDRsGetCDRWithoutTenant(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRs, &args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 1 {
t.Errorf("Received: %+v", reply)
@@ -230,7 +231,7 @@ func testDspCDRsProcessCDR(t *testing.T) {
utils.OptsAPIKey: "cdrs12345",
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1ProcessCDR, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1ProcessCDR, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -251,7 +252,7 @@ func testDspCDRsGetCDR2(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRs, &args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 1 {
t.Errorf("Received: %+v", reply)
@@ -283,7 +284,7 @@ func testDspCDRsProcessExternalCDR(t *testing.T) {
utils.OptsAPIKey: "cdrs12345",
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1ProcessExternalCDR, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1ProcessExternalCDR, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -304,7 +305,7 @@ func testDspCDRsGetCDR3(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRs, &args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 1 {
t.Errorf("Received: %+v", reply)
@@ -336,7 +337,7 @@ func testDspCDRsV2ProcessEvent(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV2ProcessEvent, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV2ProcessEvent, args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 2 {
for _, procEv := range reply {
@@ -374,13 +375,13 @@ func testDspCDRsV2StoreSessionCost(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond)
- if err := dispEngine.RPC.Call(utils.CDRsV2StoreSessionCost, args,
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV2StoreSessionCost, args,
&reply); err == nil || err.Error() != "SERVER_ERROR: EXISTS" {
t.Error("Unexpected error: ", err)
}
@@ -388,12 +389,12 @@ func testDspCDRsV2StoreSessionCost(t *testing.T) {
func testDspCDRsPingNoAuth(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.CDRsV1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.CDRsV1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.CDRsV1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
}, &reply); err != nil {
t.Error(err)
@@ -423,7 +424,7 @@ func testDspCDRsProcessEventNoAuth(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -440,7 +441,7 @@ func testDspCDRsCountCDRNoAuth(t *testing.T) {
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRsCount, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRsCount, args, &reply); err != nil {
t.Error(err)
} else if reply != 1 {
t.Errorf("Received: %+v", reply)
@@ -457,7 +458,7 @@ func testDspCDRsGetCDRNoAuth(t *testing.T) {
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRs, &args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 1 {
t.Errorf("Received: %+v", reply)
@@ -475,7 +476,7 @@ func testDspCDRsGetCDRNoAuthWithoutTenant(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRs, &args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 1 {
t.Errorf("Received: %+v", reply)
@@ -500,7 +501,7 @@ func testDspCDRsProcessCDRNoAuth(t *testing.T) {
Usage: 2 * time.Minute,
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1ProcessCDR, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1ProcessCDR, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -518,7 +519,7 @@ func testDspCDRsGetCDR2NoAuth(t *testing.T) {
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRs, &args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 1 {
t.Errorf("Received: %+v", reply)
@@ -547,7 +548,7 @@ func testDspCDRsProcessExternalCDRNoAuth(t *testing.T) {
ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV1ProcessExternalCDR, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1ProcessExternalCDR, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -565,7 +566,7 @@ func testDspCDRsGetCDR3NoAuth(t *testing.T) {
Tenant: "cgrates.org",
}
- if err := dispEngine.RPC.Call(utils.CDRsV1GetCDRs, &args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 1 {
t.Errorf("Received: %+v", reply)
@@ -593,7 +594,7 @@ func testDspCDRsV2ProcessEventNoAuth(t *testing.T) {
},
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV2ProcessEvent, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV2ProcessEvent, args, &reply); err != nil {
t.Error(err)
} else if len(reply) != 2 {
for _, procEv := range reply {
@@ -628,13 +629,13 @@ func testDspCDRsV2StoreSessionCostNoAuth(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond)
- if err := dispEngine.RPC.Call(utils.CDRsV2StoreSessionCost, args,
+ if err := dispEngine.RPC.Call(context.Background(), utils.CDRsV2StoreSessionCost, args,
&reply); err == nil || err.Error() != "SERVER_ERROR: EXISTS" {
t.Error("Unexpected error: ", err)
}
diff --git a/dispatchers/cdrs_test.go b/dispatchers/cdrs_test.go
index bf9e4bd6f..04a0f9184 100644
--- a/dispatchers/cdrs_test.go
+++ b/dispatchers/cdrs_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -32,7 +33,7 @@ func TestDspCDRsV1PingError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.CGREvent{}
var reply *string
- result := dspSrv.CDRsV1Ping(CGREvent, reply)
+ result := dspSrv.CDRsV1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -46,7 +47,7 @@ func TestDspCDRsV1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CDRsV1Ping(CGREvent, reply)
+ result := dspSrv.CDRsV1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -58,7 +59,7 @@ func TestDspCDRsV1PingNilError(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.CDRsV1Ping(nil, reply)
+ result := dspSrv.CDRsV1Ping(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -71,7 +72,7 @@ func TestDspCDRsV1GetCDRsError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.RPCCDRsFilterWithAPIOpts{}
var reply *[]*engine.CDR
- result := dspSrv.CDRsV1GetCDRs(CGREvent, reply)
+ result := dspSrv.CDRsV1GetCDRs(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -85,7 +86,7 @@ func TestDspCDRsV1GetCDRsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*engine.CDR
- result := dspSrv.CDRsV1GetCDRs(CGREvent, reply)
+ result := dspSrv.CDRsV1GetCDRs(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -98,7 +99,7 @@ func TestDspCDRsV1GetCDRsCountError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.RPCCDRsFilterWithAPIOpts{}
var reply *int64
- result := dspSrv.CDRsV1GetCDRsCount(CGREvent, reply)
+ result := dspSrv.CDRsV1GetCDRsCount(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -112,7 +113,7 @@ func TestDspCDRsV1GetCDRsCountNil(t *testing.T) {
Tenant: "tenant",
}
var reply *int64
- result := dspSrv.CDRsV1GetCDRsCount(CGREvent, reply)
+ result := dspSrv.CDRsV1GetCDRsCount(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -125,7 +126,7 @@ func TestDspCDRsV1RateCDRsError(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &engine.ArgRateCDRs{}
var reply *string
- result := dspSrv.CDRsV1RateCDRs(CGREvent, reply)
+ result := dspSrv.CDRsV1RateCDRs(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -139,7 +140,7 @@ func TestDspCDRsV1RateCDRsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CDRsV1RateCDRs(CGREvent, reply)
+ result := dspSrv.CDRsV1RateCDRs(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -156,7 +157,7 @@ func TestDspCDRsV1ProcessExternalCDRError(t *testing.T) {
},
}
var reply *string
- result := dspSrv.CDRsV1ProcessExternalCDR(CGREvent, reply)
+ result := dspSrv.CDRsV1ProcessExternalCDR(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -172,7 +173,7 @@ func TestDspCDRsV1ProcessExternalCDRNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.CDRsV1ProcessExternalCDR(CGREvent, reply)
+ result := dspSrv.CDRsV1ProcessExternalCDR(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -189,7 +190,7 @@ func TestDspCDRsV1ProcessEventError(t *testing.T) {
},
}
var reply *string
- result := dspSrv.CDRsV1ProcessEvent(CGREvent, reply)
+ result := dspSrv.CDRsV1ProcessEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -205,7 +206,7 @@ func TestDspCDRsV1ProcessEventNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.CDRsV1ProcessEvent(CGREvent, reply)
+ result := dspSrv.CDRsV1ProcessEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -222,7 +223,7 @@ func TestDspCDRsV1ProcessCDRError(t *testing.T) {
},
}
var reply *string
- result := dspSrv.CDRsV1ProcessCDR(CGREvent, reply)
+ result := dspSrv.CDRsV1ProcessCDR(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -238,7 +239,7 @@ func TestDspCDRsV1ProcessCDRNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.CDRsV1ProcessCDR(CGREvent, reply)
+ result := dspSrv.CDRsV1ProcessCDR(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -256,7 +257,7 @@ func TestDspCDRsV2ProcessEventError(t *testing.T) {
},
}
var reply *[]*utils.EventWithFlags
- result := dspSrv.CDRsV2ProcessEvent(CGREvent, reply)
+ result := dspSrv.CDRsV2ProcessEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -273,7 +274,7 @@ func TestDspCDRsV2ProcessEventNil(t *testing.T) {
},
}
var reply *[]*utils.EventWithFlags
- result := dspSrv.CDRsV2ProcessEvent(CGREvent, reply)
+ result := dspSrv.CDRsV2ProcessEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -289,7 +290,7 @@ func TestDspCDRsV2ProcessEventErrorNil(t *testing.T) {
CGREvent: utils.CGREvent{},
}
var reply *[]*utils.EventWithFlags
- result := dspSrv.CDRsV2ProcessEvent(CGREvent, reply)
+ result := dspSrv.CDRsV2ProcessEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -303,7 +304,7 @@ func TestDspCDRsV1StoreSessionCostNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CDRsV1StoreSessionCost(CGREvent, reply)
+ result := dspSrv.CDRsV1StoreSessionCost(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -316,7 +317,7 @@ func TestDspCDRsV1StoreSessionCostErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &engine.AttrCDRSStoreSMCost{}
var reply *string
- result := dspSrv.CDRsV1StoreSessionCost(CGREvent, reply)
+ result := dspSrv.CDRsV1StoreSessionCost(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -330,7 +331,7 @@ func TestDspCDRsV2StoreSessionCostNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CDRsV2StoreSessionCost(CGREvent, reply)
+ result := dspSrv.CDRsV2StoreSessionCost(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -343,7 +344,7 @@ func TestDspCDRsV2StoreSessionCostErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &engine.ArgsV2CDRSStoreSMCost{}
var reply *string
- result := dspSrv.CDRsV2StoreSessionCost(CGREvent, reply)
+ result := dspSrv.CDRsV2StoreSessionCost(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/chargers.go b/dispatchers/chargers.go
index 65832ecc8..188161798 100644
--- a/dispatchers/chargers.go
+++ b/dispatchers/chargers.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package dispatchers
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ChargerSv1Ping(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) ChargerSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
}
@@ -40,7 +41,7 @@ func (dS *DispatcherService) ChargerSv1Ping(args *utils.CGREvent, reply *string)
return dS.Dispatch(args, utils.MetaChargers, utils.ChargerSv1Ping, args, reply)
}
-func (dS *DispatcherService) ChargerSv1GetChargersForEvent(args *utils.CGREvent,
+func (dS *DispatcherService) ChargerSv1GetChargersForEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.ChargerProfiles) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
@@ -55,7 +56,7 @@ func (dS *DispatcherService) ChargerSv1GetChargersForEvent(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaChargers, utils.ChargerSv1GetChargersForEvent, args, reply)
}
-func (dS *DispatcherService) ChargerSv1ProcessEvent(args *utils.CGREvent,
+func (dS *DispatcherService) ChargerSv1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *[]*engine.ChrgSProcessEventReply) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
diff --git a/dispatchers/chargers_it_test.go b/dispatchers/chargers_it_test.go
index 61c2f4f8d..f104347d4 100644
--- a/dispatchers/chargers_it_test.go
+++ b/dispatchers/chargers_it_test.go
@@ -27,6 +27,7 @@ import (
"strings"
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -70,7 +71,7 @@ func TestDspChargerST(t *testing.T) {
func testDspCppPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.ChargerSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.ChargerSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -82,19 +83,19 @@ func testDspCppPingFailover(t *testing.T) {
utils.OptsAPIKey: "chrg12345",
},
}
- if err := dispEngine.RPC.Call(utils.ChargerSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.ChargerSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.ChargerSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
@@ -128,7 +129,7 @@ func testDspCppGetChtgFailover(t *testing.T) {
(*eChargers)[0].FilterIDs = nil // empty slice are nil in gob
}
var reply *engine.ChargerProfiles
- if err := dispEngine.RPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eChargers, reply) {
@@ -149,7 +150,7 @@ func testDspCppGetChtgFailover(t *testing.T) {
if *encoding == utils.MetaGOB {
(*eChargers)[1].FilterIDs = nil // empty slice are nil in gob
}
- if err := dispEngine.RPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
args, &reply); err != nil {
t.Fatal(err)
}
@@ -165,12 +166,12 @@ func testDspCppGetChtgFailover(t *testing.T) {
func testDspCppPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.ChargerSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.ChargerSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.ChargerSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "chrg12345",
@@ -194,7 +195,7 @@ func testDspCppTestAuthKey(t *testing.T) {
},
}
var reply *engine.ChargerProfiles
- if err := dispEngine.RPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
args, &reply); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
@@ -235,7 +236,7 @@ func testDspCppTestAuthKey2(t *testing.T) {
(*eChargers)[1].FilterIDs = nil // empty slice are nil in gob
}
var reply *engine.ChargerProfiles
- if err := dispEngine.RPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
args, &reply); err != nil {
t.Fatal(err)
}
@@ -274,7 +275,7 @@ func testDspCppGetChtgRoundRobin(t *testing.T) {
}
var reply *engine.ChargerProfiles
// To ALL2
- if err := dispEngine.RPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eChargers, reply) {
@@ -294,7 +295,7 @@ func testDspCppGetChtgRoundRobin(t *testing.T) {
if *encoding == utils.MetaGOB {
(*eChargers)[1].FilterIDs = nil // empty slice are nil in gob
}
- if err := dispEngine.RPC.Call(utils.ChargerSv1GetChargersForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ChargerSv1GetChargersForEvent,
args, &reply); err != nil {
t.Fatal(err)
}
diff --git a/dispatchers/chargers_test.go b/dispatchers/chargers_test.go
index df43e60e4..a554adadc 100644
--- a/dispatchers/chargers_test.go
+++ b/dispatchers/chargers_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -30,7 +31,7 @@ func TestDspChargerSv1PingNilStruct(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ChargerSv1Ping(nil, reply)
+ result := dspSrv.ChargerSv1Ping(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -44,7 +45,7 @@ func TestDspChargerSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ChargerSv1Ping(CGREvent, reply)
+ result := dspSrv.ChargerSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -57,7 +58,7 @@ func TestDspChargerSv1PingErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.CGREvent{}
var reply *string
- result := dspSrv.ChargerSv1Ping(CGREvent, reply)
+ result := dspSrv.ChargerSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -71,7 +72,7 @@ func TestDspChargerSv1GetChargersForEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.ChargerProfiles
- result := dspSrv.ChargerSv1GetChargersForEvent(CGREvent, reply)
+ result := dspSrv.ChargerSv1GetChargersForEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -84,7 +85,7 @@ func TestDspChargerSv1GetChargersForEventErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.CGREvent{}
var reply *engine.ChargerProfiles
- result := dspSrv.ChargerSv1GetChargersForEvent(CGREvent, reply)
+ result := dspSrv.ChargerSv1GetChargersForEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -98,7 +99,7 @@ func TestDspChargerSv1ProcessEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*engine.ChrgSProcessEventReply
- result := dspSrv.ChargerSv1ProcessEvent(CGREvent, reply)
+ result := dspSrv.ChargerSv1ProcessEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -111,7 +112,7 @@ func TestDspChargerSv1ProcessEventErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.CGREvent{}
var reply *[]*engine.ChrgSProcessEventReply
- result := dspSrv.ChargerSv1ProcessEvent(CGREvent, reply)
+ result := dspSrv.ChargerSv1ProcessEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/config.go b/dispatchers/config.go
index 5c43198fa..0c8f0346f 100644
--- a/dispatchers/config.go
+++ b/dispatchers/config.go
@@ -21,11 +21,12 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ConfigSv1GetConfig(args *config.SectionWithAPIOpts, reply *map[string]any) (err error) {
+func (dS *DispatcherService) ConfigSv1GetConfig(ctx *context.Context, args *config.SectionWithAPIOpts, reply *map[string]any) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -42,7 +43,7 @@ func (dS *DispatcherService) ConfigSv1GetConfig(args *config.SectionWithAPIOpts,
}, utils.MetaConfig, utils.ConfigSv1GetConfig, args, reply)
}
-func (dS *DispatcherService) ConfigSv1ReloadConfig(args *config.ReloadArgs, reply *string) (err error) {
+func (dS *DispatcherService) ConfigSv1ReloadConfig(ctx *context.Context, args *config.ReloadArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -59,7 +60,7 @@ func (dS *DispatcherService) ConfigSv1ReloadConfig(args *config.ReloadArgs, repl
}, utils.MetaConfig, utils.ConfigSv1ReloadConfig, args, reply)
}
-func (dS *DispatcherService) ConfigSv1SetConfig(args *config.SetConfigArgs, reply *string) (err error) {
+func (dS *DispatcherService) ConfigSv1SetConfig(ctx *context.Context, args *config.SetConfigArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -76,7 +77,7 @@ func (dS *DispatcherService) ConfigSv1SetConfig(args *config.SetConfigArgs, repl
}, utils.MetaConfig, utils.ConfigSv1SetConfig, args, reply)
}
-func (dS *DispatcherService) ConfigSv1SetConfigFromJSON(args *config.SetConfigFromJSONArgs, reply *string) (err error) {
+func (dS *DispatcherService) ConfigSv1SetConfigFromJSON(ctx *context.Context, args *config.SetConfigFromJSONArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -93,7 +94,7 @@ func (dS *DispatcherService) ConfigSv1SetConfigFromJSON(args *config.SetConfigFr
}, utils.MetaConfig, utils.ConfigSv1SetConfigFromJSON, args, reply)
}
-func (dS *DispatcherService) ConfigSv1GetConfigAsJSON(args *config.SectionWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) ConfigSv1GetConfigAsJSON(ctx *context.Context, args *config.SectionWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
diff --git a/dispatchers/config_it_test.go b/dispatchers/config_it_test.go
index 30c50a463..39e67661d 100644
--- a/dispatchers/config_it_test.go
+++ b/dispatchers/config_it_test.go
@@ -25,6 +25,7 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -73,7 +74,7 @@ func testDspConfigSv1GetJSONSection(t *testing.T) {
"listen": expected,
}
var reply map[string]any
- if err := dispEngine.RPC.Call(utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "cfg12345",
diff --git a/dispatchers/config_test.go b/dispatchers/config_test.go
index 45e23d505..ccb8b424e 100644
--- a/dispatchers/config_test.go
+++ b/dispatchers/config_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
)
@@ -31,7 +32,7 @@ func TestDspConfigSv1GetConfigNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]any
- result := dspSrv.ConfigSv1GetConfig(CGREvent, reply)
+ result := dspSrv.ConfigSv1GetConfig(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -44,7 +45,7 @@ func TestDspConfigSv1GetConfigErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &config.SectionWithAPIOpts{}
var reply *map[string]any
- result := dspSrv.ConfigSv1GetConfig(CGREvent, reply)
+ result := dspSrv.ConfigSv1GetConfig(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -58,7 +59,7 @@ func TestDspConfigSv1ReloadConfigNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ConfigSv1ReloadConfig(CGREvent, reply)
+ result := dspSrv.ConfigSv1ReloadConfig(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -71,7 +72,7 @@ func TestDspConfigSv1ReloadConfigErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &config.ReloadArgs{}
var reply *string
- result := dspSrv.ConfigSv1ReloadConfig(CGREvent, reply)
+ result := dspSrv.ConfigSv1ReloadConfig(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -85,7 +86,7 @@ func TestDspConfigSv1SetConfigNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ConfigSv1SetConfig(CGREvent, reply)
+ result := dspSrv.ConfigSv1SetConfig(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -98,7 +99,7 @@ func TestDspConfigSv1SetConfigErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &config.SetConfigArgs{}
var reply *string
- result := dspSrv.ConfigSv1SetConfig(CGREvent, reply)
+ result := dspSrv.ConfigSv1SetConfig(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -112,7 +113,7 @@ func TestDspConfigSv1SetConfigFromJSONNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ConfigSv1SetConfigFromJSON(CGREvent, reply)
+ result := dspSrv.ConfigSv1SetConfigFromJSON(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -125,7 +126,7 @@ func TestDspConfigSv1SetConfigFromJSONErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &config.SetConfigFromJSONArgs{}
var reply *string
- result := dspSrv.ConfigSv1SetConfigFromJSON(CGREvent, reply)
+ result := dspSrv.ConfigSv1SetConfigFromJSON(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -139,7 +140,7 @@ func TestDspConfigSv1GetConfigAsJSONNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ConfigSv1GetConfigAsJSON(CGREvent, reply)
+ result := dspSrv.ConfigSv1GetConfigAsJSON(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -152,7 +153,7 @@ func TestDspConfigSv1GetConfigAsJSONErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &config.SectionWithAPIOpts{}
var reply *string
- result := dspSrv.ConfigSv1GetConfigAsJSON(CGREvent, reply)
+ result := dspSrv.ConfigSv1GetConfigAsJSON(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/cores.go b/dispatchers/cores.go
index feaea8ff4..e38cf0c9b 100644
--- a/dispatchers/cores.go
+++ b/dispatchers/cores.go
@@ -21,10 +21,11 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) CoreSv1Panic(args *utils.PanicMessageArgs, reply *string) (err error) {
+func (dS *DispatcherService) CoreSv1Panic(ctx *context.Context, args *utils.PanicMessageArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -42,7 +43,7 @@ func (dS *DispatcherService) CoreSv1Panic(args *utils.PanicMessageArgs, reply *s
}
return dS.Dispatch(&utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1Panic, args, reply)
}
-func (dS *DispatcherService) CoreSv1Ping(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) CoreSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -64,7 +65,7 @@ func (dS *DispatcherService) CoreSv1Ping(args *utils.CGREvent, reply *string) (e
return dS.Dispatch(&utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1Ping, args, reply)
}
-func (dS *DispatcherService) CoreSv1Sleep(args *utils.DurationArgs, reply *string) (err error) {
+func (dS *DispatcherService) CoreSv1Sleep(ctx *context.Context, args *utils.DurationArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -83,7 +84,7 @@ func (dS *DispatcherService) CoreSv1Sleep(args *utils.DurationArgs, reply *strin
return dS.Dispatch(&utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1Sleep, args, reply)
}
-func (dS *DispatcherService) CoreSv1StartCPUProfiling(args *utils.DirectoryArgs, reply *string) (err error) {
+func (dS *DispatcherService) CoreSv1StartCPUProfiling(ctx *context.Context, args *utils.DirectoryArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -101,7 +102,7 @@ func (dS *DispatcherService) CoreSv1StartCPUProfiling(args *utils.DirectoryArgs,
}
return dS.Dispatch(&utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1StartCPUProfiling, args, reply)
}
-func (dS *DispatcherService) CoreSv1StartMemoryProfiling(args *utils.MemoryPrf, reply *string) (err error) {
+func (dS *DispatcherService) CoreSv1StartMemoryProfiling(ctx *context.Context, args *utils.MemoryPrf, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -119,7 +120,7 @@ func (dS *DispatcherService) CoreSv1StartMemoryProfiling(args *utils.MemoryPrf,
}
return dS.Dispatch(&utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1StartMemoryProfiling, args, reply)
}
-func (dS *DispatcherService) CoreSv1Status(args *utils.TenantWithAPIOpts, reply *map[string]any) (err error) {
+func (dS *DispatcherService) CoreSv1Status(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *map[string]any) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -137,7 +138,7 @@ func (dS *DispatcherService) CoreSv1Status(args *utils.TenantWithAPIOpts, reply
}
return dS.Dispatch(&utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1Status, args, reply)
}
-func (dS *DispatcherService) CoreSv1StopCPUProfiling(args *utils.TenantWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) CoreSv1StopCPUProfiling(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -155,7 +156,7 @@ func (dS *DispatcherService) CoreSv1StopCPUProfiling(args *utils.TenantWithAPIOp
}
return dS.Dispatch(&utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1StopCPUProfiling, args, reply)
}
-func (dS *DispatcherService) CoreSv1StopMemoryProfiling(args *utils.TenantWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) CoreSv1StopMemoryProfiling(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
diff --git a/dispatchers/dispatchers.go b/dispatchers/dispatchers.go
index e699599a4..d41390c83 100644
--- a/dispatchers/dispatchers.go
+++ b/dispatchers/dispatchers.go
@@ -24,6 +24,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/guardian"
@@ -61,7 +62,7 @@ func (dS *DispatcherService) Shutdown() {
func (dS *DispatcherService) authorizeEvent(ev *utils.CGREvent,
reply *engine.AttrSProcessEventReply) (err error) {
ev.APIOpts[utils.OptsContext] = utils.MetaAuth
- if err = dS.connMgr.Call(dS.cfg.DispatcherSCfg().AttributeSConns, nil,
+ if err = dS.connMgr.Call(context.TODO(), dS.cfg.DispatcherSCfg().AttributeSConns,
utils.AttributeSv1ProcessEvent, ev, reply); err != nil {
if err.Error() == utils.ErrNotFound.Error() {
err = utils.ErrUnknownApiKey
@@ -311,7 +312,7 @@ func (dS *DispatcherService) Dispatch(ev *utils.CGREvent, subsys string,
return // return the last error
}
-func (dS *DispatcherService) V1GetProfilesForEvent(ev *utils.CGREvent,
+func (dS *DispatcherService) DispatcherSv1GetProfilesForEvent(ctx *context.Context, ev *utils.CGREvent,
dPfl *engine.DispatcherProfiles) (err error) {
tnt := ev.Tenant
if tnt == utils.EmptyString {
@@ -333,7 +334,7 @@ func (dS *DispatcherService) V1GetProfilesForEvent(ev *utils.CGREvent,
/*
// V1Apier is a generic way to cover all APIer methods
-func (dS *DispatcherService) V1Apier(apier any, args *utils.MethodParameters, reply *any) (err error) {
+func (dS *DispatcherService) V1Apier(ctx *context.Context,apier any, args *utils.MethodParameters, reply *any) (err error) {
parameters, canCast := args.Parameters.(map[string]any)
if !canCast {
@@ -426,8 +427,8 @@ func (dS *DispatcherService) V1Apier(apier any, args *utils.MethodParameters, re
}
*/
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (dS *DispatcherService) Call(serviceMethod string, // all API fuction must be of type: SubsystemMethod
+// Call implements birpc.ClientConnector interface for internal RPC
+func (dS *DispatcherService) Call(ctx *context.Context, serviceMethod string, // all API fuction must be of type: SubsystemMethod
args any, reply any) error {
methodSplit := strings.Split(serviceMethod, ".")
if len(methodSplit) != 2 {
@@ -452,7 +453,7 @@ func (dS *DispatcherService) Call(serviceMethod string, // all API fuction must
return err
}
-func (dS *DispatcherService) DispatcherSv1RemoteStatus(args *utils.TenantWithAPIOpts,
+func (dS *DispatcherService) DispatcherSv1RemoteStatus(ctx *context.Context, args *utils.TenantWithAPIOpts,
reply *map[string]any) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -470,7 +471,7 @@ func (dS *DispatcherService) DispatcherSv1RemoteStatus(args *utils.TenantWithAPI
}, utils.MetaCore, utils.CoreSv1Status, args, reply)
}
-func (dS *DispatcherService) DispatcherSv1RemoteSleep(args *utils.DurationArgs, reply *string) (err error) {
+func (dS *DispatcherService) DispatcherSv1RemoteSleep(ctx *context.Context, args *utils.DurationArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -487,7 +488,7 @@ func (dS *DispatcherService) DispatcherSv1RemoteSleep(args *utils.DurationArgs,
}, utils.MetaCore, utils.CoreSv1Sleep, args, reply)
}
-func (dS *DispatcherService) DispatcherSv1RemotePing(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) DispatcherSv1RemotePing(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
tnt = args.Tenant
diff --git a/dispatchers/dispatchers_it_test.go b/dispatchers/dispatchers_it_test.go
index 585c7eece..c96a5a15e 100644
--- a/dispatchers/dispatchers_it_test.go
+++ b/dispatchers/dispatchers_it_test.go
@@ -25,10 +25,10 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// for the moment we dispable Apier through dispatcher
@@ -79,7 +79,7 @@ func testDspApierSetAttributes(t *testing.T) {
}
var result string
- if err := dispEngine.RPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(),utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -110,7 +110,7 @@ func testDspApierGetAttributes(t *testing.T) {
Weight: 10,
}
alsPrf.Compile()
- if err := dispEngine.RPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := dispEngine.RPC.Call(context.Background(),utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_Dispatcher"},
APIOpts: map[string]any{
@@ -128,7 +128,7 @@ func testDspApierGetAttributes(t *testing.T) {
func testDspApierUnkownAPiKey(t *testing.T) {
var reply *engine.AttributeProfile
- if err := dispEngine.RPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := dispEngine.RPC.Call(context.Background(),utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_Dispatcher"},
APIOpts: map[string]any{
@@ -144,7 +144,7 @@ func testDspApierUnkownAPiKey(t *testing.T) {
func TestDispatcherServiceDispatcherProfileForEventGetDispatchertWithoutAuthentification(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dm := engine.NewDataManager(&engine.DataDBMock{
GetKeysForPrefixF: func(string) ([]string, error) {
diff --git a/dispatchers/dispatchers_test.go b/dispatchers/dispatchers_test.go
index 9dbd37bd9..715dae2ae 100644
--- a/dispatchers/dispatchers_test.go
+++ b/dispatchers/dispatchers_test.go
@@ -23,6 +23,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -33,7 +35,7 @@ import (
func TestDispatcherServiceDispatcherProfileForEventGetDispatcherProfileNF(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dm := engine.NewDataManager(&engine.DataDBMock{
GetKeysForPrefixF: func(string) ([]string, error) {
@@ -97,7 +99,7 @@ func TestDispatcherServiceDispatcherProfileForEventGetDispatcherProfileNF(t *tes
func TestDispatcherServiceDispatcherProfileForEventMIIDENotFound(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -122,7 +124,7 @@ func (dS *DispatcherService) DispatcherServicePing(ev *utils.CGREvent, reply *st
func TestDispatcherCall1(t *testing.T) {
dS := &DispatcherService{}
var reply string
- if err := dS.Call(utils.DispatcherServicePing, &utils.CGREvent{}, &reply); err != nil {
+ if err := dS.Call(context.Background(), utils.DispatcherServicePing, &utils.CGREvent{}, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Expected: %s , received: %s", utils.Pong, reply)
@@ -132,10 +134,10 @@ func TestDispatcherCall1(t *testing.T) {
func TestDispatcherCall2(t *testing.T) {
dS := &DispatcherService{}
var reply string
- if err := dS.Call("DispatcherServicePing", &utils.CGREvent{}, &reply); err == nil || err.Error() != rpcclient.ErrUnsupporteServiceMethod.Error() {
+ if err := dS.Call(context.Background(), "DispatcherServicePing", &utils.CGREvent{}, &reply); err == nil || err.Error() != rpcclient.ErrUnsupporteServiceMethod.Error() {
t.Error(err)
}
- if err := dS.Call("DispatcherService.Pong", &utils.CGREvent{}, &reply); err == nil || err.Error() != rpcclient.ErrUnsupporteServiceMethod.Error() {
+ if err := dS.Call(context.Background(), "DispatcherService.Pong", &utils.CGREvent{}, &reply); err == nil || err.Error() != rpcclient.ErrUnsupporteServiceMethod.Error() {
t.Error(err)
}
dS.Shutdown()
@@ -181,7 +183,7 @@ func TestDispatcherV1GetProfileForEventErr(t *testing.T) {
dsp := NewDispatcherService(nil, cfg, nil, nil)
ev := &utils.CGREvent{}
dPfl := &engine.DispatcherProfiles{}
- err := dsp.V1GetProfilesForEvent(ev, dPfl)
+ err := dsp.DispatcherSv1GetProfilesForEvent(context.Background(), ev, dPfl)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -194,7 +196,7 @@ func TestDispatcherV1GetProfileForEvent(t *testing.T) {
dsp := NewDispatcherService(nil, cfg, nil, nil)
ev := &utils.CGREvent{}
dPfl := &engine.DispatcherProfiles{}
- err := dsp.V1GetProfilesForEvent(ev, dPfl)
+ err := dsp.DispatcherSv1GetProfilesForEvent(context.Background(), ev, dPfl)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -320,7 +322,7 @@ func TestDispatcherServiceAuthorizeEventError2(t *testing.T) {
type mockTypeCon2 struct{}
-func (*mockTypeCon2) Call(serviceMethod string, args, reply any) error {
+func (*mockTypeCon2) Call(ctx *context.Context, serviceMethod string, args, reply any) error {
return nil
}
@@ -329,9 +331,9 @@ func TestDispatcherServiceAuthorizeEventError3(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().AttributeSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
dm := engine.NewDataManager(nil, nil, nil)
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeCon2)
- rpcInt := map[string]chan rpcclient.ClientConnector{
+ rpcInt := map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanRPC,
}
connMgr := engine.NewConnManager(cfg, rpcInt)
@@ -367,7 +369,7 @@ func TestDispatcherServiceAuthorizeEventError3(t *testing.T) {
type mockTypeCon3 struct{}
-func (*mockTypeCon3) Call(serviceMethod string, args, reply any) error {
+func (*mockTypeCon3) Call(_ *context.Context, serviceMethod string, args, reply any) error {
eVreply := &engine.AttrSProcessEventReply{
CGREvent: &utils.CGREvent{
Tenant: "testTenant",
@@ -388,9 +390,9 @@ func TestDispatcherServiceAuthorizeError(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().AttributeSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
dm := engine.NewDataManager(nil, nil, nil)
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeCon3)
- rpcInt := map[string]chan rpcclient.ClientConnector{
+ rpcInt := map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanRPC,
}
connMgr := engine.NewConnManager(cfg, rpcInt)
@@ -419,7 +421,7 @@ func TestDispatcherServiceAuthorizeError(t *testing.T) {
type mockTypeCon4 struct{}
-func (*mockTypeCon4) Call(serviceMethod string, args, reply any) error {
+func (*mockTypeCon4) Call(ctx *context.Context, serviceMethod string, args, reply any) error {
eVreply := &engine.AttrSProcessEventReply{
CGREvent: &utils.CGREvent{
Tenant: "testTenant",
@@ -438,9 +440,9 @@ func TestDispatcherServiceAuthorizeError2(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().AttributeSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
dm := engine.NewDataManager(nil, nil, nil)
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeCon4)
- rpcInt := map[string]chan rpcclient.ClientConnector{
+ rpcInt := map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanRPC,
}
connMgr := engine.NewConnManager(cfg, rpcInt)
@@ -469,7 +471,7 @@ func TestDispatcherServiceAuthorizeError2(t *testing.T) {
type mockTypeCon5 struct{}
-func (*mockTypeCon5) Call(serviceMethod string, args, reply any) error {
+func (*mockTypeCon5) Call(ctx *context.Context, serviceMethod string, args, reply any) error {
eVreply := &engine.AttrSProcessEventReply{
CGREvent: &utils.CGREvent{
Tenant: "testTenant",
@@ -490,9 +492,9 @@ func TestDispatcherServiceAuthorizeError3(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().AttributeSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
dm := engine.NewDataManager(nil, nil, nil)
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeCon5)
- rpcInt := map[string]chan rpcclient.ClientConnector{
+ rpcInt := map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanRPC,
}
connMgr := engine.NewConnManager(cfg, rpcInt)
@@ -520,7 +522,7 @@ func TestDispatcherServiceAuthorizeError3(t *testing.T) {
func TestDispatcherServiceCall1(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dm := engine.NewDataManager(nil, nil, nil)
dsp := NewDispatcherService(dm, cfg, nil, connMng)
@@ -534,7 +536,7 @@ func TestDispatcherServiceCall1(t *testing.T) {
},
APIOpts: nil,
}
- err := dsp.Call(utils.DispatcherServicePing, args, &reply)
+ err := dsp.Call(context.Background(), utils.DispatcherServicePing, args, &reply)
if err != nil {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
@@ -543,7 +545,7 @@ func TestDispatcherServiceCall1(t *testing.T) {
func TestDispatcherServiceDispatcherProfileForEventErrNil(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -590,7 +592,7 @@ func TestDispatcherServiceDispatcherProfileForEventErrNil(t *testing.T) {
func TestDispatcherV1GetProfileForEventReturn(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -633,7 +635,7 @@ func TestDispatcherV1GetProfileForEventReturn(t *testing.T) {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
dPfl := &engine.DispatcherProfiles{}
- err = dss.V1GetProfilesForEvent(ev, dPfl)
+ err = dss.DispatcherSv1GetProfilesForEvent(context.Background(), ev, dPfl)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err != nil {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -643,7 +645,7 @@ func TestDispatcherV1GetProfileForEventReturn(t *testing.T) {
func TestDispatcherServiceDispatcherProfileForEventErrNotFound(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -690,7 +692,7 @@ func TestDispatcherServiceDispatcherProfileForEventErrNotFound(t *testing.T) {
func TestDispatcherServiceDispatcherProfileForEventErrNotFound2(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -737,7 +739,7 @@ func TestDispatcherServiceDispatcherProfileForEventErrNotFound2(t *testing.T) {
func TestDispatcherServiceDispatcherProfileForEventErrNotFoundTime(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -789,7 +791,7 @@ func TestDispatcherServiceDispatcherProfileForEventErrNotFoundTime(t *testing.T)
func TestDispatcherServiceDispatcherProfileForEventErrNotFoundFilter(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -837,7 +839,7 @@ func TestDispatcherServiceDispatcherProfileForEventErrNotFoundFilter(t *testing.
func TestDispatcherServiceDispatchDspErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
engine.Cache.Clear(nil)
@@ -883,7 +885,7 @@ func TestDispatcherServiceDispatchDspErrHostNotFound(t *testing.T) {
cacheInit := engine.Cache
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -936,7 +938,7 @@ func TestDispatcherServiceDispatchDspErrHostNotFound(t *testing.T) {
func TestDispatcherServiceDispatcherProfileForEventFoundFilter(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -997,7 +999,7 @@ func TestDispatcherServiceDispatcherProfileForEventFoundFilter(t *testing.T) {
func TestDispatcherServiceDispatcherProfileForEventNotNotFound(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = true
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
var cnt int
@@ -1041,7 +1043,7 @@ func TestDispatcherServiceDispatcherProfileForEventNotNotFound(t *testing.T) {
func TestDispatcherServiceDispatcherProfileForEventGetDispatcherError(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -1103,7 +1105,7 @@ func TestDispatcherServiceDispatchDspErrHostNotFound2(t *testing.T) {
cacheInit := engine.Cache
cfg := config.NewDefaultCGRConfig()
cfg.DispatcherSCfg().IndexedSelects = false
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dataDB := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(dataDB, nil, connMng)
@@ -1155,7 +1157,7 @@ func TestDispatcherServiceDispatchDspErrHostNotFound2(t *testing.T) {
type mockTypeConSetCache struct{}
-func (*mockTypeConSetCache) Call(serviceMethod string, args, reply any) error {
+func (*mockTypeConSetCache) Call(ctx *context.Context, serviceMethod string, args, reply any) error {
return utils.ErrNotImplemented
}
@@ -1167,9 +1169,9 @@ func TestDispatcherServiceDispatchDspErrHostNotFound3(t *testing.T) {
Replicate: true,
}
cfg.DispatcherSCfg().IndexedSelects = false
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeConSetCache)
- rpcInt := map[string]chan rpcclient.ClientConnector{
+ rpcInt := map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): chanRPC,
}
connMgr := engine.NewConnManager(cfg, rpcInt)
@@ -1223,7 +1225,7 @@ func (dS *DispatcherService) DispatcherServiceTest(ev *utils.CGREvent, reply *st
func TestDispatcherServiceCall2(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dm := engine.NewDataManager(nil, nil, nil)
dsp := NewDispatcherService(dm, cfg, nil, connMng)
@@ -1241,7 +1243,7 @@ func TestDispatcherServiceCall2(t *testing.T) {
utils.MetaSubsys: utils.MetaDispatchers,
},
}
- err := dsp.Call("DispatcherService.Test", args, &reply)
+ err := dsp.Call(context.Background(), "DispatcherService.Test", args, &reply)
expected := "SERVER_ERROR"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -1255,7 +1257,7 @@ func (dS *DispatcherService) DispatcherServiceTest2(ev *utils.CGREvent, reply *s
func TestDispatcherServiceCall3(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dm := engine.NewDataManager(nil, nil, nil)
dsp := NewDispatcherService(dm, cfg, nil, connMng)
@@ -1273,7 +1275,7 @@ func TestDispatcherServiceCall3(t *testing.T) {
utils.MetaSubsys: utils.MetaDispatchers,
},
}
- err := dsp.Call("DispatcherService.Test2", args, &reply)
+ err := dsp.Call(context.Background(), "DispatcherService.Test2", args, &reply)
expected := utils.ErrNotImplemented
if err == nil || err != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -1287,7 +1289,7 @@ func (dS *DispatcherService) DispatcherServiceTest3(ev *utils.CGREvent, reply *s
func TestDispatcherServiceCall4(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dm := engine.NewDataManager(nil, nil, nil)
dsp := NewDispatcherService(dm, cfg, nil, connMng)
@@ -1305,7 +1307,7 @@ func TestDispatcherServiceCall4(t *testing.T) {
utils.MetaSubsys: utils.MetaDispatchers,
},
}
- err := dsp.Call("DispatcherService.Test3", args, &reply)
+ err := dsp.Call(context.Background(), "DispatcherService.Test3", args, &reply)
expected := "SERVER_ERROR"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
diff --git a/dispatchers/ees.go b/dispatchers/ees.go
index 875fd942b..fd81ecf33 100644
--- a/dispatchers/ees.go
+++ b/dispatchers/ees.go
@@ -21,11 +21,12 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) EeSv1Ping(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) EeSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
@@ -47,7 +48,7 @@ func (dS *DispatcherService) EeSv1Ping(args *utils.CGREvent, reply *string) (err
return dS.Dispatch(&utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.EeSv1Ping, args, reply)
}
-func (dS *DispatcherService) EeSv1ProcessEvent(args *engine.CGREventWithEeIDs, reply *map[string]map[string]any) (err error) {
+func (dS *DispatcherService) EeSv1ProcessEvent(ctx *context.Context, args *engine.CGREventWithEeIDs, reply *map[string]map[string]any) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
diff --git a/dispatchers/ees_it_test.go b/dispatchers/ees_it_test.go
index 3a27196fd..527f257d5 100644
--- a/dispatchers/ees_it_test.go
+++ b/dispatchers/ees_it_test.go
@@ -24,6 +24,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -66,7 +67,7 @@ func TestDspEEsIT(t *testing.T) {
func testDspEEsPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.EeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.EeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Unexpected reply: %s", reply)
@@ -77,19 +78,19 @@ func testDspEEsPingFailover(t *testing.T) {
utils.OptsAPIKey: "ees12345",
},
}
- if err := dispEngine.RPC.Call(utils.EeSv1Ping, ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1Ping, ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Unexpected reply: %s", reply)
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.EeSv1Ping, ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1Ping, ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Unexpected reply: %s", reply)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.EeSv1Ping, ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1Ping, ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
@@ -112,13 +113,13 @@ func testDspEEsProcessEventFailover(t *testing.T) {
},
}
var reply map[string]map[string]any
- if err := dispEngine.RPC.Call(utils.EeSv1ProcessEvent, args, &reply); err == nil ||
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1ProcessEvent, args, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.EeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1ProcessEvent,
args, &reply); err != nil {
t.Fatal(err)
}
@@ -127,12 +128,12 @@ func testDspEEsProcessEventFailover(t *testing.T) {
func testDspEEsPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.EeSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.EeSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.EeSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "ees12345",
@@ -158,7 +159,7 @@ func testDspEEsTestAuthKey(t *testing.T) {
},
}
var reply map[string]map[string]any
- if err := dispEngine.RPC.Call(utils.EeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1ProcessEvent,
args, &reply); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Errorf("expected: <%+v>,\nreceived: <%+v>", utils.ErrUnauthorizedApi.Error(), err)
}
@@ -178,7 +179,7 @@ func testDspEEsTestAuthKey2(t *testing.T) {
},
}
var reply map[string]map[string]any
- if err := dispEngine.RPC.Call(utils.EeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1ProcessEvent,
args, &reply); err != nil {
t.Error(err)
} else if _, ok := reply[utils.MetaDefault]; !ok {
@@ -202,12 +203,12 @@ func testDspEEsProcessEventRoundRobin(t *testing.T) {
}
var reply map[string]map[string]any
// To ALL2
- if err := dispEngine.RPC.Call(utils.EeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1ProcessEvent,
args, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
// To ALL
- if err := dispEngine.RPC.Call(utils.EeSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.EeSv1ProcessEvent,
args, &reply); err != nil {
t.Error(err)
} else if _, ok := reply[utils.MetaDefault]; !ok {
diff --git a/dispatchers/guardian.go b/dispatchers/guardian.go
index ae23cc002..e18f577c2 100644
--- a/dispatchers/guardian.go
+++ b/dispatchers/guardian.go
@@ -21,11 +21,12 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// GuardianSv1Ping interogates GuardianSv1 server responsible to process the event
-func (dS *DispatcherService) GuardianSv1Ping(args *utils.CGREvent,
+func (dS *DispatcherService) GuardianSv1Ping(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
@@ -41,7 +42,7 @@ func (dS *DispatcherService) GuardianSv1Ping(args *utils.CGREvent,
}
// GuardianSv1RemoteLock will lock a key from remote
-func (dS *DispatcherService) GuardianSv1RemoteLock(args AttrRemoteLockWithAPIOpts,
+func (dS *DispatcherService) GuardianSv1RemoteLock(ctx *context.Context, args AttrRemoteLockWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -60,7 +61,7 @@ func (dS *DispatcherService) GuardianSv1RemoteLock(args AttrRemoteLockWithAPIOpt
}
// GuardianSv1RemoteUnlock will unlock a key from remote based on reference ID
-func (dS *DispatcherService) GuardianSv1RemoteUnlock(args AttrRemoteUnlockWithAPIOpts,
+func (dS *DispatcherService) GuardianSv1RemoteUnlock(ctx *context.Context, args AttrRemoteUnlockWithAPIOpts,
reply *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
diff --git a/dispatchers/guardian_it_test.go b/dispatchers/guardian_it_test.go
index c3d222ae5..6d616699b 100644
--- a/dispatchers/guardian_it_test.go
+++ b/dispatchers/guardian_it_test.go
@@ -26,6 +26,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
@@ -63,12 +64,12 @@ func TestDspGuardianST(t *testing.T) {
func testDspGrdPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.GuardianSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.GuardianSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.GuardianSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.GuardianSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -89,7 +90,7 @@ func testDspGrdLock(t *testing.T) {
Timeout: 500 * time.Millisecond,
}
var reply string
- if err := dispEngine.RPC.Call(utils.GuardianSv1RemoteLock, &AttrRemoteLockWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.GuardianSv1RemoteLock, &AttrRemoteLockWithAPIOpts{
AttrRemoteLock: args,
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -100,7 +101,7 @@ func testDspGrdLock(t *testing.T) {
}
var unlockReply []string
- if err := dispEngine.RPC.Call(utils.GuardianSv1RemoteUnlock, &AttrRemoteUnlockWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.GuardianSv1RemoteUnlock, &AttrRemoteUnlockWithAPIOpts{
RefID: reply,
Tenant: "cgrates.org",
APIOpts: map[string]any{
diff --git a/dispatchers/guardian_test.go b/dispatchers/guardian_test.go
index 0025a7767..0686d0943 100644
--- a/dispatchers/guardian_test.go
+++ b/dispatchers/guardian_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -35,7 +36,7 @@ func TestGuardianGuardianSv1PingErr1(t *testing.T) {
var reply *string
expected := "MANDATORY_IE_MISSING: [ApiKey]"
- result := dspSrv.GuardianSv1Ping(CGREvent, reply)
+ result := dspSrv.GuardianSv1Ping(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -51,7 +52,7 @@ func TestGuardianGuardianSv1PingErr2(t *testing.T) {
var reply *string
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
- result := dspSrv.GuardianSv1Ping(CGREvent, reply)
+ result := dspSrv.GuardianSv1Ping(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -65,7 +66,7 @@ func TestGuardianGuardianSv1PingErrNil(t *testing.T) {
var reply *string
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
- result := dspSrv.GuardianSv1Ping(CGREvent, reply)
+ result := dspSrv.GuardianSv1Ping(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -82,7 +83,7 @@ func TestGuardianGuardianSv1RemoteLockErr1(t *testing.T) {
var reply *string
expected := "MANDATORY_IE_MISSING: [ApiKey]"
- result := dspSrv.GuardianSv1RemoteLock(CGREvent, reply)
+ result := dspSrv.GuardianSv1RemoteLock(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -98,7 +99,7 @@ func TestGuardianGuardianSv1RemoteLockErr2(t *testing.T) {
var reply *string
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
- result := dspSrv.GuardianSv1RemoteLock(CGREvent, reply)
+ result := dspSrv.GuardianSv1RemoteLock(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -115,7 +116,7 @@ func TestGuardianGuardianSv1RemoteUnlockErr1(t *testing.T) {
var reply *[]string
expected := "MANDATORY_IE_MISSING: [ApiKey]"
- result := dspSrv.GuardianSv1RemoteUnlock(CGREvent, reply)
+ result := dspSrv.GuardianSv1RemoteUnlock(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -131,7 +132,7 @@ func TestGuardianGuardianSv1RemoteUnlockErr2(t *testing.T) {
var reply *[]string
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
- result := dspSrv.GuardianSv1RemoteUnlock(CGREvent, reply)
+ result := dspSrv.GuardianSv1RemoteUnlock(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/lib_test.go b/dispatchers/lib_test.go
index 71636316f..7b71189d4 100644
--- a/dispatchers/lib_test.go
+++ b/dispatchers/lib_test.go
@@ -21,14 +21,15 @@ package dispatchers
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
"os/exec"
"path"
"strconv"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -46,12 +47,12 @@ var (
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
@@ -60,7 +61,7 @@ func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
type testDispatcher struct {
CfgPath string
Cfg *config.CGRConfig
- RPC *rpc.Client
+ RPC *birpc.Client
cmd *exec.Cmd
}
@@ -121,7 +122,7 @@ func (d *testDispatcher) resetStorDb(t *testing.T) {
func (d *testDispatcher) loadData(t *testing.T, path string) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path}
- if err := d.RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := d.RPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Errorf("<%s>Error at loading data from folder :%v", d.CfgPath, err)
}
}
diff --git a/dispatchers/libdispatcher.go b/dispatchers/libdispatcher.go
index 6aabb14b2..d30fcdb85 100644
--- a/dispatchers/libdispatcher.go
+++ b/dispatchers/libdispatcher.go
@@ -26,6 +26,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -287,7 +288,7 @@ func (b *broadcastDispatcher) Dispatch(dm *engine.DataManager, flts *engine.Filt
if !hasHosts { // in case we do not match any host
return utils.ErrDSPHostNotFound
}
- return pool.Call(serviceMethod, args, reply)
+ return pool.Call(context.TODO(), serviceMethod, args, reply)
}
type loadDispatcher struct {
@@ -437,7 +438,7 @@ type lazyDH struct {
dR *DispatcherRoute
}
-func (l *lazyDH) Call(method string, args, reply any) (err error) {
+func (l *lazyDH) Call(ctx *context.Context, method string, args, reply any) (err error) {
return callDH(l.dh, l.routeID, l.dR, method, args, reply)
}
@@ -464,7 +465,7 @@ func callDH(dh *engine.DispatcherHost, routeID string, dR *DispatcherRoute,
utils.DispatcherS, err.Error(), dR))
}
}
- if err = dh.Call(method, args, reply); err != nil {
+ if err = dh.Call(context.TODO(), method, args, reply); err != nil {
return
}
return
diff --git a/dispatchers/libdispatcher_test.go b/dispatchers/libdispatcher_test.go
index 3ae681c97..f16e9f2c1 100644
--- a/dispatchers/libdispatcher_test.go
+++ b/dispatchers/libdispatcher_test.go
@@ -23,6 +23,8 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -692,7 +694,7 @@ func TestLibDispatcherLoadDispatcherCacheError7(t *testing.T) {
},
},
}
- //rpcCl := map[string]chan rpcclient.ClientConnector{}
+ //rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, nil)
dm := engine.NewDataManager(nil, nil, connMng)
@@ -745,7 +747,7 @@ func TestLibDispatcherLoadDispatcherCacheError7(t *testing.T) {
type mockTypeConDispatch struct{}
-func (*mockTypeConDispatch) Call(serviceMethod string, args, reply any) error {
+func (*mockTypeConDispatch) Call(ctx *context.Context, serviceMethod string, args, reply any) error {
return rpc.ErrShutdown
}
@@ -768,7 +770,7 @@ func TestLibDispatcherLoadDispatcherCacheError5(t *testing.T) {
tmp := engine.IntRPC
engine.IntRPC = map[string]*rpcclient.RPCClient{}
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeConDispatch)
engine.IntRPC.AddInternalRPCClient(utils.AttributeSv1, chanRPC)
engine.Cache.SetWithoutReplicate(utils.CacheDispatcherHosts, "testTenant:testID",
@@ -812,7 +814,7 @@ func TestLibDispatcherSingleResultDispatcherCase1(t *testing.T) {
}
tmp := engine.IntRPC
engine.IntRPC = map[string]*rpcclient.RPCClient{}
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeConDispatch)
engine.IntRPC.AddInternalRPCClient(utils.AttributeSv1, chanRPC)
engine.Cache.SetWithoutReplicate(utils.CacheDispatcherHosts, "testTenant:testID",
@@ -828,7 +830,7 @@ func TestLibDispatcherSingleResultDispatcherCase1(t *testing.T) {
type mockTypeConDispatch2 struct{}
-func (*mockTypeConDispatch2) Call(serviceMethod string, args, reply any) error {
+func (*mockTypeConDispatch2) Call(ctx *context.Context, serviceMethod string, args, reply any) error {
return nil
}
@@ -849,7 +851,7 @@ func TestLibDispatcherSingleResultDispatcherCase2(t *testing.T) {
}
tmp := engine.IntRPC
engine.IntRPC = map[string]*rpcclient.RPCClient{}
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeConDispatch2)
engine.IntRPC.AddInternalRPCClient(utils.AttributeSv1, chanRPC)
engine.Cache.SetWithoutReplicate(utils.CacheDispatcherHosts, "testTenant:testID",
@@ -880,7 +882,7 @@ func TestLibDispatcherSingleResultDispatcherCase3(t *testing.T) {
},
},
}
- rpcCl := map[string]chan rpcclient.ClientConnector{}
+ rpcCl := map[string]chan birpc.ClientConnector{}
connMng := engine.NewConnManager(cfg, rpcCl)
dm := engine.NewDataManager(nil, nil, connMng)
newCache := engine.NewCacheS(cfg, dm, nil)
@@ -896,7 +898,7 @@ func TestLibDispatcherSingleResultDispatcherCase3(t *testing.T) {
}
tmp := engine.IntRPC
engine.IntRPC = map[string]*rpcclient.RPCClient{}
- chanRPC := make(chan rpcclient.ClientConnector, 1)
+ chanRPC := make(chan birpc.ClientConnector, 1)
chanRPC <- new(mockTypeConDispatch2)
engine.IntRPC.AddInternalRPCClient(utils.AttributeSv1, chanRPC)
engine.Cache.SetWithoutReplicate(utils.CacheDispatcherHosts, "testTenant:testID",
diff --git a/dispatchers/rals.go b/dispatchers/rals.go
index 0d0d10c97..251050927 100644
--- a/dispatchers/rals.go
+++ b/dispatchers/rals.go
@@ -21,10 +21,11 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) RALsV1Ping(args *utils.CGREvent, rpl *string) (err error) {
+func (dS *DispatcherService) RALsV1Ping(ctx *context.Context, args *utils.CGREvent, rpl *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
}
@@ -38,7 +39,7 @@ func (dS *DispatcherService) RALsV1Ping(args *utils.CGREvent, rpl *string) (err
return dS.Dispatch(args, utils.MetaRALs, utils.RALsV1Ping, args, rpl)
}
-func (dS *DispatcherService) RALsV1GetRatingPlansCost(args *utils.RatingPlanCostArg, rpl *RatingPlanCost) (err error) {
+func (dS *DispatcherService) RALsV1GetRatingPlansCost(ctx *context.Context, args *utils.RatingPlanCostArg, rpl *RatingPlanCost) (err error) {
tenant := dS.cfg.GeneralCfg().DefaultTenant
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.RALsV1GetRatingPlansCost, tenant,
diff --git a/dispatchers/rals_it_test.go b/dispatchers/rals_it_test.go
index 100bca257..f6cdc19e6 100644
--- a/dispatchers/rals_it_test.go
+++ b/dispatchers/rals_it_test.go
@@ -25,6 +25,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
@@ -62,12 +63,12 @@ func TestDspRALsIT(t *testing.T) {
func testDspRALsPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.RALsV1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.RALsV1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.RALsV1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.RALsV1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -91,7 +92,7 @@ func testDspRALsGetRatingPlanCost(t *testing.T) {
},
}
var reply RatingPlanCost
- if err := dispEngine.RPC.Call(utils.RALsV1GetRatingPlansCost, arg, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.RALsV1GetRatingPlansCost, arg, &reply); err != nil {
t.Error(err)
} else if reply.RatingPlanID != "RP_1001" {
t.Error("Unexpected RatingPlanID: ", reply.RatingPlanID)
diff --git a/dispatchers/rals_test.go b/dispatchers/rals_test.go
index 73d744890..50a093014 100644
--- a/dispatchers/rals_test.go
+++ b/dispatchers/rals_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -35,7 +36,7 @@ func TestRALsRALsV1PingErr1(t *testing.T) {
var reply *string
expected := "MANDATORY_IE_MISSING: [ApiKey]"
- result := dspSrv.RALsV1Ping(CGREvent, reply)
+ result := dspSrv.RALsV1Ping(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -51,7 +52,7 @@ func TestRALsRALsV1PingErr2(t *testing.T) {
var reply *string
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
- result := dspSrv.RALsV1Ping(CGREvent, reply)
+ result := dspSrv.RALsV1Ping(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -66,7 +67,7 @@ func TestRALsRALsV1PingErrNil(t *testing.T) {
var reply *string
expected := "MANDATORY_IE_MISSING: [ApiKey]"
- result := dspSrv.RALsV1Ping(CGREvent, reply)
+ result := dspSrv.RALsV1Ping(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -81,7 +82,7 @@ func TestRALsRALsV1GetRatingPlansCostErr1(t *testing.T) {
var reply *RatingPlanCost
expected := "MANDATORY_IE_MISSING: [ApiKey]"
- result := dspSrv.RALsV1GetRatingPlansCost(CGREvent, reply)
+ result := dspSrv.RALsV1GetRatingPlansCost(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -95,7 +96,7 @@ func TestRALsRALsV1GetRatingPlansCostErr2(t *testing.T) {
var reply *RatingPlanCost
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
- result := dspSrv.RALsV1GetRatingPlansCost(CGREvent, reply)
+ result := dspSrv.RALsV1GetRatingPlansCost(context.Background(), CGREvent, reply)
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/replicator.go b/dispatchers/replicator.go
index 7e5316c3b..1b3225077 100644
--- a/dispatchers/replicator.go
+++ b/dispatchers/replicator.go
@@ -21,11 +21,12 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ReplicatorSv1Ping(args *utils.CGREvent, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1Ping(ctx *context.Context, args *utils.CGREvent, rpl *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
}
@@ -39,7 +40,7 @@ func (dS *DispatcherService) ReplicatorSv1Ping(args *utils.CGREvent, rpl *string
return dS.Dispatch(args, utils.MetaReplicator, utils.ReplicatorSv1Ping, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetAccount(args *utils.StringWithAPIOpts, rpl *engine.Account) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetAccount(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *engine.Account) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -56,7 +57,7 @@ func (dS *DispatcherService) ReplicatorSv1GetAccount(args *utils.StringWithAPIOp
}, utils.MetaReplicator, utils.ReplicatorSv1GetAccount, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetDestination(args *utils.StringWithAPIOpts, rpl *engine.Destination) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetDestination(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *engine.Destination) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -73,7 +74,7 @@ func (dS *DispatcherService) ReplicatorSv1GetDestination(args *utils.StringWithA
}, utils.MetaReplicator, utils.ReplicatorSv1GetDestination, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetReverseDestination(args *utils.StringWithAPIOpts, rpl *[]string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetReverseDestination(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *[]string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -90,7 +91,7 @@ func (dS *DispatcherService) ReplicatorSv1GetReverseDestination(args *utils.Stri
}, utils.MetaReplicator, utils.ReplicatorSv1GetReverseDestination, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetStatQueue(args *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -108,7 +109,7 @@ func (dS *DispatcherService) ReplicatorSv1GetStatQueue(args *utils.TenantIDWithA
}, utils.MetaReplicator, utils.ReplicatorSv1GetStatQueue, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetFilter(args *utils.TenantIDWithAPIOpts, reply *engine.Filter) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Filter) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -126,7 +127,7 @@ func (dS *DispatcherService) ReplicatorSv1GetFilter(args *utils.TenantIDWithAPIO
}, utils.MetaReplicator, utils.ReplicatorSv1GetFilter, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetThreshold(args *utils.TenantIDWithAPIOpts, reply *engine.Threshold) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Threshold) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -144,7 +145,7 @@ func (dS *DispatcherService) ReplicatorSv1GetThreshold(args *utils.TenantIDWithA
}, utils.MetaReplicator, utils.ReplicatorSv1GetThreshold, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetThresholdProfile(args *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -162,7 +163,7 @@ func (dS *DispatcherService) ReplicatorSv1GetThresholdProfile(args *utils.Tenant
}, utils.MetaReplicator, utils.ReplicatorSv1GetThresholdProfile, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetStatQueueProfile(args *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -180,7 +181,7 @@ func (dS *DispatcherService) ReplicatorSv1GetStatQueueProfile(args *utils.Tenant
}, utils.MetaReplicator, utils.ReplicatorSv1GetStatQueueProfile, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetTiming(args *utils.StringWithAPIOpts, rpl *utils.TPTiming) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetTiming(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *utils.TPTiming) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -197,7 +198,7 @@ func (dS *DispatcherService) ReplicatorSv1GetTiming(args *utils.StringWithAPIOpt
}, utils.MetaReplicator, utils.ReplicatorSv1GetTiming, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetResource(args *utils.TenantIDWithAPIOpts, reply *engine.Resource) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Resource) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -215,7 +216,7 @@ func (dS *DispatcherService) ReplicatorSv1GetResource(args *utils.TenantIDWithAP
}, utils.MetaReplicator, utils.ReplicatorSv1GetResource, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetResourceProfile(args *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetResourceProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -233,7 +234,7 @@ func (dS *DispatcherService) ReplicatorSv1GetResourceProfile(args *utils.TenantI
}, utils.MetaReplicator, utils.ReplicatorSv1GetResourceProfile, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetActionTriggers(args *utils.StringWithAPIOpts, rpl *engine.ActionTriggers) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetActionTriggers(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *engine.ActionTriggers) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -250,7 +251,7 @@ func (dS *DispatcherService) ReplicatorSv1GetActionTriggers(args *utils.StringWi
}, utils.MetaReplicator, utils.ReplicatorSv1GetActionTriggers, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetSharedGroup(args *utils.StringWithAPIOpts, rpl *engine.SharedGroup) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetSharedGroup(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *engine.SharedGroup) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -267,7 +268,7 @@ func (dS *DispatcherService) ReplicatorSv1GetSharedGroup(args *utils.StringWithA
}, utils.MetaReplicator, utils.ReplicatorSv1GetSharedGroup, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetActions(args *utils.StringWithAPIOpts, rpl *engine.Actions) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetActions(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *engine.Actions) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -284,7 +285,7 @@ func (dS *DispatcherService) ReplicatorSv1GetActions(args *utils.StringWithAPIOp
}, utils.MetaReplicator, utils.ReplicatorSv1GetActions, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetActionPlan(args *utils.StringWithAPIOpts, rpl *engine.ActionPlan) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetActionPlan(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *engine.ActionPlan) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -301,7 +302,7 @@ func (dS *DispatcherService) ReplicatorSv1GetActionPlan(args *utils.StringWithAP
}, utils.MetaReplicator, utils.ReplicatorSv1GetActionPlan, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetAllActionPlans(args *utils.StringWithAPIOpts, rpl *map[string]*engine.ActionPlan) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetAllActionPlans(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *map[string]*engine.ActionPlan) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -318,7 +319,7 @@ func (dS *DispatcherService) ReplicatorSv1GetAllActionPlans(args *utils.StringWi
}, utils.MetaReplicator, utils.ReplicatorSv1GetAllActionPlans, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetAccountActionPlans(args *utils.StringWithAPIOpts, rpl *[]string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetAccountActionPlans(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *[]string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -335,7 +336,7 @@ func (dS *DispatcherService) ReplicatorSv1GetAccountActionPlans(args *utils.Stri
}, utils.MetaReplicator, utils.ReplicatorSv1GetAccountActionPlans, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetRatingPlan(args *utils.StringWithAPIOpts, rpl *engine.RatingPlan) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetRatingPlan(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *engine.RatingPlan) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -352,7 +353,7 @@ func (dS *DispatcherService) ReplicatorSv1GetRatingPlan(args *utils.StringWithAP
}, utils.MetaReplicator, utils.ReplicatorSv1GetRatingPlan, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetRatingProfile(args *utils.StringWithAPIOpts, rpl *engine.RatingProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetRatingProfile(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *engine.RatingProfile) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -369,7 +370,7 @@ func (dS *DispatcherService) ReplicatorSv1GetRatingProfile(args *utils.StringWit
}, utils.MetaReplicator, utils.ReplicatorSv1GetRatingProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1GetRouteProfile(args *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -387,7 +388,7 @@ func (dS *DispatcherService) ReplicatorSv1GetRouteProfile(args *utils.TenantIDWi
}, utils.MetaReplicator, utils.ReplicatorSv1GetRouteProfile, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetAttributeProfile(args *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetAttributeProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -405,7 +406,7 @@ func (dS *DispatcherService) ReplicatorSv1GetAttributeProfile(args *utils.Tenant
}, utils.MetaReplicator, utils.ReplicatorSv1GetAttributeProfile, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetChargerProfile(args *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetChargerProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -423,7 +424,7 @@ func (dS *DispatcherService) ReplicatorSv1GetChargerProfile(args *utils.TenantID
}, utils.MetaReplicator, utils.ReplicatorSv1GetChargerProfile, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetDispatcherProfile(args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetDispatcherProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -441,7 +442,7 @@ func (dS *DispatcherService) ReplicatorSv1GetDispatcherProfile(args *utils.Tenan
}, utils.MetaReplicator, utils.ReplicatorSv1GetDispatcherProfile, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetDispatcherHost(args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -459,7 +460,7 @@ func (dS *DispatcherService) ReplicatorSv1GetDispatcherHost(args *utils.TenantID
}, utils.MetaReplicator, utils.ReplicatorSv1GetDispatcherHost, args, reply)
}
-func (dS *DispatcherService) ReplicatorSv1GetItemLoadIDs(args *utils.StringWithAPIOpts, rpl *map[string]int64) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetItemLoadIDs(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *map[string]int64) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -476,7 +477,7 @@ func (dS *DispatcherService) ReplicatorSv1GetItemLoadIDs(args *utils.StringWithA
}, utils.MetaReplicator, utils.ReplicatorSv1GetItemLoadIDs, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetThresholdProfile(args *engine.ThresholdProfileWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetThresholdProfile(ctx *context.Context, args *engine.ThresholdProfileWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.ThresholdProfileWithAPIOpts{
ThresholdProfile: &engine.ThresholdProfile{},
@@ -495,7 +496,7 @@ func (dS *DispatcherService) ReplicatorSv1SetThresholdProfile(args *engine.Thres
}, utils.MetaReplicator, utils.ReplicatorSv1SetThresholdProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetThreshold(args *engine.ThresholdWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetThreshold(ctx *context.Context, args *engine.ThresholdWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.ThresholdWithAPIOpts{
Threshold: &engine.Threshold{},
@@ -514,7 +515,7 @@ func (dS *DispatcherService) ReplicatorSv1SetThreshold(args *engine.ThresholdWit
}, utils.MetaReplicator, utils.ReplicatorSv1SetThreshold, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetDestination(args *engine.DestinationWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetDestination(ctx *context.Context, args *engine.DestinationWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.DestinationWithAPIOpts{}
}
@@ -531,7 +532,7 @@ func (dS *DispatcherService) ReplicatorSv1SetDestination(args *engine.Destinatio
}, utils.MetaReplicator, utils.ReplicatorSv1SetDestination, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetAccount(args *engine.AccountWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetAccount(ctx *context.Context, args *engine.AccountWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.AccountWithAPIOpts{
Account: &engine.Account{},
@@ -550,7 +551,7 @@ func (dS *DispatcherService) ReplicatorSv1SetAccount(args *engine.AccountWithAPI
}, utils.MetaReplicator, utils.ReplicatorSv1SetAccount, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetReverseDestination(args *engine.DestinationWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetReverseDestination(ctx *context.Context, args *engine.DestinationWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.DestinationWithAPIOpts{}
}
@@ -567,7 +568,7 @@ func (dS *DispatcherService) ReplicatorSv1SetReverseDestination(args *engine.Des
}, utils.MetaReplicator, utils.ReplicatorSv1SetReverseDestination, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetStatQueue(args *engine.StatQueueWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetStatQueue(ctx *context.Context, args *engine.StatQueueWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.StatQueueWithAPIOpts{
StatQueue: &engine.StatQueue{},
@@ -586,7 +587,7 @@ func (dS *DispatcherService) ReplicatorSv1SetStatQueue(args *engine.StatQueueWit
}, utils.MetaReplicator, utils.ReplicatorSv1SetStatQueue, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetFilter(args *engine.FilterWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetFilter(ctx *context.Context, args *engine.FilterWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.FilterWithAPIOpts{
Filter: &engine.Filter{},
@@ -605,7 +606,7 @@ func (dS *DispatcherService) ReplicatorSv1SetFilter(args *engine.FilterWithAPIOp
}, utils.MetaReplicator, utils.ReplicatorSv1SetFilter, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetStatQueueProfile(args *engine.StatQueueProfileWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetStatQueueProfile(ctx *context.Context, args *engine.StatQueueProfileWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.StatQueueProfileWithAPIOpts{
StatQueueProfile: &engine.StatQueueProfile{},
@@ -624,7 +625,7 @@ func (dS *DispatcherService) ReplicatorSv1SetStatQueueProfile(args *engine.StatQ
}, utils.MetaReplicator, utils.ReplicatorSv1SetStatQueueProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetTiming(args *utils.TPTimingWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetTiming(ctx *context.Context, args *utils.TPTimingWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TPTimingWithAPIOpts{}
}
@@ -641,7 +642,7 @@ func (dS *DispatcherService) ReplicatorSv1SetTiming(args *utils.TPTimingWithAPIO
}, utils.MetaReplicator, utils.ReplicatorSv1SetTiming, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetResource(args *engine.ResourceWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetResource(ctx *context.Context, args *engine.ResourceWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.ResourceWithAPIOpts{
Resource: &engine.Resource{},
@@ -660,7 +661,7 @@ func (dS *DispatcherService) ReplicatorSv1SetResource(args *engine.ResourceWithA
}, utils.MetaReplicator, utils.ReplicatorSv1SetResource, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetResourceProfile(args *engine.ResourceProfileWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetResourceProfile(ctx *context.Context, args *engine.ResourceProfileWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.ResourceProfileWithAPIOpts{
ResourceProfile: &engine.ResourceProfile{},
@@ -679,7 +680,7 @@ func (dS *DispatcherService) ReplicatorSv1SetResourceProfile(args *engine.Resour
}, utils.MetaReplicator, utils.ReplicatorSv1SetResourceProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetActionTriggers(args *engine.SetActionTriggersArgWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetActionTriggers(ctx *context.Context, args *engine.SetActionTriggersArgWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.SetActionTriggersArgWithAPIOpts{}
}
@@ -696,7 +697,7 @@ func (dS *DispatcherService) ReplicatorSv1SetActionTriggers(args *engine.SetActi
}, utils.MetaReplicator, utils.ReplicatorSv1SetActionTriggers, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetSharedGroup(args *engine.SharedGroupWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetSharedGroup(ctx *context.Context, args *engine.SharedGroupWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.SharedGroupWithAPIOpts{}
}
@@ -713,7 +714,7 @@ func (dS *DispatcherService) ReplicatorSv1SetSharedGroup(args *engine.SharedGrou
}, utils.MetaReplicator, utils.ReplicatorSv1SetSharedGroup, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetActions(args *engine.SetActionsArgsWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetActions(ctx *context.Context, args *engine.SetActionsArgsWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.SetActionsArgsWithAPIOpts{}
}
@@ -730,7 +731,7 @@ func (dS *DispatcherService) ReplicatorSv1SetActions(args *engine.SetActionsArgs
}, utils.MetaReplicator, utils.ReplicatorSv1SetActions, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetRatingPlan(args *engine.RatingPlanWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetRatingPlan(ctx *context.Context, args *engine.RatingPlanWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.RatingPlanWithAPIOpts{}
}
@@ -747,7 +748,7 @@ func (dS *DispatcherService) ReplicatorSv1SetRatingPlan(args *engine.RatingPlanW
}, utils.MetaReplicator, utils.ReplicatorSv1SetRatingPlan, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetRatingProfile(args *engine.RatingProfileWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetRatingProfile(ctx *context.Context, args *engine.RatingProfileWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.RatingProfileWithAPIOpts{}
}
@@ -764,7 +765,7 @@ func (dS *DispatcherService) ReplicatorSv1SetRatingProfile(args *engine.RatingPr
}, utils.MetaReplicator, utils.ReplicatorSv1SetRatingProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetRouteProfile(args *engine.RouteProfileWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetRouteProfile(ctx *context.Context, args *engine.RouteProfileWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.RouteProfileWithAPIOpts{
RouteProfile: &engine.RouteProfile{},
@@ -783,7 +784,7 @@ func (dS *DispatcherService) ReplicatorSv1SetRouteProfile(args *engine.RouteProf
}, utils.MetaReplicator, utils.ReplicatorSv1SetRouteProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetAttributeProfile(args *engine.AttributeProfileWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetAttributeProfile(ctx *context.Context, args *engine.AttributeProfileWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.AttributeProfileWithAPIOpts{
AttributeProfile: &engine.AttributeProfile{},
@@ -802,7 +803,7 @@ func (dS *DispatcherService) ReplicatorSv1SetAttributeProfile(args *engine.Attri
}, utils.MetaReplicator, utils.ReplicatorSv1SetAttributeProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetChargerProfile(args *engine.ChargerProfileWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetChargerProfile(ctx *context.Context, args *engine.ChargerProfileWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.ChargerProfileWithAPIOpts{
ChargerProfile: &engine.ChargerProfile{},
@@ -821,7 +822,7 @@ func (dS *DispatcherService) ReplicatorSv1SetChargerProfile(args *engine.Charger
}, utils.MetaReplicator, utils.ReplicatorSv1SetChargerProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetDispatcherProfile(args *engine.DispatcherProfileWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetDispatcherProfile(ctx *context.Context, args *engine.DispatcherProfileWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.DispatcherProfileWithAPIOpts{
DispatcherProfile: &engine.DispatcherProfile{},
@@ -840,7 +841,7 @@ func (dS *DispatcherService) ReplicatorSv1SetDispatcherProfile(args *engine.Disp
}, utils.MetaReplicator, utils.ReplicatorSv1SetDispatcherProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetActionPlan(args *engine.SetActionPlanArgWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetActionPlan(ctx *context.Context, args *engine.SetActionPlanArgWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.SetActionPlanArgWithAPIOpts{}
}
@@ -857,7 +858,7 @@ func (dS *DispatcherService) ReplicatorSv1SetActionPlan(args *engine.SetActionPl
}, utils.MetaReplicator, utils.ReplicatorSv1SetActionPlan, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetAccountActionPlans(args *engine.SetAccountActionPlansArgWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetAccountActionPlans(ctx *context.Context, args *engine.SetAccountActionPlansArgWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.SetAccountActionPlansArgWithAPIOpts{}
}
@@ -874,7 +875,7 @@ func (dS *DispatcherService) ReplicatorSv1SetAccountActionPlans(args *engine.Set
}, utils.MetaReplicator, utils.ReplicatorSv1SetAccountActionPlans, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetDispatcherHost(args *engine.DispatcherHostWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetDispatcherHost(ctx *context.Context, args *engine.DispatcherHostWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.DispatcherHostWithAPIOpts{
DispatcherHost: &engine.DispatcherHost{},
@@ -893,7 +894,7 @@ func (dS *DispatcherService) ReplicatorSv1SetDispatcherHost(args *engine.Dispatc
}, utils.MetaReplicator, utils.ReplicatorSv1SetDispatcherHost, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveThreshold(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -912,7 +913,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveThreshold(args *utils.TenantIDWi
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveThreshold, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveDestination(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveDestination(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -929,7 +930,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveDestination(args *utils.StringWi
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveDestination, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1SetLoadIDs(args *utils.LoadIDsWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetLoadIDs(ctx *context.Context, args *utils.LoadIDsWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.LoadIDsWithAPIOpts{}
}
@@ -946,7 +947,7 @@ func (dS *DispatcherService) ReplicatorSv1SetLoadIDs(args *utils.LoadIDsWithAPIO
}, utils.MetaReplicator, utils.ReplicatorSv1SetLoadIDs, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveAccount(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveAccount(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -963,7 +964,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveAccount(args *utils.StringWithAP
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveAccount, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveStatQueue(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -982,7 +983,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveStatQueue(args *utils.TenantIDWi
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveStatQueue, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveFilter(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1001,7 +1002,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveFilter(args *utils.TenantIDWithA
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveFilter, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveThresholdProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1020,7 +1021,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveThresholdProfile(args *utils.Ten
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveThresholdProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveStatQueueProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1039,7 +1040,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveStatQueueProfile(args *utils.Ten
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveStatQueueProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveTiming(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveTiming(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -1056,7 +1057,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveTiming(args *utils.StringWithAPI
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveTiming, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveResource(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1075,7 +1076,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveResource(args *utils.TenantIDWit
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveResource, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveResourceProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveResourceProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1094,7 +1095,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveResourceProfile(args *utils.Tena
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveResourceProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveActionTriggers(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveActionTriggers(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -1111,7 +1112,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveActionTriggers(args *utils.Strin
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveActionTriggers, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveSharedGroup(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveSharedGroup(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -1128,7 +1129,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveSharedGroup(args *utils.StringWi
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveSharedGroup, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveActions(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveActions(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -1145,7 +1146,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveActions(args *utils.StringWithAP
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveActions, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveActionPlan(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveActionPlan(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -1162,7 +1163,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveActionPlan(args *utils.StringWit
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveActionPlan, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemAccountActionPlans(args *engine.RemAccountActionPlansArgsWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemAccountActionPlans(ctx *context.Context, args *engine.RemAccountActionPlansArgsWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &engine.RemAccountActionPlansArgsWithAPIOpts{}
}
@@ -1179,7 +1180,7 @@ func (dS *DispatcherService) ReplicatorSv1RemAccountActionPlans(args *engine.Rem
}, utils.MetaReplicator, utils.ReplicatorSv1RemAccountActionPlans, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveRatingPlan(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveRatingPlan(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -1196,7 +1197,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveRatingPlan(args *utils.StringWit
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveRatingPlan, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveRatingProfile(args *utils.StringWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveRatingProfile(ctx *context.Context, args *utils.StringWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = new(utils.StringWithAPIOpts)
}
@@ -1213,7 +1214,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveRatingProfile(args *utils.String
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveRatingProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveRouteProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1232,7 +1233,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveRouteProfile(args *utils.TenantI
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveRouteProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveAttributeProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveAttributeProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1251,7 +1252,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveAttributeProfile(args *utils.Ten
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveAttributeProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveChargerProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveChargerProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1270,7 +1271,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveChargerProfile(args *utils.Tenan
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveChargerProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1289,7 +1290,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherProfile(args *utils.Te
}, utils.MetaReplicator, utils.ReplicatorSv1RemoveDispatcherProfile, args, rpl)
}
-func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherHost(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{},
@@ -1309,7 +1310,7 @@ func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherHost(args *utils.Tenan
}
// ReplicatorSv1GetIndexes .
-func (dS *DispatcherService) ReplicatorSv1GetIndexes(args *utils.GetIndexesArg, reply *map[string]utils.StringSet) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *map[string]utils.StringSet) (err error) {
if args == nil {
args = &utils.GetIndexesArg{}
}
@@ -1327,7 +1328,7 @@ func (dS *DispatcherService) ReplicatorSv1GetIndexes(args *utils.GetIndexesArg,
}
// ReplicatorSv1SetIndexes .
-func (dS *DispatcherService) ReplicatorSv1SetIndexes(args *utils.SetIndexesArg, reply *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetIndexes(ctx *context.Context, args *utils.SetIndexesArg, reply *string) (err error) {
if args == nil {
args = &utils.SetIndexesArg{}
}
@@ -1345,7 +1346,7 @@ func (dS *DispatcherService) ReplicatorSv1SetIndexes(args *utils.SetIndexesArg,
}
// ReplicatorSv1RemoveIndexes .
-func (dS *DispatcherService) ReplicatorSv1RemoveIndexes(args *utils.GetIndexesArg, reply *string) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *string) (err error) {
if args == nil {
args = &utils.GetIndexesArg{}
}
diff --git a/dispatchers/replicator_it_test.go b/dispatchers/replicator_it_test.go
index 705e8fdc0..03cac35bc 100644
--- a/dispatchers/replicator_it_test.go
+++ b/dispatchers/replicator_it_test.go
@@ -25,6 +25,7 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -85,13 +86,13 @@ func TestDspReplicator(t *testing.T) {
func testDspRplPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.ReplicatorSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.ReplicatorSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
reply = utils.EmptyString
- if err := allEngine2.RPC.Call(utils.ReplicatorSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine2.RPC.Call(context.Background(), utils.ReplicatorSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -104,27 +105,27 @@ func testDspRplPingFailover(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine.stopEngine(t)
reply = utils.EmptyString
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
reply = utils.EmptyString
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
allEngine2.startEngine(t)
reply = utils.EmptyString
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -144,7 +145,7 @@ func testDspRplAccount(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetAccount, attrSetAccount, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetAccount, attrSetAccount, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetAccount: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -157,7 +158,7 @@ func testDspRplAccount(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAccount, argsGetAccount, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAccount, argsGetAccount, &reply); err != nil {
t.Errorf("Expecting: %+v, received: %+v", utils.ErrNotFound, err)
} else if reply.ID != attrSetAccount.Account.ID {
t.Errorf("Expecting: %+v, received: %+v", attrSetAccount.Account.ID, reply.ID)
@@ -169,13 +170,13 @@ func testDspRplAccount(t *testing.T) {
// Stop engine 1
allEngine.stopEngine(t)
// Get
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAccount, argsGetAccount, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAccount, argsGetAccount, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
// Start engine 1
allEngine.startEngine(t)
// Remove Account
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveAccount, &utils.StringWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveAccount, &utils.StringWithAPIOpts{
Arg: "cgrates.org:1008",
APIOpts: map[string]any{
utils.OptsAPIKey: "repl12345",
@@ -186,7 +187,7 @@ func testDspRplAccount(t *testing.T) {
t.Error("Unexpected reply returned", replyStr)
}
// Get Account
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAccount, argsGetAccount, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAccount, argsGetAccount, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -204,7 +205,7 @@ func testDspRplSupplierProfile(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetRouteProfile, argSetSupplierProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetRouteProfile, argSetSupplierProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetSupplierProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -221,7 +222,7 @@ func testDspRplSupplierProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRouteProfile, argRouteProfile, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRouteProfile, argRouteProfile, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetSupplierProfile: ", err)
} else if reply.ID != argSetSupplierProfile.ID {
t.Errorf("Expecting: %+v, received: %+v", argSetSupplierProfile.ID, reply.ID)
@@ -233,7 +234,7 @@ func testDspRplSupplierProfile(t *testing.T) {
allEngine.stopEngine(t)
// Get RouteProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRouteProfile, argRouteProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRouteProfile, argRouteProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -241,13 +242,13 @@ func testDspRplSupplierProfile(t *testing.T) {
allEngine.startEngine(t)
// Remove SupplierProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveRouteProfile, argRouteProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveRouteProfile, argRouteProfile, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get RouteProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRouteProfile, argRouteProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRouteProfile, argRouteProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -264,7 +265,7 @@ func testDspRplAttributeProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetAttributeProfile, setAttributeProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetAttributeProfile, setAttributeProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetAttributeProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -281,7 +282,7 @@ func testDspRplAttributeProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAttributeProfile, argAttributeProfile, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAttributeProfile, argAttributeProfile, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetAttributeProfile: ", err)
} else if reply.ID != setAttributeProfile.ID {
t.Errorf("Expecting: %+v, received: %+v", setAttributeProfile.ID, reply.ID)
@@ -292,7 +293,7 @@ func testDspRplAttributeProfile(t *testing.T) {
allEngine.stopEngine(t)
// Get AttributeProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAttributeProfile, argAttributeProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAttributeProfile, argAttributeProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -300,14 +301,14 @@ func testDspRplAttributeProfile(t *testing.T) {
allEngine.startEngine(t)
// Remove AttributeProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveAttributeProfile, argAttributeProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveAttributeProfile, argAttributeProfile, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get AttributeProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAttributeProfile, argAttributeProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAttributeProfile, argAttributeProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -324,7 +325,7 @@ func testDspRplChargerProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetChargerProfile, setChargerProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetChargerProfile, setChargerProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetChargerProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -340,7 +341,7 @@ func testDspRplChargerProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetChargerProfile, argsChargerProfile, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetChargerProfile, argsChargerProfile, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetChargerProfile: ", err)
} else if reply.ID != argsChargerProfile.ID {
t.Errorf("Expecting: %+v, received: %+v", argsChargerProfile.ID, reply.ID)
@@ -351,7 +352,7 @@ func testDspRplChargerProfile(t *testing.T) {
allEngine.stopEngine(t)
// Get ChargerProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetChargerProfile, argsChargerProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetChargerProfile, argsChargerProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -359,14 +360,14 @@ func testDspRplChargerProfile(t *testing.T) {
allEngine.startEngine(t)
// Remove ChargerProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveChargerProfile, argsChargerProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveChargerProfile, argsChargerProfile, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get ChargerProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetChargerProfile, argsChargerProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetChargerProfile, argsChargerProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -383,7 +384,7 @@ func testDspRplDispatcherProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetDispatcherProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -399,7 +400,7 @@ func testDspRplDispatcherProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDispatcherProfile, argsDispatcherProfile, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherProfile, argsDispatcherProfile, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetDispatcherProfile: ", err)
} else if reply.ID != argsDispatcherProfile.ID {
t.Errorf("Expecting: %+v, received: %+v", argsDispatcherProfile.ID, reply.ID)
@@ -410,7 +411,7 @@ func testDspRplDispatcherProfile(t *testing.T) {
allEngine.stopEngine(t)
// Get DispatcherProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDispatcherProfile, argsDispatcherProfile, &reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherProfile, argsDispatcherProfile, &reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -418,14 +419,14 @@ func testDspRplDispatcherProfile(t *testing.T) {
allEngine.startEngine(t)
// Remove DispatcherProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveDispatcherProfile, argsDispatcherProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveDispatcherProfile, argsDispatcherProfile, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get DispatcherProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDispatcherProfile, argsDispatcherProfile, &reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherProfile, argsDispatcherProfile, &reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -444,7 +445,7 @@ func testDspRplDispatcherHost(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetDispatcherHost: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -460,7 +461,7 @@ func testDspRplDispatcherHost(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDispatcherHost, argsDispatcherHost, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherHost, argsDispatcherHost, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetDispatcherHost: ", err)
} else if reply.ID != argsDispatcherHost.ID {
t.Errorf("Expecting: %+v, received: %+v", argsDispatcherHost.ID, reply.ID)
@@ -471,7 +472,7 @@ func testDspRplDispatcherHost(t *testing.T) {
allEngine.stopEngine(t)
// Get DispatcherHost
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDispatcherHost, argsDispatcherHost, &reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherHost, argsDispatcherHost, &reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -479,14 +480,14 @@ func testDspRplDispatcherHost(t *testing.T) {
allEngine.startEngine(t)
// Remove DispatcherHost
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveDispatcherHost, argsDispatcherHost, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveDispatcherHost, argsDispatcherHost, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get DispatcherHost
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDispatcherHost, argsDispatcherHost, &reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherHost, argsDispatcherHost, &reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -503,7 +504,7 @@ func testDspRplFilter(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetFilter, setFilter, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetFilter, setFilter, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetFilter: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -519,7 +520,7 @@ func testDspRplFilter(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetFilter, argsFilter, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetFilter, argsFilter, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetFilter: ", err)
} else if reply.ID != argsFilter.ID {
t.Errorf("Expecting: %+v, received: %+v", argsFilter.ID, reply.ID)
@@ -530,7 +531,7 @@ func testDspRplFilter(t *testing.T) {
allEngine.stopEngine(t)
// Get Filter
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetFilter, argsFilter, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetFilter, argsFilter, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -538,14 +539,14 @@ func testDspRplFilter(t *testing.T) {
allEngine.startEngine(t)
// Remove Filter
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveFilter, argsFilter, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveFilter, argsFilter, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get Filter
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetFilter, argsFilter, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetFilter, argsFilter, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -562,7 +563,7 @@ func testDspRplThreshold(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetThreshold, setThreshold, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetThreshold, setThreshold, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetThreshold: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -578,7 +579,7 @@ func testDspRplThreshold(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetThreshold, argsThreshold, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsThreshold, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetThreshold: ", err)
} else if reply.ID != argsThreshold.ID {
t.Errorf("Expecting: %+v, received: %+v", argsThreshold.ID, reply.ID)
@@ -589,7 +590,7 @@ func testDspRplThreshold(t *testing.T) {
allEngine.stopEngine(t)
// Get Threshold
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetThreshold, argsThreshold, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsThreshold, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -597,14 +598,14 @@ func testDspRplThreshold(t *testing.T) {
allEngine.startEngine(t)
// Remove Threshold
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveThreshold, argsThreshold, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveThreshold, argsThreshold, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get Threshold
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetThreshold, argsThreshold, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsThreshold, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -621,7 +622,7 @@ func testDspRplThresholdProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetThresholdProfile, setThresholdProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetThresholdProfile, setThresholdProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetThresholdProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -637,7 +638,7 @@ func testDspRplThresholdProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetThresholdProfile, argsThresholdProfile, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetThresholdProfile, argsThresholdProfile, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetThresholdProfile: ", err)
} else if reply.ID != argsThresholdProfile.ID {
t.Errorf("Expecting: %+v, received: %+v", argsThresholdProfile.ID, reply.ID)
@@ -648,7 +649,7 @@ func testDspRplThresholdProfile(t *testing.T) {
allEngine.stopEngine(t)
// Get ThresholdProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetThresholdProfile, argsThresholdProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetThresholdProfile, argsThresholdProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -656,14 +657,14 @@ func testDspRplThresholdProfile(t *testing.T) {
allEngine.startEngine(t)
// Remove ThresholdProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveThresholdProfile, argsThresholdProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveThresholdProfile, argsThresholdProfile, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get ThresholdProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetThresholdProfile, argsThresholdProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetThresholdProfile, argsThresholdProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -680,7 +681,7 @@ func testDspRplStatQueue(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetStatQueue, setStatQueue, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetStatQueue, setStatQueue, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetStatQueue: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -696,7 +697,7 @@ func testDspRplStatQueue(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetStatQueue, argsStatQueue, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsStatQueue, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetStatQueue: ", err)
} else if reply.ID != argsStatQueue.ID {
t.Errorf("Expecting: %+v, received: %+v", argsStatQueue.ID, reply.ID)
@@ -707,7 +708,7 @@ func testDspRplStatQueue(t *testing.T) {
allEngine.stopEngine(t)
// Get StatQueue
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetStatQueue, argsStatQueue, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsStatQueue, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -715,14 +716,14 @@ func testDspRplStatQueue(t *testing.T) {
allEngine.startEngine(t)
// Remove StatQueue
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveStatQueue, argsStatQueue, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveStatQueue, argsStatQueue, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get StatQueue
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetStatQueue, argsStatQueue, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsStatQueue, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -739,7 +740,7 @@ func testDspRplStatQueueProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetStatQueueProfile, setStatQueueProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetStatQueueProfile, setStatQueueProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetStatQueueProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -755,7 +756,7 @@ func testDspRplStatQueueProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetStatQueueProfile, argsStatQueueProfile, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueueProfile, argsStatQueueProfile, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetStatQueueProfile: ", err)
} else if reply.ID != argsStatQueueProfile.ID {
t.Errorf("Expecting: %+v, received: %+v", argsStatQueueProfile.ID, reply.ID)
@@ -766,7 +767,7 @@ func testDspRplStatQueueProfile(t *testing.T) {
allEngine.stopEngine(t)
// Get StatQueueProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetStatQueueProfile, argsStatQueueProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueueProfile, argsStatQueueProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -774,14 +775,14 @@ func testDspRplStatQueueProfile(t *testing.T) {
allEngine.startEngine(t)
// Remove StatQueueProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveStatQueueProfile, argsStatQueueProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveStatQueueProfile, argsStatQueueProfile, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get StatQueueProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetStatQueueProfile, argsStatQueueProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueueProfile, argsStatQueueProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -798,7 +799,7 @@ func testDspRplResource(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetResource, setResource, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetResource, setResource, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetResource: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -814,7 +815,7 @@ func testDspRplResource(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetResource, argsResource, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsResource, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetResource: ", err)
} else if reply.ID != argsResource.ID {
t.Errorf("Expecting: %+v, received: %+v", argsResource.ID, reply.ID)
@@ -825,7 +826,7 @@ func testDspRplResource(t *testing.T) {
allEngine.stopEngine(t)
// Get Resource
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetResource, argsResource, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsResource, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -833,14 +834,14 @@ func testDspRplResource(t *testing.T) {
allEngine.startEngine(t)
// Remove Resource
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveResource, argsResource, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveResource, argsResource, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get Resource
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetResource, argsResource, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsResource, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -857,7 +858,7 @@ func testDspRplResourceProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetResourceProfile, setResourceProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetResourceProfile, setResourceProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetResourceProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -873,7 +874,7 @@ func testDspRplResourceProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetResourceProfile, argsResourceProfile, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetResourceProfile, argsResourceProfile, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetResourceProfile: ", err)
} else if reply.ID != argsResourceProfile.ID {
t.Errorf("Expecting: %+v, received: %+v", argsResourceProfile.ID, reply.ID)
@@ -884,7 +885,7 @@ func testDspRplResourceProfile(t *testing.T) {
allEngine.stopEngine(t)
// Get ResourceProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetResourceProfile, argsResourceProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetResourceProfile, argsResourceProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -892,14 +893,14 @@ func testDspRplResourceProfile(t *testing.T) {
allEngine.startEngine(t)
// Remove ResourceProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveResourceProfile, argsResourceProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveResourceProfile, argsResourceProfile, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get ResourceProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetResourceProfile, argsResourceProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetResourceProfile, argsResourceProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -917,7 +918,7 @@ func testDspRplTiming(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetTiming, setTiming, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetTiming, setTiming, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetTiming: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -931,7 +932,7 @@ func testDspRplTiming(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetTiming, argsTiming, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetTiming, argsTiming, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetTiming: ", err)
} else if reply.ID != argsTiming.Arg {
t.Errorf("Expecting: %+v, received: %+v", argsTiming.Arg, reply.ID)
@@ -942,7 +943,7 @@ func testDspRplTiming(t *testing.T) {
allEngine.stopEngine(t)
// Get Timing
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetTiming, argsTiming, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetTiming, argsTiming, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -950,14 +951,14 @@ func testDspRplTiming(t *testing.T) {
allEngine.startEngine(t)
// Remove Timing
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveTiming, argsTiming, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveTiming, argsTiming, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get Timing
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetTiming, argsTiming, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetTiming, argsTiming, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -973,7 +974,7 @@ func testDspRplActionTriggers(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetActionTriggers, setActionTriggers, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetActionTriggers, setActionTriggers, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetActionTriggers: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -987,7 +988,7 @@ func testDspRplActionTriggers(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActionTriggers, argsActionTriggers, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActionTriggers, argsActionTriggers, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetActionTriggers: ", err)
} else if reply[0].ID != argsActionTriggers.Arg {
t.Errorf("Expecting: %+v, received: %+v", argsActionTriggers.Arg, reply[0].ID)
@@ -996,7 +997,7 @@ func testDspRplActionTriggers(t *testing.T) {
allEngine.stopEngine(t)
// Get ActionTriggers
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActionTriggers, argsActionTriggers, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActionTriggers, argsActionTriggers, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -1004,14 +1005,14 @@ func testDspRplActionTriggers(t *testing.T) {
allEngine.startEngine(t)
// Remove ActionTriggers
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveActionTriggers, argsActionTriggers, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveActionTriggers, argsActionTriggers, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get ActionTriggers
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActionTriggers, argsActionTriggers, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActionTriggers, argsActionTriggers, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -1027,7 +1028,7 @@ func testDspRplSharedGroup(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetSharedGroup, setSharedGroup, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetSharedGroup, setSharedGroup, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetSharedGroup: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -1041,7 +1042,7 @@ func testDspRplSharedGroup(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetSharedGroup, argsSharedGroup, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetSharedGroup, argsSharedGroup, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetSharedGroup: ", err)
} else if reply.Id != setSharedGroup.Id {
t.Errorf("Expecting: %+v, received: %+v", setSharedGroup.Id, reply.Id)
@@ -1050,7 +1051,7 @@ func testDspRplSharedGroup(t *testing.T) {
allEngine.stopEngine(t)
// Get SharedGroup
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetSharedGroup, argsSharedGroup, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetSharedGroup, argsSharedGroup, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -1058,14 +1059,14 @@ func testDspRplSharedGroup(t *testing.T) {
allEngine.startEngine(t)
// Remove SharedGroup
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveSharedGroup, argsSharedGroup, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveSharedGroup, argsSharedGroup, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get SharedGroup
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetSharedGroup, argsSharedGroup, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetSharedGroup, argsSharedGroup, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -1086,7 +1087,7 @@ func testDspRplActions(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetActions, setActions, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetActions, setActions, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetActions: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -1100,7 +1101,7 @@ func testDspRplActions(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActions, argsActions, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActions, argsActions, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetActions: ", err)
} else if reply[0].Id != setActions.Acs[0].Id {
t.Errorf("Expecting: %+v, received: %+v", setActions.Acs[0].Id, reply[0].Id)
@@ -1111,7 +1112,7 @@ func testDspRplActions(t *testing.T) {
allEngine.stopEngine(t)
// Get Actions
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActions, argsActions, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActions, argsActions, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -1119,14 +1120,14 @@ func testDspRplActions(t *testing.T) {
allEngine.startEngine(t)
// Remove Actions
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveActions, argsActions, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveActions, argsActions, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get Actions
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActions, argsActions, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActions, argsActions, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -1152,7 +1153,7 @@ func testDspRplActionPlan(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetActionPlan, setActionPlan, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetActionPlan, setActionPlan, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetActionPlan: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -1166,7 +1167,7 @@ func testDspRplActionPlan(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActionPlan, argsActionPlan, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActionPlan, argsActionPlan, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetActionPlan: ", err)
} else if reply.Id != setActionPlan.Ats.Id {
t.Errorf("Expecting: %+v, received: %+v", setActionPlan.Ats.Id, reply.Id)
@@ -1175,7 +1176,7 @@ func testDspRplActionPlan(t *testing.T) {
allEngine.stopEngine(t)
// Get ActionPlan
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActionPlan, argsActionPlan, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActionPlan, argsActionPlan, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -1183,14 +1184,14 @@ func testDspRplActionPlan(t *testing.T) {
allEngine.startEngine(t)
// Remove ActionPlan
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveActionPlan, argsActionPlan, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveActionPlan, argsActionPlan, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get ActionPlan
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetActionPlan, argsActionPlan, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetActionPlan, argsActionPlan, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -1206,7 +1207,7 @@ func testDspRplAccountActionPlans(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetAccountActionPlans, setAccountActionPlans, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetAccountActionPlans, setAccountActionPlans, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetAccountActionPlans: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -1220,7 +1221,7 @@ func testDspRplAccountActionPlans(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAccountActionPlans, argsAccountActionPlans, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAccountActionPlans, argsAccountActionPlans, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetAccountActionPlans: ", err)
} else if reply[0] != setAccountActionPlans.AcntID {
t.Errorf("Expecting: %+v, received: %+v", setAccountActionPlans.AcntID, reply[0])
@@ -1229,7 +1230,7 @@ func testDspRplAccountActionPlans(t *testing.T) {
allEngine.stopEngine(t)
// Get AccountActionPlans
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAccountActionPlans, argsAccountActionPlans, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAccountActionPlans, argsAccountActionPlans, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -1237,14 +1238,14 @@ func testDspRplAccountActionPlans(t *testing.T) {
allEngine.startEngine(t)
// Remove AccountActionPlans
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemAccountActionPlans, argsAccountActionPlans, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemAccountActionPlans, argsAccountActionPlans, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get AccountActionPlans
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetAccountActionPlans, argsAccountActionPlans, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetAccountActionPlans, argsAccountActionPlans, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -1265,7 +1266,7 @@ func testDspRplRatingPlan(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetRatingPlan, setRatingPlan, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetRatingPlan, setRatingPlan, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetRatingPlan: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -1279,7 +1280,7 @@ func testDspRplRatingPlan(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRatingPlan, argsRatingPlan, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRatingPlan, argsRatingPlan, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetRatingPlan: ", err)
} else if reply.Id != setRatingPlan.Id {
t.Errorf("Expecting: %+v, received: %+v", setRatingPlan.Id, reply.Id)
@@ -1288,7 +1289,7 @@ func testDspRplRatingPlan(t *testing.T) {
allEngine.stopEngine(t)
// Get RatingPlan
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRatingPlan, argsRatingPlan, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRatingPlan, argsRatingPlan, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -1296,14 +1297,14 @@ func testDspRplRatingPlan(t *testing.T) {
allEngine.startEngine(t)
// Remove RatingPlan
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveRatingPlan, argsRatingPlan, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveRatingPlan, argsRatingPlan, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get RatingPlan
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRatingPlan, argsRatingPlan, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRatingPlan, argsRatingPlan, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -1322,7 +1323,7 @@ func testDspRplRatingProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetRatingProfile, setRatingProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetRatingProfile, setRatingProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetRatingProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -1336,7 +1337,7 @@ func testDspRplRatingProfile(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRatingProfile, argsRatingProfile, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRatingProfile, argsRatingProfile, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetRatingProfile: ", err)
} else if reply.Id != setRatingProfile.Id {
t.Errorf("Expecting: %+v, received: %+v", setRatingProfile.Id, reply.Id)
@@ -1345,7 +1346,7 @@ func testDspRplRatingProfile(t *testing.T) {
allEngine.stopEngine(t)
// Get RatingProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRatingProfile, argsRatingProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRatingProfile, argsRatingProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -1353,14 +1354,14 @@ func testDspRplRatingProfile(t *testing.T) {
allEngine.startEngine(t)
// Remove RatingProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveRatingProfile, argsRatingProfile, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveRatingProfile, argsRatingProfile, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get RatingProfile
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetRatingProfile, argsRatingProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetRatingProfile, argsRatingProfile, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -1377,7 +1378,7 @@ func testDspRplDestination(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetDestination, setDestination, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetDestination, setDestination, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetDestination: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -1391,7 +1392,7 @@ func testDspRplDestination(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDestination, argsDestination, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, argsDestination, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetDestination: ", err)
} else if reply.Id != setDestination.Id {
t.Errorf("Expecting: %+v, received: %+v", setDestination.Id, reply.Id)
@@ -1400,7 +1401,7 @@ func testDspRplDestination(t *testing.T) {
allEngine.stopEngine(t)
// Get Destination
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDestination, argsDestination, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, argsDestination, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
@@ -1408,14 +1409,14 @@ func testDspRplDestination(t *testing.T) {
allEngine.startEngine(t)
// Remove Destination
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveDestination, argsDestination, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1RemoveDestination, argsDestination, &replyStr); err != nil {
t.Error(err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Get Destination
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetDestination, argsDestination, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, argsDestination, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
}
@@ -1432,7 +1433,7 @@ func testDspRplLoadIDs(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetLoadIDs, setLoadIDs, &replyStr); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1SetLoadIDs, setLoadIDs, &replyStr); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.SetLoadIDs: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -1446,7 +1447,7 @@ func testDspRplLoadIDs(t *testing.T) {
utils.OptsAPIKey: "repl12345",
},
}
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetItemLoadIDs, argsLoadIDs, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetItemLoadIDs, argsLoadIDs, &reply); err != nil {
t.Error("Unexpected error when calling ReplicatorSv1.GetItemLoadIDs: ", err)
} else if reflect.DeepEqual(reply, setLoadIDs) {
t.Errorf("Expecting: %+v, received: %+v", setLoadIDs, reply)
@@ -1459,7 +1460,7 @@ func testDspRplLoadIDs(t *testing.T) {
allEngine.stopEngine(t)
// Get LoadIDs
- if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetItemLoadIDs, argsLoadIDs, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ReplicatorSv1GetItemLoadIDs, argsLoadIDs, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
}
diff --git a/dispatchers/replicator_test.go b/dispatchers/replicator_test.go
index 7e56d5338..5a090ed99 100644
--- a/dispatchers/replicator_test.go
+++ b/dispatchers/replicator_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -31,7 +32,7 @@ func TestDspReplicatorSv1PingNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ReplicatorSv1Ping(nil, reply)
+ result := dspSrv.ReplicatorSv1Ping(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -46,7 +47,7 @@ func TestDspReplicatorSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1Ping(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -60,7 +61,7 @@ func TestDspReplicatorSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1Ping(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -72,7 +73,7 @@ func TestDspReplicatorSv1GetAccountNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.Account
- result := dspSrv.ReplicatorSv1GetAccount(nil, reply)
+ result := dspSrv.ReplicatorSv1GetAccount(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -87,7 +88,7 @@ func TestDspReplicatorSv1GetAccountNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Account
- result := dspSrv.ReplicatorSv1GetAccount(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetAccount(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -101,7 +102,7 @@ func TestDspReplicatorSv1GetAccountErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Account
- result := dspSrv.ReplicatorSv1GetAccount(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetAccount(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -114,7 +115,7 @@ func TestDspReplicatorSv1GetDestinationNilEvent(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.Destination
- result := dspSrv.ReplicatorSv1GetDestination(nil, reply)
+ result := dspSrv.ReplicatorSv1GetDestination(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -129,7 +130,7 @@ func TestDspReplicatorSv1GetDestinationNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Destination
- result := dspSrv.ReplicatorSv1GetDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetDestination(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -143,7 +144,7 @@ func TestDspReplicatorSv1GetDestinationErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Destination
- result := dspSrv.ReplicatorSv1GetDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetDestination(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -155,7 +156,7 @@ func TestDspReplicatorSv1GetReverseDestinationNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *[]string
- result := dspSrv.ReplicatorSv1GetReverseDestination(nil, reply)
+ result := dspSrv.ReplicatorSv1GetReverseDestination(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -170,7 +171,7 @@ func TestDspReplicatorSv1GetReverseDestinationNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.ReplicatorSv1GetReverseDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetReverseDestination(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -184,7 +185,7 @@ func TestDspReplicatorSv1GetReverseDestinationErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.ReplicatorSv1GetReverseDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetReverseDestination(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -201,7 +202,7 @@ func TestDspReplicatorSv1GetStatQueueNil(t *testing.T) {
},
}
var reply *engine.StatQueue
- result := dspSrv.ReplicatorSv1GetStatQueue(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetStatQueue(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -217,7 +218,7 @@ func TestDspReplicatorSv1GetStatQueueErrorNil(t *testing.T) {
},
}
var reply *engine.StatQueue
- result := dspSrv.ReplicatorSv1GetStatQueue(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetStatQueue(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -234,7 +235,7 @@ func TestDspReplicatorSv1GetFilterNil(t *testing.T) {
},
}
var reply *engine.Filter
- result := dspSrv.ReplicatorSv1GetFilter(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetFilter(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -250,7 +251,7 @@ func TestDspReplicatorSv1GetFilterErrorNil(t *testing.T) {
},
}
var reply *engine.Filter
- result := dspSrv.ReplicatorSv1GetFilter(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetFilter(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -267,7 +268,7 @@ func TestDspReplicatorSv1GetThresholdNil(t *testing.T) {
},
}
var reply *engine.Threshold
- result := dspSrv.ReplicatorSv1GetThreshold(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetThreshold(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -283,7 +284,7 @@ func TestDspReplicatorSv1GetThresholdErrorNil(t *testing.T) {
},
}
var reply *engine.Threshold
- result := dspSrv.ReplicatorSv1GetThreshold(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetThreshold(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -300,7 +301,7 @@ func TestDspReplicatorSv1GetThresholdProfileNil(t *testing.T) {
},
}
var reply *engine.ThresholdProfile
- result := dspSrv.ReplicatorSv1GetThresholdProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetThresholdProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -316,7 +317,7 @@ func TestDspReplicatorSv1GetThresholdProfileErrorNil(t *testing.T) {
},
}
var reply *engine.ThresholdProfile
- result := dspSrv.ReplicatorSv1GetThresholdProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetThresholdProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -333,7 +334,7 @@ func TestDspReplicatorSv1GetStatQueueProfileNil(t *testing.T) {
},
}
var reply *engine.StatQueueProfile
- result := dspSrv.ReplicatorSv1GetStatQueueProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetStatQueueProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -349,7 +350,7 @@ func TestDspReplicatorSv1GetStatQueueProfileErrorNil(t *testing.T) {
},
}
var reply *engine.StatQueueProfile
- result := dspSrv.ReplicatorSv1GetStatQueueProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetStatQueueProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -361,7 +362,7 @@ func TestDspReplicatorSv1GetTimingNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *utils.TPTiming
- result := dspSrv.ReplicatorSv1GetTiming(nil, reply)
+ result := dspSrv.ReplicatorSv1GetTiming(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -376,7 +377,7 @@ func TestDspReplicatorSv1GetTimingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.TPTiming
- result := dspSrv.ReplicatorSv1GetTiming(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetTiming(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -390,7 +391,7 @@ func TestDspReplicatorSv1GetTimingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.TPTiming
- result := dspSrv.ReplicatorSv1GetTiming(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetTiming(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -407,7 +408,7 @@ func TestDspReplicatorSv1GetResourceNil(t *testing.T) {
},
}
var reply *engine.Resource
- result := dspSrv.ReplicatorSv1GetResource(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetResource(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -423,7 +424,7 @@ func TestDspReplicatorSv1GetResourceErrorNil(t *testing.T) {
},
}
var reply *engine.Resource
- result := dspSrv.ReplicatorSv1GetResource(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetResource(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -440,7 +441,7 @@ func TestDspReplicatorSv1GetResourceProfileReplicatorSv1GetResourceProfileNil(t
},
}
var reply *engine.ResourceProfile
- result := dspSrv.ReplicatorSv1GetResourceProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetResourceProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -456,7 +457,7 @@ func TestDspReplicatorSv1GetResourceProfileErrorNil(t *testing.T) {
},
}
var reply *engine.ResourceProfile
- result := dspSrv.ReplicatorSv1GetResourceProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetResourceProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -468,7 +469,7 @@ func TestDspReplicatorSv1GetActionTriggersNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.ActionTriggers
- result := dspSrv.ReplicatorSv1GetActionTriggers(nil, reply)
+ result := dspSrv.ReplicatorSv1GetActionTriggers(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -483,7 +484,7 @@ func TestDspReplicatorSv1GetActionTriggersNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.ActionTriggers
- result := dspSrv.ReplicatorSv1GetActionTriggers(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActionTriggers(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -497,7 +498,7 @@ func TestDspReplicatorSv1GetActionTriggersErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.ActionTriggers
- result := dspSrv.ReplicatorSv1GetActionTriggers(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActionTriggers(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -509,7 +510,7 @@ func TestDspReplicatorSv1GetSharedGroupNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.SharedGroup
- result := dspSrv.ReplicatorSv1GetSharedGroup(nil, reply)
+ result := dspSrv.ReplicatorSv1GetSharedGroup(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -524,7 +525,7 @@ func TestDspReplicatorSv1GetSharedGroupNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.SharedGroup
- result := dspSrv.ReplicatorSv1GetSharedGroup(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetSharedGroup(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -538,7 +539,7 @@ func TestDspReplicatorSv1GetSharedGroupErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.SharedGroup
- result := dspSrv.ReplicatorSv1GetSharedGroup(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetSharedGroup(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -550,7 +551,7 @@ func TestDspReplicatorSv1GetActionsNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.Actions
- result := dspSrv.ReplicatorSv1GetActions(nil, reply)
+ result := dspSrv.ReplicatorSv1GetActions(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -565,7 +566,7 @@ func TestDspReplicatorSv1GetActionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Actions
- result := dspSrv.ReplicatorSv1GetActions(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -576,7 +577,7 @@ func TestDspReplicatorSv1GetActionsErrorNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *engine.Actions
- result := dspSrv.ReplicatorSv1GetActions(nil, reply)
+ result := dspSrv.ReplicatorSv1GetActions(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -590,7 +591,7 @@ func TestDspReplicatorSv1GetActionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Actions
- result := dspSrv.ReplicatorSv1GetActions(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -605,7 +606,7 @@ func TestDspReplicatorSv1GetActionPlanNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.ActionPlan
- result := dspSrv.ReplicatorSv1GetActionPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActionPlan(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -616,7 +617,7 @@ func TestDspReplicatorSv1GetActionPlanErrorNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *engine.ActionPlan
- result := dspSrv.ReplicatorSv1GetActionPlan(nil, reply)
+ result := dspSrv.ReplicatorSv1GetActionPlan(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -630,7 +631,7 @@ func TestDspReplicatorSv1GetActionPlanErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.ActionPlan
- result := dspSrv.ReplicatorSv1GetActionPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActionPlan(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -642,7 +643,7 @@ func TestDspReplicatorSv1GetAllActionPlansNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *map[string]*engine.ActionPlan
- result := dspSrv.ReplicatorSv1GetAllActionPlans(nil, reply)
+ result := dspSrv.ReplicatorSv1GetAllActionPlans(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -657,7 +658,7 @@ func TestDspReplicatorSv1GetAllActionPlansNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]*engine.ActionPlan
- result := dspSrv.ReplicatorSv1GetAllActionPlans(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetAllActionPlans(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -671,7 +672,7 @@ func TestDspReplicatorSv1GetAllActionPlansErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]*engine.ActionPlan
- result := dspSrv.ReplicatorSv1GetAllActionPlans(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetAllActionPlans(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -683,7 +684,7 @@ func TestDspReplicatorSv1GetAccountActionPlansNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *[]string
- result := dspSrv.ReplicatorSv1GetAccountActionPlans(nil, reply)
+ result := dspSrv.ReplicatorSv1GetAccountActionPlans(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -698,7 +699,7 @@ func TestDspReplicatorSv1GetAccountActionPlansNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.ReplicatorSv1GetAccountActionPlans(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetAccountActionPlans(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -712,7 +713,7 @@ func TestDspReplicatorSv1GetAccountActionPlansErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.ReplicatorSv1GetAccountActionPlans(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetAccountActionPlans(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -725,7 +726,7 @@ func TestDspReplicatorSv1GetRatingPlanNilEvent(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.RatingPlan
- result := dspSrv.ReplicatorSv1GetRatingPlan(nil, reply)
+ result := dspSrv.ReplicatorSv1GetRatingPlan(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -740,7 +741,7 @@ func TestDspReplicatorSv1GetRatingPlanNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.RatingPlan
- result := dspSrv.ReplicatorSv1GetRatingPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRatingPlan(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -754,7 +755,7 @@ func TestDspReplicatorSv1GetRatingPlanErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.RatingPlan
- result := dspSrv.ReplicatorSv1GetRatingPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRatingPlan(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -766,7 +767,7 @@ func TestDspReplicatorSv1GetRatingProfileNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.RatingProfile
- result := dspSrv.ReplicatorSv1GetRatingProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1GetRatingProfile(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -781,7 +782,7 @@ func TestDspReplicatorSv1GetRatingProfileNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.RatingProfile
- result := dspSrv.ReplicatorSv1GetRatingProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRatingProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -795,7 +796,7 @@ func TestDspReplicatorSv1GetRatingProfileErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.RatingProfile
- result := dspSrv.ReplicatorSv1GetRatingProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRatingProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -812,7 +813,7 @@ func TestDspReplicatorSv1GetRouteProfileNil(t *testing.T) {
},
}
var reply *engine.RouteProfile
- result := dspSrv.ReplicatorSv1GetRouteProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRouteProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -828,7 +829,7 @@ func TestDspReplicatorSv1GetRouteProfileErrorNil(t *testing.T) {
},
}
var reply *engine.RouteProfile
- result := dspSrv.ReplicatorSv1GetRouteProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRouteProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -845,7 +846,7 @@ func TestDspReplicatorSv1GetAttributeProfileNil(t *testing.T) {
},
}
var reply *engine.AttributeProfile
- result := dspSrv.ReplicatorSv1GetAttributeProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetAttributeProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -861,7 +862,7 @@ func TestDspReplicatorSv1GetAttributeProfileErrorNil(t *testing.T) {
},
}
var reply *engine.AttributeProfile
- result := dspSrv.ReplicatorSv1GetAttributeProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetAttributeProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -878,7 +879,7 @@ func TestDspReplicatorSv1GetChargerProfileNil(t *testing.T) {
},
}
var reply *engine.ChargerProfile
- result := dspSrv.ReplicatorSv1GetChargerProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetChargerProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -894,7 +895,7 @@ func TestDspReplicatorSv1GetChargerProfileErrorNil(t *testing.T) {
},
}
var reply *engine.ChargerProfile
- result := dspSrv.ReplicatorSv1GetChargerProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetChargerProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -911,7 +912,7 @@ func TestDspReplicatorSv1GetDispatcherProfileNil(t *testing.T) {
},
}
var reply *engine.DispatcherProfile
- result := dspSrv.ReplicatorSv1GetDispatcherProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetDispatcherProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -927,7 +928,7 @@ func TestDspReplicatorSv1GetDispatcherProfileErrorNil(t *testing.T) {
},
}
var reply *engine.DispatcherProfile
- result := dspSrv.ReplicatorSv1GetDispatcherProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetDispatcherProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -944,7 +945,7 @@ func TestDspReplicatorSv1GetDispatcherHostNil(t *testing.T) {
},
}
var reply *engine.DispatcherHost
- result := dspSrv.ReplicatorSv1GetDispatcherHost(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetDispatcherHost(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -960,7 +961,7 @@ func TestDspReplicatorSv1GetDispatcherHostErrorNil(t *testing.T) {
},
}
var reply *engine.DispatcherHost
- result := dspSrv.ReplicatorSv1GetDispatcherHost(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetDispatcherHost(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -972,7 +973,7 @@ func TestDspReplicatorSv1GetItemLoadIDsNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *map[string]int64
- result := dspSrv.ReplicatorSv1GetItemLoadIDs(nil, reply)
+ result := dspSrv.ReplicatorSv1GetItemLoadIDs(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -987,7 +988,7 @@ func TestDspReplicatorSv1GetItemLoadIDsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]int64
- result := dspSrv.ReplicatorSv1GetItemLoadIDs(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetItemLoadIDs(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1001,7 +1002,7 @@ func TestDspReplicatorSv1GetItemLoadIDsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]int64
- result := dspSrv.ReplicatorSv1GetItemLoadIDs(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetItemLoadIDs(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1018,7 +1019,7 @@ func TestDspReplicatorSv1SetThresholdProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetThresholdProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetThresholdProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1034,7 +1035,7 @@ func TestDspReplicatorSv1SetThresholdProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetThresholdProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetThresholdProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1045,7 +1046,7 @@ func TestDspReplicatorSv1SetThresholdProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetThresholdProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetThresholdProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1062,7 +1063,7 @@ func TestDspReplicatorSv1SetThresholdNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetThreshold(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetThreshold(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1078,7 +1079,7 @@ func TestDspReplicatorSv1SetThresholdErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetThreshold(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetThreshold(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1089,7 +1090,7 @@ func TestDspReplicatorSv1SetThresholdNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetThreshold(nil, reply)
+ result := dspSrv.ReplicatorSv1SetThreshold(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1104,7 +1105,7 @@ func TestDspReplicatorSv1SetDestinationNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetDestination(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1118,7 +1119,7 @@ func TestDspReplicatorSv1SetDestinationErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetDestination(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1129,7 +1130,7 @@ func TestDspReplicatorSv1SetDestinationNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetDestination(nil, reply)
+ result := dspSrv.ReplicatorSv1SetDestination(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1144,7 +1145,7 @@ func TestDspReplicatorSv1SetAccountNil(t *testing.T) {
Account: &engine.Account{},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetAccount(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetAccount(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1160,7 +1161,7 @@ func TestDspReplicatorSv1SetAccountErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetAccount(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetAccount(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1171,7 +1172,7 @@ func TestDspReplicatorSv1SetAccountNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetAccount(nil, reply)
+ result := dspSrv.ReplicatorSv1SetAccount(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1188,7 +1189,7 @@ func TestDspReplicatorSv1SetReverseDestinationNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetReverseDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetReverseDestination(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1204,7 +1205,7 @@ func TestDspReplicatorSv1SetReverseDestinationErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetReverseDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetReverseDestination(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1215,7 +1216,7 @@ func TestDspReplicatorSv1SetReverseDestinationNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetReverseDestination(nil, reply)
+ result := dspSrv.ReplicatorSv1SetReverseDestination(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1232,7 +1233,7 @@ func TestDspReplicatorSv1SetStatQueueNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetStatQueue(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetStatQueue(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1248,7 +1249,7 @@ func TestDspReplicatorSv1SetStatQueueErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetStatQueue(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetStatQueue(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1259,7 +1260,7 @@ func TestDspReplicatorSv1SetStatQueueNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetStatQueue(nil, reply)
+ result := dspSrv.ReplicatorSv1SetStatQueue(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1276,7 +1277,7 @@ func TestDspReplicatorSv1SetFilterNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetFilter(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetFilter(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1292,7 +1293,7 @@ func TestDspReplicatorSv1SetFilterErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetFilter(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetFilter(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1303,7 +1304,7 @@ func TestDspReplicatorSv1SetFilterNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetFilter(nil, reply)
+ result := dspSrv.ReplicatorSv1SetFilter(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1320,7 +1321,7 @@ func TestDspReplicatorSv1SetStatQueueProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetStatQueueProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetStatQueueProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1336,7 +1337,7 @@ func TestDspReplicatorSv1SetStatQueueProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetStatQueueProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetStatQueueProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1347,7 +1348,7 @@ func TestDspReplicatorSv1SetStatQueueProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetStatQueueProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetStatQueueProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1362,7 +1363,7 @@ func TestDspReplicatorSv1SetTimingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetTiming(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetTiming(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1376,7 +1377,7 @@ func TestDspReplicatorSv1SetTimingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetTiming(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetTiming(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1387,7 +1388,7 @@ func TestDspReplicatorSv1SetTimingNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetTiming(nil, reply)
+ result := dspSrv.ReplicatorSv1SetTiming(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1404,7 +1405,7 @@ func TestDspReplicatorSv1SetResourceNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetResource(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetResource(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1420,7 +1421,7 @@ func TestDspReplicatorSv1SetResourceErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetResource(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetResource(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1431,7 +1432,7 @@ func TestDspReplicatorSv1SetResourceNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetResource(nil, reply)
+ result := dspSrv.ReplicatorSv1SetResource(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1448,7 +1449,7 @@ func TestDspReplicatorSv1SetResourceProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetResourceProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetResourceProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1464,7 +1465,7 @@ func TestReplicatorSv1SetResourceProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetResourceProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetResourceProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1475,7 +1476,7 @@ func TestDspReplicatorSv1SetResourceProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetResourceProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetResourceProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1490,7 +1491,7 @@ func TestDspReplicatorSv1SetSharedGroupNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetSharedGroup(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetSharedGroup(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1504,7 +1505,7 @@ func TestReplicatorSv1SetSharedGroupErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetSharedGroup(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetSharedGroup(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1515,7 +1516,7 @@ func TestDspReplicatorSv1SetSharedGroupNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetSharedGroup(nil, reply)
+ result := dspSrv.ReplicatorSv1SetSharedGroup(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1530,7 +1531,7 @@ func TestDspReplicatorSv1SetActionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetActions(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetActions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1544,7 +1545,7 @@ func TestReplicatorSv1SetActionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetActions(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetActions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1555,7 +1556,7 @@ func TestDspReplicatorSv1SetActionsNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetActions(nil, reply)
+ result := dspSrv.ReplicatorSv1SetActions(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1570,7 +1571,7 @@ func TestDspReplicatorSv1SetRatingProfileNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetRatingProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetRatingProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1584,7 +1585,7 @@ func TestReplicatorSv1SetRatingProfileErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetRatingProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetRatingProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1595,7 +1596,7 @@ func TestDspReplicatorSv1SetRatingProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetRatingProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetRatingProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1610,7 +1611,7 @@ func TestDspReplicatorSv1SetRatingPlanNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetRatingPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetRatingPlan(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1624,7 +1625,7 @@ func TestDspReplicatorSv1SetRatingPlanErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetRatingPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetRatingPlan(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1635,7 +1636,7 @@ func TestDspReplicatorSv1SetRatingPlanNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetRatingPlan(nil, reply)
+ result := dspSrv.ReplicatorSv1SetRatingPlan(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1650,7 +1651,7 @@ func TestDspReplicatorSv1SetActionTriggersNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetActionTriggers(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetActionTriggers(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1664,7 +1665,7 @@ func TestDspReplicatorSv1SetActionTriggersErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetActionTriggers(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetActionTriggers(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1675,7 +1676,7 @@ func TestDspReplicatorSv1SetActionTriggersNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetActionTriggers(nil, reply)
+ result := dspSrv.ReplicatorSv1SetActionTriggers(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1692,7 +1693,7 @@ func TestDspReplicatorSv1SetRouteProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetRouteProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetRouteProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1708,7 +1709,7 @@ func TestDspReplicatorSv1SetRouteProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetRouteProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetRouteProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1719,7 +1720,7 @@ func TestDspReplicatorSv1SetRouteProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetRouteProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetRouteProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1736,7 +1737,7 @@ func TestDspReplicatorSv1SetAttributeProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetAttributeProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetAttributeProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1752,7 +1753,7 @@ func TestDspReplicatorSv1SetAttributeProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetAttributeProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetAttributeProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1763,7 +1764,7 @@ func TestDspReplicatorSv1SetAttributeProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetAttributeProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetAttributeProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1780,7 +1781,7 @@ func TestDspReplicatorSv1SetChargerProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetChargerProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetChargerProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1796,7 +1797,7 @@ func TestDspReplicatorSv1SetChargerProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetChargerProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetChargerProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1807,7 +1808,7 @@ func TestDspReplicatorSv1SetChargerProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetChargerProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetChargerProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1824,7 +1825,7 @@ func TestDspReplicatorSv1SetDispatcherProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetDispatcherProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetDispatcherProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1840,7 +1841,7 @@ func TestDspReplicatorSv1SetDispatcherProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetDispatcherProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetDispatcherProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1851,7 +1852,7 @@ func TestDspReplicatorSv1SetDispatcherProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetDispatcherProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetDispatcherProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1866,7 +1867,7 @@ func TestDspReplicatorSv1SetActionPlanNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetActionPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetActionPlan(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1880,7 +1881,7 @@ func TestDspReplicatorSv1SetActionPlanErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetActionPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetActionPlan(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1891,7 +1892,7 @@ func TestDspReplicatorSv1SetActionPlanNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetActionPlan(nil, reply)
+ result := dspSrv.ReplicatorSv1SetActionPlan(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1906,7 +1907,7 @@ func TestDspReplicatorSv1SetAccountActionPlansNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetAccountActionPlans(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetAccountActionPlans(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1920,7 +1921,7 @@ func TestDspReplicatorSv1SetAccountActionPlansErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetAccountActionPlans(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetAccountActionPlans(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1931,7 +1932,7 @@ func TestDspReplicatorSv1SetAccountActionPlansNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetAccountActionPlans(nil, reply)
+ result := dspSrv.ReplicatorSv1SetAccountActionPlans(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1948,7 +1949,7 @@ func TestDspReplicatorSv1SetDispatcherHostNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetDispatcherHost(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetDispatcherHost(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1964,7 +1965,7 @@ func TestReplicatorSv1SetDispatcherHostErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetDispatcherHost(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetDispatcherHost(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1975,7 +1976,7 @@ func TestDspReplicatorSv1SetDispatcherHostNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetDispatcherHost(nil, reply)
+ result := dspSrv.ReplicatorSv1SetDispatcherHost(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1992,7 +1993,7 @@ func TestDspReplicatorSv1RemoveThresholdNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveThreshold(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveThreshold(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2008,7 +2009,7 @@ func TestReplicatorSv1RemoveThresholdErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveThreshold(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveThreshold(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2019,7 +2020,7 @@ func TestDspReplicatorSv1RemoveDestinationNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDestination(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveDestination(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2034,7 +2035,7 @@ func TestDspReplicatorSv1RemoveDestinationNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveDestination(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2048,7 +2049,7 @@ func TestReplicatorSv1RemoveDestinationErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDestination(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveDestination(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2063,7 +2064,7 @@ func TestDspReplicatorSv1SetLoadIDsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetLoadIDs(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetLoadIDs(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2077,7 +2078,7 @@ func TestDspReplicatorSv1SetLoadIDsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetLoadIDs(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetLoadIDs(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2088,7 +2089,7 @@ func TestDspReplicatorSv1SetLoadIDsNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetLoadIDs(nil, reply)
+ result := dspSrv.ReplicatorSv1SetLoadIDs(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2103,7 +2104,7 @@ func TestDspReplicatorSv1RemoveAccountNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveAccount(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveAccount(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2117,7 +2118,7 @@ func TestDspReplicatorSv1RemoveAccountErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveAccount(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveAccount(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2128,7 +2129,7 @@ func TestDspReplicatorSv1RemoveAccountNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveAccount(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveAccount(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2145,7 +2146,7 @@ func TestDspReplicatorSv1RemoveStatQueueNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveStatQueue(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveStatQueue(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2161,7 +2162,7 @@ func TestDspReplicatorSv1RemoveStatQueueErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveStatQueue(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveStatQueue(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2172,7 +2173,7 @@ func TestDspReplicatorSv1RemoveStatQueueNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveStatQueue(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveStatQueue(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2183,7 +2184,7 @@ func TestDspReplicatorSv1RemoveThresholdNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveThreshold(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveThreshold(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2200,7 +2201,7 @@ func TestDspReplicatorSv1RemoveFilterNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveFilter(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveFilter(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2216,7 +2217,7 @@ func TestDspReplicatorSv1RemoveFilterErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveFilter(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveFilter(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2227,7 +2228,7 @@ func TestDspReplicatorSv1RemoveFilterNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveFilter(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveFilter(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2244,7 +2245,7 @@ func TestDspReplicatorSv1RemoveThresholdProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveThresholdProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveThresholdProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2260,7 +2261,7 @@ func TestDspReplicatorSv1RemoveThresholdProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveThresholdProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveThresholdProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2271,7 +2272,7 @@ func TestDspReplicatorSv1RemoveThresholdProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveThresholdProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveThresholdProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2288,7 +2289,7 @@ func TestDspReplicatorSv1RemoveStatQueueProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveStatQueueProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveStatQueueProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2304,7 +2305,7 @@ func TestDspReplicatorSv1RemoveStatQueueProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveStatQueueProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveStatQueueProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2315,7 +2316,7 @@ func TestDspReplicatorSv1RemoveStatQueueProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveStatQueueProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveStatQueueProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2332,7 +2333,7 @@ func TestDspReplicatorSv1RemoveResourceNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveResource(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveResource(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2348,7 +2349,7 @@ func TestDspReplicatorSv1RemoveResourceErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveResource(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveResource(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2359,7 +2360,7 @@ func TestDspReplicatorSv1RemoveResourceNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveResource(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveResource(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2376,7 +2377,7 @@ func TestDspReplicatorSv1RemoveResourceProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveResourceProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveResourceProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2392,7 +2393,7 @@ func TestDspReplicatorSv1RemoveResourceProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveResourceProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveResourceProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2403,7 +2404,7 @@ func TestDspReplicatorSv1RemoveResourceProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveResourceProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveResourceProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2418,7 +2419,7 @@ func TestDspReplicatorSv1RemoveTimingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveTiming(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveTiming(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2432,7 +2433,7 @@ func TestDspReplicatorSv1RemoveTimingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveTiming(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveTiming(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2443,7 +2444,7 @@ func TestDspReplicatorSv1RemoveTimingNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveTiming(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveTiming(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2458,7 +2459,7 @@ func TestDspReplicatorSv1RemoveActionTriggersNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionTriggers(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionTriggers(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2472,7 +2473,7 @@ func TestDspReplicatorSv1RemoveActionTriggersErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionTriggers(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionTriggers(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2483,7 +2484,7 @@ func TestDspReplicatorSv1RemoveActionTriggersNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionTriggers(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionTriggers(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2498,7 +2499,7 @@ func TestDspReplicatorSv1RemoveSharedGroupNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveSharedGroup(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveSharedGroup(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2512,7 +2513,7 @@ func TestDspReplicatorSv1RemoveSharedGroupErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveSharedGroup(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveSharedGroup(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2523,7 +2524,7 @@ func TestDspReplicatorSv1RemoveSharedGroupNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveSharedGroup(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveSharedGroup(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2538,7 +2539,7 @@ func TestDspReplicatorSv1RemoveActionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActions(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveActions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2552,7 +2553,7 @@ func TestDspReplicatorSv1RemoveActionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActions(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveActions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2563,7 +2564,7 @@ func TestDspReplicatorSv1RemoveActionsEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActions(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveActions(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2578,7 +2579,7 @@ func TestDspReplicatorSv1RemoveActionPlanNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionPlan(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2592,7 +2593,7 @@ func TestDspReplicatorSv1RemoveActionPlanErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionPlan(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2603,7 +2604,7 @@ func TestDspReplicatorSv1RemoveActionPlanNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionPlan(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionPlan(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2617,7 +2618,7 @@ func TestDspReplicatorSv1RemAccountActionPlansNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemAccountActionPlans(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemAccountActionPlans(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2631,7 +2632,7 @@ func TestDspReplicatorSv1RemAccountActionPlansErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemAccountActionPlans(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemAccountActionPlans(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2642,7 +2643,7 @@ func TestDspReplicatorSv1RemAccountActionPlansNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemAccountActionPlans(nil, reply)
+ result := dspSrv.ReplicatorSv1RemAccountActionPlans(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2657,7 +2658,7 @@ func TestDspReplicatorSv1RemoveRatingPlanNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRatingPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveRatingPlan(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2671,7 +2672,7 @@ func TestDspReplicatorSv1RemoveRatingPlanErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRatingPlan(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveRatingPlan(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2682,7 +2683,7 @@ func TestDspReplicatorSv1RemoveRatingPlanNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRatingPlan(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveRatingPlan(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2697,7 +2698,7 @@ func TestDspReplicatorSv1RemoveRatingProfileNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRatingProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveRatingProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2711,7 +2712,7 @@ func TestDspReplicatorSv1RemoveRatingProfileErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRatingProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveRatingProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2722,7 +2723,7 @@ func TestDspReplicatorSv1RemoveRatingProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRatingProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveRatingProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2739,7 +2740,7 @@ func TestDspReplicatorSv1RemoveRouteProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRouteProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveRouteProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2755,7 +2756,7 @@ func TestDspReplicatorSv1RemoveRouteProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRouteProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveRouteProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2766,7 +2767,7 @@ func TestDspReplicatorSv1RemoveRouteProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRouteProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveRouteProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2783,7 +2784,7 @@ func TestDspReplicatorSv1RemoveAttributeProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveAttributeProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveAttributeProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2799,7 +2800,7 @@ func TestDspReplicatorSv1RemoveAttributeProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveAttributeProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveAttributeProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2810,7 +2811,7 @@ func TestDspReplicatorSv1RemoveAttributeProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveAttributeProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveAttributeProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2827,7 +2828,7 @@ func TestDspReplicatorSv1RemoveChargerProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveChargerProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveChargerProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2843,7 +2844,7 @@ func TestDspReplicatorSv1RemoveChargerProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveChargerProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveChargerProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2854,7 +2855,7 @@ func TestDspReplicatorSv1RemoveChargerProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveChargerProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveChargerProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2871,7 +2872,7 @@ func TestDspReplicatorSv1RemoveDispatcherHostNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDispatcherHost(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveDispatcherHost(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2887,7 +2888,7 @@ func TestDspReplicatorSv1RemoveDispatcherHostErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDispatcherHost(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveDispatcherHost(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2898,7 +2899,7 @@ func TestDspReplicatorSv1RemoveDispatcherHostNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDispatcherHost(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveDispatcherHost(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2915,7 +2916,7 @@ func TestDspReplicatorSv1RemoveDispatcherProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDispatcherProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveDispatcherProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2931,7 +2932,7 @@ func TestDspReplicatorSv1RemoveDispatcherProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDispatcherProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveDispatcherProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2942,7 +2943,7 @@ func TestDspReplicatorSv1RemoveDispatcherProfileNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveDispatcherProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveDispatcherProfile(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2957,7 +2958,7 @@ func TestDspReplicatorSv1GetIndexesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]utils.StringSet
- result := dspSrv.ReplicatorSv1GetIndexes(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetIndexes(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2971,7 +2972,7 @@ func TestDspReplicatorSv1GetIndexesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *map[string]utils.StringSet
- result := dspSrv.ReplicatorSv1GetIndexes(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetIndexes(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2982,7 +2983,7 @@ func TestDspReplicatorSv1GetIndexesNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *map[string]utils.StringSet
- result := dspSrv.ReplicatorSv1GetIndexes(nil, reply)
+ result := dspSrv.ReplicatorSv1GetIndexes(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2997,7 +2998,7 @@ func TestDspReplicatorSv1SetIndexesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetIndexes(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetIndexes(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -3011,7 +3012,7 @@ func TestDspReplicatorSv1SetIndexesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1SetIndexes(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetIndexes(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -3022,7 +3023,7 @@ func TestDspReplicatorSv1SetIndexesNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1SetIndexes(nil, reply)
+ result := dspSrv.ReplicatorSv1SetIndexes(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -3037,7 +3038,7 @@ func TestDspReplicatorSv1RemoveIndexesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveIndexes(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveIndexes(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -3051,7 +3052,7 @@ func TestDspReplicatorSv1RemoveIndexesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveIndexes(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveIndexes(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -3062,7 +3063,7 @@ func TestDspReplicatorSv1RemoveIndexesNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ReplicatorSv1RemoveIndexes(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveIndexes(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/resources.go b/dispatchers/resources.go
index 4d5a32737..9d142d8d8 100644
--- a/dispatchers/resources.go
+++ b/dispatchers/resources.go
@@ -21,11 +21,12 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ResourceSv1Ping(args *utils.CGREvent, rpl *string) (err error) {
+func (dS *DispatcherService) ResourceSv1Ping(ctx *context.Context, args *utils.CGREvent, rpl *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
}
@@ -39,7 +40,7 @@ func (dS *DispatcherService) ResourceSv1Ping(args *utils.CGREvent, rpl *string)
return dS.Dispatch(args, utils.MetaResources, utils.ResourceSv1Ping, args, rpl)
}
-func (dS *DispatcherService) ResourceSv1GetResourcesForEvent(args *utils.CGREvent,
+func (dS *DispatcherService) ResourceSv1GetResourcesForEvent(ctx *context.Context, args *utils.CGREvent,
reply *engine.Resources) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
@@ -54,7 +55,7 @@ func (dS *DispatcherService) ResourceSv1GetResourcesForEvent(args *utils.CGREven
return dS.Dispatch(args, utils.MetaResources, utils.ResourceSv1GetResourcesForEvent, args, reply)
}
-func (dS *DispatcherService) ResourceSv1AuthorizeResources(args *utils.CGREvent,
+func (dS *DispatcherService) ResourceSv1AuthorizeResources(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
@@ -69,7 +70,7 @@ func (dS *DispatcherService) ResourceSv1AuthorizeResources(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaResources, utils.ResourceSv1AuthorizeResources, args, reply)
}
-func (dS *DispatcherService) ResourceSv1AllocateResources(args *utils.CGREvent,
+func (dS *DispatcherService) ResourceSv1AllocateResources(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
@@ -84,7 +85,7 @@ func (dS *DispatcherService) ResourceSv1AllocateResources(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaResources, utils.ResourceSv1AllocateResources, args, reply)
}
-func (dS *DispatcherService) ResourceSv1ReleaseResources(args *utils.CGREvent,
+func (dS *DispatcherService) ResourceSv1ReleaseResources(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && args.Tenant != utils.EmptyString {
@@ -99,7 +100,7 @@ func (dS *DispatcherService) ResourceSv1ReleaseResources(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaResources, utils.ResourceSv1ReleaseResources, args, reply)
}
-func (dS *DispatcherService) ResourceSv1GetResource(args *utils.TenantIDWithAPIOpts, reply *engine.Resource) (err error) {
+func (dS *DispatcherService) ResourceSv1GetResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Resource) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
@@ -117,7 +118,7 @@ func (dS *DispatcherService) ResourceSv1GetResource(args *utils.TenantIDWithAPIO
}, utils.MetaResources, utils.ResourceSv1GetResource, args, reply)
}
-func (dS *DispatcherService) ResourceSv1GetResourceWithConfig(args *utils.TenantIDWithAPIOpts, reply *engine.ResourceWithConfig) (err error) {
+func (dS *DispatcherService) ResourceSv1GetResourceWithConfig(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ResourceWithConfig) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
diff --git a/dispatchers/resources_it_test.go b/dispatchers/resources_it_test.go
index d2c0c9560..ad9d7a649 100644
--- a/dispatchers/resources_it_test.go
+++ b/dispatchers/resources_it_test.go
@@ -25,6 +25,7 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -67,7 +68,7 @@ func TestDspResourceSIT(t *testing.T) {
func testDspResPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.ResourceSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.ResourceSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -79,19 +80,19 @@ func testDspResPingFailover(t *testing.T) {
utils.OptsAPIKey: "res12345",
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.ResourceSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.ResourceSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
@@ -100,12 +101,12 @@ func testDspResPingFailover(t *testing.T) {
func testDspResPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.ResourceSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.ResourceSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "res12345",
@@ -132,7 +133,7 @@ func testDspResTestAuthKey(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1GetResourcesForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent,
args, &rs); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
@@ -160,7 +161,7 @@ func testDspResTestAuthKey2(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1GetResourcesForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent,
args, &rs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRs, rs) {
@@ -184,7 +185,7 @@ func testDspResTestAuthKey3(t *testing.T) {
utils.OptsResourcesUnits: 1,
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1AllocateResources,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
}
@@ -193,7 +194,7 @@ func testDspResTestAuthKey3(t *testing.T) {
t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1AuthorizeResources, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1AuthorizeResources, &ev, &reply); err != nil {
t.Error(err)
} else if reply != eAllocationMsg { // already 3 usages active before allow call, we should have now more than allowed
t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
@@ -211,7 +212,7 @@ func testDspResTestAuthKey3(t *testing.T) {
utils.OptsResourcesUnits: 17,
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1AuthorizeResources,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&ev, &reply); err == nil || err.Error() != utils.ErrResourceUnauthorized.Error() {
t.Error(err)
}
@@ -229,7 +230,7 @@ func testDspResTestAuthKey3(t *testing.T) {
utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e55",
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1ReleaseResources,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1ReleaseResources,
ev, &reply); err != nil {
t.Error(err)
}
@@ -248,7 +249,7 @@ func testDspResTestAuthKey3(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1AuthorizeResources, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1AuthorizeResources, &ev, &reply); err != nil {
t.Error(err)
} else if reply != "ResGroup1" {
t.Error("Unexpected reply returned", reply)
@@ -266,7 +267,7 @@ func testDspResTestAuthKey3(t *testing.T) {
utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61",
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
t.Error(err)
} else if len(*rs) != 1 {
t.Errorf("Resources: %+v", utils.ToJSON(rs))
@@ -292,7 +293,7 @@ func testDspResTestAuthKey3(t *testing.T) {
utils.OptsAPIKey: "res12345",
},
}
- if err := dispEngine.RPC.Call(utils.ResourceSv1GetResource, argsGetResource, &r); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResourceSv1GetResource, argsGetResource, &r); err != nil {
t.Fatal(err)
}
// make sure Resource1 have no more active resources
diff --git a/dispatchers/resources_test.go b/dispatchers/resources_test.go
index 56bc9ff0a..762b70811 100644
--- a/dispatchers/resources_test.go
+++ b/dispatchers/resources_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -31,7 +32,7 @@ func TestDspResourceSv1PingNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ResourceSv1Ping(nil, reply)
+ result := dspSrv.ResourceSv1Ping(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -46,7 +47,7 @@ func TestDspResourceSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResourceSv1Ping(CGREvent, reply)
+ result := dspSrv.ResourceSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -60,7 +61,7 @@ func TestDspResourceSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResourceSv1Ping(CGREvent, reply)
+ result := dspSrv.ResourceSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -75,7 +76,7 @@ func TestDspResourceSv1GetResourcesForEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Resources
- result := dspSrv.ResourceSv1GetResourcesForEvent(CGREvent, reply)
+ result := dspSrv.ResourceSv1GetResourcesForEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -89,7 +90,7 @@ func TestDspResourceSv1GetResourcesForEventErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Resources
- result := dspSrv.ResourceSv1GetResourcesForEvent(CGREvent, reply)
+ result := dspSrv.ResourceSv1GetResourcesForEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -104,7 +105,7 @@ func TestDspResourceSv1AuthorizeResourcesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResourceSv1AuthorizeResources(CGREvent, reply)
+ result := dspSrv.ResourceSv1AuthorizeResources(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -118,7 +119,7 @@ func TestDspResourceSv1AuthorizeResourcesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResourceSv1AuthorizeResources(CGREvent, reply)
+ result := dspSrv.ResourceSv1AuthorizeResources(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -133,7 +134,7 @@ func TestDspResourceSv1ReleaseResourcesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResourceSv1ReleaseResources(CGREvent, reply)
+ result := dspSrv.ResourceSv1ReleaseResources(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -147,7 +148,7 @@ func TestDspResourceSv1ReleaseResourcesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResourceSv1ReleaseResources(CGREvent, reply)
+ result := dspSrv.ResourceSv1ReleaseResources(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -164,7 +165,7 @@ func TestDspResourceSv1GetResourceNil(t *testing.T) {
},
}
var reply *engine.Resource
- result := dspSrv.ResourceSv1GetResource(CGREvent, reply)
+ result := dspSrv.ResourceSv1GetResource(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -180,7 +181,7 @@ func TestDspResourceSv1GetResourceErrorNil(t *testing.T) {
},
}
var reply *engine.Resource
- result := dspSrv.ResourceSv1GetResource(CGREvent, reply)
+ result := dspSrv.ResourceSv1GetResource(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -195,7 +196,7 @@ func TestDspResourceSv1AllocateResourcesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResourceSv1AllocateResources(CGREvent, reply)
+ result := dspSrv.ResourceSv1AllocateResources(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -209,7 +210,7 @@ func TestDspResourceSv1AllocateResourcesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResourceSv1AllocateResources(CGREvent, reply)
+ result := dspSrv.ResourceSv1AllocateResources(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -226,7 +227,7 @@ func TestDspResourceSv1GetResourceWithConfigNil(t *testing.T) {
},
}
var reply *engine.ResourceWithConfig
- result := dspSrv.ResourceSv1GetResourceWithConfig(CGREvent, reply)
+ result := dspSrv.ResourceSv1GetResourceWithConfig(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -242,7 +243,7 @@ func TestDspResourceSv1GetResourceWithConfigErrorNil(t *testing.T) {
},
}
var reply *engine.ResourceWithConfig
- result := dspSrv.ResourceSv1GetResourceWithConfig(CGREvent, reply)
+ result := dspSrv.ResourceSv1GetResourceWithConfig(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/responder.go b/dispatchers/responder.go
index 3547bfb33..fbaa80cf2 100644
--- a/dispatchers/responder.go
+++ b/dispatchers/responder.go
@@ -21,12 +21,13 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
// ResponderPing interogates Responder server responsible to process the event
-func (dS *DispatcherService) ResponderPing(args *utils.CGREvent,
+func (dS *DispatcherService) ResponderPing(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
@@ -41,7 +42,7 @@ func (dS *DispatcherService) ResponderPing(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaResponder, utils.ResponderPing, args, reply)
}
-func (dS *DispatcherService) ResponderGetCost(args *engine.CallDescriptorWithAPIOpts,
+func (dS *DispatcherService) ResponderGetCost(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts,
reply *engine.CallCost) (err error) {
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.ResponderGetCost, args.Tenant,
@@ -52,7 +53,7 @@ func (dS *DispatcherService) ResponderGetCost(args *engine.CallDescriptorWithAPI
return dS.Dispatch(args.AsCGREvent(args.APIOpts), utils.MetaResponder, utils.ResponderGetCost, args, reply)
}
-func (dS *DispatcherService) ResponderDebit(args *engine.CallDescriptorWithAPIOpts,
+func (dS *DispatcherService) ResponderDebit(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts,
reply *engine.CallCost) (err error) {
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.ResponderDebit, args.Tenant,
@@ -63,7 +64,7 @@ func (dS *DispatcherService) ResponderDebit(args *engine.CallDescriptorWithAPIOp
return dS.Dispatch(args.AsCGREvent(args.APIOpts), utils.MetaResponder, utils.ResponderDebit, args, reply)
}
-func (dS *DispatcherService) ResponderMaxDebit(args *engine.CallDescriptorWithAPIOpts,
+func (dS *DispatcherService) ResponderMaxDebit(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts,
reply *engine.CallCost) (err error) {
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.ResponderMaxDebit, args.Tenant,
@@ -74,7 +75,7 @@ func (dS *DispatcherService) ResponderMaxDebit(args *engine.CallDescriptorWithAP
return dS.Dispatch(args.AsCGREvent(args.APIOpts), utils.MetaResponder, utils.ResponderMaxDebit, args, reply)
}
-func (dS *DispatcherService) ResponderRefundIncrements(args *engine.CallDescriptorWithAPIOpts,
+func (dS *DispatcherService) ResponderRefundIncrements(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts,
reply *engine.Account) (err error) {
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.ResponderRefundIncrements, args.Tenant,
@@ -85,7 +86,7 @@ func (dS *DispatcherService) ResponderRefundIncrements(args *engine.CallDescript
return dS.Dispatch(args.AsCGREvent(args.APIOpts), utils.MetaResponder, utils.ResponderRefundIncrements, args, reply)
}
-func (dS *DispatcherService) ResponderRefundRounding(args *engine.CallDescriptorWithAPIOpts,
+func (dS *DispatcherService) ResponderRefundRounding(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts,
reply *engine.Account) (err error) {
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.ResponderRefundRounding, args.Tenant,
@@ -96,7 +97,7 @@ func (dS *DispatcherService) ResponderRefundRounding(args *engine.CallDescriptor
return dS.Dispatch(args.AsCGREvent(args.APIOpts), utils.MetaResponder, utils.ResponderRefundRounding, args, reply)
}
-func (dS *DispatcherService) ResponderGetMaxSessionTime(args *engine.CallDescriptorWithAPIOpts,
+func (dS *DispatcherService) ResponderGetMaxSessionTime(ctx *context.Context, args *engine.CallDescriptorWithAPIOpts,
reply *time.Duration) (err error) {
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.ResponderGetMaxSessionTime, args.Tenant,
@@ -107,7 +108,7 @@ func (dS *DispatcherService) ResponderGetMaxSessionTime(args *engine.CallDescrip
return dS.Dispatch(args.AsCGREvent(args.APIOpts), utils.MetaResponder, utils.ResponderGetMaxSessionTime, args, reply)
}
-func (dS *DispatcherService) ResponderShutdown(args *utils.TenantWithAPIOpts,
+func (dS *DispatcherService) ResponderShutdown(ctx *context.Context, args *utils.TenantWithAPIOpts,
reply *string) (err error) {
tnt := utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -122,7 +123,7 @@ func (dS *DispatcherService) ResponderShutdown(args *utils.TenantWithAPIOpts,
}, utils.MetaResponder, utils.ResponderShutdown, args, reply)
}
-func (dS *DispatcherService) ResponderGetCostOnRatingPlans(arg *utils.GetCostOnRatingPlansArgs, reply *map[string]any) (err error) {
+func (dS *DispatcherService) ResponderGetCostOnRatingPlans(ctx *context.Context, arg *utils.GetCostOnRatingPlansArgs, reply *map[string]any) (err error) {
tnt := utils.FirstNonEmpty(arg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.ResponderGetCostOnRatingPlans, tnt,
@@ -136,7 +137,7 @@ func (dS *DispatcherService) ResponderGetCostOnRatingPlans(arg *utils.GetCostOnR
}, utils.MetaResponder, utils.ResponderGetCostOnRatingPlans, arg, reply)
}
-func (dS *DispatcherService) ResponderGetMaxSessionTimeOnAccounts(arg *utils.GetMaxSessionTimeOnAccountsArgs, reply *map[string]any) (err error) {
+func (dS *DispatcherService) ResponderGetMaxSessionTimeOnAccounts(ctx *context.Context, arg *utils.GetMaxSessionTimeOnAccountsArgs, reply *map[string]any) (err error) {
tnt := utils.FirstNonEmpty(arg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.ResponderGetMaxSessionTimeOnAccounts, tnt,
diff --git a/dispatchers/responder_it_test.go b/dispatchers/responder_it_test.go
index 6c7b0e079..f50887cb0 100644
--- a/dispatchers/responder_it_test.go
+++ b/dispatchers/responder_it_test.go
@@ -26,6 +26,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/rpcclient"
)
@@ -68,7 +69,7 @@ func TestDspResponder(t *testing.T) {
func testDspResponderStatus(t *testing.T) {
var reply map[string]any
- if err := allEngine.RPC.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "ALL" {
t.Errorf("Received: %s", reply)
@@ -79,13 +80,13 @@ func testDspResponderStatus(t *testing.T) {
utils.OptsAPIKey: "rsp12345",
},
}
- if err := dispEngine.RPC.Call(utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "ALL" {
t.Errorf("Received: %s", utils.ToJSON(reply))
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "ALL2" {
t.Errorf("Received: %s", utils.ToJSON(reply))
@@ -115,12 +116,12 @@ func getNodeWithRoute(route string, t *testing.T) string {
},
}
- if err := dispEngine.RPC.Call(utils.DispatcherSv1RemotePing, pingEv, &pingReply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.DispatcherSv1RemotePing, pingEv, &pingReply); err != nil {
t.Error(err)
} else if pingReply != utils.Pong {
t.Errorf("Received: %s", pingReply)
}
- if err := dispEngine.RPC.Call(utils.DispatcherSv1RemoteStatus, ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.DispatcherSv1RemoteStatus, ev, &reply); err != nil {
t.Error(err)
}
if reply[utils.NodeID] == nil {
@@ -148,17 +149,17 @@ func testDspResponderShutdown(t *testing.T) {
utils.OptsAPIKey: "rsp12345",
},
}
- if err := dispEngine.RPC.Call(utils.ResponderShutdown, ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResponderShutdown, ev, &reply); err != nil {
t.Error(err)
} else if reply != "Done!" {
t.Errorf("Received: %s", utils.ToJSON(reply))
}
- if err := dispEngine.RPC.Call(utils.DispatcherSv1RemoteStatus, &ev, &statusReply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.DispatcherSv1RemoteStatus, &ev, &statusReply); err != nil {
t.Error(err)
} else if statusReply[utils.NodeID] != "ALL2" {
t.Errorf("Received: %s", utils.ToJSON(statusReply))
}
- if err := dispEngine.RPC.Call(utils.ResponderShutdown, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResponderShutdown, &ev, &reply); err != nil {
t.Error(err)
} else if reply != "Done!" {
t.Errorf("Received: %s", utils.ToJSON(reply))
@@ -179,7 +180,7 @@ func testDspResponderBroadcast(t *testing.T) {
utils.OptsAPIKey: "rsp12345",
},
}
- if err := dispEngine.RPC.Call(utils.ResponderPing, pingEv, &pingReply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResponderPing, pingEv, &pingReply); err != nil {
t.Error(err)
} else if pingReply != utils.Pong {
t.Errorf("Received: %s", pingReply)
@@ -187,14 +188,14 @@ func testDspResponderBroadcast(t *testing.T) {
allEngine2.stopEngine(t)
pingReply = ""
- if err := dispEngine.RPC.Call(utils.ResponderPing, pingEv, &pingReply); err == nil ||
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResponderPing, pingEv, &pingReply); err == nil ||
err.Error() != utils.ErrPartiallyExecuted.Error() {
t.Errorf("Expected error: %s received error: %v and reply %q", utils.ErrPartiallyExecuted.Error(), err, pingReply)
}
allEngine.stopEngine(t)
time.Sleep(10 * time.Millisecond)
pingReply = ""
- if err := dispEngine.RPC.Call(utils.ResponderPing, pingEv, &pingReply); err == nil ||
+ if err := dispEngine.RPC.Call(context.Background(), utils.ResponderPing, pingEv, &pingReply); err == nil ||
!rpcclient.IsNetworkError(err) {
t.Errorf("Expected error: %s received error: %v and reply %q", utils.ErrPartiallyExecuted.Error(), err, pingReply)
}
@@ -224,12 +225,12 @@ func testDspResponderInternal(t *testing.T) {
utils.OptsRouteID: route,
},
}
- if err := dispEngine.RPC.Call(utils.DispatcherSv1RemotePing, pingEv, &pingReply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.DispatcherSv1RemotePing, pingEv, &pingReply); err != nil {
t.Error(err)
} else if pingReply != utils.Pong {
t.Errorf("Received: %s", pingReply)
}
- if err := dispEngine.RPC.Call(utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
t.Error(err)
}
if reply[utils.NodeID] == nil {
diff --git a/dispatchers/responder_test.go b/dispatchers/responder_test.go
index 6cfacf7a4..eae337ee7 100644
--- a/dispatchers/responder_test.go
+++ b/dispatchers/responder_test.go
@@ -22,6 +22,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -32,7 +33,7 @@ func TestDspResponderPingEventNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ResponderPing(nil, reply)
+ result := dspSrv.ResponderPing(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -47,7 +48,7 @@ func TestDspResponderPingEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResponderPing(CGREvent, reply)
+ result := dspSrv.ResponderPing(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -61,7 +62,7 @@ func TestDspResponderPingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResponderPing(CGREvent, reply)
+ result := dspSrv.ResponderPing(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -78,7 +79,7 @@ func TestDspResponderDebitNil(t *testing.T) {
},
}
var reply *engine.CallCost
- result := dspSrv.ResponderDebit(CGREvent, reply)
+ result := dspSrv.ResponderDebit(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -94,7 +95,7 @@ func TestDspResponderDebitErrorNil(t *testing.T) {
},
}
var reply *engine.CallCost
- result := dspSrv.ResponderDebit(CGREvent, reply)
+ result := dspSrv.ResponderDebit(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -111,7 +112,7 @@ func TestDspResponderGetCostNil(t *testing.T) {
},
}
var reply *engine.CallCost
- result := dspSrv.ResponderGetCost(CGREvent, reply)
+ result := dspSrv.ResponderGetCost(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -127,7 +128,7 @@ func TestDspResponderGetCostErrorNil(t *testing.T) {
},
}
var reply *engine.CallCost
- result := dspSrv.ResponderGetCost(CGREvent, reply)
+ result := dspSrv.ResponderGetCost(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -144,7 +145,7 @@ func TestDspResponderMaxDebitNil(t *testing.T) {
},
}
var reply *engine.CallCost
- result := dspSrv.ResponderMaxDebit(CGREvent, reply)
+ result := dspSrv.ResponderMaxDebit(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -160,7 +161,7 @@ func TestDspResponderMaxDebitErrorNil(t *testing.T) {
},
}
var reply *engine.CallCost
- result := dspSrv.ResponderMaxDebit(CGREvent, reply)
+ result := dspSrv.ResponderMaxDebit(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -177,7 +178,7 @@ func TestDspResponderRefundIncrementsNil(t *testing.T) {
},
}
var reply *engine.Account
- result := dspSrv.ResponderRefundIncrements(CGREvent, reply)
+ result := dspSrv.ResponderRefundIncrements(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -193,7 +194,7 @@ func TestDspResponderRefundIncrementsErrorNil(t *testing.T) {
},
}
var reply *engine.Account
- result := dspSrv.ResponderRefundIncrements(CGREvent, reply)
+ result := dspSrv.ResponderRefundIncrements(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -210,7 +211,7 @@ func TestDspResponderRefundRoundingNil(t *testing.T) {
},
}
var reply engine.Account
- result := dspSrv.ResponderRefundRounding(CGREvent, &reply)
+ result := dspSrv.ResponderRefundRounding(context.Background(), CGREvent, &reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -226,7 +227,7 @@ func TestDspResponderRefundRoundingErrorNil(t *testing.T) {
},
}
var reply engine.Account
- result := dspSrv.ResponderRefundRounding(CGREvent, &reply)
+ result := dspSrv.ResponderRefundRounding(context.Background(), CGREvent, &reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -243,7 +244,7 @@ func TestDspResponderGetMaxSessionTimeNil(t *testing.T) {
},
}
var reply *time.Duration
- result := dspSrv.ResponderGetMaxSessionTime(CGREvent, reply)
+ result := dspSrv.ResponderGetMaxSessionTime(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -259,7 +260,7 @@ func TestDspResponderGetMaxSessionTimeErrorNil(t *testing.T) {
},
}
var reply *time.Duration
- result := dspSrv.ResponderGetMaxSessionTime(CGREvent, reply)
+ result := dspSrv.ResponderGetMaxSessionTime(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -274,7 +275,7 @@ func TestDspResponderShutdownNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResponderShutdown(CGREvent, reply)
+ result := dspSrv.ResponderShutdown(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -288,7 +289,7 @@ func TestDspResponderShutdownErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ResponderShutdown(CGREvent, reply)
+ result := dspSrv.ResponderShutdown(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -337,7 +338,7 @@ func TestDspResponderGetCostOnRatingPlans(t *testing.T) {
t.Error(err)
}
var reply map[string]any
- if err := dsp.ResponderGetCostOnRatingPlans(args, &reply); err == nil {
+ if err := dsp.ResponderGetCostOnRatingPlans(context.Background(), args, &reply); err == nil {
t.Error(err)
}
}
@@ -379,7 +380,7 @@ func TestDspResponderGetCostOnRatingPlans(t *testing.T) {
// t.Error(err)
// }
// var reply map[string]any
-// if err := dsp.ResponderGetMaxSessionTimeOnAccounts(args, &reply); err == nil {
+// if err := dsp.ResponderGetMaxSessionTimeOnAccounts(context.Background(),args, &reply); err == nil {
// t.Error(err)
// }
// }
diff --git a/dispatchers/routes.go b/dispatchers/routes.go
index d11187a0c..d5cc5fe6d 100644
--- a/dispatchers/routes.go
+++ b/dispatchers/routes.go
@@ -19,11 +19,12 @@ along with this program. If not, see
package dispatchers
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) RouteSv1Ping(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) RouteSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
}
@@ -38,7 +39,7 @@ func (dS *DispatcherService) RouteSv1Ping(args *utils.CGREvent, reply *string) (
return dS.Dispatch(args, utils.MetaRoutes, utils.RouteSv1Ping, args, reply)
}
-func (dS *DispatcherService) RouteSv1GetRoutes(args *utils.CGREvent, reply *engine.SortedRoutesList) (err error) {
+func (dS *DispatcherService) RouteSv1GetRoutes(ctx *context.Context, args *utils.CGREvent, reply *engine.SortedRoutesList) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.RouteSv1GetRoutes,
@@ -50,7 +51,7 @@ func (dS *DispatcherService) RouteSv1GetRoutes(args *utils.CGREvent, reply *engi
return dS.Dispatch(args, utils.MetaRoutes, utils.RouteSv1GetRoutes, args, reply)
}
-func (dS *DispatcherService) RouteSv1GetRoutesList(args *utils.CGREvent, reply *[]string) (err error) {
+func (dS *DispatcherService) RouteSv1GetRoutesList(ctx *context.Context, args *utils.CGREvent, reply *[]string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.RouteSv1GetRoutesList,
@@ -62,7 +63,7 @@ func (dS *DispatcherService) RouteSv1GetRoutesList(args *utils.CGREvent, reply *
return dS.Dispatch(args, utils.MetaRoutes, utils.RouteSv1GetRoutesList, args, reply)
}
-func (dS *DispatcherService) RouteSv1GetRouteProfilesForEvent(args *utils.CGREvent, reply *[]*engine.RouteProfile) (err error) {
+func (dS *DispatcherService) RouteSv1GetRouteProfilesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]*engine.RouteProfile) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.RouteSv1GetRouteProfilesForEvent,
diff --git a/dispatchers/routes_it_test.go b/dispatchers/routes_it_test.go
index 22594459a..b23b0d7b6 100644
--- a/dispatchers/routes_it_test.go
+++ b/dispatchers/routes_it_test.go
@@ -27,6 +27,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -74,12 +75,12 @@ func TestDspSupplierS(t *testing.T) {
func testDspSupPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.RouteSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.RouteSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.RouteSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "sup12345",
@@ -93,7 +94,7 @@ func testDspSupPing(t *testing.T) {
func testDspSupPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.RouteSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.RouteSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -105,19 +106,19 @@ func testDspSupPingFailover(t *testing.T) {
utils.OptsAPIKey: "sup12345",
},
}
- if err := dispEngine.RPC.Call(utils.RouteSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.RouteSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.RouteSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
@@ -180,14 +181,14 @@ func testDspSupGetSupFailover(t *testing.T) {
utils.OptsAPIKey: "sup12345",
},
}
- if err := dispEngine.RPC.Call(utils.RouteSv1GetRoutes,
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1GetRoutes,
args, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRpl1, rpl) {
t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(eRpl1), utils.ToJSON(rpl))
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.RouteSv1GetRoutes,
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1GetRoutes,
args, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRpl, rpl) {
@@ -213,7 +214,7 @@ func testDspSupTestAuthKey(t *testing.T) {
utils.OptsAPIKey: "12345",
},
}
- if err := dispEngine.RPC.Call(utils.RouteSv1GetRoutes,
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1GetRoutes,
args, &rpl); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
@@ -261,7 +262,7 @@ func testDspSupTestAuthKey2(t *testing.T) {
utils.OptsAPIKey: "sup12345",
},
}
- if err := dispEngine.RPC.Call(utils.RouteSv1GetRoutes,
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1GetRoutes,
args, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRpl, rpl) {
@@ -325,13 +326,13 @@ func testDspSupGetSupRoundRobin(t *testing.T) {
utils.OptsAPIKey: "sup12345",
},
}
- if err := dispEngine.RPC.Call(utils.RouteSv1GetRoutes,
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1GetRoutes,
args, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRpl1, rpl) {
t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(eRpl1), utils.ToJSON(rpl))
}
- if err := dispEngine.RPC.Call(utils.RouteSv1GetRoutes,
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1GetRoutes,
args, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eRpl, rpl) {
@@ -394,7 +395,7 @@ func testDspSupGetSupplierForEvent(t *testing.T) {
expected.SortingParameters = nil // empty slices are nil in gob
}
var supProf []*engine.RouteProfile
- if err := dispEngine.RPC.Call(utils.RouteSv1GetRouteProfilesForEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.RouteSv1GetRouteProfilesForEvent,
ev, &supProf); err != nil {
t.Fatal(err)
}
diff --git a/dispatchers/routes_test.go b/dispatchers/routes_test.go
index 1aa2e566a..41474196d 100644
--- a/dispatchers/routes_test.go
+++ b/dispatchers/routes_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -31,7 +32,7 @@ func TestDspRouteSv1PingNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.RouteSv1Ping(nil, reply)
+ result := dspSrv.RouteSv1Ping(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -46,7 +47,7 @@ func TestDspRouteSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.RouteSv1Ping(CGREvent, reply)
+ result := dspSrv.RouteSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -60,7 +61,7 @@ func TestDspRouteSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.RouteSv1Ping(CGREvent, reply)
+ result := dspSrv.RouteSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -75,7 +76,7 @@ func TestDspRouteSv1GetRoutesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.SortedRoutesList
- result := dspSrv.RouteSv1GetRoutes(CGREvent, reply)
+ result := dspSrv.RouteSv1GetRoutes(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -89,7 +90,7 @@ func TestDspRouteSv1GetRoutesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.SortedRoutesList
- result := dspSrv.RouteSv1GetRoutes(CGREvent, reply)
+ result := dspSrv.RouteSv1GetRoutes(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -104,7 +105,7 @@ func TestDspRouteSv1GetRoutesListNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.RouteSv1GetRoutesList(CGREvent, reply)
+ result := dspSrv.RouteSv1GetRoutesList(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -118,7 +119,7 @@ func TestDspRouteSv1GetRoutesListErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.RouteSv1GetRoutesList(CGREvent, reply)
+ result := dspSrv.RouteSv1GetRoutesList(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -133,7 +134,7 @@ func TestDspRouteSv1GetRouteProfilesForEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*engine.RouteProfile
- result := dspSrv.RouteSv1GetRouteProfilesForEvent(CGREvent, reply)
+ result := dspSrv.RouteSv1GetRouteProfilesForEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -147,7 +148,7 @@ func TestDspRouteSv1GetRouteProfilesForEventErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*engine.RouteProfile
- result := dspSrv.RouteSv1GetRouteProfilesForEvent(CGREvent, reply)
+ result := dspSrv.RouteSv1GetRouteProfilesForEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/scheduler.go b/dispatchers/scheduler.go
index 56e7c1120..dd48910ed 100644
--- a/dispatchers/scheduler.go
+++ b/dispatchers/scheduler.go
@@ -21,10 +21,11 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) SchedulerSv1Ping(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) SchedulerSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
}
@@ -38,7 +39,7 @@ func (dS *DispatcherService) SchedulerSv1Ping(args *utils.CGREvent, reply *strin
return dS.Dispatch(args, utils.MetaScheduler, utils.SchedulerSv1Ping, args, reply)
}
-func (dS *DispatcherService) SchedulerSv1Reload(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) SchedulerSv1Reload(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.SchedulerSv1Ping, args.Tenant,
@@ -49,7 +50,7 @@ func (dS *DispatcherService) SchedulerSv1Reload(args *utils.CGREvent, reply *str
return dS.Dispatch(args, utils.MetaScheduler, utils.SchedulerSv1Reload, args, reply)
}
-func (dS *DispatcherService) SchedulerSv1ExecuteActions(args *utils.AttrsExecuteActions, reply *string) (err error) {
+func (dS *DispatcherService) SchedulerSv1ExecuteActions(ctx *context.Context, args *utils.AttrsExecuteActions, reply *string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.SchedulerSv1ExecuteActions, args.Tenant,
@@ -63,7 +64,7 @@ func (dS *DispatcherService) SchedulerSv1ExecuteActions(args *utils.AttrsExecute
}, utils.MetaScheduler, utils.SchedulerSv1ExecuteActions, args, reply)
}
-func (dS *DispatcherService) SchedulerSv1ExecuteActionPlans(args *utils.AttrsExecuteActionPlans, reply *string) (err error) {
+func (dS *DispatcherService) SchedulerSv1ExecuteActionPlans(ctx *context.Context, args *utils.AttrsExecuteActionPlans, reply *string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.SchedulerSv1ExecuteActionPlans, args.Tenant,
diff --git a/dispatchers/scheduler_it_test.go b/dispatchers/scheduler_it_test.go
index c01964d7e..2e695c35a 100644
--- a/dispatchers/scheduler_it_test.go
+++ b/dispatchers/scheduler_it_test.go
@@ -24,6 +24,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
@@ -61,12 +62,12 @@ func TestDspSchedulerS(t *testing.T) {
func testDspSchedPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.SchedulerSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.SchedulerSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.SchedulerSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.SchedulerSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
diff --git a/dispatchers/scheduler_test.go b/dispatchers/scheduler_test.go
index a892ffa04..dc79b6e43 100644
--- a/dispatchers/scheduler_test.go
+++ b/dispatchers/scheduler_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -30,7 +31,7 @@ func TestDspSchedulerSv1PingErrorNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.SchedulerSv1Ping(nil, reply)
+ result := dspSrv.SchedulerSv1Ping(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -45,7 +46,7 @@ func TestDspSchedulerSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SchedulerSv1Ping(CGREvent, reply)
+ result := dspSrv.SchedulerSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -59,7 +60,7 @@ func TestDspSchedulerSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SchedulerSv1Ping(CGREvent, reply)
+ result := dspSrv.SchedulerSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -74,7 +75,7 @@ func TestDspSchedulerSv1ReloadErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SchedulerSv1Reload(CGREvent, reply)
+ result := dspSrv.SchedulerSv1Reload(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -88,7 +89,7 @@ func TestDspSchedulerSv1ReloadPingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SchedulerSv1Reload(CGREvent, reply)
+ result := dspSrv.SchedulerSv1Reload(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -103,7 +104,7 @@ func TestDspSchedulerSv1ExecuteActionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SchedulerSv1ExecuteActions(CGREvent, reply)
+ result := dspSrv.SchedulerSv1ExecuteActions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -117,7 +118,7 @@ func TestDspSchedulerSv1ExecuteActionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SchedulerSv1ExecuteActions(CGREvent, reply)
+ result := dspSrv.SchedulerSv1ExecuteActions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -132,7 +133,7 @@ func TestDspSchedulerSv1ExecuteActionPlansErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SchedulerSv1ExecuteActionPlans(CGREvent, reply)
+ result := dspSrv.SchedulerSv1ExecuteActionPlans(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -146,7 +147,7 @@ func TestDspSchedulerSv1ExecuteActionPlansNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SchedulerSv1ExecuteActionPlans(CGREvent, reply)
+ result := dspSrv.SchedulerSv1ExecuteActionPlans(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/servicemanager.go b/dispatchers/servicemanager.go
index 925338253..a4ac260d9 100644
--- a/dispatchers/servicemanager.go
+++ b/dispatchers/servicemanager.go
@@ -21,11 +21,12 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
// ServiceManagerV1Ping interogates ServiceManager server responsible to process the event
-func (dS *DispatcherService) ServiceManagerV1Ping(args *utils.CGREvent,
+func (dS *DispatcherService) ServiceManagerV1Ping(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
@@ -40,7 +41,7 @@ func (dS *DispatcherService) ServiceManagerV1Ping(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaServiceManager, utils.ServiceManagerV1Ping, args, reply)
}
-func (dS *DispatcherService) ServiceManagerV1StartService(args ArgStartServiceWithAPIOpts,
+func (dS *DispatcherService) ServiceManagerV1StartService(ctx *context.Context, args ArgStartServiceWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -58,7 +59,7 @@ func (dS *DispatcherService) ServiceManagerV1StartService(args ArgStartServiceWi
}, utils.MetaServiceManager, utils.ServiceManagerV1StartService, args, reply)
}
-func (dS *DispatcherService) ServiceManagerV1StopService(args ArgStartServiceWithAPIOpts,
+func (dS *DispatcherService) ServiceManagerV1StopService(ctx *context.Context, args ArgStartServiceWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -76,7 +77,7 @@ func (dS *DispatcherService) ServiceManagerV1StopService(args ArgStartServiceWit
}, utils.MetaServiceManager, utils.ServiceManagerV1StopService, args, reply)
}
-func (dS *DispatcherService) ServiceManagerV1ServiceStatus(args ArgStartServiceWithAPIOpts,
+func (dS *DispatcherService) ServiceManagerV1ServiceStatus(ctx *context.Context, args ArgStartServiceWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
diff --git a/dispatchers/servicemanager_test.go b/dispatchers/servicemanager_test.go
index cedd0c59b..235af6e00 100644
--- a/dispatchers/servicemanager_test.go
+++ b/dispatchers/servicemanager_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -30,7 +31,7 @@ func TestDspServiceManagerV1PingErrorNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ServiceManagerV1Ping(nil, reply)
+ result := dspSrv.ServiceManagerV1Ping(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -45,7 +46,7 @@ func TestDspServiceManagerV1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ServiceManagerV1Ping(CGREvent, reply)
+ result := dspSrv.ServiceManagerV1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -59,7 +60,7 @@ func TestDspServiceManagerV1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ServiceManagerV1Ping(CGREvent, reply)
+ result := dspSrv.ServiceManagerV1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -74,7 +75,7 @@ func TestDspServiceManagerV1StartServiceErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ServiceManagerV1StartService(CGREvent, reply)
+ result := dspSrv.ServiceManagerV1StartService(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -88,7 +89,7 @@ func TestDspServiceManagerV1StartServiceNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ServiceManagerV1StartService(CGREvent, reply)
+ result := dspSrv.ServiceManagerV1StartService(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -103,7 +104,7 @@ func TestDspServiceManagerV1StopServiceErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ServiceManagerV1StopService(CGREvent, reply)
+ result := dspSrv.ServiceManagerV1StopService(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -117,7 +118,7 @@ func TestDspServiceManagerV1StopServiceNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ServiceManagerV1StopService(CGREvent, reply)
+ result := dspSrv.ServiceManagerV1StopService(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -132,7 +133,7 @@ func TestDspServiceManagerV1ServiceStatusNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ServiceManagerV1ServiceStatus(CGREvent, reply)
+ result := dspSrv.ServiceManagerV1ServiceStatus(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -146,7 +147,7 @@ func TestDspServiceManagerV1ServiceStatusErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ServiceManagerV1ServiceStatus(CGREvent, reply)
+ result := dspSrv.ServiceManagerV1ServiceStatus(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/sessions.go b/dispatchers/sessions.go
index 7f716666c..14fa89ebe 100644
--- a/dispatchers/sessions.go
+++ b/dispatchers/sessions.go
@@ -21,11 +21,12 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) SessionSv1Ping(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.SessionSv1Ping, args.Tenant,
@@ -36,7 +37,7 @@ func (dS *DispatcherService) SessionSv1Ping(args *utils.CGREvent, reply *string)
return dS.Dispatch(args, utils.MetaSessionS, utils.SessionSv1Ping, args, reply)
}
-func (dS *DispatcherService) SessionSv1AuthorizeEvent(args *sessions.V1AuthorizeArgs,
+func (dS *DispatcherService) SessionSv1AuthorizeEvent(ctx *context.Context, args *sessions.V1AuthorizeArgs,
reply *sessions.V1AuthorizeReply) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -48,7 +49,7 @@ func (dS *DispatcherService) SessionSv1AuthorizeEvent(args *sessions.V1Authorize
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1AuthorizeEvent, args, reply)
}
-func (dS *DispatcherService) SessionSv1AuthorizeEventWithDigest(args *sessions.V1AuthorizeArgs,
+func (dS *DispatcherService) SessionSv1AuthorizeEventWithDigest(ctx *context.Context, args *sessions.V1AuthorizeArgs,
reply *sessions.V1AuthorizeReplyWithDigest) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -60,7 +61,7 @@ func (dS *DispatcherService) SessionSv1AuthorizeEventWithDigest(args *sessions.V
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1AuthorizeEventWithDigest, args, reply)
}
-func (dS *DispatcherService) SessionSv1InitiateSession(args *sessions.V1InitSessionArgs,
+func (dS *DispatcherService) SessionSv1InitiateSession(ctx *context.Context, args *sessions.V1InitSessionArgs,
reply *sessions.V1InitSessionReply) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -72,7 +73,7 @@ func (dS *DispatcherService) SessionSv1InitiateSession(args *sessions.V1InitSess
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1InitiateSession, args, reply)
}
-func (dS *DispatcherService) SessionSv1InitiateSessionWithDigest(args *sessions.V1InitSessionArgs,
+func (dS *DispatcherService) SessionSv1InitiateSessionWithDigest(ctx *context.Context, args *sessions.V1InitSessionArgs,
reply *sessions.V1InitReplyWithDigest) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -84,7 +85,7 @@ func (dS *DispatcherService) SessionSv1InitiateSessionWithDigest(args *sessions.
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1InitiateSessionWithDigest, args, reply)
}
-func (dS *DispatcherService) SessionSv1UpdateSession(args *sessions.V1UpdateSessionArgs,
+func (dS *DispatcherService) SessionSv1UpdateSession(ctx *context.Context, args *sessions.V1UpdateSessionArgs,
reply *sessions.V1UpdateSessionReply) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -96,7 +97,7 @@ func (dS *DispatcherService) SessionSv1UpdateSession(args *sessions.V1UpdateSess
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1UpdateSession, args, reply)
}
-func (dS *DispatcherService) SessionSv1SyncSessions(args *utils.TenantWithAPIOpts,
+func (dS *DispatcherService) SessionSv1SyncSessions(ctx *context.Context, args *utils.TenantWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -114,7 +115,7 @@ func (dS *DispatcherService) SessionSv1SyncSessions(args *utils.TenantWithAPIOpt
}, utils.MetaSessionS, utils.SessionSv1SyncSessions, args, reply)
}
-func (dS *DispatcherService) SessionSv1TerminateSession(args *sessions.V1TerminateSessionArgs,
+func (dS *DispatcherService) SessionSv1TerminateSession(ctx *context.Context, args *sessions.V1TerminateSessionArgs,
reply *string) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -126,7 +127,7 @@ func (dS *DispatcherService) SessionSv1TerminateSession(args *sessions.V1Termina
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1TerminateSession, args, reply)
}
-func (dS *DispatcherService) SessionSv1ProcessCDR(args *utils.CGREvent,
+func (dS *DispatcherService) SessionSv1ProcessCDR(ctx *context.Context, args *utils.CGREvent,
reply *string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -138,7 +139,7 @@ func (dS *DispatcherService) SessionSv1ProcessCDR(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaSessionS, utils.SessionSv1ProcessCDR, args, reply)
}
-func (dS *DispatcherService) SessionSv1ProcessMessage(args *sessions.V1ProcessMessageArgs,
+func (dS *DispatcherService) SessionSv1ProcessMessage(ctx *context.Context, args *sessions.V1ProcessMessageArgs,
reply *sessions.V1ProcessMessageReply) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -150,7 +151,7 @@ func (dS *DispatcherService) SessionSv1ProcessMessage(args *sessions.V1ProcessMe
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1ProcessMessage, args, reply)
}
-func (dS *DispatcherService) SessionSv1ProcessEvent(args *sessions.V1ProcessEventArgs,
+func (dS *DispatcherService) SessionSv1ProcessEvent(ctx *context.Context, args *sessions.V1ProcessEventArgs,
reply *sessions.V1ProcessEventReply) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -162,7 +163,7 @@ func (dS *DispatcherService) SessionSv1ProcessEvent(args *sessions.V1ProcessEven
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1ProcessEvent, args, reply)
}
-func (dS *DispatcherService) SessionSv1GetCost(args *sessions.V1ProcessEventArgs,
+func (dS *DispatcherService) SessionSv1GetCost(ctx *context.Context, args *sessions.V1ProcessEventArgs,
reply *sessions.V1GetCostReply) (err error) {
args.CGREvent.Tenant = utils.FirstNonEmpty(args.CGREvent.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -174,7 +175,7 @@ func (dS *DispatcherService) SessionSv1GetCost(args *sessions.V1ProcessEventArgs
return dS.Dispatch(args.CGREvent, utils.MetaSessionS, utils.SessionSv1GetCost, args, reply)
}
-func (dS *DispatcherService) SessionSv1GetActiveSessions(args *utils.SessionFilter,
+func (dS *DispatcherService) SessionSv1GetActiveSessions(ctx *context.Context, args *utils.SessionFilter,
reply *[]*sessions.ExternalSession) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -192,7 +193,7 @@ func (dS *DispatcherService) SessionSv1GetActiveSessions(args *utils.SessionFilt
}, utils.MetaSessionS, utils.SessionSv1GetActiveSessions, args, reply)
}
-func (dS *DispatcherService) SessionSv1GetActiveSessionsCount(args *utils.SessionFilter,
+func (dS *DispatcherService) SessionSv1GetActiveSessionsCount(ctx *context.Context, args *utils.SessionFilter,
reply *int) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -210,7 +211,7 @@ func (dS *DispatcherService) SessionSv1GetActiveSessionsCount(args *utils.Sessio
}, utils.MetaSessionS, utils.SessionSv1GetActiveSessionsCount, args, reply)
}
-func (dS *DispatcherService) SessionSv1ForceDisconnect(args *utils.SessionFilter,
+func (dS *DispatcherService) SessionSv1ForceDisconnect(ctx *context.Context, args *utils.SessionFilter,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -228,7 +229,7 @@ func (dS *DispatcherService) SessionSv1ForceDisconnect(args *utils.SessionFilter
}, utils.MetaSessionS, utils.SessionSv1ForceDisconnect, args, reply)
}
-func (dS *DispatcherService) SessionSv1GetPassiveSessions(args *utils.SessionFilter,
+func (dS *DispatcherService) SessionSv1GetPassiveSessions(ctx *context.Context, args *utils.SessionFilter,
reply *[]*sessions.ExternalSession) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -246,7 +247,7 @@ func (dS *DispatcherService) SessionSv1GetPassiveSessions(args *utils.SessionFil
}, utils.MetaSessionS, utils.SessionSv1GetPassiveSessions, args, reply)
}
-func (dS *DispatcherService) SessionSv1GetPassiveSessionsCount(args *utils.SessionFilter,
+func (dS *DispatcherService) SessionSv1GetPassiveSessionsCount(ctx *context.Context, args *utils.SessionFilter,
reply *int) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -264,7 +265,7 @@ func (dS *DispatcherService) SessionSv1GetPassiveSessionsCount(args *utils.Sessi
}, utils.MetaSessionS, utils.SessionSv1GetPassiveSessionsCount, args, reply)
}
-func (dS *DispatcherService) SessionSv1ReplicateSessions(args ArgsReplicateSessionsWithAPIOpts,
+func (dS *DispatcherService) SessionSv1ReplicateSessions(ctx *context.Context, args ArgsReplicateSessionsWithAPIOpts,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -282,7 +283,7 @@ func (dS *DispatcherService) SessionSv1ReplicateSessions(args ArgsReplicateSessi
}, utils.MetaSessionS, utils.SessionSv1ReplicateSessions, args, reply)
}
-func (dS *DispatcherService) SessionSv1SetPassiveSession(args *sessions.Session,
+func (dS *DispatcherService) SessionSv1SetPassiveSession(ctx *context.Context, args *sessions.Session,
reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
@@ -300,7 +301,7 @@ func (dS *DispatcherService) SessionSv1SetPassiveSession(args *sessions.Session,
}, utils.MetaSessionS, utils.SessionSv1SetPassiveSession, args, reply)
}
-func (dS *DispatcherService) SessionSv1ActivateSessions(args *utils.SessionIDsWithArgsDispatcher, reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1ActivateSessions(ctx *context.Context, args *utils.SessionIDsWithArgsDispatcher, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -317,7 +318,7 @@ func (dS *DispatcherService) SessionSv1ActivateSessions(args *utils.SessionIDsWi
}, utils.MetaSessionS, utils.SessionSv1ActivateSessions, args, reply)
}
-func (dS *DispatcherService) SessionSv1DeactivateSessions(args *utils.SessionIDsWithArgsDispatcher, reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1DeactivateSessions(ctx *context.Context, args *utils.SessionIDsWithArgsDispatcher, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -334,7 +335,7 @@ func (dS *DispatcherService) SessionSv1DeactivateSessions(args *utils.SessionIDs
}, utils.MetaSessionS, utils.SessionSv1DeactivateSessions, args, reply)
}
-func (dS *DispatcherService) SessionSv1STIRAuthenticate(args *sessions.V1STIRAuthenticateArgs, reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1STIRAuthenticate(ctx *context.Context, args *sessions.V1STIRAuthenticateArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.SessionSv1STIRAuthenticate,
@@ -348,7 +349,7 @@ func (dS *DispatcherService) SessionSv1STIRAuthenticate(args *sessions.V1STIRAut
}, utils.MetaSessionS, utils.SessionSv1STIRAuthenticate, args, reply)
}
-func (dS *DispatcherService) SessionSv1STIRIdentity(args *sessions.V1STIRIdentityArgs, reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1STIRIdentity(ctx *context.Context, args *sessions.V1STIRIdentityArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.SessionSv1STIRIdentity,
diff --git a/dispatchers/sessions_it_test.go b/dispatchers/sessions_it_test.go
index f97b84ab7..69c4a1fcf 100644
--- a/dispatchers/sessions_it_test.go
+++ b/dispatchers/sessions_it_test.go
@@ -29,6 +29,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
@@ -102,7 +103,7 @@ func testDspSessionAddBalacne(t *testing.T) {
},
}
var reply string
- if err := allEngine.RPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -113,18 +114,18 @@ func testDspSessionAddBalacne(t *testing.T) {
Account: attrSetBalance.Account,
}
eAcntVal := float64(initUsage)
- if err := allEngine.RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %v, received: %v",
time.Duration(eAcntVal), time.Duration(acnt.BalanceMap[utils.MetaVoice].GetTotalValue()))
}
- if err := allEngine2.RPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := allEngine2.RPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
- if err := allEngine2.RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := allEngine2.RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %v, received: %v",
@@ -134,12 +135,12 @@ func testDspSessionAddBalacne(t *testing.T) {
func testDspSessionPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.SessionSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.SessionSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.SessionSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -154,7 +155,7 @@ func testDspSessionPing(t *testing.T) {
func testDspSessionPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.SessionSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.SessionSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -166,19 +167,19 @@ func testDspSessionPingFailover(t *testing.T) {
utils.OptsAPIKey: "ses12345",
},
}
- if err := dispEngine.RPC.Call(utils.SessionSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.SessionSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.SessionSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
@@ -213,7 +214,7 @@ func testDspSessionTestAuthKey(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReplyWithDigest
- if err := dispEngine.RPC.Call(utils.SessionSv1AuthorizeEventWithDigest,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1AuthorizeEventWithDigest,
args, &rply); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
@@ -249,7 +250,7 @@ func testDspSessionAuthorize(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReplyWithDigest
- if err := dispEngine.RPC.Call(utils.SessionSv1AuthorizeEventWithDigest,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1AuthorizeEventWithDigest,
argsAuth, &rply); err != nil {
t.Error(err)
return
@@ -302,7 +303,7 @@ func testDspSessionInit(t *testing.T) {
},
}
var rply sessions.V1InitReplyWithDigest
- if err := dispEngine.RPC.Call(utils.SessionSv1InitiateSessionWithDigest,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1InitiateSessionWithDigest,
argsInit, &rply); err != nil {
t.Fatal(err)
}
@@ -323,28 +324,28 @@ func testDspGetSessions(t *testing.T) {
Filters: []string{},
}
var reply int
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount,
&filtr, &reply); err != nil {
t.Fatal(err)
} else if reply != 3 {
t.Errorf("Expected 3 active sessions received %v", reply)
}
var rply []*sessions.ExternalSession
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
&filtr, &rply); err != nil {
t.Fatal(err)
} else if len(rply) != 3 {
t.Errorf("Unexpected number of sessions returned %v :%s", len(rply), utils.ToJSON(rply))
}
- if err := dispEngine.RPC.Call(utils.SessionSv1GetPassiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetPassiveSessionsCount,
&filtr, &reply); err != nil {
t.Fatal(err)
} else if reply != 0 {
t.Errorf("Expected no pasive sessions received %v", reply)
}
rply = nil
- if err := dispEngine.RPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
&filtr, &rply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected %v received %v with reply %s", utils.ErrNotFound, err, utils.ToJSON(rply))
}
@@ -378,7 +379,7 @@ func testDspSessionUpdate(t *testing.T) {
},
}
var rply sessions.V1UpdateSessionReply
- if err := dispEngine.RPC.Call(utils.SessionSv1UpdateSession,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1UpdateSession,
argsUpdate, &rply); err != nil {
t.Error(err)
}
@@ -451,7 +452,7 @@ func testDspSessionUpdate2(t *testing.T) {
},
}
var rply sessions.V1UpdateSessionReply
- if err := dispEngine.RPC.Call(utils.SessionSv1UpdateSession,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1UpdateSession,
argsUpdate, &rply); err != nil {
t.Fatal(err)
}
@@ -532,7 +533,7 @@ func testDspSessionTerminate(t *testing.T) {
},
}
var rply string
- if err := dispEngine.RPC.Call(utils.SessionSv1TerminateSession,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -563,7 +564,7 @@ func testDspSessionProcessCDR(t *testing.T) {
}
var rply string
- if err := dispEngine.RPC.Call(utils.SessionSv1ProcessCDR,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -602,7 +603,7 @@ func testDspSessionProcessEvent(t *testing.T) {
},
}
var rply sessions.V1ProcessMessageReply
- if err := dispEngine.RPC.Call(utils.SessionSv1ProcessMessage,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -685,7 +686,7 @@ func testDspSessionProcessEvent2(t *testing.T) {
},
}
var rply sessions.V1ProcessMessageReply
- if err := dispEngine.RPC.Call(utils.SessionSv1ProcessMessage,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -743,7 +744,7 @@ func testDspSessionReplicate(t *testing.T) {
allEngine.resetStorDb(t)
var reply string
// reload cache in order to corectly cahce the indexes
- if err := allEngine.RPC.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := allEngine.RPC.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error(err)
@@ -755,7 +756,7 @@ func testDspSessionReplicate(t *testing.T) {
testDspSessionAuthorize(t)
testDspSessionInit(t)
- if err := dispEngine.RPC.Call(utils.SessionSv1ReplicateSessions, &ArgsReplicateSessionsWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1ReplicateSessions, &ArgsReplicateSessionsWithAPIOpts{
APIOpts: map[string]any{
utils.OptsAPIKey: "ses12345",
},
@@ -773,7 +774,7 @@ func testDspSessionReplicate(t *testing.T) {
var repl int
time.Sleep(10 * time.Millisecond)
- if err := allEngine2.RPC.Call(utils.SessionSv1GetPassiveSessionsCount,
+ if err := allEngine2.RPC.Call(context.Background(), utils.SessionSv1GetPassiveSessionsCount,
new(utils.SessionFilter), &repl); err != nil {
t.Fatal(err)
} else if repl != 3 {
@@ -793,13 +794,13 @@ func testDspSessionPassive(t *testing.T) {
Filters: []string{},
}
time.Sleep(10 * time.Millisecond)
- if err := dispEngine.RPC.Call(utils.SessionSv1GetPassiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetPassiveSessionsCount,
filtr, &repl); err != nil {
t.Fatal(err)
} else if repl != 0 {
t.Errorf("Expected no passive sessions received %v", repl)
}
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount,
filtr, &repl); err != nil {
t.Fatal(err)
} else if repl != 3 {
@@ -807,7 +808,7 @@ func testDspSessionPassive(t *testing.T) {
}
var rply []*sessions.ExternalSession
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
&filtr, &rply); err != nil {
t.Fatal(err)
} else if len(rply) != 3 {
@@ -815,7 +816,7 @@ func testDspSessionPassive(t *testing.T) {
}
var reply string
- if err := dispEngine.RPC.Call(utils.SessionSv1SetPassiveSession, sessions.Session{
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1SetPassiveSession, sessions.Session{
CGRID: rply[0].CGRID,
Tenant: rply[0].Tenant,
ResourceID: "TestSSv1It1",
@@ -864,13 +865,13 @@ func testDspSessionPassive(t *testing.T) {
t.Errorf("Unexpected reply %s", reply)
}
time.Sleep(10 * time.Millisecond)
- if err := dispEngine.RPC.Call(utils.SessionSv1GetPassiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetPassiveSessionsCount,
filtr, &repl); err != nil {
t.Fatal(err)
} else if repl != 1 {
t.Errorf("Expected 1 passive sessions received %v", repl)
}
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount,
filtr, &repl); err != nil {
t.Fatal(err)
} else if repl != 0 {
@@ -895,13 +896,13 @@ func testDspSessionForceDisconect(t *testing.T) {
Filters: []string{},
}
time.Sleep(10 * time.Millisecond)
- if err := dispEngine.RPC.Call(utils.SessionSv1GetPassiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetPassiveSessionsCount,
filtr, &repl); err != nil {
t.Fatal(err)
} else if repl != 0 {
t.Errorf("Expected no passive sessions received %v", repl)
}
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount,
filtr, &repl); err != nil {
t.Fatal(err)
} else if repl != 3 {
@@ -909,7 +910,7 @@ func testDspSessionForceDisconect(t *testing.T) {
}
var rply []*sessions.ExternalSession
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
&filtr, &rply); err != nil {
t.Fatal(err)
} else if len(rply) != 3 {
@@ -917,19 +918,19 @@ func testDspSessionForceDisconect(t *testing.T) {
}
var reply string
- if err := dispEngine.RPC.Call(utils.SessionSv1ForceDisconnect, &filtr, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1ForceDisconnect, &filtr, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply %s", reply)
}
time.Sleep(10 * time.Millisecond)
- if err := dispEngine.RPC.Call(utils.SessionSv1GetPassiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetPassiveSessionsCount,
filtr, &repl); err != nil {
t.Fatal(err)
} else if repl != 0 {
t.Errorf("Expected 1 passive sessions received %v", repl)
}
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount,
filtr, &repl); err != nil {
t.Fatal(err)
} else if repl != 0 {
@@ -962,13 +963,13 @@ func testDspSessionProcessEvent3(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := dispEngine.RPC.Call(utils.SessionSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Error(err)
}
var repl int
- if err := dispEngine.RPC.Call(utils.SessionSv1GetActiveSessionsCount,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount,
utils.SessionFilter{
APIOpts: map[string]any{
utils.OptsAPIKey: "ses12345",
@@ -1007,7 +1008,7 @@ func testDspSessionGetCost(t *testing.T) {
}
var rply sessions.V1GetCostReply
- if err := dispEngine.RPC.Call(utils.SessionSv1GetCost,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1GetCost,
args, &rply); err != nil {
t.Error(err)
}
@@ -1024,7 +1025,7 @@ func testDspSessionGetCost(t *testing.T) {
func testDspSessionSTIRAuthenticate(t *testing.T) {
var rply string
- if err := dispEngine.RPC.Call(utils.SessionSv1STIRAuthenticate,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1STIRAuthenticate,
&sessions.V1STIRAuthenticateArgs{
Attest: []string{"A"},
PayloadMaxDuration: "-1",
@@ -1058,7 +1059,7 @@ func testDspSessionSTIRIdentity(t *testing.T) {
},
}
var rply string
- if err := dispEngine.RPC.Call(utils.SessionSv1STIRIdentity,
+ if err := dispEngine.RPC.Call(context.Background(), utils.SessionSv1STIRIdentity,
args, &rply); err != nil {
t.Error(err)
}
diff --git a/dispatchers/sessions_test.go b/dispatchers/sessions_test.go
index 3727ed657..43511694e 100644
--- a/dispatchers/sessions_test.go
+++ b/dispatchers/sessions_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
@@ -33,7 +34,7 @@ func TestDspSessionSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1Ping(CGREvent, reply)
+ result := dspSrv.SessionSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -48,7 +49,7 @@ func TestDspSessionSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1Ping(CGREvent, reply)
+ result := dspSrv.SessionSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -64,7 +65,7 @@ func TestDspSessionSv1AuthorizeEventNil(t *testing.T) {
},
}
var reply *sessions.V1AuthorizeReply
- result := dspSrv.SessionSv1AuthorizeEvent(CGREvent, reply)
+ result := dspSrv.SessionSv1AuthorizeEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -81,7 +82,7 @@ func TestDspSessionSv1AuthorizeEventErrorNil(t *testing.T) {
},
}
var reply *sessions.V1AuthorizeReply
- result := dspSrv.SessionSv1AuthorizeEvent(CGREvent, reply)
+ result := dspSrv.SessionSv1AuthorizeEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -97,7 +98,7 @@ func TestDspSessionSv1AuthorizeEventWithDigestNil(t *testing.T) {
},
}
var reply *sessions.V1AuthorizeReplyWithDigest
- result := dspSrv.SessionSv1AuthorizeEventWithDigest(CGREvent, reply)
+ result := dspSrv.SessionSv1AuthorizeEventWithDigest(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -114,7 +115,7 @@ func TestDspSessionSv1AuthorizeEventWithDigestErrorNil(t *testing.T) {
},
}
var reply *sessions.V1AuthorizeReplyWithDigest
- result := dspSrv.SessionSv1AuthorizeEventWithDigest(CGREvent, reply)
+ result := dspSrv.SessionSv1AuthorizeEventWithDigest(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -130,7 +131,7 @@ func TestDspSessionSv1InitiateSessionNil(t *testing.T) {
},
}
var reply *sessions.V1InitSessionReply
- result := dspSrv.SessionSv1InitiateSession(CGREvent, reply)
+ result := dspSrv.SessionSv1InitiateSession(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -147,7 +148,7 @@ func TestDspSessionSv1InitiateSessionErrorNil(t *testing.T) {
},
}
var reply *sessions.V1InitSessionReply
- result := dspSrv.SessionSv1InitiateSession(CGREvent, reply)
+ result := dspSrv.SessionSv1InitiateSession(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -163,7 +164,7 @@ func TestDspSessionSv1InitiateSessionWithDigestNil(t *testing.T) {
},
}
var reply *sessions.V1InitReplyWithDigest
- result := dspSrv.SessionSv1InitiateSessionWithDigest(CGREvent, reply)
+ result := dspSrv.SessionSv1InitiateSessionWithDigest(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -180,7 +181,7 @@ func TestDspSessionSv1InitiateSessionWithDigestErrorNil(t *testing.T) {
},
}
var reply *sessions.V1InitReplyWithDigest
- result := dspSrv.SessionSv1InitiateSessionWithDigest(CGREvent, reply)
+ result := dspSrv.SessionSv1InitiateSessionWithDigest(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -196,7 +197,7 @@ func TestDspSessionSv1UpdateSessionNil(t *testing.T) {
},
}
var reply *sessions.V1UpdateSessionReply
- result := dspSrv.SessionSv1UpdateSession(CGREvent, reply)
+ result := dspSrv.SessionSv1UpdateSession(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -213,7 +214,7 @@ func TestDspSessionSv1UpdateSessionErrorNil(t *testing.T) {
},
}
var reply *sessions.V1UpdateSessionReply
- result := dspSrv.SessionSv1UpdateSession(CGREvent, reply)
+ result := dspSrv.SessionSv1UpdateSession(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -227,7 +228,7 @@ func TestDspSessionSv1SyncSessionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1SyncSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1SyncSessions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -242,7 +243,7 @@ func TestDspSessionSv1SyncSessionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1SyncSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1SyncSessions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -258,7 +259,7 @@ func TestDspSessionSv1TerminateSessionNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.SessionSv1TerminateSession(CGREvent, reply)
+ result := dspSrv.SessionSv1TerminateSession(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -275,7 +276,7 @@ func TestDspSessionSv1TerminateSessionErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.SessionSv1TerminateSession(CGREvent, reply)
+ result := dspSrv.SessionSv1TerminateSession(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -289,7 +290,7 @@ func TestDspSessionSv1ProcessCDRNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1ProcessCDR(CGREvent, reply)
+ result := dspSrv.SessionSv1ProcessCDR(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -304,7 +305,7 @@ func TestDspSessionSv1ProcessCDRErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1ProcessCDR(CGREvent, reply)
+ result := dspSrv.SessionSv1ProcessCDR(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -320,7 +321,7 @@ func TestDspSessionSv1ProcessMessageNil(t *testing.T) {
},
}
var reply *sessions.V1ProcessMessageReply
- result := dspSrv.SessionSv1ProcessMessage(CGREvent, reply)
+ result := dspSrv.SessionSv1ProcessMessage(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -337,7 +338,7 @@ func TestDspSessionSv1ProcessMessageErrorNil(t *testing.T) {
},
}
var reply *sessions.V1ProcessMessageReply
- result := dspSrv.SessionSv1ProcessMessage(CGREvent, reply)
+ result := dspSrv.SessionSv1ProcessMessage(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -353,7 +354,7 @@ func TestDspSessionSv1ProcessEventNil(t *testing.T) {
},
}
var reply *sessions.V1ProcessEventReply
- result := dspSrv.SessionSv1ProcessEvent(CGREvent, reply)
+ result := dspSrv.SessionSv1ProcessEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -370,7 +371,7 @@ func TestDspSessionSv1ProcessEventErrorNil(t *testing.T) {
},
}
var reply *sessions.V1ProcessEventReply
- result := dspSrv.SessionSv1ProcessEvent(CGREvent, reply)
+ result := dspSrv.SessionSv1ProcessEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -386,7 +387,7 @@ func TestDspSessionSv1GetCostNil(t *testing.T) {
},
}
var reply *sessions.V1GetCostReply
- result := dspSrv.SessionSv1GetCost(CGREvent, reply)
+ result := dspSrv.SessionSv1GetCost(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -403,7 +404,7 @@ func TestDspSessionSv1GetCostErrorNil(t *testing.T) {
},
}
var reply *sessions.V1GetCostReply
- result := dspSrv.SessionSv1GetCost(CGREvent, reply)
+ result := dspSrv.SessionSv1GetCost(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -417,7 +418,7 @@ func TestDspSessionSv1GetActiveSessionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*sessions.ExternalSession
- result := dspSrv.SessionSv1GetActiveSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1GetActiveSessions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -432,7 +433,7 @@ func TestDspSessionSv1GetActiveSessionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*sessions.ExternalSession
- result := dspSrv.SessionSv1GetActiveSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1GetActiveSessions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -446,7 +447,7 @@ func TestDspSessionSv1GetActiveSessionsCountNil(t *testing.T) {
Tenant: "tenant",
}
var reply *int
- result := dspSrv.SessionSv1GetActiveSessionsCount(CGREvent, reply)
+ result := dspSrv.SessionSv1GetActiveSessionsCount(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -461,7 +462,7 @@ func TestDspSessionSv1GetActiveSessionsCountErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *int
- result := dspSrv.SessionSv1GetActiveSessionsCount(CGREvent, reply)
+ result := dspSrv.SessionSv1GetActiveSessionsCount(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -475,7 +476,7 @@ func TestDspSessionSv1ForceDisconnectNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1ForceDisconnect(CGREvent, reply)
+ result := dspSrv.SessionSv1ForceDisconnect(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -490,7 +491,7 @@ func TestDspSessionSv1ForceDisconnectErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1ForceDisconnect(CGREvent, reply)
+ result := dspSrv.SessionSv1ForceDisconnect(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -504,7 +505,7 @@ func TestDspSessionSv1GetPassiveSessionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*sessions.ExternalSession
- result := dspSrv.SessionSv1GetPassiveSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1GetPassiveSessions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -519,7 +520,7 @@ func TestDspSessionSv1GetPassiveSessionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*sessions.ExternalSession
- result := dspSrv.SessionSv1GetPassiveSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1GetPassiveSessions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -533,7 +534,7 @@ func TestDspSessionSv1ReplicateSessionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1ReplicateSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1ReplicateSessions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -548,7 +549,7 @@ func TestDspSessionSv1ReplicateSessionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1ReplicateSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1ReplicateSessions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -562,7 +563,7 @@ func TestDspSessionSv1GetPassiveSessionsCountNil(t *testing.T) {
Tenant: "tenant",
}
var reply *int
- result := dspSrv.SessionSv1GetPassiveSessionsCount(CGREvent, reply)
+ result := dspSrv.SessionSv1GetPassiveSessionsCount(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -577,7 +578,7 @@ func TestDspSessionSv1GetPassiveSessionsCountErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *int
- result := dspSrv.SessionSv1GetPassiveSessionsCount(CGREvent, reply)
+ result := dspSrv.SessionSv1GetPassiveSessionsCount(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -591,7 +592,7 @@ func TestDspSessionSv1SetPassiveSessionNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1SetPassiveSession(CGREvent, reply)
+ result := dspSrv.SessionSv1SetPassiveSession(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -606,7 +607,7 @@ func TestDspSessionSv1SetPassiveSessionErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1SetPassiveSession(CGREvent, reply)
+ result := dspSrv.SessionSv1SetPassiveSession(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -620,7 +621,7 @@ func TestDspSessionSv1ActivateSessionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1ActivateSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1ActivateSessions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -635,7 +636,7 @@ func TestDspSessionSv1ActivateSessionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1ActivateSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1ActivateSessions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -649,7 +650,7 @@ func TestDspSessionSv1DeactivateSessionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1DeactivateSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1DeactivateSessions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -664,7 +665,7 @@ func TestDspSessionSv1DeactivateSessionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.SessionSv1DeactivateSessions(CGREvent, reply)
+ result := dspSrv.SessionSv1DeactivateSessions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -676,7 +677,7 @@ func TestDspSessionSv1STIRAuthenticateNil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
CGREvent := &sessions.V1STIRAuthenticateArgs{}
var reply *string
- result := dspSrv.SessionSv1STIRAuthenticate(CGREvent, reply)
+ result := dspSrv.SessionSv1STIRAuthenticate(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -689,7 +690,7 @@ func TestDspSessionSv1STIRAuthenticateErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &sessions.V1STIRAuthenticateArgs{}
var reply *string
- result := dspSrv.SessionSv1STIRAuthenticate(CGREvent, reply)
+ result := dspSrv.SessionSv1STIRAuthenticate(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -701,7 +702,7 @@ func TestDspSessionSv1STIRIdentityNil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
CGREvent := &sessions.V1STIRIdentityArgs{}
var reply *string
- result := dspSrv.SessionSv1STIRIdentity(CGREvent, reply)
+ result := dspSrv.SessionSv1STIRIdentity(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -714,7 +715,7 @@ func TestDspSessionSv1STIRIdentityErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &sessions.V1STIRIdentityArgs{}
var reply *string
- result := dspSrv.SessionSv1STIRIdentity(CGREvent, reply)
+ result := dspSrv.SessionSv1STIRIdentity(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/stats.go b/dispatchers/stats.go
index a189887b3..2ff34d3ea 100644
--- a/dispatchers/stats.go
+++ b/dispatchers/stats.go
@@ -21,10 +21,11 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) StatSv1Ping(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) StatSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
}
@@ -39,7 +40,7 @@ func (dS *DispatcherService) StatSv1Ping(args *utils.CGREvent, reply *string) (e
return dS.Dispatch(args, utils.MetaStats, utils.StatSv1Ping, args, reply)
}
-func (dS *DispatcherService) StatSv1GetStatQueuesForEvent(args *utils.CGREvent,
+func (dS *DispatcherService) StatSv1GetStatQueuesForEvent(ctx *context.Context, args *utils.CGREvent,
reply *[]string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -52,7 +53,7 @@ func (dS *DispatcherService) StatSv1GetStatQueuesForEvent(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaStats, utils.StatSv1GetStatQueuesForEvent, args, reply)
}
-func (dS *DispatcherService) StatSv1GetQueueStringMetrics(args *utils.TenantIDWithAPIOpts,
+func (dS *DispatcherService) StatSv1GetQueueStringMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts,
reply *map[string]string) (err error) {
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -69,7 +70,7 @@ func (dS *DispatcherService) StatSv1GetQueueStringMetrics(args *utils.TenantIDWi
}, utils.MetaStats, utils.StatSv1GetQueueStringMetrics, args, reply)
}
-func (dS *DispatcherService) StatSv1ProcessEvent(args *utils.CGREvent,
+func (dS *DispatcherService) StatSv1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *[]string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -82,7 +83,7 @@ func (dS *DispatcherService) StatSv1ProcessEvent(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaStats, utils.StatSv1ProcessEvent, args, reply)
}
-func (dS *DispatcherService) StatSv1GetQueueFloatMetrics(args *utils.TenantIDWithAPIOpts,
+func (dS *DispatcherService) StatSv1GetQueueFloatMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts,
reply *map[string]float64) (err error) {
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if err = dS.authorize(utils.StatSv1GetQueueFloatMetrics,
@@ -98,7 +99,7 @@ func (dS *DispatcherService) StatSv1GetQueueFloatMetrics(args *utils.TenantIDWit
}, utils.MetaStats, utils.StatSv1GetQueueFloatMetrics, args, reply)
}
-func (dS *DispatcherService) StatSv1GetQueueIDs(args *utils.TenantWithAPIOpts,
+func (dS *DispatcherService) StatSv1GetQueueIDs(ctx *context.Context, args *utils.TenantWithAPIOpts,
reply *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
diff --git a/dispatchers/stats_it_test.go b/dispatchers/stats_it_test.go
index 83661186b..10c30e5dd 100644
--- a/dispatchers/stats_it_test.go
+++ b/dispatchers/stats_it_test.go
@@ -27,6 +27,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
@@ -69,7 +70,7 @@ func TestDspStatS(t *testing.T) {
func testDspStsPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.StatSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.StatSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -80,19 +81,19 @@ func testDspStsPingFailover(t *testing.T) {
utils.OptsAPIKey: "stat12345",
},
}
- if err := dispEngine.RPC.Call(utils.StatSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.StatSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.StatSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
@@ -120,7 +121,7 @@ func testDspStsGetStatFailover(t *testing.T) {
utils.OptsAPIKey: "stat12345",
},
}
- if err := dispEngine.RPC.Call(utils.StatSv1ProcessEvent, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1ProcessEvent, args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -136,7 +137,7 @@ func testDspStsGetStatFailover(t *testing.T) {
},
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
args2, &metrics); err != nil {
t.Error(err)
}
@@ -144,7 +145,7 @@ func testDspStsGetStatFailover(t *testing.T) {
allEngine.startEngine(t)
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
args2, &metrics); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error NOT_FOUND but received %v and reply %v\n", err, reply)
}
@@ -153,12 +154,12 @@ func testDspStsGetStatFailover(t *testing.T) {
func testDspStsPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.StatSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.StatSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.StatSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "stat12345",
@@ -185,7 +186,7 @@ func testDspStsTestAuthKey(t *testing.T) {
utils.OptsAPIKey: "12345",
},
}
- if err := dispEngine.RPC.Call(utils.StatSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1ProcessEvent,
args, &reply); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
@@ -201,7 +202,7 @@ func testDspStsTestAuthKey(t *testing.T) {
}
var metrics map[string]string
- if err := dispEngine.RPC.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
args2, &metrics); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
@@ -225,7 +226,7 @@ func testDspStsTestAuthKey2(t *testing.T) {
utils.OptsAPIKey: "stat12345",
},
}
- if err := dispEngine.RPC.Call(utils.StatSv1ProcessEvent, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1ProcessEvent, args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -245,7 +246,7 @@ func testDspStsTestAuthKey2(t *testing.T) {
utils.MetaTCD: "2m15s",
}
- if err := dispEngine.RPC.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
args2, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -267,7 +268,7 @@ func testDspStsTestAuthKey2(t *testing.T) {
utils.OptsAPIKey: "stat12345",
},
}
- if err := dispEngine.RPC.Call(utils.StatSv1ProcessEvent, args, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1ProcessEvent, args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -277,7 +278,7 @@ func testDspStsTestAuthKey2(t *testing.T) {
utils.MetaTCC: "133",
utils.MetaTCD: "3m0s",
}
- if err := dispEngine.RPC.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
args2, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -303,7 +304,7 @@ func testDspStsTestAuthKey3(t *testing.T) {
utils.MetaTCD: 180 * 1e9,
}
- if err := dispEngine.RPC.Call(utils.StatSv1GetQueueFloatMetrics,
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1GetQueueFloatMetrics,
args2, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -311,7 +312,7 @@ func testDspStsTestAuthKey3(t *testing.T) {
}
estats := []string{"Stats2", "Stats2_1"}
- if err := dispEngine.RPC.Call(utils.StatSv1GetQueueIDs,
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1GetQueueIDs,
&utils.TenantWithAPIOpts{
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -327,7 +328,7 @@ func testDspStsTestAuthKey3(t *testing.T) {
}
estats = []string{"Stats2"}
- if err := dispEngine.RPC.Call(utils.StatSv1GetStatQueuesForEvent, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.StatSv1GetStatQueuesForEvent, &utils.CGREvent{
Tenant: "cgrates.org",
ID: "GetStats",
Event: map[string]any{
diff --git a/dispatchers/stats_test.go b/dispatchers/stats_test.go
index 2bbce11b1..3f6796cc5 100644
--- a/dispatchers/stats_test.go
+++ b/dispatchers/stats_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -32,7 +33,7 @@ func TestDspStatSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.StatSv1Ping(CGREvent, reply)
+ result := dspSrv.StatSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -44,7 +45,7 @@ func TestDspStatSv1PingNilEvent(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.StatSv1Ping(nil, reply)
+ result := dspSrv.StatSv1Ping(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -59,7 +60,7 @@ func TestDspStatSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.StatSv1Ping(CGREvent, reply)
+ result := dspSrv.StatSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -73,7 +74,7 @@ func TestDspStatSv1GetStatQueuesForEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.StatSv1GetStatQueuesForEvent(CGREvent, reply)
+ result := dspSrv.StatSv1GetStatQueuesForEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -88,7 +89,7 @@ func TestDspStatSv1GetStatQueuesForEventErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.StatSv1GetStatQueuesForEvent(CGREvent, reply)
+ result := dspSrv.StatSv1GetStatQueuesForEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -104,7 +105,7 @@ func TestDspStatSv1GetQueueStringMetricsNil(t *testing.T) {
},
}
var reply *map[string]string
- result := dspSrv.StatSv1GetQueueStringMetrics(CGREvent, reply)
+ result := dspSrv.StatSv1GetQueueStringMetrics(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -121,7 +122,7 @@ func TestDspStatSv1GetQueueStringMetricsErrorNil(t *testing.T) {
},
}
var reply *map[string]string
- result := dspSrv.StatSv1GetQueueStringMetrics(CGREvent, reply)
+ result := dspSrv.StatSv1GetQueueStringMetrics(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -135,7 +136,7 @@ func TestDspStatSv1ProcessEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.StatSv1ProcessEvent(CGREvent, reply)
+ result := dspSrv.StatSv1ProcessEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -150,7 +151,7 @@ func TestDspStatSv1ProcessEventErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.StatSv1ProcessEvent(CGREvent, reply)
+ result := dspSrv.StatSv1ProcessEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -166,7 +167,7 @@ func TestDspStatSv1GetQueueFloatMetricsNil(t *testing.T) {
},
}
var reply *map[string]float64
- result := dspSrv.StatSv1GetQueueFloatMetrics(CGREvent, reply)
+ result := dspSrv.StatSv1GetQueueFloatMetrics(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -183,7 +184,7 @@ func TestDspStatSv1GetQueueFloatMetricsErrorNil(t *testing.T) {
},
}
var reply *map[string]float64
- result := dspSrv.StatSv1GetQueueFloatMetrics(CGREvent, reply)
+ result := dspSrv.StatSv1GetQueueFloatMetrics(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -197,7 +198,7 @@ func TestDspStatSv1GetQueueIDsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.StatSv1GetQueueIDs(CGREvent, reply)
+ result := dspSrv.StatSv1GetQueueIDs(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -212,7 +213,7 @@ func TestDspStatSv1GetQueueIDsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.StatSv1GetQueueIDs(CGREvent, reply)
+ result := dspSrv.StatSv1GetQueueIDs(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/thresholds.go b/dispatchers/thresholds.go
index 059c0d7b0..b89b6d370 100644
--- a/dispatchers/thresholds.go
+++ b/dispatchers/thresholds.go
@@ -21,11 +21,12 @@ package dispatchers
import (
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ThresholdSv1Ping(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) ThresholdSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
if args == nil {
args = new(utils.CGREvent)
}
@@ -39,7 +40,7 @@ func (dS *DispatcherService) ThresholdSv1Ping(args *utils.CGREvent, reply *strin
return dS.Dispatch(args, utils.MetaThresholds, utils.ThresholdSv1Ping, args, reply)
}
-func (dS *DispatcherService) ThresholdSv1GetThresholdsForEvent(args *utils.CGREvent,
+func (dS *DispatcherService) ThresholdSv1GetThresholdsForEvent(ctx *context.Context, args *utils.CGREvent,
t *engine.Thresholds) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -52,7 +53,7 @@ func (dS *DispatcherService) ThresholdSv1GetThresholdsForEvent(args *utils.CGREv
return dS.Dispatch(args, utils.MetaThresholds, utils.ThresholdSv1GetThresholdsForEvent, args, t)
}
-func (dS *DispatcherService) ThresholdSv1ProcessEvent(args *utils.CGREvent,
+func (dS *DispatcherService) ThresholdSv1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
tIDs *[]string) (err error) {
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
@@ -65,7 +66,7 @@ func (dS *DispatcherService) ThresholdSv1ProcessEvent(args *utils.CGREvent,
return dS.Dispatch(args, utils.MetaThresholds, utils.ThresholdSv1ProcessEvent, args, tIDs)
}
-func (dS *DispatcherService) ThresholdSv1GetThresholdIDs(args *utils.TenantWithAPIOpts, tIDs *[]string) (err error) {
+func (dS *DispatcherService) ThresholdSv1GetThresholdIDs(ctx *context.Context, args *utils.TenantWithAPIOpts, tIDs *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
@@ -82,7 +83,7 @@ func (dS *DispatcherService) ThresholdSv1GetThresholdIDs(args *utils.TenantWithA
}, utils.MetaThresholds, utils.ThresholdSv1GetThresholdIDs, args, tIDs)
}
-func (dS *DispatcherService) ThresholdSv1GetThreshold(args *utils.TenantIDWithAPIOpts, th *engine.Threshold) (err error) {
+func (dS *DispatcherService) ThresholdSv1GetThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, th *engine.Threshold) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
tnt = args.TenantID.Tenant
diff --git a/dispatchers/thresholds_it_test.go b/dispatchers/thresholds_it_test.go
index 139579ffd..a3da35482 100644
--- a/dispatchers/thresholds_it_test.go
+++ b/dispatchers/thresholds_it_test.go
@@ -27,6 +27,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -70,7 +71,7 @@ func TestDspThresholdS(t *testing.T) {
func testDspThPingFailover(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
@@ -82,19 +83,19 @@ func testDspThPingFailover(t *testing.T) {
utils.OptsAPIKey: "thr12345",
},
}
- if err := dispEngine.RPC.Call(utils.ThresholdSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.ThresholdSv1Ping, &ev, &reply); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1Ping, &ev, &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.ThresholdSv1Ping, &ev, &reply); err == nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1Ping, &ev, &reply); err == nil {
t.Errorf("Expected error but received %v and reply %v\n", err, reply)
}
allEngine.startEngine(t)
@@ -118,12 +119,12 @@ func testDspThProcessEventFailover(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.ThresholdSv1ProcessEvent, args,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, args,
&ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error NOT_FOUND but received %v and reply %v\n", err, ids)
}
allEngine2.stopEngine(t)
- if err := dispEngine.RPC.Call(utils.ThresholdSv1ProcessEvent, args, &ids); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, args, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eIDs, ids) {
t.Errorf("expecting: %+v, received: %+v", eIDs, ids)
@@ -133,12 +134,12 @@ func testDspThProcessEventFailover(t *testing.T) {
func testDspThPing(t *testing.T) {
var reply string
- if err := allEngine.RPC.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := allEngine.RPC.Call(context.Background(), utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := dispEngine.RPC.Call(utils.ThresholdSv1Ping, &utils.CGREvent{
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -166,12 +167,12 @@ func testDspThTestAuthKey(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.ThresholdSv1ProcessEvent,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent,
args, &ids); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
var th *engine.Thresholds
- if err := dispEngine.RPC.Call(utils.ThresholdSv1GetThresholdsForEvent, args,
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1GetThresholdsForEvent, args,
&th); err == nil || err.Error() != utils.ErrUnauthorizedApi.Error() {
t.Error(err)
}
@@ -193,7 +194,7 @@ func testDspThTestAuthKey2(t *testing.T) {
},
}
- if err := dispEngine.RPC.Call(utils.ThresholdSv1ProcessEvent, args, &ids); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, args, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eIDs, ids) {
t.Errorf("expecting: %+v, received: %+v", eIDs, ids)
@@ -206,7 +207,7 @@ func testDspThTestAuthKey2(t *testing.T) {
Hits: 1,
},
}
- if err := dispEngine.RPC.Call(utils.ThresholdSv1GetThresholdsForEvent, args, &th); err != nil {
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1GetThresholdsForEvent, args, &th); err != nil {
t.Error(err)
} else if !reflect.DeepEqual((*eTh)[0].Tenant, (*th)[0].Tenant) {
t.Errorf("expecting: %+v, received: %+v", (*eTh)[0].Tenant, (*th)[0].Tenant)
@@ -224,7 +225,7 @@ func testDspThTestAuthKey3(t *testing.T) {
ID: "THD_ACNT_1002",
Hits: 1,
}
- if err := dispEngine.RPC.Call(utils.ThresholdSv1GetThreshold, &utils.TenantIDWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "cgrates.org",
ID: "THD_ACNT_1002",
@@ -245,7 +246,7 @@ func testDspThTestAuthKey3(t *testing.T) {
var ids []string
eIDs := []string{"THD_ACNT_1002"}
- if err := dispEngine.RPC.Call(utils.ThresholdSv1GetThresholdIDs, &utils.TenantWithAPIOpts{
+ if err := dispEngine.RPC.Call(context.Background(), utils.ThresholdSv1GetThresholdIDs, &utils.TenantWithAPIOpts{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsAPIKey: "thr12345",
diff --git a/dispatchers/thresholds_test.go b/dispatchers/thresholds_test.go
index 3051ed09d..edfc86bee 100644
--- a/dispatchers/thresholds_test.go
+++ b/dispatchers/thresholds_test.go
@@ -21,6 +21,7 @@ package dispatchers
import (
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -30,7 +31,7 @@ func TestDspThresholdSv1PingNilEvent(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ThresholdSv1Ping(nil, reply)
+ result := dspSrv.ThresholdSv1Ping(context.Background(), nil, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -44,7 +45,7 @@ func TestDspThresholdSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ThresholdSv1Ping(CGREvent, reply)
+ result := dspSrv.ThresholdSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -57,7 +58,7 @@ func TestDspThresholdSv1PingErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.CGREvent{}
var reply *string
- result := dspSrv.ThresholdSv1Ping(CGREvent, reply)
+ result := dspSrv.ThresholdSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -71,7 +72,7 @@ func TestDspThresholdSv1GetThresholdsForEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Thresholds
- result := dspSrv.ThresholdSv1GetThresholdsForEvent(CGREvent, reply)
+ result := dspSrv.ThresholdSv1GetThresholdsForEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -86,7 +87,7 @@ func TestDspThresholdSv1GetThresholdsEvnil(t *testing.T) {
Tenant: "tenant",
}
var reply *engine.Thresholds
- result := dspSrv.ThresholdSv1GetThresholdsForEvent(CGREvent, reply)
+ result := dspSrv.ThresholdSv1GetThresholdsForEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -100,7 +101,7 @@ func TestDspThresholdSv1ProcessEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.ThresholdSv1ProcessEvent(CGREvent, reply)
+ result := dspSrv.ThresholdSv1ProcessEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -115,7 +116,7 @@ func TestDspThresholdSv1ProcessEventnNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.ThresholdSv1ProcessEvent(CGREvent, reply)
+ result := dspSrv.ThresholdSv1ProcessEvent(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -129,7 +130,7 @@ func TestDspThresholdSv1GetThresholdIDsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.ThresholdSv1GetThresholdIDs(CGREvent, reply)
+ result := dspSrv.ThresholdSv1GetThresholdIDs(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -144,7 +145,7 @@ func TestDspThresholdSv1GetThresholdIDErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]string
- result := dspSrv.ThresholdSv1GetThresholdIDs(CGREvent, reply)
+ result := dspSrv.ThresholdSv1GetThresholdIDs(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -160,7 +161,7 @@ func TestDspThresholdSv1GetThresholdNil(t *testing.T) {
},
}
var reply *engine.Threshold
- result := dspSrv.ThresholdSv1GetThreshold(CGREvent, reply)
+ result := dspSrv.ThresholdSv1GetThreshold(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -177,7 +178,7 @@ func TestDspThresholdSv1GetThresholdErrorNil(t *testing.T) {
},
}
var reply *engine.Threshold
- result := dspSrv.ThresholdSv1GetThreshold(CGREvent, reply)
+ result := dspSrv.ThresholdSv1GetThreshold(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/ees/amqp_it_test.go b/ees/amqp_it_test.go
index ee4b5aec2..99122d5cb 100644
--- a/ees/amqp_it_test.go
+++ b/ees/amqp_it_test.go
@@ -22,11 +22,13 @@ along with this program. If not, see
package ees
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +39,7 @@ var (
amqpConfDir string
amqpCfgPath string
amqpCfg *config.CGRConfig
- amqpRPC *rpc.Client
+ amqpRPC *birpc.Client
amqpExportPath string
sTestsAMQP = []func(t *testing.T){
@@ -130,7 +132,7 @@ func testAMQPExportEvent(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := amqpRPC.Call(utils.EeSv1ProcessEvent, ev, &reply); err != nil {
+ if err := amqpRPC.Call(context.Background(), utils.EeSv1ProcessEvent, ev, &reply); err != nil {
t.Error(err)
}
diff --git a/ees/amqpv1_it_test.go b/ees/amqpv1_it_test.go
index 2dfd196f2..50c56a8d3 100644
--- a/ees/amqpv1_it_test.go
+++ b/ees/amqpv1_it_test.go
@@ -19,14 +19,15 @@ along with this program. If not, see
package ees
import (
- "context"
"flag"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
amqpv1 "github.com/Azure/go-amqp"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ var (
amqpv1ConfDir string
amqpv1CfgPath string
amqpv1Cfg *config.CGRConfig
- amqpv1RPC *rpc.Client
+ amqpv1RPC *birpc.Client
amqpv1DialURL string
amqpv1ConnOpts *amqpv1.ConnOptions
@@ -135,7 +136,7 @@ func testAMQPv1ExportEvent(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := amqpv1RPC.Call(utils.EeSv1ProcessEvent, ev, &reply); err != nil {
+ if err := amqpv1RPC.Call(context.Background(), utils.EeSv1ProcessEvent, ev, &reply); err != nil {
t.Error(err)
}
time.Sleep(2 * time.Second)
diff --git a/ees/ees.go b/ees/ees.go
index 7774bd61c..d5669c892 100644
--- a/ees/ees.go
+++ b/ees/ees.go
@@ -23,6 +23,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -79,8 +80,8 @@ func (eeS *EventExporterS) Shutdown() {
eeS.setupCache(nil) // cleanup exporters
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
-func (eeS *EventExporterS) Call(serviceMethod string, args any, reply any) error {
+// Call implements birpc.ClientConnector interface for internal RPC
+func (eeS *EventExporterS) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.RPCCall(eeS, serviceMethod, args, reply)
}
@@ -110,7 +111,8 @@ func (eeS *EventExporterS) attrSProcessEvent(cgrEv *utils.CGREvent, attrIDs []st
cgrEv.APIOpts[utils.OptsAttributesProfileIDs] = attrIDs
cgrEv.APIOpts[utils.OptsContext] = utils.FirstNonEmpty(ctx,
utils.IfaceAsString(cgrEv.APIOpts[utils.OptsContext]), utils.MetaEEs)
- if err = eeS.connMgr.Call(eeS.cfg.EEsNoLksCfg().AttributeSConns, nil, utils.AttributeSv1ProcessEvent,
+ if err = eeS.connMgr.Call(context.TODO(), eeS.cfg.EEsNoLksCfg().AttributeSConns,
+ utils.AttributeSv1ProcessEvent,
cgrEv, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 {
*cgrEv = *rplyEv.CGREvent
} else if err != nil &&
@@ -122,7 +124,7 @@ func (eeS *EventExporterS) attrSProcessEvent(cgrEv *utils.CGREvent, attrIDs []st
// V1ProcessEvent will be called each time a new event is received from readers
// rply -> map[string]map[string]any
-func (eeS *EventExporterS) V1ProcessEvent(cgrEv *engine.CGREventWithEeIDs, rply *map[string]map[string]any) (err error) {
+func (eeS *EventExporterS) V1ProcessEvent(ctx *context.Context, cgrEv *engine.CGREventWithEeIDs, rply *map[string]map[string]any) (err error) {
eeS.cfg.RLocks(config.EEsJson)
defer eeS.cfg.RUnlocks(config.EEsJson)
diff --git a/ees/ees_test.go b/ees/ees_test.go
index 88cadea49..2fe6833ef 100644
--- a/ees/ees_test.go
+++ b/ees/ees_test.go
@@ -27,6 +27,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -80,7 +82,7 @@ func TestCall(t *testing.T) {
filterS := engine.NewFilterS(cfg, nil, newDM)
eeS := NewEventExporterS(cfg, filterS, nil)
errExpect := "UNSUPPORTED_SERVICE_METHOD"
- if err := eeS.Call("test", 24532, 43643); err == nil || err.Error() != errExpect {
+ if err := eeS.Call(context.Background(), "test", 24532, 43643); err == nil || err.Error() != errExpect {
t.Errorf("Expected %q but received %q", errExpect, err)
}
}
@@ -89,7 +91,7 @@ type testMockEvent struct {
calls map[string]func(args any, reply any) error
}
-func (sT *testMockEvent) Call(method string, arg any, rply any) error {
+func (sT *testMockEvent) Call(_ *context.Context, method string, arg any, rply any) error {
if call, has := sT.calls[method]; !has {
return rpcclient.ErrUnsupporteServiceMethod
} else {
@@ -119,9 +121,9 @@ func TestAttrSProcessEvent(t *testing.T) {
newIDb := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
newDM := engine.NewDataManager(newIDb, cfg.CacheCfg(), nil)
filterS := engine.NewFilterS(cfg, nil, newDM)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- testMock
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): clientConn,
})
eeS := NewEventExporterS(cfg, filterS, connMgr)
@@ -148,9 +150,9 @@ func TestAttrSProcessEvent2(t *testing.T) {
newIDb := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
newDM := engine.NewDataManager(newIDb, cfg.CacheCfg(), nil)
filterS := engine.NewFilterS(cfg, nil, newDM)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- testMock
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): clientConn,
})
eeS := NewEventExporterS(cfg, filterS, connMgr)
@@ -204,7 +206,7 @@ func TestV1ProcessEvent(t *testing.T) {
rplyExpect := map[string]map[string]any{
"SQLExporterFull": {},
}
- if err := eeS.V1ProcessEvent(cgrEv, &rply); err != nil {
+ if err := eeS.V1ProcessEvent(context.Background(), cgrEv, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, rplyExpect) {
t.Errorf("Expected %q but received %q", rplyExpect, rply)
@@ -241,13 +243,13 @@ func TestV1ProcessEvent2(t *testing.T) {
}
var rply map[string]map[string]any
errExpect := "NOT_FOUND"
- if err := eeS.V1ProcessEvent(cgrEv, &rply); err == nil || err.Error() != errExpect {
+ if err := eeS.V1ProcessEvent(context.Background(), cgrEv, &rply); err == nil || err.Error() != errExpect {
t.Errorf("Expecting %q but received %q", errExpect, err)
}
errExpect = "NOT_FOUND:test"
eeS.cfg.EEsCfg().Exporters[0].Filters = []string{"test"}
- if err := eeS.V1ProcessEvent(cgrEv, &rply); err == nil || err.Error() != errExpect {
+ if err := eeS.V1ProcessEvent(context.Background(), cgrEv, &rply); err == nil || err.Error() != errExpect {
t.Errorf("Expecting %q but received %q", errExpect, err)
}
}
@@ -274,7 +276,7 @@ func TestV1ProcessEvent3(t *testing.T) {
}
var rply map[string]map[string]any
errExpect := "MANDATORY_IE_MISSING: [connIDs]"
- if err := eeS.V1ProcessEvent(cgrEv, &rply); err == nil || err.Error() != errExpect {
+ if err := eeS.V1ProcessEvent(context.Background(), cgrEv, &rply); err == nil || err.Error() != errExpect {
t.Errorf("Expecting %q but received %q", errExpect, err)
}
}
@@ -311,7 +313,7 @@ func TestV1ProcessEvent4(t *testing.T) {
}
var rply map[string]map[string]any
errExpect := "PARTIALLY_EXECUTED"
- if err := eeS.V1ProcessEvent(cgrEv, &rply); err == nil || err.Error() != errExpect {
+ if err := eeS.V1ProcessEvent(context.Background(), cgrEv, &rply); err == nil || err.Error() != errExpect {
t.Errorf("Expecting %q but received %q", errExpect, err)
} else if len(rply) != 0 {
t.Error("Unexpected reply result")
@@ -373,7 +375,7 @@ func TestV1ProcessEventMockMetrics(t *testing.T) {
}
var rply map[string]map[string]any
errExpect := "cannot cast to map[string]any 5 for positive exports"
- if err := eeS.V1ProcessEvent(cgrEv, &rply); err == nil || err.Error() != errExpect {
+ if err := eeS.V1ProcessEvent(context.Background(), cgrEv, &rply); err == nil || err.Error() != errExpect {
t.Errorf("Expecting %q but received %q", errExpect, err)
}
}
@@ -406,7 +408,7 @@ func TestV1ProcessEvent5(t *testing.T) {
eeS := NewEventExporterS(cfg, filterS, nil)
var rply map[string]map[string]any
errExpect := "unsupported exporter type: "
- if err := eeS.V1ProcessEvent(cgrEv, &rply); err == nil || err.Error() != errExpect {
+ if err := eeS.V1ProcessEvent(context.Background(), cgrEv, &rply); err == nil || err.Error() != errExpect {
t.Errorf("Expected %v but received %v", errExpect, err)
}
}
@@ -432,7 +434,7 @@ func TestV1ProcessEvent6(t *testing.T) {
},
}
var rply map[string]map[string]any
- if err := eeS.V1ProcessEvent(cgrEv, &rply); err != nil {
+ if err := eeS.V1ProcessEvent(context.Background(), cgrEv, &rply); err != nil {
t.Error(err)
}
}
diff --git a/ees/elastic_it_test.go b/ees/elastic_it_test.go
index a50e99165..a21cf55fc 100644
--- a/ees/elastic_it_test.go
+++ b/ees/elastic_it_test.go
@@ -23,16 +23,17 @@ package ees
import (
"bytes"
- "context"
"encoding/json"
"flag"
- "net/rpc"
"os/exec"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/utils"
elasticsearch "github.com/elastic/go-elasticsearch/v8"
@@ -44,7 +45,7 @@ var (
elasticConfigDir string
elasticCfgPath string
elasticCfg *config.CGRConfig
- elasticRpc *rpc.Client
+ elasticRpc *birpc.Client
elasticServerPath = flag.Bool("elastic", false, "Run only if the user specify it")
sTestsElastic = []func(t *testing.T){
@@ -225,16 +226,16 @@ func testElasticExportEvents(t *testing.T) {
},
}
var reply map[string]utils.MapStorage
- if err := elasticRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := elasticRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
- if err := elasticRpc.Call(utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
+ if err := elasticRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
t.Error(err)
}
- if err := elasticRpc.Call(utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
+ if err := elasticRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
t.Error(err)
}
- if err := elasticRpc.Call(utils.EeSv1ProcessEvent, eventSMSNoFields, &reply); err != nil {
+ if err := elasticRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMSNoFields, &reply); err != nil {
t.Error(err)
}
}
diff --git a/ees/filecsv_it_test.go b/ees/filecsv_it_test.go
index fe4ed3dc8..218e6dd91 100644
--- a/ees/filecsv_it_test.go
+++ b/ees/filecsv_it_test.go
@@ -22,7 +22,6 @@ along with this program. If not, see
package ees
import (
- "net/rpc"
"os"
"path"
"path/filepath"
@@ -30,6 +29,9 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/engine"
@@ -41,7 +43,7 @@ var (
csvConfigDir string
csvCfgPath string
csvCfg *config.CGRConfig
- csvRpc *rpc.Client
+ csvRpc *birpc.Client
sTestsCsv = []func(t *testing.T){
testCreateDirectory,
@@ -184,13 +186,13 @@ func testCsvExportEvent(t *testing.T) {
},
}
var reply map[string]utils.MapStorage
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
t.Error(err)
}
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Second)
@@ -410,10 +412,10 @@ func testCsvExportComposedEvent(t *testing.T) {
},
}
var reply map[string]utils.MapStorage
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Second)
@@ -448,7 +450,7 @@ func testCsvExportMaskedDestination(t *testing.T) {
attrs := utils.AttrSetDestination{Id: "MASKED_DESTINATIONS", Prefixes: []string{"+4986517174963"}}
var reply string
- if err := csvRpc.Call(utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.APIerSv1SetDestination, &attrs, &reply); err != nil {
t.Error("Unexpected error", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -480,7 +482,7 @@ func testCsvExportMaskedDestination(t *testing.T) {
},
}
var rply map[string]utils.MapStorage
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &rply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &rply); err != nil {
t.Error(err)
}
time.Sleep(time.Second)
@@ -593,13 +595,13 @@ func testCsvExportEventWithInflateTemplate(t *testing.T) {
},
}
var reply map[string]utils.MapStorage
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
t.Error(err)
}
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Second)
@@ -662,7 +664,7 @@ func testCsvExportNotFoundExporter(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := csvRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err == nil ||
+ if err := csvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/ees/filefwv_it_test.go b/ees/filefwv_it_test.go
index 61e0a1ca8..858aadcc4 100644
--- a/ees/filefwv_it_test.go
+++ b/ees/filefwv_it_test.go
@@ -22,7 +22,6 @@ along with this program. If not, see
package ees
import (
- "net/rpc"
"os"
"path"
"path/filepath"
@@ -30,6 +29,9 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -39,7 +41,7 @@ var (
fwvConfigDir string
fwvCfgPath string
fwvCfg *config.CGRConfig
- fwvRpc *rpc.Client
+ fwvRpc *birpc.Client
sTestsFwv = []func(t *testing.T){
testCreateDirectory,
@@ -125,7 +127,7 @@ func testFwvExportEvent(t *testing.T) {
},
}
var reply map[string]utils.MapStorage
- if err := fwvRpc.Call(utils.EeSv1ProcessEvent, event, &reply); err != nil {
+ if err := fwvRpc.Call(context.Background(), utils.EeSv1ProcessEvent, event, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Second)
diff --git a/ees/httppost_it_test.go b/ees/httppost_it_test.go
index ef2498630..af454ba1c 100644
--- a/ees/httppost_it_test.go
+++ b/ees/httppost_it_test.go
@@ -24,12 +24,14 @@ package ees
import (
"io"
"net/http"
- "net/rpc"
"net/url"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/config"
@@ -40,7 +42,7 @@ var (
httpPostConfigDir string
httpPostCfgPath string
httpPostCfg *config.CGRConfig
- httpPostRpc *rpc.Client
+ httpPostRpc *birpc.Client
httpValues url.Values
sTestsHTTPPost = []func(t *testing.T){
@@ -221,7 +223,7 @@ func testHTTPExportEvent(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := httpPostRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := httpPostRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
@@ -244,7 +246,7 @@ func testHTTPExportEvent(t *testing.T) {
t.Errorf("Expected %+v, received: %+v", expHeader, httpJsonHdr["Origin"])
}
- if err := httpPostRpc.Call(utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
+ if err := httpPostRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
@@ -267,7 +269,7 @@ func testHTTPExportEvent(t *testing.T) {
t.Errorf("Expected %+v, received: %+v", expHeader, httpJsonHdr["Origin"])
}
- if err := httpPostRpc.Call(utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
+ if err := httpPostRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
@@ -289,7 +291,7 @@ func testHTTPExportEvent(t *testing.T) {
if len(httpJsonHdr["Origin"]) == 0 || httpJsonHdr["Origin"][0] != expHeader {
t.Errorf("Expected %+v, received: %+v", expHeader, httpJsonHdr["Origin"])
}
- if err := httpPostRpc.Call(utils.EeSv1ProcessEvent, eventSMSNoFields, &reply); err != nil {
+ if err := httpPostRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMSNoFields, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
diff --git a/ees/kafka_it_test.go b/ees/kafka_it_test.go
index 88614eb9f..8a54f3a95 100644
--- a/ees/kafka_it_test.go
+++ b/ees/kafka_it_test.go
@@ -22,16 +22,17 @@ along with this program. If not, see
package ees
import (
- "context"
"net"
- "net/rpc"
"path"
"strconv"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
kafka "github.com/segmentio/kafka-go"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -41,7 +42,7 @@ var (
kafkaConfigDir string
kafkaCfgPath string
kafkaCfg *config.CGRConfig
- kafkaRpc *rpc.Client
+ kafkaRpc *birpc.Client
sTestsKafka = []func(t *testing.T){
testCreateDirectory,
@@ -159,7 +160,7 @@ func testKafkaExportEvent(t *testing.T) {
}
var reply map[string]map[string]any
- if err := kafkaRpc.Call(utils.EeSv1ProcessEvent, event, &reply); err != nil {
+ if err := kafkaRpc.Call(context.Background(), utils.EeSv1ProcessEvent, event, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Second)
diff --git a/ees/lib_test.go b/ees/lib_test.go
index 336974885..9cc31703f 100644
--- a/ees/lib_test.go
+++ b/ees/lib_test.go
@@ -21,11 +21,11 @@ package ees
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
"os"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/config"
@@ -38,12 +38,12 @@ var (
encoding = flag.String("rpc", utils.MetaJSON, "what encoding would be used for rpc communication")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/ees/poster_it_test.go b/ees/poster_it_test.go
index 5f2403b93..b77d8289b 100644
--- a/ees/poster_it_test.go
+++ b/ees/poster_it_test.go
@@ -21,7 +21,6 @@ along with this program. If not, see
package ees
import (
- "context"
"encoding/json"
"flag"
"net/http"
@@ -31,6 +30,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
amqpv1 "github.com/Azure/go-amqp"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
diff --git a/ees/posterjsonmap_it_test.go b/ees/posterjsonmap_it_test.go
index ea2527f86..7806ca176 100644
--- a/ees/posterjsonmap_it_test.go
+++ b/ees/posterjsonmap_it_test.go
@@ -24,11 +24,13 @@ package ees
import (
"encoding/json"
"net/http"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/config"
@@ -39,7 +41,7 @@ var (
httpJSONMapConfigDir string
httpJSONMapCfgPath string
httpJSONMapCfg *config.CGRConfig
- httpJSONMapRpc *rpc.Client
+ httpJSONMapRpc *birpc.Client
httpJsonMap map[string]string
httpJsonHdr http.Header
@@ -224,7 +226,7 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
},
}
var reply map[string]utils.MapStorage
- if err := httpJSONMapRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := httpJSONMapRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
@@ -247,7 +249,7 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
if len(httpJsonHdr["Origin"]) == 0 || httpJsonHdr["Origin"][0] != expHeader {
t.Errorf("Expected %+v, received: %+v", expHeader, httpJsonHdr["Origin"])
}
- if err := httpJSONMapRpc.Call(utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
+ if err := httpJSONMapRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventData, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
@@ -270,7 +272,7 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
if len(httpJsonHdr["Origin"]) == 0 || httpJsonHdr["Origin"][0] != expHeader {
t.Errorf("Expected %+v, received: %+v", expHeader, httpJsonHdr["Origin"])
}
- if err := httpJSONMapRpc.Call(utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
+ if err := httpJSONMapRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMS, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
@@ -294,7 +296,7 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
t.Errorf("Expected %+v, received: %+v", expHeader, httpJsonHdr["Origin"])
}
- if err := httpJSONMapRpc.Call(utils.EeSv1ProcessEvent, eventSMSNoFields, &reply); err != nil {
+ if err := httpJSONMapRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventSMSNoFields, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
diff --git a/ees/rpc.go b/ees/rpc.go
index 86ddb4563..6aace36a3 100644
--- a/ees/rpc.go
+++ b/ees/rpc.go
@@ -23,6 +23,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -70,7 +71,7 @@ func (e *RPCee) ExportEvent(args any, _ string) (err error) {
e.Lock()
defer e.Unlock()
var rply string
- return e.connMgr.Call(e.connIDs, nil, e.serviceMethod, args, &rply)
+ return e.connMgr.Call(context.TODO(), e.connIDs, e.serviceMethod, args, &rply)
}
func (e *RPCee) Close() (err error) {
diff --git a/ees/rpc_test.go b/ees/rpc_test.go
index 1bbab90eb..a74a000e5 100644
--- a/ees/rpc_test.go
+++ b/ees/rpc_test.go
@@ -23,10 +23,10 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestNewRpcEE(t *testing.T) {
@@ -35,7 +35,7 @@ func TestNewRpcEE(t *testing.T) {
if err != nil {
t.Error(err)
}
- connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan rpcclient.ClientConnector))
+ connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
rcv, err := NewRpcEE(eeSCfg, dc, connMgr)
if err != nil {
@@ -108,7 +108,7 @@ func TestRPCConnect(t *testing.T) {
if err != nil {
t.Error(err)
}
- connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan rpcclient.ClientConnector))
+ connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
rpcEe, err := NewRpcEE(eeSCfg, dc, connMgr)
if err != nil {
t.Error(err)
@@ -124,7 +124,7 @@ func TestRPCClose(t *testing.T) {
if err != nil {
t.Error(err)
}
- connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan rpcclient.ClientConnector))
+ connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
rpcEe, err := NewRpcEE(eeSCfg, dc, connMgr)
if err != nil {
t.Error(err)
@@ -145,7 +145,7 @@ func TestRPCGetMetrics(t *testing.T) {
"just_a_field": "just_a_value",
},
}
- connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan rpcclient.ClientConnector))
+ connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
rpcEe, err := NewRpcEE(eeSCfg, dc, connMgr)
if err != nil {
t.Error(err)
@@ -162,7 +162,7 @@ func TestRPCPrepareMap(t *testing.T) {
if err != nil {
t.Error(err)
}
- connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan rpcclient.ClientConnector))
+ connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
rpcEe, err := NewRpcEE(eeSCfg, dc, connMgr)
if err != nil {
t.Error(err)
diff --git a/ees/s3_it_test.go b/ees/s3_it_test.go
index 69f8926dc..45edb89d3 100644
--- a/ees/s3_it_test.go
+++ b/ees/s3_it_test.go
@@ -24,16 +24,18 @@ package ees
import (
"flag"
"fmt"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -45,7 +47,7 @@ var (
s3ConfDir string
s3CfgPath string
s3Cfg *config.CGRConfig
- s3RPC *rpc.Client
+ s3RPC *birpc.Client
sTestsS3 = []func(t *testing.T){
testS3LoadConfig,
@@ -138,7 +140,7 @@ func testS3ExportEvent(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := s3RPC.Call(utils.EeSv1ProcessEvent, ev, &reply); err != nil {
+ if err := s3RPC.Call(context.Background(), utils.EeSv1ProcessEvent, ev, &reply); err != nil {
t.Error(err)
}
time.Sleep(2 * time.Second)
diff --git a/ees/sql_it_test.go b/ees/sql_it_test.go
index 25b56b6bd..978fa528c 100644
--- a/ees/sql_it_test.go
+++ b/ees/sql_it_test.go
@@ -23,11 +23,13 @@ package ees
import (
"fmt"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/utils"
"gorm.io/driver/mysql"
@@ -42,7 +44,7 @@ var (
sqlEeConfigDir string
sqlEeCfgPath string
sqlEeCfg *config.CGRConfig
- sqlEeRpc *rpc.Client
+ sqlEeRpc *birpc.Client
db2 *gorm.DB
dbConnString = "cgrates:CGRateS.org@tcp(127.0.0.1:3306)/%s?charset=utf8&loc=Local&parseTime=true&sql_mode='ALLOW_INVALID_DATES'"
@@ -300,7 +302,7 @@ func testSqlEeExportEventFull(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := sqlEeRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := sqlEeRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
@@ -336,7 +338,7 @@ func testSqlEeExportEventPartial(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := sqlEeRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := sqlEeRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
diff --git a/ees/sqs_it_test.go b/ees/sqs_it_test.go
index a5a3e64f5..9382c9170 100644
--- a/ees/sqs_it_test.go
+++ b/ees/sqs_it_test.go
@@ -23,16 +23,18 @@ package ees
import (
"flag"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/sqs"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -45,7 +47,7 @@ var (
sqsConfDir string
sqsCfgPath string
sqsCfg *config.CGRConfig
- sqsRPC *rpc.Client
+ sqsRPC *birpc.Client
sTestsSQS = []func(t *testing.T){
testSQSLoadConfig,
@@ -137,7 +139,7 @@ func testSQSExportEvent(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := sqsRPC.Call(utils.EeSv1ProcessEvent, ev, &reply); err != nil {
+ if err := sqsRPC.Call(context.Background(), utils.EeSv1ProcessEvent, ev, &reply); err != nil {
t.Error(err)
}
diff --git a/ees/virtual_ee_it_test.go b/ees/virtual_ee_it_test.go
index 7a7f01d67..eca784b5e 100644
--- a/ees/virtual_ee_it_test.go
+++ b/ees/virtual_ee_it_test.go
@@ -22,7 +22,6 @@ along with this program. If not, see
package ees
import (
- "net/rpc"
"os"
"path"
"path/filepath"
@@ -30,6 +29,9 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/config"
@@ -40,7 +42,7 @@ var (
virtConfigDir string
virtCfgPath string
virtCfg *config.CGRConfig
- virtRpc *rpc.Client
+ virtRpc *birpc.Client
sTestsVirt = []func(t *testing.T){
testCreateDirectory,
@@ -126,7 +128,7 @@ func testVirtExportSupplierEvent(t *testing.T) {
}
var reply map[string]utils.MapStorage
- if err := virtRpc.Call(utils.EeSv1ProcessEvent, supplierEvent, &reply); err != nil {
+ if err := virtRpc.Call(context.Background(), utils.EeSv1ProcessEvent, supplierEvent, &reply); err != nil {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
@@ -159,7 +161,7 @@ func testVirtExportEvents(t *testing.T) {
},
}
var reply map[string]utils.MapStorage
- if err := virtRpc.Call(utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
+ if err := virtRpc.Call(context.Background(), utils.EeSv1ProcessEvent, eventVoice, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Second)
diff --git a/engine/account.go b/engine/account.go
index b5727e9b3..9d26b4c9e 100644
--- a/engine/account.go
+++ b/engine/account.go
@@ -26,6 +26,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -565,7 +566,7 @@ func (acc *Account) debitCreditBalance(cd *CallDescriptor, count bool, dryRun bo
},
}
var tIDs []string
- if err := connMgr.Call(config.CgrConfig().RalsCfg().ThresholdSConns, nil,
+ if err := connMgr.Call(context.TODO(), config.CgrConfig().RalsCfg().ThresholdSConns,
utils.ThresholdSv1ProcessEvent, thEv, &tIDs); err != nil &&
err.Error() != utils.ErrNotFound.Error() {
utils.Logger.Warning(
@@ -1082,7 +1083,7 @@ func (acc *Account) Publish(initBal map[string]float64) {
}
if len(config.CgrConfig().RalsCfg().ThresholdSConns) != 0 {
var tIDs []string
- if err := connMgr.Call(config.CgrConfig().RalsCfg().ThresholdSConns, nil,
+ if err := connMgr.Call(context.TODO(), config.CgrConfig().RalsCfg().ThresholdSConns,
utils.ThresholdSv1ProcessEvent, cgrEv, &tIDs); err != nil &&
err.Error() != utils.ErrNotFound.Error() {
utils.Logger.Warning(
@@ -1091,7 +1092,7 @@ func (acc *Account) Publish(initBal map[string]float64) {
}
if len(config.CgrConfig().RalsCfg().StatSConns) != 0 {
var stsIDs []string
- if err := connMgr.Call(config.CgrConfig().RalsCfg().StatSConns, nil,
+ if err := connMgr.Call(context.TODO(), config.CgrConfig().RalsCfg().StatSConns,
utils.StatSv1ProcessEvent, cgrEv, &stsIDs); err != nil &&
err.Error() != utils.ErrNotFound.Error() {
utils.Logger.Warning(
diff --git a/engine/account_test.go b/engine/account_test.go
index e0fe0b164..23cb01551 100644
--- a/engine/account_test.go
+++ b/engine/account_test.go
@@ -29,9 +29,10 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
var (
@@ -3030,17 +3031,17 @@ func TestDebitCreditBalance(t *testing.T) {
config.SetCgrConfig(config.NewDefaultCGRConfig())
}()
cfg.RalsCfg().ThresholdSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &[]string{"id"}
*reply.(*[]string) = *rpl
return errors.New("Can't process Event")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): clientConn,
})
cd := &CallDescriptor{
diff --git a/engine/action.go b/engine/action.go
index bde218e4e..02046ad05 100644
--- a/engine/action.go
+++ b/engine/action.go
@@ -32,6 +32,8 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -216,7 +218,7 @@ func cdrLogAction(acc *Account, a *Action, acs Actions, _ *FilterS, extraData an
cdrs = append(cdrs, cdr)
var rply string
// After compute the CDR send it to CDR Server to be processed
- if err := connMgr.Call(config.CgrConfig().SchedulerCfg().CDRsConns, nil,
+ if err := connMgr.Call(context.TODO(), config.CgrConfig().SchedulerCfg().CDRsConns,
utils.CDRsV1ProcessEvent,
&ArgV1ProcessEvent{
Flags: []string{utils.ConcatenatedKey(utils.MetaChargers, "false")}, // do not try to get the chargers for cdrlog
@@ -447,7 +449,8 @@ func setddestinations(ub *Account, a *Action, acs Actions, _ *FilterS, extraData
continue
}
var sts StatQueue
- if err = connMgr.Call(config.CgrConfig().RalsCfg().StatSConns, nil, utils.StatSv1GetStatQueue,
+ if err = connMgr.Call(context.TODO(), config.CgrConfig().RalsCfg().StatSConns,
+ utils.StatSv1GetStatQueue,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
@@ -656,35 +659,43 @@ func cgrRPCAction(ub *Account, a *Action, acs Actions, _ *FilterS, extraData any
if params, err = utils.GetRpcParams(req.Method); err != nil {
return
}
- var client rpcclient.ClientConnector
+ var client birpc.ClientConnector
if req.Address == utils.MetaInternal {
- client = params.Object.(rpcclient.ClientConnector)
- } else if client, err = rpcclient.NewRPCClient(utils.TCP, req.Address, false, "", "", "",
- req.Attempts, 0, config.CgrConfig().GeneralCfg().ConnectTimeout,
- config.CgrConfig().GeneralCfg().ReplyTimeout, req.Transport,
- nil, false, nil); err != nil {
+ client = params.Object.(birpc.ClientConnector)
+ } else if client, err = rpcclient.NewRPCClient(context.TODO(), utils.TCP, req.Address, false, "", "", "",
+ req.Attempts, 0,
+ config.CgrConfig().GeneralCfg().MaxReconnectInterval,
+ utils.FibDuration,
+ config.CgrConfig().GeneralCfg().ConnectTimeout,
+ config.CgrConfig().GeneralCfg().ReplyTimeout,
+ req.Transport, nil, false, nil); err != nil {
return
}
- in, out := params.InParam, params.OutParam
- //utils.Logger.Info("Params: " + utils.ToJSON(req.Params))
- //p, err := utils.FromMapStringInterfaceValue(req.Params, in)
- if err = mapstructure.Decode(req.Params, in); err != nil {
+
+ // Decode's output parameter requires a pointer.
+ if reflect.TypeOf(params.InParam).Kind() == reflect.Pointer {
+ err = mapstructure.Decode(req.Params, params.InParam)
+ } else {
+ err = mapstructure.Decode(req.Params, ¶ms.InParam)
+
+ }
+ if err != nil {
utils.Logger.Info("<*cgr_rpc> err: " + err.Error())
return
}
- if in == nil {
+ if params.InParam == nil {
utils.Logger.Info(fmt.Sprintf("<*cgr_rpc> nil params err: req.Params: %+v params: %+v", req.Params, params))
return utils.ErrParserError
}
- utils.Logger.Info(fmt.Sprintf("<*cgr_rpc> calling: %s with: %s and result %v", req.Method, utils.ToJSON(in), out))
+ utils.Logger.Info(fmt.Sprintf("<*cgr_rpc> calling: %s with: %s and result %v", req.Method, utils.ToJSON(params.InParam), params.OutParam))
if !req.Async {
- err = client.Call(req.Method, in, out)
- utils.Logger.Info(fmt.Sprintf("<*cgr_rpc> result: %s err: %v", utils.ToJSON(out), err))
+ err = client.Call(context.TODO(), req.Method, params.InParam, params.OutParam)
+ utils.Logger.Info(fmt.Sprintf("<*cgr_rpc> result: %s err: %v", utils.ToJSON(params.OutParam), err))
return
}
go func() {
- err := client.Call(req.Method, in, out)
- utils.Logger.Info(fmt.Sprintf("<*cgr_rpc> result: %s err: %v", utils.ToJSON(out), err))
+ err := client.Call(context.TODO(), req.Method, params.InParam, params.OutParam)
+ utils.Logger.Info(fmt.Sprintf("<*cgr_rpc> result: %s err: %v", utils.ToJSON(params.OutParam), err))
}()
return
}
@@ -987,7 +998,7 @@ func export(ub *Account, a *Action, acs Actions, _ *FilterS, extraData any) (err
CGREvent: cgrEv,
}
var rply map[string]map[string]any
- return connMgr.Call(config.CgrConfig().ApierCfg().EEsConns, nil,
+ return connMgr.Call(context.TODO(), config.CgrConfig().ApierCfg().EEsConns,
utils.EeSv1ProcessEvent, args, &rply)
}
@@ -996,7 +1007,7 @@ func resetThreshold(ub *Account, a *Action, acs Actions, _ *FilterS, extraData a
TenantID: utils.NewTenantID(a.ExtraParameters),
}
var rply string
- return connMgr.Call(config.CgrConfig().SchedulerCfg().ThreshSConns, nil,
+ return connMgr.Call(context.TODO(), config.CgrConfig().SchedulerCfg().ThreshSConns,
utils.ThresholdSv1ResetThreshold, args, &rply)
}
@@ -1005,7 +1016,7 @@ func resetStatQueue(ub *Account, a *Action, acs Actions, _ *FilterS, extraData a
TenantID: utils.NewTenantID(a.ExtraParameters),
}
var rply string
- return connMgr.Call(config.CgrConfig().SchedulerCfg().StatSConns, nil,
+ return connMgr.Call(context.TODO(), config.CgrConfig().SchedulerCfg().StatSConns,
utils.StatSv1ResetStatQueue, args, &rply)
}
diff --git a/engine/actions_test.go b/engine/actions_test.go
index 5db0fd271..5b96dd688 100644
--- a/engine/actions_test.go
+++ b/engine/actions_test.go
@@ -31,6 +31,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
@@ -2454,39 +2456,11 @@ type Attr struct {
Age float64
}
-func (trpcp *TestRPCParameters) Hopa(in Attr, out *float64) error {
+func (trpcp *TestRPCParameters) Hopa(ctx *context.Context, in *Attr, out *float64) error {
trpcp.status = utils.OK
return nil
}
-func (trpcp *TestRPCParameters) Call(serviceMethod string, args any, reply any) error {
- parts := strings.Split(serviceMethod, ".")
- if len(parts) != 2 {
- return utils.ErrNotImplemented
- }
- // get method
- method := reflect.ValueOf(trpcp).MethodByName(parts[1])
- if !method.IsValid() {
- return utils.ErrNotImplemented
- }
-
- // construct the params
- params := []reflect.Value{reflect.ValueOf(args).Elem(), reflect.ValueOf(reply)}
-
- ret := method.Call(params)
- if len(ret) != 1 {
- return utils.ErrServerError
- }
- if ret[0].Interface() == nil {
- return nil
- }
- err, ok := ret[0].Interface().(error)
- if !ok {
- return utils.ErrServerError
- }
- return err
-}
-
func TestCgrRpcAction(t *testing.T) {
trpcp := &TestRPCParameters{}
utils.RegisterRpcParams("", trpcp)
@@ -2644,7 +2618,7 @@ type RPCMock struct {
args *ArgV1ProcessEvent
}
-func (r *RPCMock) Call(method string, args any, rply any) error {
+func (r *RPCMock) Call(ctx *context.Context, method string, args any, rply any) error {
if method != utils.CDRsV1ProcessEvent {
return rpcclient.ErrUnsupporteServiceMethod
}
@@ -2667,10 +2641,10 @@ func TestCdrLogAction(t *testing.T) {
dfltCfg.SchedulerCfg().CDRsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs)}
config.SetCgrConfig(dfltCfg)
- internalChan := make(chan rpcclient.ClientConnector, 1)
+ internalChan := make(chan birpc.ClientConnector, 1)
internalChan <- &mock
- NewConnManager(dfltCfg, map[string]chan rpcclient.ClientConnector{
+ NewConnManager(dfltCfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs): internalChan,
})
@@ -2947,8 +2921,8 @@ func TestActionSetDDestinations(t *testing.T) {
},
}
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.StatSv1GetStatQueue: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.StatSv1GetStatQueue: func(ctx *context.Context, args, reply any) error {
rpl := &StatQueue{
Tenant: "cgrates",
ID: "id",
@@ -2971,9 +2945,9 @@ func TestActionSetDDestinations(t *testing.T) {
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg): clientconn,
})
SetConnManager(connMgr)
@@ -3071,20 +3045,20 @@ func TestActionPublishAccount(t *testing.T) {
}()
cfg.RalsCfg().ThresholdSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ThreshSConnsCfg)}
cfg.RalsCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
*reply.(*[]string) = []string{"*thr"}
return errors.New("Can't publish!")
},
- utils.StatSv1ProcessEvent: func(args, reply any) error {
+ utils.StatSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
*reply.(*[]string) = []string{"*stat"}
return errors.New("Can't publish!")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ThreshSConnsCfg): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg): clientConn,
})
@@ -3167,8 +3141,8 @@ func TestExportAction(t *testing.T) {
cfg.ApierCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.EEsConnsCfg)}
config.SetCgrConfig(cfg)
ccMock := &ccMock{
- calls: map[string]func(args, reply any) error{
- utils.EeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args, reply any) error{
+ utils.EeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &map[string]map[string]any{}
*reply.(*map[string]map[string]any) = *rpl
@@ -3176,9 +3150,9 @@ func TestExportAction(t *testing.T) {
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.EEsConnsCfg): clientconn,
})
SetConnManager(connMgr)
@@ -3263,17 +3237,17 @@ func TestResetStatQueue(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.SchedulerCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg)}
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.StatSv1ResetStatQueue: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.StatSv1ResetStatQueue: func(ctx *context.Context, args, reply any) error {
rpl := "reset"
*reply.(*string) = rpl
return nil
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg): clientconn,
})
SetConnManager(connMgr)
@@ -3294,17 +3268,17 @@ func TestResetTreshold(t *testing.T) {
cfg.SchedulerCfg().ThreshSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ThreshSConnsCfg)}
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ResetThreshold: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ResetThreshold: func(ctx *context.Context, args, reply any) error {
rpl := "threshold_reset"
*reply.(*string) = rpl
return nil
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ThreshSConnsCfg): clientconn,
})
SetConnManager(connMgr)
@@ -3755,19 +3729,19 @@ func TestRemoveAccountActionErr(t *testing.T) {
},
}
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetAccountActionPlans: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetAccountActionPlans: func(ctx *context.Context, args, reply any) error {
return errors.New("ActionPlans not found")
},
- utils.ReplicatorSv1GetActionPlan: func(args, reply any) error {
+ utils.ReplicatorSv1GetActionPlan: func(ctx *context.Context, args, reply any) error {
return errors.New("ActionPlan not found")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
a := &Action{
@@ -4035,10 +4009,10 @@ func TestSetDestinationsErr(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.StatSv1GetStatQueue: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.StatSv1GetStatQueue: func(ctx *context.Context, args, reply any) error {
rpl := StatQueue{
Tenant: "cgrates.org",
ID: "StatsID",
@@ -4070,12 +4044,12 @@ func TestSetDestinationsErr(t *testing.T) {
*reply.(*StatQueue) = rpl
return nil
},
- utils.ReplicatorSv1SetReverseDestination: func(args, reply any) error {
+ utils.ReplicatorSv1SetReverseDestination: func(ctx *context.Context, args, reply any) error {
return utils.ErrNotImplemented
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
@@ -4160,15 +4134,15 @@ func TestRemoveAccountActionLogg(t *testing.T) {
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
cfg.DataDbCfg().RplConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetAccountActionPlans: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetAccountActionPlans: func(ctx *context.Context, args, reply any) error {
rpl := []string{"PACKAGE_10_SHARED_A_5"}
*reply.(*[]string) = rpl
return nil
},
- utils.ReplicatorSv1GetActionPlan: func(args, reply any) error {
+ utils.ReplicatorSv1GetActionPlan: func(ctx *context.Context, args, reply any) error {
rpl := ActionPlan{
Id: "PACKAGE_10_SHARED_A_5",
AccountIDs: utils.StringMap{
@@ -4178,11 +4152,11 @@ func TestRemoveAccountActionLogg(t *testing.T) {
*reply.(**ActionPlan) = &rpl
return nil
},
- utils.ReplicatorSv1SetActionPlan: func(args, reply any) error {
+ utils.ReplicatorSv1SetActionPlan: func(ctx *context.Context, args, reply any) error {
return utils.ErrNotFound
},
}}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
diff --git a/engine/attributes.go b/engine/attributes.go
index 8c2a03ccd..5c42ad40b 100644
--- a/engine/attributes.go
+++ b/engine/attributes.go
@@ -26,6 +26,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -242,7 +243,7 @@ func (alS *AttributeService) processEvent(tnt string, args *utils.CGREvent, evNm
}
// V1GetAttributeForEvent returns the AttributeProfile that matches the event
-func (alS *AttributeService) V1GetAttributeForEvent(args *utils.CGREvent,
+func (alS *AttributeService) V1GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent,
attrPrfl *AttributeProfile) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -282,7 +283,7 @@ func (alS *AttributeService) V1GetAttributeForEvent(args *utils.CGREvent,
}
// V1ProcessEvent proccess the event and returns the result
-func (alS *AttributeService) V1ProcessEvent(args *utils.CGREvent,
+func (alS *AttributeService) V1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *AttrSProcessEventReply) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
diff --git a/engine/attributes_test.go b/engine/attributes_test.go
index daa3ed0f3..8153b9e63 100644
--- a/engine/attributes_test.go
+++ b/engine/attributes_test.go
@@ -32,9 +32,10 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestAttributesShutdown(t *testing.T) {
@@ -71,7 +72,7 @@ func TestAttributesV1GetAttributeForEventNilCGREvent(t *testing.T) {
reply := &AttributeProfile{}
experr := fmt.Sprintf("MANDATORY_IE_MISSING: [%s]", "CGREvent")
- err := alS.V1GetAttributeForEvent(nil, reply)
+ err := alS.V1GetAttributeForEvent(context.Background(), nil, reply)
if err == nil || err.Error() != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -91,7 +92,7 @@ func TestAttributesV1GetAttributeForEventProfileNotFound(t *testing.T) {
reply := &AttributeProfile{}
experr := utils.ErrNotFound
- err := alS.V1GetAttributeForEvent(args, reply)
+ err := alS.V1GetAttributeForEvent(context.Background(), args, reply)
if err == nil || err != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -111,7 +112,7 @@ func TestAttributesV1GetAttributeForEvent2(t *testing.T) {
reply := &AttributeProfile{}
experr := utils.ErrNotFound
- err := alS.V1GetAttributeForEvent(args, reply)
+ err := alS.V1GetAttributeForEvent(context.Background(), args, reply)
if err == nil || err != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -121,7 +122,7 @@ func TestAttributesV1GetAttributeForEvent2(t *testing.T) {
func TestAttributesV1ProcessEvent(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.FilterSCfg().ResourceSConns = []string{}
- conMng := NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ conMng := NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
dm := NewDataManager(NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items), nil, conMng)
filterS := NewFilterS(cfg, conMng, dm)
if err := dm.SetAttributeProfile(&AttributeProfile{
@@ -187,15 +188,16 @@ func TestAttributesV1ProcessEvent(t *testing.T) {
},
blocker: false,
}
- if err = alS.V1ProcessEvent(&utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]any{
- utils.AccountField: "adrian@itsyscom.com",
- },
- APIOpts: map[string]any{
- utils.OptsAttributesProcessRuns: 2,
- },
- }, &rply); err != nil {
+ if err = alS.V1ProcessEvent(context.Background(),
+ &utils.CGREvent{
+ Tenant: "cgrates.org",
+ Event: map[string]any{
+ utils.AccountField: "adrian@itsyscom.com",
+ },
+ APIOpts: map[string]any{
+ utils.OptsAttributesProcessRuns: 2,
+ },
+ }, &rply); err != nil {
t.Errorf("Expected <%+v>, received <%+v>", nil, err)
} else if sort.Strings(rply.AlteredFields); !reflect.DeepEqual(expected, rply) {
t.Errorf("Expected <%+v>, received <%+v>", utils.ToJSON(expected), utils.ToJSON(rply))
@@ -206,7 +208,7 @@ func TestAttributesV1ProcessEventErrorMetaSum(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
cfg.FilterSCfg().ResourceSConns = []string{}
- conMng := NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ conMng := NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
dm := NewDataManager(NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items), nil, conMng)
filterS := NewFilterS(cfg, conMng, dm)
@@ -230,15 +232,16 @@ func TestAttributesV1ProcessEventErrorMetaSum(t *testing.T) {
alS := NewAttributeService(dm, filterS, cfg)
var rply AttrSProcessEventReply
expErr := "SERVER_ERROR: NotEnoughParameters"
- if err = alS.V1ProcessEvent(&utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]any{
- utils.AccountField: "adrian@itsyscom.com",
- },
- APIOpts: map[string]any{
- utils.OptsAttributesProcessRuns: 2,
- },
- }, &rply); err == nil || err.Error() != expErr {
+ if err = alS.V1ProcessEvent(context.Background(),
+ &utils.CGREvent{
+ Tenant: "cgrates.org",
+ Event: map[string]any{
+ utils.AccountField: "adrian@itsyscom.com",
+ },
+ APIOpts: map[string]any{
+ utils.OptsAttributesProcessRuns: 2,
+ },
+ }, &rply); err == nil || err.Error() != expErr {
t.Errorf("Expected <%+v>, received <%+v>", expErr, err)
}
@@ -248,7 +251,7 @@ func TestAttributesV1ProcessEventErrorMetaDifference(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
cfg.FilterSCfg().ResourceSConns = []string{}
- conMng := NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ conMng := NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, nil, conMng)
filterS := NewFilterS(cfg, conMng, dm)
@@ -273,15 +276,16 @@ func TestAttributesV1ProcessEventErrorMetaDifference(t *testing.T) {
alS := NewAttributeService(dm, filterS, cfg)
var rply AttrSProcessEventReply
expErr := "SERVER_ERROR: NotEnoughParameters"
- if err := alS.V1ProcessEvent(&utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]any{
- utils.AccountField: "adrian@itsyscom.com",
- },
- APIOpts: map[string]any{
- utils.OptsAttributesProcessRuns: 2,
- },
- }, &rply); err == nil || err.Error() != expErr {
+ if err := alS.V1ProcessEvent(context.Background(),
+ &utils.CGREvent{
+ Tenant: "cgrates.org",
+ Event: map[string]any{
+ utils.AccountField: "adrian@itsyscom.com",
+ },
+ APIOpts: map[string]any{
+ utils.OptsAttributesProcessRuns: 2,
+ },
+ }, &rply); err == nil || err.Error() != expErr {
t.Errorf("Expected <%+v>, received <%+v>", expErr, err)
}
@@ -315,15 +319,16 @@ func TestAttributesV1ProcessEventErrorMetaValueExponent(t *testing.T) {
alS := NewAttributeService(dm, filterS, cfg)
var rply AttrSProcessEventReply
expErr := "SERVER_ERROR: invalid arguments <[{\"Rules\":\"CGRATES.ORG\"}]> to *value_exponent"
- if err := alS.V1ProcessEvent(&utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]any{
- utils.AccountField: "adrian@itsyscom.com",
- },
- APIOpts: map[string]any{
- utils.OptsAttributesProcessRuns: 2,
- },
- }, &rply); err == nil || err.Error() != expErr {
+ if err := alS.V1ProcessEvent(context.Background(),
+ &utils.CGREvent{
+ Tenant: "cgrates.org",
+ Event: map[string]any{
+ utils.AccountField: "adrian@itsyscom.com",
+ },
+ APIOpts: map[string]any{
+ utils.OptsAttributesProcessRuns: 2,
+ },
+ }, &rply); err == nil || err.Error() != expErr {
t.Errorf("Expected <%+v>, received <%+v>", expErr, err)
}
@@ -1222,7 +1227,7 @@ func TestAttributesV1ProcessEventMultipleRuns1(t *testing.T) {
},
}
- if err := alS.V1ProcessEvent(args, reply); err != nil {
+ if err := alS.V1ProcessEvent(context.Background(), args, reply); err != nil {
t.Error(err)
} else {
sort.Strings(reply.AlteredFields)
@@ -1231,7 +1236,7 @@ func TestAttributesV1ProcessEventMultipleRuns1(t *testing.T) {
}
}
- if err := alS.V1ProcessEvent(nil, reply); err == nil {
+ if err := alS.V1ProcessEvent(context.Background(), nil, reply); err == nil {
t.Error("expected error")
}
}
@@ -1333,7 +1338,7 @@ func TestAttributesV1ProcessEventMultipleRuns2(t *testing.T) {
},
},
}
- if err := alS.V1ProcessEvent(args, reply); err != nil {
+ if err := alS.V1ProcessEvent(context.Background(), args, reply); err != nil {
t.Error(err)
} else {
sort.Strings(reply.AlteredFields)
@@ -1440,7 +1445,7 @@ func TestAttrSV1GetAttributeForEvent(t *testing.T) {
Weight: 10,
}, true)
var attrPrf AttributeProfile
- if err := attS.V1GetAttributeForEvent(args, &attrPrf); err != nil {
+ if err := attS.V1GetAttributeForEvent(context.Background(), args, &attrPrf); err != nil {
t.Error(err)
}
@@ -1544,31 +1549,33 @@ func TestAttributesV1ProcessEventSentryPeer(t *testing.T) {
blocker: false,
}
config.SetCgrConfig(cfg)
- if err = alS.V1ProcessEvent(&utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]any{
- utils.AccountField: "account_1001",
- utils.Destination: "453904509045",
- },
- APIOpts: map[string]any{
- utils.OptsAttributesProcessRuns: 2,
- },
- }, &rply); err != nil {
+ if err = alS.V1ProcessEvent(context.Background(),
+ &utils.CGREvent{
+ Tenant: "cgrates.org",
+ Event: map[string]any{
+ utils.AccountField: "account_1001",
+ utils.Destination: "453904509045",
+ },
+ APIOpts: map[string]any{
+ utils.OptsAttributesProcessRuns: 2,
+ },
+ }, &rply); err != nil {
t.Errorf("Expected <%+v>, received <%+v>", nil, err)
} else if sort.Strings(rply.AlteredFields); !reflect.DeepEqual(expected, rply) {
t.Errorf("Expected <%+v>, received <%+v>", utils.ToJSON(expected), utils.ToJSON(rply))
}
- if err = alS.V1ProcessEvent(&utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]any{
- utils.AccountField: "account_1001",
- utils.Destination: "100",
- },
- APIOpts: map[string]any{
- utils.OptsAttributesProcessRuns: 2,
- },
- }, &rply); err == nil {
+ if err = alS.V1ProcessEvent(context.Background(),
+ &utils.CGREvent{
+ Tenant: "cgrates.org",
+ Event: map[string]any{
+ utils.AccountField: "account_1001",
+ utils.Destination: "100",
+ },
+ APIOpts: map[string]any{
+ utils.OptsAttributesProcessRuns: 2,
+ },
+ }, &rply); err == nil {
t.Errorf("Expected <%+v>, received <%+v>", err, nil)
}
diff --git a/engine/caches.go b/engine/caches.go
index d54e2758a..854ead17d 100644
--- a/engine/caches.go
+++ b/engine/caches.go
@@ -27,6 +27,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -112,7 +113,7 @@ func NewCacheS(cfg *config.CGRConfig, dm *DataManager, cpS *CapsStats) (c *Cache
continue
}
val.OnEvicted = func(itmID string, value any) {
- if err := connMgr.Call(cfg.CacheCfg().ReplicationConns, nil, utils.CacheSv1ReplicateRemove,
+ if err := connMgr.Call(context.TODO(), cfg.CacheCfg().ReplicationConns, utils.CacheSv1ReplicateRemove,
&utils.ArgCacheReplicateRemove{
CacheID: k,
ItemID: itmID,
@@ -161,7 +162,8 @@ func (chS *CacheS) ReplicateSet(chID, itmID string, value any) (err error) {
return
}
var reply string
- return connMgr.Call(chS.cfg.CacheCfg().ReplicationConns, nil, utils.CacheSv1ReplicateSet,
+ return connMgr.Call(context.TODO(), chS.cfg.CacheCfg().ReplicationConns,
+ utils.CacheSv1ReplicateSet,
&utils.ArgCacheReplicateSet{
CacheID: chID,
ItemID: itmID,
@@ -185,7 +187,7 @@ func (chS *CacheS) SetWithReplicate(args *utils.ArgCacheReplicateSet) (err error
return
}
var reply string
- return connMgr.Call(chS.cfg.CacheCfg().ReplicationConns, nil,
+ return connMgr.Call(context.TODO(), chS.cfg.CacheCfg().ReplicationConns,
utils.CacheSv1ReplicateSet, args, &reply)
}
@@ -210,7 +212,7 @@ func (chS *CacheS) GetWithRemote(args *utils.ArgsGetCacheItemWithAPIOpts) (itm a
return nil, utils.ErrNotFound
}
// item was not found locally, query from remote
- if err = connMgr.Call(chS.cfg.CacheCfg().RemoteConns, nil,
+ if err = connMgr.Call(context.TODO(), chS.cfg.CacheCfg().RemoteConns,
utils.CacheSv1GetItem, args, &itm); err != nil &&
err.Error() == utils.ErrNotFound.Error() {
return nil, utils.ErrNotFound // correct the error coming as string type
@@ -306,11 +308,11 @@ func (chS *CacheS) Precache() (err error) {
// APIs start here
// Call gives the ability of CacheS to be passed as internal RPC
-func (chS *CacheS) Call(serviceMethod string, args any, reply any) error {
+func (chS *CacheS) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.RPCCall(chS, serviceMethod, args, reply)
}
-func (chS *CacheS) V1GetItemIDs(args *utils.ArgsGetCacheItemIDsWithAPIOpts,
+func (chS *CacheS) V1GetItemIDs(ctx *context.Context, args *utils.ArgsGetCacheItemIDsWithAPIOpts,
reply *[]string) (err error) {
itmIDs := chS.tCache.GetItemIDs(args.CacheID, args.ItemIDPrefix)
if len(itmIDs) == 0 {
@@ -320,14 +322,14 @@ func (chS *CacheS) V1GetItemIDs(args *utils.ArgsGetCacheItemIDsWithAPIOpts,
return
}
-func (chS *CacheS) V1HasItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chS *CacheS) V1HasItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *bool) (err error) {
*reply = chS.tCache.HasItem(args.CacheID, args.ItemID)
return
}
// V1GetItem returns a single item from the cache
-func (chS *CacheS) V1GetItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chS *CacheS) V1GetItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *any) (err error) {
itmIface, has := chS.tCache.Get(args.CacheID, args.ItemID)
if !has {
@@ -338,7 +340,7 @@ func (chS *CacheS) V1GetItem(args *utils.ArgsGetCacheItemWithAPIOpts,
}
// V1GetItemWithRemote queries the item from remote if not found locally
-func (chS *CacheS) V1GetItemWithRemote(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chS *CacheS) V1GetItemWithRemote(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *any) (err error) {
var itmIface any
if itmIface, err = chS.GetWithRemote(args); err != nil {
@@ -348,7 +350,7 @@ func (chS *CacheS) V1GetItemWithRemote(args *utils.ArgsGetCacheItemWithAPIOpts,
return
}
-func (chS *CacheS) V1GetItemExpiryTime(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chS *CacheS) V1GetItemExpiryTime(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *time.Time) (err error) {
expTime, has := chS.tCache.GetItemExpiryTime(args.CacheID, args.ItemID)
if !has {
@@ -358,14 +360,14 @@ func (chS *CacheS) V1GetItemExpiryTime(args *utils.ArgsGetCacheItemWithAPIOpts,
return
}
-func (chS *CacheS) V1RemoveItem(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chS *CacheS) V1RemoveItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *string) (err error) {
chS.tCache.Remove(args.CacheID, args.ItemID, true, utils.NonTransactional)
*reply = utils.OK
return
}
-func (chS *CacheS) V1RemoveItems(args *utils.AttrReloadCacheWithAPIOpts,
+func (chS *CacheS) V1RemoveItems(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts,
reply *string) (err error) {
for cacheID, ids := range args.Map() {
for _, id := range ids {
@@ -376,21 +378,21 @@ func (chS *CacheS) V1RemoveItems(args *utils.AttrReloadCacheWithAPIOpts,
return
}
-func (chS *CacheS) V1Clear(args *utils.AttrCacheIDsWithAPIOpts,
+func (chS *CacheS) V1Clear(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts,
reply *string) (err error) {
chS.tCache.Clear(args.CacheIDs)
*reply = utils.OK
return
}
-func (chS *CacheS) V1GetCacheStats(args *utils.AttrCacheIDsWithAPIOpts,
+func (chS *CacheS) V1GetCacheStats(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts,
rply *map[string]*ltcache.CacheStats) (err error) {
cs := chS.tCache.GetCacheStats(args.CacheIDs)
*rply = cs
return
}
-func (chS *CacheS) V1PrecacheStatus(args *utils.AttrCacheIDsWithAPIOpts, rply *map[string]string) (err error) {
+func (chS *CacheS) V1PrecacheStatus(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts, rply *map[string]string) (err error) {
if len(args.CacheIDs) == 0 {
args.CacheIDs = utils.CachePartitions.AsSlice()
}
@@ -410,13 +412,13 @@ func (chS *CacheS) V1PrecacheStatus(args *utils.AttrCacheIDsWithAPIOpts, rply *m
return
}
-func (chS *CacheS) V1HasGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (chS *CacheS) V1HasGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
rply *bool) (err error) {
*rply = chS.tCache.HasGroup(args.CacheID, args.GroupID)
return
}
-func (chS *CacheS) V1GetGroupItemIDs(args *utils.ArgsGetGroupWithAPIOpts,
+func (chS *CacheS) V1GetGroupItemIDs(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
rply *[]string) (err error) {
if has := chS.tCache.HasGroup(args.CacheID, args.GroupID); !has {
return utils.ErrNotFound
@@ -425,18 +427,18 @@ func (chS *CacheS) V1GetGroupItemIDs(args *utils.ArgsGetGroupWithAPIOpts,
return
}
-func (chS *CacheS) V1RemoveGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (chS *CacheS) V1RemoveGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
rply *string) (err error) {
chS.tCache.RemoveGroup(args.CacheID, args.GroupID, true, utils.NonTransactional)
*rply = utils.OK
return
}
-func (chS *CacheS) V1ReloadCache(attrs *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+func (chS *CacheS) V1ReloadCache(ctx *context.Context, attrs *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
return chS.cacheDataFromDB(attrs, reply, true)
}
-func (chS *CacheS) V1LoadCache(attrs *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+func (chS *CacheS) V1LoadCache(ctx *context.Context, attrs *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
return chS.cacheDataFromDB(attrs, reply, false)
}
@@ -479,7 +481,7 @@ func populateCacheLoadIDs(loadIDs map[string]int64, attrs map[string][]string) (
}
// V1ReplicateSet receives an item via replication to store in the cache
-func (chS *CacheS) V1ReplicateSet(args *utils.ArgCacheReplicateSet, reply *string) (err error) {
+func (chS *CacheS) V1ReplicateSet(ctx *context.Context, args *utils.ArgCacheReplicateSet, reply *string) (err error) {
if cmp, canCast := args.Value.(utils.Compiler); canCast {
if err = cmp.Compile(); err != nil {
return
@@ -497,7 +499,7 @@ func (chS *CacheS) ReplicateRemove(chID, itmID string) (err error) {
return
}
var reply string
- return connMgr.Call(chS.cfg.CacheCfg().ReplicationConns, nil, utils.CacheSv1ReplicateRemove,
+ return connMgr.Call(context.TODO(), chS.cfg.CacheCfg().ReplicationConns, utils.CacheSv1ReplicateRemove,
&utils.ArgCacheReplicateRemove{
CacheID: chID,
ItemID: itmID,
@@ -505,7 +507,7 @@ func (chS *CacheS) ReplicateRemove(chID, itmID string) (err error) {
}
// V1ReplicateRemove replicate an item
-func (chS *CacheS) V1ReplicateRemove(args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
+func (chS *CacheS) V1ReplicateRemove(ctx *context.Context, args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
chS.tCache.Remove(args.CacheID, args.ItemID, true, utils.EmptyString)
*reply = utils.OK
return
diff --git a/engine/caches_test.go b/engine/caches_test.go
index 6a95f22ac..9a69aff17 100644
--- a/engine/caches_test.go
+++ b/engine/caches_test.go
@@ -24,10 +24,11 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
- "github.com/cgrates/rpcclient"
)
func TestCachesReplicateRemove(t *testing.T) {
@@ -40,16 +41,16 @@ func TestCachesReplicateRemove(t *testing.T) {
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReplicateRemove: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReplicateRemove: func(ctx *context.Context, args, reply any) error {
*reply.(*string) = utils.OK
return nil
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicationConnsCfg): clientconn,
})
chS := CacheS{
@@ -79,17 +80,17 @@ func TestCacheSSetWithReplicate(t *testing.T) {
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
*reply.(*string) = "reply"
return nil
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicationConnsCfg): clientconn,
})
ltcache := ltcache.NewTransCache(map[string]*ltcache.CacheConfig{
@@ -141,13 +142,13 @@ func TestCacheSV1GetItemIDs(t *testing.T) {
}
reply := &[]string{}
exp := &[]string{"itemID"}
- if err := chS.V1GetItemIDs(args, reply); err != nil {
+ if err := chS.V1GetItemIDs(context.Background(), args, reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected %+v,received %+v", utils.ToJSON(exp), utils.ToJSON(reply))
}
tscache.Remove("cacheID", "itemID", true, utils.NonTransactional)
- if err := chS.V1GetItemIDs(args, reply); err == nil || err != utils.ErrNotFound {
+ if err := chS.V1GetItemIDs(context.Background(), args, reply); err == nil || err != utils.ErrNotFound {
t.Error(err)
}
}
@@ -183,7 +184,7 @@ func TestCacheSV1HasItem(t *testing.T) {
tCache: tscache,
}
reply := utils.BoolPointer(false)
- if err := chS.V1HasItem(args, reply); err != nil {
+ if err := chS.V1HasItem(context.Background(), args, reply); err != nil {
t.Error(err)
}
}
@@ -203,16 +204,16 @@ func TestCacheSV1GetItemWithRemote(t *testing.T) {
Remote: true,
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1GetItem: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1GetItem: func(ctx *context.Context, args, reply any) error {
return nil
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RemoteConnsCfg): clientconn,
},
)
@@ -234,7 +235,7 @@ func TestCacheSV1GetItemWithRemote(t *testing.T) {
}
SetConnManager(connMgr)
var reply any = "str"
- if err := chS.V1GetItemWithRemote(args, &reply); err != nil {
+ if err := chS.V1GetItemWithRemote(context.Background(), args, &reply); err != nil {
t.Error(err)
}
}
@@ -268,7 +269,7 @@ func TestCacheSV1GetItem(t *testing.T) {
tCache: tscache,
}
var reply any
- if err := chS.V1GetItem(args, &reply); err != nil {
+ if err := chS.V1GetItem(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if val, cancast := reply.(string); cancast {
if val != "value" {
@@ -276,7 +277,7 @@ func TestCacheSV1GetItem(t *testing.T) {
}
}
tscache.Remove("cacheID", "itemID", true, utils.NonTransactional)
- if err := chS.V1GetItem(args, &reply); err == nil || err != utils.ErrNotFound {
+ if err := chS.V1GetItem(context.Background(), args, &reply); err == nil || err != utils.ErrNotFound {
t.Error(err)
}
}
@@ -319,7 +320,7 @@ func TestCacheSV1GetItemExpiryTime(t *testing.T) {
reply := now
loc, _ := time.LoadLocation("EST")
exp := now.Add(30 * time.Minute).In(loc).Minute()
- if err := chS.V1GetItemExpiryTime(args, &reply); err != nil {
+ if err := chS.V1GetItemExpiryTime(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply.Minute() != exp {
t.Errorf("expected %+v,received %+v", exp, reply)
@@ -356,7 +357,7 @@ func TestCacheSV1RemoveItem(t *testing.T) {
tCache: tscache,
}
var reply string
- if err := chS.V1RemoveItem(args, &reply); err != nil {
+ if err := chS.V1RemoveItem(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("expected %v,received %v", utils.OK, reply)
@@ -418,7 +419,7 @@ func TestCacheSV1RemoveItems(t *testing.T) {
reply := "error"
- if err := chS.V1RemoveItems(args, &reply); err != nil {
+ if err := chS.V1RemoveItems(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("expected %v,received %v", utils.OK, reply)
@@ -467,7 +468,7 @@ func TestCacheSV1Clear(t *testing.T) {
tCache: tscache,
}
reply := "error"
- if err := chS.V1Clear(args, &reply); err != nil {
+ if err := chS.V1Clear(context.Background(), args, &reply); err != nil {
t.Error(err)
}
}
@@ -501,7 +502,7 @@ func TestCacheSV1ReplicateSet(t *testing.T) {
tCache: tscache,
}
reply := "reply"
- if err := chS.V1ReplicateSet(args, &reply); err != nil {
+ if err := chS.V1ReplicateSet(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("expected %+v,received %+v", utils.OK, reply)
@@ -567,7 +568,7 @@ func TestCacheSV1GetCacheStats(t *testing.T) {
"cacheID2": {Items: 1, Groups: 0},
"cacheID3": {Items: 1, Groups: 0},
}
- if err := chS.V1GetCacheStats(args, &reply); err != nil {
+ if err := chS.V1GetCacheStats(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected %v,received %v", utils.ToJSON(reply), utils.ToJSON(exp))
@@ -623,13 +624,13 @@ func TestV1PrecacheStatus(t *testing.T) {
exp := map[string]string{
utils.CacheFilters: utils.MetaPrecaching,
}
- if err := chS.V1PrecacheStatus(args, &reply); err != nil {
+ if err := chS.V1PrecacheStatus(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(exp, reply) {
t.Errorf("expected %+v,received %+v", exp, reply)
}
args.CacheIDs = []string{}
- if err := chS.V1PrecacheStatus(args, &reply); err == nil {
+ if err := chS.V1PrecacheStatus(context.Background(), args, &reply); err == nil {
t.Error(err)
}
}
@@ -663,7 +664,7 @@ func TestCacheSV1HasGroup(t *testing.T) {
}
var reply bool
- if err := chS.V1HasGroup(args, &reply); err != nil {
+ if err := chS.V1HasGroup(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Error("expected true,received false")
@@ -700,7 +701,7 @@ func TestCacheSV1HasGroupItemIDs(t *testing.T) {
}
var reply []string
exp := []string{"itemId"}
- if err := chS.V1GetGroupItemIDs(args, &reply); err != nil {
+ if err := chS.V1GetGroupItemIDs(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(exp, reply) {
t.Errorf("expected %+v,received %+v", exp, reply)
@@ -737,7 +738,7 @@ func TestV1RemoveGroup(t *testing.T) {
}
var reply string
- if err := chS.V1RemoveGroup(args, &reply); err != nil {
+ if err := chS.V1RemoveGroup(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("expected %v,received %v", utils.OK, reply)
@@ -777,7 +778,7 @@ func TestCacheSV1ReplicateRemove(t *testing.T) {
}
var reply string
- if err := chS.V1ReplicateRemove(args, &reply); err != nil {
+ if err := chS.V1ReplicateRemove(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("expected %v,received %v", utils.OK, reply)
@@ -801,17 +802,17 @@ func TestNewCacheS(t *testing.T) {
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReplicateRemove: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReplicateRemove: func(ctx *context.Context, args, reply any) error {
*reply.(*string) = "reply"
return nil
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicationConnsCfg): clientconn,
})
expCacheS := &CacheS{}
@@ -913,16 +914,16 @@ func TestReplicateMultipleIDs(t *testing.T) {
}
Cache = NewCacheS(cfg, nil, nil)
- connClient := make(chan rpcclient.ClientConnector, 1)
+ connClient := make(chan birpc.ClientConnector, 1)
connClient <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReloadCache: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReloadCache: func(ctx *context.Context, args, reply any) error {
*reply.(*string) = "reply"
return nil
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): connClient,
})
objType := "obj"
@@ -956,17 +957,17 @@ func TestCachesGetWithRemote(t *testing.T) {
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
chS := NewCacheS(cfg, dm, nil)
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1GetItem: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1GetItem: func(ctx *context.Context, args, reply any) error {
*reply.(*string) = utils.OK
return utils.ErrNotFound
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RemoteConnsCfg): clientconn,
})
SetConnManager(connMgr)
@@ -1015,7 +1016,7 @@ func TestV1LoadCache(t *testing.T) {
}
chS := NewCacheS(cfg, dm, nil)
var reply string
- if err := chS.V1LoadCache(attr, &reply); err != nil {
+ if err := chS.V1LoadCache(context.Background(), attr, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("reply should be %v", utils.OK)
diff --git a/engine/cdrs.go b/engine/cdrs.go
index 11a70476a..d84c876c6 100644
--- a/engine/cdrs.go
+++ b/engine/cdrs.go
@@ -25,6 +25,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -61,7 +62,7 @@ func (cdrS *CDRServer) cgrCdrHandler(w http.ResponseWriter, r *http.Request) {
return
}
var ignored string
- if err := cdrS.V1ProcessCDR(&CDRWithAPIOpts{CDR: cdr}, &ignored); err != nil {
+ if err := cdrS.V1ProcessCDR(context.TODO(), &CDRWithAPIOpts{CDR: cdr}, &ignored); err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> processing CDR: %s, err: <%s>",
utils.CDRs, cdr, err.Error()))
@@ -82,7 +83,7 @@ func (cdrS *CDRServer) fsCdrHandler(w http.ResponseWriter, r *http.Request) {
return
}
var ignored string
- if err := cdrS.V1ProcessCDR(&CDRWithAPIOpts{CDR: cdr}, &ignored); err != nil {
+ if err := cdrS.V1ProcessCDR(context.TODO(), &CDRWithAPIOpts{CDR: cdr}, &ignored); err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> processing CDR: %s, err: <%s>",
utils.CDRs, cdr, err.Error()))
@@ -276,7 +277,7 @@ func (cdrS *CDRServer) getCostFromRater(cdr *CDRWithAPIOpts) (*CallCost, error)
PerformRounding: true,
}
if reqTypes.Has(cdr.RequestType) { // Prepaid - Cost can be recalculated in case of missing records from SM
- err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().RaterConns, nil,
+ err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().RaterConns,
utils.ResponderDebit,
&CallDescriptorWithAPIOpts{
CallDescriptor: cd,
@@ -286,7 +287,7 @@ func (cdrS *CDRServer) getCostFromRater(cdr *CDRWithAPIOpts) (*CallCost, error)
cdr.RequestType == utils.MetaDynaprepaid {
var reply string
// execute the actionPlan configured in Scheduler
- if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().SchedulerConns, nil,
+ if err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().SchedulerConns,
utils.SchedulerSv1ExecuteActionPlans, &utils.AttrsExecuteActionPlans{
ActionPlanIDs: cdrS.cgrCfg.SchedulerCfg().DynaprepaidActionPlans,
AccountID: cdr.Account, Tenant: cdr.Tenant},
@@ -294,7 +295,7 @@ func (cdrS *CDRServer) getCostFromRater(cdr *CDRWithAPIOpts) (*CallCost, error)
return cc, err
}
// execute again the Debit operation
- err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().RaterConns, nil,
+ err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().RaterConns,
utils.ResponderDebit,
&CallDescriptorWithAPIOpts{
CallDescriptor: cd,
@@ -302,7 +303,7 @@ func (cdrS *CDRServer) getCostFromRater(cdr *CDRWithAPIOpts) (*CallCost, error)
}, cc)
}
} else {
- err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().RaterConns, nil,
+ err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().RaterConns,
utils.ResponderGetCost,
&CallDescriptorWithAPIOpts{
CallDescriptor: cd,
@@ -341,7 +342,7 @@ func (cdrS *CDRServer) refundEventCost(ec *EventCost, reqType, tor string) (rfnd
return
}
var acnt Account
- if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().RaterConns, nil,
+ if err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().RaterConns,
utils.ResponderRefundIncrements,
&CallDescriptorWithAPIOpts{CallDescriptor: cd}, &acnt); err != nil {
return
@@ -352,7 +353,7 @@ func (cdrS *CDRServer) refundEventCost(ec *EventCost, reqType, tor string) (rfnd
// chrgrSProcessEvent forks CGREventWithOpts into multiples based on matching ChargerS profiles
func (cdrS *CDRServer) chrgrSProcessEvent(cgrEv *utils.CGREvent) (cgrEvs []*utils.CGREvent, err error) {
var chrgrs []*ChrgSProcessEventReply
- if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().ChargerSConns, nil,
+ if err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().ChargerSConns,
utils.ChargerSv1ProcessEvent,
cgrEv, &chrgrs); err != nil {
return
@@ -378,7 +379,7 @@ func (cdrS *CDRServer) attrSProcessEvent(cgrEv *utils.CGREvent) (err error) {
cgrEv.APIOpts[utils.OptsContext] = utils.FirstNonEmpty(
utils.IfaceAsString(ctx),
utils.MetaCDRs)
- if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().AttributeSConns, nil,
+ if err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().AttributeSConns,
utils.AttributeSv1ProcessEvent,
cgrEv, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 {
*cgrEv = *rplyEv.CGREvent
@@ -401,7 +402,7 @@ func (cdrS *CDRServer) thdSProcessEvent(cgrEv *utils.CGREvent) (err error) {
thArgs.APIOpts = make(map[string]any)
}
thArgs.APIOpts[utils.MetaEventType] = utils.CDR
- if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().ThresholdSConns, nil,
+ if err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().ThresholdSConns,
utils.ThresholdSv1ProcessEvent,
thArgs, &tIDs); err != nil &&
err.Error() == utils.ErrNotFound.Error() {
@@ -414,7 +415,7 @@ func (cdrS *CDRServer) thdSProcessEvent(cgrEv *utils.CGREvent) (err error) {
func (cdrS *CDRServer) statSProcessEvent(cgrEv *utils.CGREvent) (err error) {
var reply []string
statArgs := cgrEv.Clone()
- if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().StatSConns, nil,
+ if err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().StatSConns,
utils.StatSv1ProcessEvent,
statArgs, &reply); err != nil &&
err.Error() == utils.ErrNotFound.Error() {
@@ -426,7 +427,7 @@ func (cdrS *CDRServer) statSProcessEvent(cgrEv *utils.CGREvent) (err error) {
// eeSProcessEvent will process the event with the EEs component
func (cdrS *CDRServer) eeSProcessEvent(cgrEv *CGREventWithEeIDs) (err error) {
var reply map[string]map[string]any
- if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().EEsConns, nil,
+ if err = cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().EEsConns,
utils.EeSv1ProcessEvent,
cgrEv, &reply); err != nil &&
err.Error() == utils.ErrNotFound.Error() {
@@ -647,8 +648,8 @@ func (cdrS *CDRServer) processEvents(evs []*utils.CGREvent,
return
}
-// Call implements the rpcclient.ClientConnector interface
-func (cdrS *CDRServer) Call(serviceMethod string, args any, reply any) error {
+// Call implements the birpc.ClientConnector interface
+func (cdrS *CDRServer) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
parts := strings.Split(serviceMethod, ".")
if len(parts) != 2 {
return rpcclient.ErrUnsupporteServiceMethod
@@ -675,7 +676,7 @@ func (cdrS *CDRServer) Call(serviceMethod string, args any, reply any) error {
}
// V1ProcessCDR processes a CDR
-func (cdrS *CDRServer) V1ProcessCDR(cdr *CDRWithAPIOpts, reply *string) (err error) {
+func (cdrS *CDRServer) V1ProcessCDR(ctx *context.Context, cdr *CDRWithAPIOpts, reply *string) (err error) {
if cdr.CGRID == utils.EmptyString { // Populate CGRID if not present
cdr.ComputeCGRID()
}
@@ -768,7 +769,7 @@ func (attr *ArgV1ProcessEvent) Clone() *ArgV1ProcessEvent {
}
// V1ProcessEvent will process the CGREvent
-func (cdrS *CDRServer) V1ProcessEvent(arg *ArgV1ProcessEvent, reply *string) (err error) {
+func (cdrS *CDRServer) V1ProcessEvent(ctx *context.Context, arg *ArgV1ProcessEvent, reply *string) (err error) {
if arg.CGREvent.ID == utils.EmptyString {
arg.CGREvent.ID = utils.GenUUID()
}
@@ -881,7 +882,7 @@ func (cdrS *CDRServer) V1ProcessEvent(arg *ArgV1ProcessEvent, reply *string) (er
}
// V2ProcessEvent has the same logic with V1ProcessEvent except it adds the proccessed events to the reply
-func (cdrS *CDRServer) V2ProcessEvent(arg *ArgV1ProcessEvent, evs *[]*utils.EventWithFlags) (err error) {
+func (cdrS *CDRServer) V2ProcessEvent(ctx *context.Context, arg *ArgV1ProcessEvent, evs *[]*utils.EventWithFlags) (err error) {
if arg.ID == "" {
arg.ID = utils.GenUUID()
}
@@ -958,7 +959,7 @@ func (cdrS *CDRServer) V2ProcessEvent(arg *ArgV1ProcessEvent, evs *[]*utils.Even
}
// V1StoreSessionCost handles storing of the cost into session_costs table
-func (cdrS *CDRServer) V1StoreSessionCost(attr *AttrCDRSStoreSMCost, reply *string) (err error) {
+func (cdrS *CDRServer) V1StoreSessionCost(ctx *context.Context, attr *AttrCDRSStoreSMCost, reply *string) (err error) {
if attr.Cost.CGRID == "" {
return utils.NewCGRError(utils.CDRsCtx,
utils.MandatoryIEMissingCaps, fmt.Sprintf("%s: CGRID", utils.MandatoryInfoMissing),
@@ -991,7 +992,7 @@ func (cdrS *CDRServer) V1StoreSessionCost(attr *AttrCDRSStoreSMCost, reply *stri
}
// V2StoreSessionCost will store the SessionCost into session_costs table
-func (cdrS *CDRServer) V2StoreSessionCost(args *ArgsV2CDRSStoreSMCost, reply *string) (err error) {
+func (cdrS *CDRServer) V2StoreSessionCost(ctx *context.Context, args *ArgsV2CDRSStoreSMCost, reply *string) (err error) {
if args.Cost.CGRID == "" {
return utils.NewCGRError(utils.CDRsCtx,
utils.MandatoryIEMissingCaps, fmt.Sprintf("%s: CGRID", utils.MandatoryInfoMissing),
@@ -1029,7 +1030,7 @@ func (cdrS *CDRServer) V2StoreSessionCost(args *ArgsV2CDRSStoreSMCost, reply *st
cd.RunID = args.Cost.RunID
cd.Increments = roundIncrements
response := new(Account)
- if err := cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().RaterConns, nil,
+ if err := cdrS.connMgr.Call(context.TODO(), cdrS.cgrCfg.CdrsCfg().RaterConns,
utils.ResponderRefundRounding,
&CallDescriptorWithAPIOpts{CallDescriptor: cd},
response); err != nil {
@@ -1071,7 +1072,7 @@ type ArgRateCDRs struct {
// V1RateCDRs is used for re-/rate CDRs which are already stored within StorDB
// FixMe: add RPC caching
-func (cdrS *CDRServer) V1RateCDRs(arg *ArgRateCDRs, reply *string) (err error) {
+func (cdrS *CDRServer) V1RateCDRs(ctx *context.Context, arg *ArgRateCDRs, reply *string) (err error) {
var cdrFltr *utils.CDRsFilter
if cdrFltr, err = arg.RPCCDRsFilter.AsCDRsFilter(cdrS.cgrCfg.GeneralCfg().DefaultTimezone); err != nil {
return utils.NewErrServerError(err)
@@ -1129,20 +1130,21 @@ func (cdrS *CDRServer) V1RateCDRs(arg *ArgRateCDRs, reply *string) (err error) {
}
// V1ProcessExternalCDR is used to process external CDRs
-func (cdrS *CDRServer) V1ProcessExternalCDR(eCDR *ExternalCDRWithAPIOpts, reply *string) error {
+func (cdrS *CDRServer) V1ProcessExternalCDR(ctx *context.Context, eCDR *ExternalCDRWithAPIOpts, reply *string) error {
cdr, err := NewCDRFromExternalCDR(eCDR.ExternalCDR,
cdrS.cgrCfg.GeneralCfg().DefaultTimezone)
if err != nil {
return err
}
- return cdrS.V1ProcessCDR(&CDRWithAPIOpts{
- CDR: cdr,
- APIOpts: eCDR.APIOpts,
- }, reply)
+ return cdrS.V1ProcessCDR(ctx,
+ &CDRWithAPIOpts{
+ CDR: cdr,
+ APIOpts: eCDR.APIOpts,
+ }, reply)
}
// V1GetCDRs returns CDRs from DB
-func (cdrS *CDRServer) V1GetCDRs(args utils.RPCCDRsFilterWithAPIOpts, cdrs *[]*CDR) error {
+func (cdrS *CDRServer) V1GetCDRs(ctx *context.Context, args utils.RPCCDRsFilterWithAPIOpts, cdrs *[]*CDR) error {
cdrsFltr, err := args.AsCDRsFilter(cdrS.cgrCfg.GeneralCfg().DefaultTimezone)
if err != nil {
if err.Error() != utils.NotFoundCaps {
@@ -1158,8 +1160,8 @@ func (cdrS *CDRServer) V1GetCDRs(args utils.RPCCDRsFilterWithAPIOpts, cdrs *[]*C
return nil
}
-// V1CountCDRs counts CDRs from DB
-func (cdrS *CDRServer) V1CountCDRs(args *utils.RPCCDRsFilterWithAPIOpts, cnt *int64) error {
+// V1GetCDRsCount counts CDRs from DB
+func (cdrS *CDRServer) V1GetCDRsCount(ctx *context.Context, args *utils.RPCCDRsFilterWithAPIOpts, cnt *int64) error {
cdrsFltr, err := args.AsCDRsFilter(cdrS.cgrCfg.GeneralCfg().DefaultTimezone)
if err != nil {
if err.Error() != utils.NotFoundCaps {
diff --git a/engine/cdrs_test.go b/engine/cdrs_test.go
index e938e10fa..d171380a1 100644
--- a/engine/cdrs_test.go
+++ b/engine/cdrs_test.go
@@ -28,6 +28,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +38,7 @@ import (
type clMock func(_ string, _ any, _ any) error
-func (c clMock) Call(m string, a any, r any) error {
+func (c clMock) Call(ctx *context.Context, m string, a any, r any) error {
return c(m, a, r)
}
@@ -73,9 +75,9 @@ func TestCDRSV1ProcessCDRNoTenant(t *testing.T) {
}
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanClnt,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -106,7 +108,7 @@ func TestCDRSV1ProcessCDRNoTenant(t *testing.T) {
},
}
var reply string
- if err := cdrs.V1ProcessCDR(cdr, &reply); err != nil {
+ if err := cdrs.V1ProcessCDR(context.Background(), cdr, &reply); err != nil {
t.Error(err)
}
}
@@ -129,9 +131,9 @@ func TestCDRSV1ProcessEventNoTenant(t *testing.T) {
*rply = []*ChrgSProcessEventReply{}
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanClnt,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -160,7 +162,7 @@ func TestCDRSV1ProcessEventNoTenant(t *testing.T) {
}
var reply string
- if err := cdrs.V1ProcessEvent(args, &reply); err != nil {
+ if err := cdrs.V1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("expected %v,received %v", utils.OK, reply)
@@ -185,9 +187,9 @@ func TestCDRSV1V1ProcessExternalCDRNoTenant(t *testing.T) {
*rply = []*ChrgSProcessEventReply{}
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanClnt,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -219,7 +221,7 @@ func TestCDRSV1V1ProcessExternalCDRNoTenant(t *testing.T) {
}
var reply string
- if err := cdrs.V1ProcessExternalCDR(args, &reply); err != nil {
+ if err := cdrs.V1ProcessExternalCDR(context.Background(), args, &reply); err != nil {
t.Error(err)
}
}
@@ -267,7 +269,7 @@ func TestCDRV1CountCDRs(t *testing.T) {
}
i := int64(3)
- if err := cdrS.V1CountCDRs(args, &i); err != nil {
+ if err := cdrS.V1GetCDRsCount(context.Background(), args, &i); err != nil {
t.Error(err)
}
}
@@ -294,7 +296,7 @@ func TestV1CountCDRsErr(t *testing.T) {
},
}
i := utils.Int64Pointer(23)
- if err := cdrS.V1CountCDRs(args, i); err == nil {
+ if err := cdrS.V1GetCDRsCount(context.Background(), args, i); err == nil {
t.Error(err)
}
}
@@ -317,7 +319,7 @@ func TestV1RateCDRs(t *testing.T) {
}
var reply string
- if err := cdrS.V1RateCDRs(arg, &reply); err == nil {
+ if err := cdrS.V1RateCDRs(context.Background(), arg, &reply); err == nil {
t.Error(err)
}
@@ -325,8 +327,8 @@ func TestV1RateCDRs(t *testing.T) {
func TestCDRServerThdsProcessEvent(t *testing.T) {
clMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &[]string{"event"}
@@ -335,10 +337,10 @@ func TestCDRServerThdsProcessEvent(t *testing.T) {
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- clMock
cfg := config.NewDefaultCGRConfig()
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ThresholdSConnsCfg): clientconn,
})
cfg.CdrsCfg().ThresholdSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ThreshSConnsCfg)}
@@ -363,8 +365,8 @@ func TestCDRServerThdsProcessEvent(t *testing.T) {
}
func TestCDRServerStatSProcessEvent(t *testing.T) {
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.StatSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.StatSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &[]string{"status"}
@@ -373,10 +375,10 @@ func TestCDRServerStatSProcessEvent(t *testing.T) {
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
cfg := config.NewDefaultCGRConfig()
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg): clientconn,
})
cfg.CdrsCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg)}
@@ -403,8 +405,8 @@ func TestCDRServerStatSProcessEvent(t *testing.T) {
func TestCDRServerEesProcessEvent(t *testing.T) {
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.EeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.EeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpls := &map[string]map[string]any{
"eeS": {
"process": "event",
@@ -416,11 +418,11 @@ func TestCDRServerEesProcessEvent(t *testing.T) {
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
cfg := config.NewDefaultCGRConfig()
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.EEsConnsCfg): clientconn,
})
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.EEsConnsCfg)}
@@ -450,8 +452,8 @@ func TestCDRServerEesProcessEvent(t *testing.T) {
func TestCDRefundEventCost(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderRefundIncrements: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderRefundIncrements: func(ctx *context.Context, args, reply any) error {
return nil
},
},
@@ -460,9 +462,9 @@ func TestCDRefundEventCost(t *testing.T) {
CGRID: "event",
RunID: "runid",
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ResponderRefundIncrements): clientconn,
})
cfg.CdrsCfg().RaterConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ResponderRefundIncrements)}
@@ -486,9 +488,9 @@ func TestGetCostFromRater(t *testing.T) {
dm := NewDataManager(db, cfg.CacheCfg(), nil)
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
- utils.ResponderDebit: func(args, reply any) error {
+ utils.ResponderDebit: func(ctx *context.Context, args, reply any) error {
rpl := &CallCost{
Category: "category",
Tenant: "cgrates",
@@ -498,9 +500,9 @@ func TestGetCostFromRater(t *testing.T) {
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn,
})
cdrS := &CDRServer{
@@ -534,19 +536,19 @@ func TestRefundEventCost(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().RaterConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg)}
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderRefundIncrements: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderRefundIncrements: func(ctx *context.Context, args, reply any) error {
rpl := &Account{}
*reply.(*Account) = *rpl
return nil
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn,
})
cdrS := &CDRServer{
@@ -591,9 +593,9 @@ func TestCDRSV2ProcessEvent(t *testing.T) {
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanClnt,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -625,7 +627,7 @@ func TestCDRSV2ProcessEvent(t *testing.T) {
}
evs := &[]*utils.EventWithFlags{}
- if err := cdrs.V2ProcessEvent(args, evs); err != nil {
+ if err := cdrs.V2ProcessEvent(context.Background(), args, evs); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -677,7 +679,7 @@ func TestCDRSV2ProcessEventCacheSet(t *testing.T) {
&utils.CachedRPCResponse{Result: evs, Error: nil},
nil, true, utils.NonTransactional)
- if err := cdrs.V2ProcessEvent(args, evs); err != nil {
+ if err := cdrs.V2ProcessEvent(context.Background(), args, evs); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{Result: evs, Error: nil}
@@ -700,9 +702,9 @@ func TestCDRSV1ProcessEvent(t *testing.T) {
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanClnt,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -734,7 +736,7 @@ func TestCDRSV1ProcessEvent(t *testing.T) {
}
reply := utils.StringPointer("result")
- if err := cdrs.V1ProcessEvent(args, reply); err != nil {
+ if err := cdrs.V1ProcessEvent(context.Background(), args, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -786,7 +788,7 @@ func TestCDRSV1ProcessEventCacheSet(t *testing.T) {
&utils.CachedRPCResponse{Result: reply, Error: nil},
nil, true, utils.NonTransactional)
- if err := cdrs.V1ProcessEvent(args, reply); err != nil {
+ if err := cdrs.V1ProcessEvent(context.Background(), args, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{Result: reply, Error: nil}
@@ -814,10 +816,10 @@ func TestV1ProcessEvent(t *testing.T) {
cfg.CdrsCfg().StoreCdrs = true
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.AttributeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.AttributeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &AttrSProcessEventReply{
AlteredFields: []string{"*req.OfficeGroup"},
CGREvent: &utils.CGREvent{
@@ -830,7 +832,7 @@ func TestV1ProcessEvent(t *testing.T) {
return nil
},
- utils.ChargerSv1ProcessEvent: func(args, reply any) error {
+ utils.ChargerSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := []*ChrgSProcessEventReply{
{
ChargerSProfile: "chrgs1",
@@ -845,7 +847,7 @@ func TestV1ProcessEvent(t *testing.T) {
*reply.(*[]*ChrgSProcessEventReply) = rpl
return nil
},
- utils.ResponderRefundIncrements: func(args, reply any) error {
+ utils.ResponderRefundIncrements: func(ctx *context.Context, args, reply any) error {
rpl := &Account{
ID: "cgrates.org:1001",
BalanceMap: map[string]Balances{
@@ -855,34 +857,34 @@ func TestV1ProcessEvent(t *testing.T) {
*reply.(*Account) = *rpl
return nil
},
- utils.ResponderDebit: func(args, reply any) error {
+ utils.ResponderDebit: func(ctx *context.Context, args, reply any) error {
rpl := &CallCost{}
*reply.(*CallCost) = *rpl
return nil
},
- utils.ResponderGetCost: func(args, reply any) error {
+ utils.ResponderGetCost: func(ctx *context.Context, args, reply any) error {
rpl := &CallCost{}
*reply.(*CallCost) = *rpl
return nil
},
- utils.EeSv1ProcessEvent: func(args, reply any) error {
+ utils.EeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &map[string]map[string]any{}
*reply.(*map[string]map[string]any) = *rpl
return nil
},
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &[]string{}
*reply.(*[]string) = *rpl
return nil
},
- utils.StatSv1ProcessEvent: func(args, reply any) error {
+ utils.StatSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &[]string{}
*reply.(*[]string) = *rpl
return nil
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.AttributeSConnsCfg): clientconn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): clientconn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder): clientconn,
@@ -914,7 +916,7 @@ func TestV1ProcessEvent(t *testing.T) {
},
}
var reply string
- if err := cdrS.V1ProcessEvent(arg, &reply); err == nil {
+ if err := cdrS.V1ProcessEvent(context.Background(), arg, &reply); err == nil {
t.Error(err)
}
}
@@ -946,16 +948,16 @@ func TestCdrprocessEventsErrLog(t *testing.T) {
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaEEs)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.EeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.EeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
return utils.ErrPartiallyExecuted
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaEEs): clientConn,
})
cdrs := &CDRServer{
@@ -1088,7 +1090,7 @@ func TestV1ProcessCDR(t *testing.T) {
}
reply := utils.StringPointer("reply")
- if err = cdrS.V1ProcessCDR(cdr, reply); err != nil {
+ if err = cdrS.V1ProcessCDR(context.Background(), cdr, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -1133,7 +1135,7 @@ func TestV1ProcessCDRSet(t *testing.T) {
Cache.Set(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.CDRsV1ProcessCDR, cdr.CGRID, cdr.RunID),
&utils.CachedRPCResponse{Result: reply, Error: err},
nil, true, utils.NonTransactional)
- if err = cdrS.V1ProcessCDR(cdr, reply); err != nil {
+ if err = cdrS.V1ProcessCDR(context.Background(), cdr, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -1154,9 +1156,9 @@ func TestV1StoreSessionCost(t *testing.T) {
clMock := clMock(func(_ string, _, _ any) error {
return nil
})
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- clMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{})
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{})
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
@@ -1181,7 +1183,7 @@ func TestV1StoreSessionCost(t *testing.T) {
connMgr: connMgr,
}
reply := utils.StringPointer("reply")
- if err = cdrS.V1StoreSessionCost(attr, reply); err != nil {
+ if err = cdrS.V1StoreSessionCost(context.Background(), attr, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -1195,7 +1197,7 @@ func TestV1StoreSessionCost(t *testing.T) {
t.Errorf("expected %v,received %v", utils.ToJSON(exp), utils.ToJSON(rcv))
}
attr.Cost.CGRID = utils.EmptyString
- if err := cdrS.V1StoreSessionCost(attr, reply); err == nil || err.Error() != fmt.Sprintf("%s: CGRID", utils.MandatoryInfoMissing) {
+ if err := cdrS.V1StoreSessionCost(context.Background(), attr, reply); err == nil || err.Error() != fmt.Sprintf("%s: CGRID", utils.MandatoryInfoMissing) {
t.Error(err)
}
}
@@ -1207,9 +1209,9 @@ func TestV1StoreSessionCostSet(t *testing.T) {
return nil
})
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- clMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{})
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{})
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
@@ -1238,7 +1240,7 @@ func TestV1StoreSessionCostSet(t *testing.T) {
&utils.CachedRPCResponse{Result: reply, Error: nil},
nil, true, utils.NonTransactional)
- if err = cdrS.V1StoreSessionCost(attr, reply); err != nil {
+ if err = cdrS.V1StoreSessionCost(context.Background(), attr, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -1255,7 +1257,7 @@ func TestV1StoreSessionCostSet(t *testing.T) {
cdrS.guard = guardian.Guardian
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 0
attr.CheckDuplicate = true
- if err = cdrS.V1StoreSessionCost(attr, reply); err != nil {
+ if err = cdrS.V1StoreSessionCost(context.Background(), attr, reply); err != nil {
t.Error(err)
}
}
@@ -1264,17 +1266,17 @@ func TestV2StoreSessionCost(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderRefundRounding: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderRefundRounding: func(ctx *context.Context, args, reply any) error {
rpl := &Account{}
*reply.(*Account) = *rpl
return nil
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn,
})
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
@@ -1315,7 +1317,7 @@ func TestV2StoreSessionCost(t *testing.T) {
}
var reply string
- if err := cdrS.V2StoreSessionCost(args, &reply); err != nil {
+ if err := cdrS.V2StoreSessionCost(context.Background(), args, &reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{Result: utils.StringPointer("OK"), Error: nil}
@@ -1330,7 +1332,7 @@ func TestV2StoreSessionCost(t *testing.T) {
args = &ArgsV2CDRSStoreSMCost{
Cost: &V2SMCost{},
}
- if err = cdrS.V2StoreSessionCost(args, &reply); err == nil {
+ if err = cdrS.V2StoreSessionCost(context.Background(), args, &reply); err == nil {
t.Error(err)
}
}
@@ -1339,17 +1341,17 @@ func TestV2StoreSessionCostSet(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderRefundRounding: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderRefundRounding: func(ctx *context.Context, args, reply any) error {
rpl := &Account{}
*reply.(*Account) = *rpl
return nil
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn,
})
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
@@ -1445,7 +1447,7 @@ func TestV2StoreSessionCostSet(t *testing.T) {
&utils.CachedRPCResponse{Result: reply, Error: nil},
nil, true, utils.NonTransactional)
- if err := cdrS.V2StoreSessionCost(args, reply); err != nil {
+ if err := cdrS.V2StoreSessionCost(context.Background(), args, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{Result: reply, Error: nil}
@@ -1480,7 +1482,7 @@ func TestV1RateCDRSErr(t *testing.T) {
}
var reply string
- if err := cdrS.V1RateCDRs(arg, &reply); err == nil || err != utils.ErrNotFound {
+ if err := cdrS.V1RateCDRs(context.Background(), arg, &reply); err == nil || err != utils.ErrNotFound {
t.Error(err)
}
}
@@ -1511,11 +1513,11 @@ func TestV1GetCDRsErr(t *testing.T) {
APIOpts: map[string]any{},
}
var cdrs *[]*CDR
- if err := cdrS.V1GetCDRs(args, cdrs); err == nil {
+ if err := cdrS.V1GetCDRs(context.Background(), args, cdrs); err == nil {
t.Error(utils.NewErrServerError(utils.ErrNotFound))
}
args.RPCCDRsFilter.SetupTimeStart = ""
- if err := cdrS.V1GetCDRs(args, cdrs); err == nil || err.Error() != fmt.Sprintf("SERVER_ERROR: %s", utils.ErrNotFound) {
+ if err := cdrS.V1GetCDRs(context.Background(), args, cdrs); err == nil || err.Error() != fmt.Sprintf("SERVER_ERROR: %s", utils.ErrNotFound) {
t.Error(utils.NewErrServerError(utils.ErrNotFound))
}
}
@@ -1526,21 +1528,21 @@ func TestGetCostFromRater2(t *testing.T) {
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderDebit: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderDebit: func(ctx *context.Context, args, reply any) error {
return utils.ErrAccountNotFound
},
- utils.SchedulerSv1ExecuteActionPlans: func(args, reply any) error {
+ utils.SchedulerSv1ExecuteActionPlans: func(ctx *context.Context, args, reply any) error {
rpl := "reply"
*reply.(*string) = rpl
return nil
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn,
utils.ConcatenatedKey(utils.MetaInternal, utils.SchedulerConnsCfg): clientconn,
})
@@ -1576,16 +1578,16 @@ func TestGetCostFromRater3(t *testing.T) {
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderGetCost: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderGetCost: func(ctx *context.Context, args, reply any) error {
return nil
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn,
})
cdrS := &CDRServer{
@@ -1622,17 +1624,17 @@ func TestV2StoreSessionCost2(t *testing.T) {
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
ccMOck := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderRefundRounding: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderRefundRounding: func(ctx *context.Context, args, reply any) error {
rpl := &Account{}
*reply.(*Account) = *rpl
return nil
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMOck
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn,
})
cdrS := &CDRServer{
@@ -1753,16 +1755,16 @@ func TestV2StoreSessionCost2(t *testing.T) {
APIOpts: map[string]any{},
}
var reply string
- if err := cdrS.V2StoreSessionCost(args, &reply); err != nil {
+ if err := cdrS.V2StoreSessionCost(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("expected %+v,received %+v", utils.OK, reply)
}
- clientconn2 := make(chan rpcclient.ClientConnector, 1)
+ clientconn2 := make(chan birpc.ClientConnector, 1)
clientconn2 <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderRefundRounding: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderRefundRounding: func(ctx *context.Context, args, reply any) error {
rpl := &Account{}
*reply.(*Account) = *rpl
return utils.ErrNotFound
@@ -1771,7 +1773,7 @@ func TestV2StoreSessionCost2(t *testing.T) {
}
cdrS.connMgr.rpcInternal[utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg)] = clientconn2
- if err := cdrS.V2StoreSessionCost(args, &reply); err != nil {
+ if err := cdrS.V2StoreSessionCost(context.Background(), args, &reply); err != nil {
t.Error(err)
}
@@ -1818,7 +1820,7 @@ func TestV1RateCDRSSuccesful(t *testing.T) {
}
var reply *string
- if err := cdrS.V1RateCDRs(arg, reply); err == nil {
+ if err := cdrS.V1RateCDRs(context.Background(), arg, reply); err == nil {
t.Error(err)
}
}
@@ -1891,10 +1893,10 @@ func TestCdrSRateCDR(t *testing.T) {
Replicate: true,
},
})
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderDebit: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderDebit: func(ctx *context.Context, args, reply any) error {
cc := &CallCost{
Category: "generic",
Tenant: "cgrates.org",
@@ -1909,7 +1911,7 @@ func TestCdrSRateCDR(t *testing.T) {
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), nil)
@@ -2005,10 +2007,10 @@ func TestChrgrSProcessEvent(t *testing.T) {
cfg.CdrsCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clienConn := make(chan rpcclient.ClientConnector, 1)
+ clienConn := make(chan birpc.ClientConnector, 1)
clienConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ChargerSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ChargerSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
*reply.(*[]*ChrgSProcessEventReply) = []*ChrgSProcessEventReply{
{
ChargerSProfile: "Charger1",
@@ -2034,7 +2036,7 @@ func TestChrgrSProcessEvent(t *testing.T) {
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): clienConn,
})
cdrS := &CDRServer{
@@ -2079,44 +2081,6 @@ func TestChrgrSProcessEvent(t *testing.T) {
}
}
-func TestCdrSCall123(t *testing.T) {
- cfg := config.NewDefaultCGRConfig()
- tmpConnMgr := connMgr
- defer func() {
- connMgr = tmpConnMgr
- config.SetCgrConfig(config.NewDefaultCGRConfig())
- }()
- db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- dm := NewDataManager(db, cfg.CacheCfg(), nil)
- cdrS := &CDRServer{
- cgrCfg: cfg,
- connMgr: connMgr,
- dm: dm,
- cdrDb: db,
- }
- clientConn := make(chan rpcclient.ClientConnector, 1)
- clientConn <- cdrS
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{})
- config.SetCgrConfig(cfg)
- SetConnManager(connMgr)
- var reply string
- attr := &AttrCDRSStoreSMCost{
- Cost: &SMCost{
- CGRID: "cgrid1",
- RunID: "run1",
- OriginID: "originid",
- CostDetails: &EventCost{
- Usage: utils.DurationPointer(1 * time.Minute),
- Cost: utils.Float64Pointer(32.3),
- },
- },
- CheckDuplicate: false,
- }
- if err := cdrS.Call(utils.CDRsV1StoreSessionCost, attr, &reply); err != nil {
- t.Error(err)
- }
-}
-
func TestCDRServerListenAndServe(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
tmpConnMgr := connMgr
@@ -2281,7 +2245,7 @@ func TestCDRSGetCDRs(t *testing.T) {
cfg.CdrsCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, _ any) error {
if serviceMethod == utils.EeSv1ProcessEvent {
@@ -2300,7 +2264,7 @@ func TestCDRSGetCDRs(t *testing.T) {
cgrCfg: cfg,
cdrDb: db,
dm: dm,
- connMgr: NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr: NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaEEs): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientConn,
@@ -2334,7 +2298,7 @@ func TestCDRSGetCDRs(t *testing.T) {
},
}
var reply string
- if err := cdrS.V1ProcessEvent(arg, &reply); err != nil {
+ if err := cdrS.V1ProcessEvent(context.Background(), arg, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Expected OK")
@@ -2344,7 +2308,7 @@ func TestCDRSGetCDRs(t *testing.T) {
args := utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}},
}
- if err := cdrS.V1GetCDRs(args, &cdrs); err != nil {
+ if err := cdrS.V1GetCDRs(context.Background(), args, &cdrs); err != nil {
t.Error(err)
}
}
@@ -2390,7 +2354,7 @@ func TestV1RateCDRsSuccesful(t *testing.T) {
},
APIOpts: map[string]any{},
}
- if err := cdrS.V1RateCDRs(arg, &reply); err != nil {
+ if err := cdrS.V1RateCDRs(context.Background(), arg, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Expected reply to be ok")
diff --git a/engine/chargers.go b/engine/chargers.go
index 20bc1a1c7..3f21351df 100644
--- a/engine/chargers.go
+++ b/engine/chargers.go
@@ -21,6 +21,7 @@ package engine
import (
"fmt"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -129,7 +130,7 @@ func (cS *ChargerService) processEvent(tnt string, cgrEv *utils.CGREvent) (rply
utils.IfaceAsString(ctx),
utils.MetaChargers)
var evReply AttrSProcessEventReply
- if err = cS.connMgr.Call(cS.cfg.ChargerSCfg().AttributeSConns, nil,
+ if err = cS.connMgr.Call(context.TODO(), cS.cfg.ChargerSCfg().AttributeSConns,
utils.AttributeSv1ProcessEvent, clonedEv, &evReply); err != nil {
if err.Error() != utils.ErrNotFound.Error() {
return nil, err
@@ -149,7 +150,7 @@ func (cS *ChargerService) processEvent(tnt string, cgrEv *utils.CGREvent) (rply
}
// V1ProcessEvent will process the event received via API and return list of events forked
-func (cS *ChargerService) V1ProcessEvent(args *utils.CGREvent,
+func (cS *ChargerService) V1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *[]*ChrgSProcessEventReply) (err error) {
if args == nil ||
args.Event == nil {
@@ -171,7 +172,7 @@ func (cS *ChargerService) V1ProcessEvent(args *utils.CGREvent,
}
// V1GetChargersForEvent exposes the list of ordered matching ChargingProfiles for an event
-func (cS *ChargerService) V1GetChargersForEvent(args *utils.CGREvent,
+func (cS *ChargerService) V1GetChargersForEvent(ctx *context.Context, args *utils.CGREvent,
rply *ChargerProfiles) (err error) {
tnt := args.Tenant
if tnt == utils.EmptyString {
diff --git a/engine/chargers_test.go b/engine/chargers_test.go
index 5c38e892b..0caa1a771 100644
--- a/engine/chargers_test.go
+++ b/engine/chargers_test.go
@@ -26,6 +26,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
@@ -664,7 +665,7 @@ func TestChargersV1ProcessEventMissingArgs(t *testing.T) {
var reply *[]*ChrgSProcessEventReply
experr := "MANDATORY_IE_MISSING: [Event]"
- err := cS.V1ProcessEvent(args, reply)
+ err := cS.V1ProcessEvent(context.Background(), args, reply)
if err == nil || err.Error() != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
diff --git a/engine/connmanager.go b/engine/connmanager.go
index c53b5faf0..87bcd8252 100644
--- a/engine/connmanager.go
+++ b/engine/connmanager.go
@@ -23,6 +23,8 @@ import (
"strings"
"sync"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -30,7 +32,7 @@ import (
)
// NewConnManager returns the Connection Manager
-func NewConnManager(cfg *config.CGRConfig, rpcInternal map[string]chan rpcclient.ClientConnector) (cM *ConnManager) {
+func NewConnManager(cfg *config.CGRConfig, rpcInternal map[string]chan birpc.ClientConnector) (cM *ConnManager) {
cM = &ConnManager{
cfg: cfg,
rpcInternal: rpcInternal,
@@ -47,7 +49,7 @@ func NewConnManager(cfg *config.CGRConfig, rpcInternal map[string]chan rpcclient
// ConnManager handle the RPC connections
type ConnManager struct {
cfg *config.CGRConfig
- rpcInternal map[string]chan rpcclient.ClientConnector
+ rpcInternal map[string]chan birpc.ClientConnector
connCache *ltcache.Cache
connLks map[string]*sync.Mutex // control connection initialization and caching
}
@@ -68,16 +70,16 @@ func (cM *ConnManager) unlkConn(connID string) {
// getConn is used to retrieve a connection from cache
// in case this doesn't exist create it and cache it
-func (cM *ConnManager) getConn(connID string, biRPCClient rpcclient.BiRPCConector) (conn rpcclient.ClientConnector, err error) {
+func (cM *ConnManager) getConn(ctx *context.Context, connID string) (conn birpc.ClientConnector, err error) {
//try to get the connection from cache
if x, ok := Cache.Get(utils.CacheRPCConnections, connID); ok {
if x == nil {
return nil, utils.ErrNotFound
}
- return x.(rpcclient.ClientConnector), nil
+ return x.(birpc.ClientConnector), nil
}
// in case we don't find in cache create the connection and add this in cache
- var intChan chan rpcclient.ClientConnector
+ var intChan chan birpc.ClientConnector
var isInternalRPC bool
var connCfg *config.RPCConn
if intChan, isInternalRPC = cM.rpcInternal[connID]; isInternalRPC {
@@ -94,7 +96,7 @@ func (cM *ConnManager) getConn(connID string, biRPCClient rpcclient.BiRPCConecto
}
}
}
- if conn, err = cM.getConnWithConfig(connID, connCfg, biRPCClient, intChan, isInternalRPC); err != nil {
+ if conn, err = cM.getConnWithConfig(ctx, connID, connCfg, intChan, isInternalRPC); err != nil {
return
}
err = Cache.Set(utils.CacheRPCConnections, connID, conn, nil,
@@ -102,9 +104,8 @@ func (cM *ConnManager) getConn(connID string, biRPCClient rpcclient.BiRPCConecto
return
}
-func (cM *ConnManager) getConnWithConfig(connID string, connCfg *config.RPCConn,
- biRPCClient rpcclient.BiRPCConector, intChan chan rpcclient.ClientConnector,
- isInternalRPC bool) (conn rpcclient.ClientConnector, err error) {
+func (cM *ConnManager) getConnWithConfig(ctx *context.Context, connID string, connCfg *config.RPCConn,
+ intChan chan birpc.ClientConnector, isInternalRPC bool) (conn birpc.ClientConnector, err error) {
if connCfg.Strategy == rpcclient.PoolParallel {
rpcConnCfg := connCfg.Conns[0] // for parallel we need only the first connection
codec := rpcclient.GOBrpc
@@ -125,28 +126,38 @@ func (cM *ConnManager) getConnWithConfig(connID string, connCfg *config.RPCConn,
err = fmt.Errorf("Unsupported transport: <%s>", rpcConnCfg.Transport)
return
}
- if conn, err = rpcclient.NewRPCParallelClientPool(utils.TCP, rpcConnCfg.Address, rpcConnCfg.TLS,
- utils.FirstNonEmpty(rpcConnCfg.ClientKey, cM.cfg.TLSCfg().ClientKey), utils.FirstNonEmpty(rpcConnCfg.ClientCertificate, cM.cfg.TLSCfg().ClientCerificate),
- utils.FirstNonEmpty(rpcConnCfg.CaCertificate, cM.cfg.TLSCfg().CaCertificate), utils.FirstIntNonEmpty(rpcConnCfg.ConnectAttempts, cM.cfg.GeneralCfg().ConnectAttempts),
- utils.FirstIntNonEmpty(rpcConnCfg.Reconnects, cM.cfg.GeneralCfg().Reconnects), utils.FirstDurationNonEmpty(rpcConnCfg.ConnectTimeout, cM.cfg.GeneralCfg().ConnectTimeout),
- utils.FirstDurationNonEmpty(rpcConnCfg.ReplyTimeout, cM.cfg.GeneralCfg().ReplyTimeout), codec, intChan, int64(cM.cfg.GeneralCfg().MaxParallelConns), false, biRPCClient); err != nil {
+ if conn, err = rpcclient.NewRPCParallelClientPool(ctx, utils.TCP, rpcConnCfg.Address, rpcConnCfg.TLS,
+ utils.FirstNonEmpty(rpcConnCfg.ClientKey, cM.cfg.TLSCfg().ClientKey),
+ utils.FirstNonEmpty(rpcConnCfg.ClientCertificate, cM.cfg.TLSCfg().ClientCerificate),
+ utils.FirstNonEmpty(rpcConnCfg.CaCertificate, cM.cfg.TLSCfg().CaCertificate),
+ utils.FirstIntNonEmpty(rpcConnCfg.ConnectAttempts, cM.cfg.GeneralCfg().ConnectAttempts),
+ utils.FirstIntNonEmpty(rpcConnCfg.Reconnects, cM.cfg.GeneralCfg().Reconnects),
+ utils.FirstDurationNonEmpty(rpcConnCfg.MaxReconnectInterval, cM.cfg.GeneralCfg().MaxReconnectInterval),
+ utils.FibDuration,
+ utils.FirstDurationNonEmpty(rpcConnCfg.ConnectTimeout, cM.cfg.GeneralCfg().ConnectTimeout),
+ utils.FirstDurationNonEmpty(rpcConnCfg.ReplyTimeout, cM.cfg.GeneralCfg().ReplyTimeout),
+ codec, intChan, int64(cM.cfg.GeneralCfg().MaxParallelConns), false, ctx.Client); err != nil {
return
}
} else {
- if conn, err = NewRPCPool(connCfg.Strategy,
+ if conn, err = NewRPCPool(ctx, connCfg.Strategy,
cM.cfg.TLSCfg().ClientKey,
- cM.cfg.TLSCfg().ClientCerificate, cM.cfg.TLSCfg().CaCertificate,
- cM.cfg.GeneralCfg().ConnectAttempts, cM.cfg.GeneralCfg().Reconnects,
- cM.cfg.GeneralCfg().ConnectTimeout, cM.cfg.GeneralCfg().ReplyTimeout,
- connCfg.Conns, intChan, false, biRPCClient, connID, cM.connCache); err != nil {
+ cM.cfg.TLSCfg().ClientCerificate,
+ cM.cfg.TLSCfg().CaCertificate,
+ cM.cfg.GeneralCfg().ConnectAttempts,
+ cM.cfg.GeneralCfg().Reconnects,
+ cM.cfg.GeneralCfg().MaxReconnectInterval,
+ cM.cfg.GeneralCfg().ConnectTimeout,
+ cM.cfg.GeneralCfg().ReplyTimeout,
+ connCfg.Conns, intChan, false, connID, cM.connCache); err != nil {
return
}
}
- if biRPCClient != nil {
+ if ctx.Client != nil {
for _, c := range connCfg.Conns {
if c.Address == rpcclient.BiRPCInternal { // register only on internal
var rply string
- if err = conn.Call(utils.SessionSv1RegisterInternalBiJSONConn,
+ if err = conn.Call(ctx, utils.SessionSv1RegisterInternalBiJSONConn,
connID, &rply); err != nil {
utils.Logger.Crit(fmt.Sprintf("<%s> Could not register biRPCClient, error: <%s>",
utils.SessionS, err.Error()))
@@ -160,20 +171,19 @@ func (cM *ConnManager) getConnWithConfig(connID string, connCfg *config.RPCConn,
}
// Call gets the connection calls the method on it
-func (cM *ConnManager) Call(connIDs []string, biRPCClient rpcclient.BiRPCConector,
- method string, arg, reply any) (err error) {
+func (cM *ConnManager) Call(ctx *context.Context, connIDs []string, method string, arg, reply any) (err error) {
if len(connIDs) == 0 {
return utils.NewErrMandatoryIeMissing("connIDs")
}
- var conn rpcclient.ClientConnector
+ var conn birpc.ClientConnector
for _, connID := range connIDs {
cM.lkConn(connID)
- conn, err = cM.getConn(connID, biRPCClient)
+ conn, err = cM.getConn(ctx, connID)
cM.unlkConn(connID)
if err != nil {
continue
}
- if err = conn.Call(method, arg, reply); !rpcclient.IsNetworkError(err) {
+ if err = conn.Call(ctx, method, arg, reply); !rpcclient.IsNetworkError(err) {
return
}
}
@@ -189,7 +199,7 @@ func (cM *ConnManager) CallWithConnIDs(connIDs []string, subsHostIDs utils.Strin
if subsHostIDs.Size() == 0 {
return
}
- var conn rpcclient.ClientConnector
+ var conn birpc.ClientConnector
for _, connID := range connIDs {
// recreate the config with only conns that are needed
connCfg := cM.cfg.RPCConns()[connID]
@@ -209,10 +219,10 @@ func (cM *ConnManager) CallWithConnIDs(connIDs []string, subsHostIDs utils.Strin
// skip this pool if no connection matches
continue
}
- if conn, err = cM.getConnWithConfig(connID, newCfg, nil, nil, false); err != nil {
+ if conn, err = cM.getConnWithConfig(context.TODO(), connID, newCfg, nil, false); err != nil {
continue
}
- if err = conn.Call(method, arg, reply); !rpcclient.IsNetworkError(err) {
+ if err = conn.Call(context.TODO(), method, arg, reply); !rpcclient.IsNetworkError(err) {
return
}
}
diff --git a/engine/connmanager_test.go b/engine/connmanager_test.go
index 0b1c1379f..69e589b6c 100644
--- a/engine/connmanager_test.go
+++ b/engine/connmanager_test.go
@@ -23,6 +23,8 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -42,14 +44,14 @@ func TestCMgetConnNotFound(t *testing.T) {
Cache.SetWithoutReplicate(utils.CacheRPCConnections, connID, nil, nil, true, utils.NonTransactional)
experr := utils.ErrNotFound
- rcv, err := cM.getConn(connID, nil)
+ rcv, err := cM.getConn(context.Background(), connID)
if err == nil || err != experr {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
+ t.Fatalf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
if rcv != nil {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, rcv)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", nil, rcv)
}
}
@@ -59,31 +61,36 @@ func TestCMgetConnUnsupportedBiRPC(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.RPCConns()[connID] = config.NewDfltRPCConn()
- cc := make(chan rpcclient.ClientConnector, 1)
+ cc := make(chan birpc.ClientConnector, 1)
cM := &ConnManager{
cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
+ rpcInternal: map[string]chan birpc.ClientConnector{
connID: cc,
},
connCache: ltcache.NewCache(-1, 0, true, nil),
}
experr := rpcclient.ErrUnsupportedBiRPC
- exp, err := NewRPCPool("*first", "", "", "", cfg.GeneralCfg().ConnectAttempts,
- cfg.GeneralCfg().Reconnects, cfg.GeneralCfg().ConnectTimeout,
- cfg.GeneralCfg().ReplyTimeout, nil, cc, true, nil, "", cM.connCache)
+ exp, err := NewRPCPool(context.Background(),
+ "*first", "", "", "",
+ cfg.GeneralCfg().ConnectAttempts,
+ cfg.GeneralCfg().Reconnects,
+ cfg.GeneralCfg().MaxReconnectInterval,
+ cfg.GeneralCfg().ConnectTimeout,
+ cfg.GeneralCfg().ReplyTimeout,
+ nil, cc, true, "", cM.connCache)
if err != nil {
t.Fatal(err)
}
- rcv, err := cM.getConn(connID, nil)
+ rcv, err := cM.getConn(context.Background(), connID)
if err == nil || err != experr {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
+ t.Fatalf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
if !reflect.DeepEqual(rcv, exp) {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", exp, rcv)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", exp, rcv)
}
}
@@ -99,11 +106,11 @@ func TestCMgetConnNotInternalRPC(t *testing.T) {
},
}
- cc := make(chan rpcclient.ClientConnector, 1)
+ cc := make(chan birpc.ClientConnector, 1)
cM := &ConnManager{
cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
+ rpcInternal: map[string]chan birpc.ClientConnector{
"testString": cc,
},
connCache: ltcache.NewCache(-1, 0, true, nil),
@@ -111,22 +118,28 @@ func TestCMgetConnNotInternalRPC(t *testing.T) {
cM.connCache.Set(connID, nil, nil)
- exp, err := NewRPCPool("*first", cfg.TLSCfg().ClientKey, cfg.TLSCfg().ClientCerificate,
- cfg.TLSCfg().CaCertificate, cfg.GeneralCfg().ConnectAttempts,
- cfg.GeneralCfg().Reconnects, cfg.GeneralCfg().ConnectTimeout,
- cfg.GeneralCfg().ReplyTimeout, cfg.RPCConns()[connID].Conns, cc,
- true, nil, connID, cM.connCache)
+ exp, err := NewRPCPool(context.Background(), "*first",
+ cfg.TLSCfg().ClientKey,
+ cfg.TLSCfg().ClientCerificate,
+ cfg.TLSCfg().CaCertificate,
+ cfg.GeneralCfg().ConnectAttempts,
+ cfg.GeneralCfg().Reconnects,
+ cfg.GeneralCfg().MaxReconnectInterval,
+ cfg.GeneralCfg().ConnectTimeout,
+ cfg.GeneralCfg().ReplyTimeout,
+ cfg.RPCConns()[connID].Conns,
+ cc, true, connID, cM.connCache)
if err != nil {
t.Fatal(err)
}
- rcv, err := cM.getConn(connID, nil)
+ rcv, err := cM.getConn(context.Background(), connID)
if err != nil {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
+ t.Fatalf("expected: <%+v>, \nreceived: <%+v>", nil, err)
}
if !reflect.DeepEqual(rcv, exp) {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", exp, rcv)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", exp, rcv)
}
}
@@ -142,25 +155,25 @@ func TestCMgetConnWithConfigUnsupportedTransport(t *testing.T) {
},
}
- cc := make(chan rpcclient.ClientConnector, 1)
+ cc := make(chan birpc.ClientConnector, 1)
cM := &ConnManager{
cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
+ rpcInternal: map[string]chan birpc.ClientConnector{
connID: cc,
},
connCache: ltcache.NewCache(-1, 0, true, nil),
}
experr := fmt.Sprintf("Unsupported transport: <%+s>", "invalid")
- rcv, err := cM.getConnWithConfig(connID, cfg.RPCConns()[connID], nil, cc, true)
+ rcv, err := cM.getConnWithConfig(context.Background(), connID, cfg.RPCConns()[connID], cc, true)
if err == nil || err.Error() != experr {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
+ t.Fatalf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
if rcv != nil {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, rcv)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", nil, rcv)
}
}
@@ -176,11 +189,11 @@ func TestCMgetConnWithConfigUnsupportedCodec(t *testing.T) {
},
}
- cc := make(chan rpcclient.ClientConnector, 1)
+ cc := make(chan birpc.ClientConnector, 1)
cM := &ConnManager{
cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
+ rpcInternal: map[string]chan birpc.ClientConnector{
connID: cc,
},
connCache: ltcache.NewCache(-1, 0, true, nil),
@@ -188,14 +201,14 @@ func TestCMgetConnWithConfigUnsupportedCodec(t *testing.T) {
experr := rpcclient.ErrUnsupportedCodec
var exp *rpcclient.RPCParallelClientPool
- rcv, err := cM.getConnWithConfig(connID, cfg.RPCConns()[connID], nil, cc, true)
+ rcv, err := cM.getConnWithConfig(context.Background(), connID, cfg.RPCConns()[connID], cc, true)
if err == nil || err != experr {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
+ t.Fatalf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
if !reflect.DeepEqual(rcv, exp) {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", exp, rcv)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", exp, rcv)
}
}
@@ -211,11 +224,11 @@ func TestCMgetConnWithConfigEmptyTransport(t *testing.T) {
},
}
- cc := make(chan rpcclient.ClientConnector, 1)
+ cc := make(chan birpc.ClientConnector, 1)
cM := &ConnManager{
cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
+ rpcInternal: map[string]chan birpc.ClientConnector{
connID: cc,
},
connCache: ltcache.NewCache(-1, 0, true, nil),
@@ -223,10 +236,10 @@ func TestCMgetConnWithConfigEmptyTransport(t *testing.T) {
cM.connCache.Set(connID, nil, nil)
- rcv, err := cM.getConnWithConfig(connID, cfg.RPCConns()[connID], nil, cc, true)
+ rcv, err := cM.getConnWithConfig(context.Background(), connID, cfg.RPCConns()[connID], cc, true)
if err != nil {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
+ t.Fatalf("expected: <%+v>, \nreceived: <%+v>", nil, err)
}
if _, cancast := rcv.(*rpcclient.RPCParallelClientPool); !cancast {
@@ -235,124 +248,13 @@ func TestCMgetConnWithConfigEmptyTransport(t *testing.T) {
}
type BiRPCConnectorMock struct {
- calls map[string]func(rpcclient.ClientConnector, string, any, any) error
+ calls map[string]func(birpc.ClientConnector, string, any, any) error
}
-func (bRCM *BiRPCConnectorMock) Call(serviceMethod string, args any, reply any) (err error) {
+func (bRCM *BiRPCConnectorMock) Call(ctx *context.Context, serviceMethod string, args any, reply any) (err error) {
return nil
}
-func (bRCM *BiRPCConnectorMock) CallBiRPC(cc rpcclient.ClientConnector, method string, args any, reply any) error {
- if call, has := bRCM.calls[method]; !has {
- return rpcclient.ErrUnsupporteServiceMethod
- } else {
- return call(cc, method, args, reply)
- }
-}
-
-func (bRCM *BiRPCConnectorMock) Handlers() map[string]any {
- return nil
-}
-
-func TestCMgetConnWithConfigCallBiRPCNilErr(t *testing.T) {
- connID := "connID"
- cfg := config.NewDefaultCGRConfig()
- cfg.RPCConns()[connID] = config.NewDfltRPCConn()
- cfg.RPCConns()[connID].Conns = []*config.RemoteHost{
- {
- ID: connID,
- Address: rpcclient.BiRPCInternal,
- Transport: rpcclient.BiRPCJSON,
- },
- }
-
- cc := make(chan rpcclient.ClientConnector, 1)
- birpc := &BiRPCConnectorMock{
- calls: map[string]func(rpcclient.ClientConnector, string, any, any) error{
- utils.SessionSv1RegisterInternalBiJSONConn: func(cc rpcclient.ClientConnector, s string, i1, i2 any) error {
- return nil
- },
- },
- }
- cc <- birpc
-
- cM := &ConnManager{
- cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
- connID: cc,
- },
- connCache: ltcache.NewCache(-1, 0, true, nil),
- }
-
- exp, err := NewRPCPool("*first", cfg.TLSCfg().ClientKey, cfg.TLSCfg().ClientCerificate,
- cfg.TLSCfg().CaCertificate, cfg.GeneralCfg().ConnectAttempts,
- cfg.GeneralCfg().Reconnects, cfg.GeneralCfg().ConnectTimeout,
- cfg.GeneralCfg().ReplyTimeout, cfg.RPCConns()[connID].Conns, cc,
- false, birpc, connID, cM.connCache)
- if err != nil {
- t.Fatal(err)
- }
- rcv, err := cM.getConnWithConfig(connID, cfg.RPCConns()[connID], birpc, cc, true)
-
- if err != nil {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
- }
-
- if !reflect.DeepEqual(rcv, exp) {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", exp, rcv)
- }
-}
-
-func TestCMgetConnWithConfigCallBiRPCErr(t *testing.T) {
- connID := "connID"
- cfg := config.NewDefaultCGRConfig()
- cfg.RPCConns()[connID] = config.NewDfltRPCConn()
- cfg.RPCConns()[connID].Conns = []*config.RemoteHost{
- {
- ID: connID,
- Address: rpcclient.BiRPCInternal,
- Transport: rpcclient.BiRPCJSON,
- },
- }
-
- cc := make(chan rpcclient.ClientConnector, 1)
- birpc := &BiRPCConnectorMock{
- calls: map[string]func(rpcclient.ClientConnector, string, any, any) error{
- "wrong method": func(cc rpcclient.ClientConnector, s string, i1, i2 any) error {
- return nil
- },
- },
- }
- cc <- birpc
-
- cM := &ConnManager{
- cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
- connID: cc,
- },
- connCache: ltcache.NewCache(-1, 0, true, nil),
- }
-
- exp, err := NewRPCPool("*first", cfg.TLSCfg().ClientKey, cfg.TLSCfg().ClientCerificate,
- cfg.TLSCfg().CaCertificate, cfg.GeneralCfg().ConnectAttempts,
- cfg.GeneralCfg().Reconnects, cfg.GeneralCfg().ConnectTimeout,
- cfg.GeneralCfg().ReplyTimeout, cfg.RPCConns()[connID].Conns, cc,
- false, birpc, connID, cM.connCache)
- if err != nil {
- t.Fatal(err)
- }
- experr := rpcclient.ErrUnsupporteServiceMethod
- rcv, err := cM.getConnWithConfig(connID, cfg.RPCConns()[connID], birpc, cc, true)
-
- if err == nil || err != experr {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
- }
-
- if !reflect.DeepEqual(rcv, exp) {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", exp, rcv)
- }
-}
-
func TestCMgetConnWithConfigInternalRPCCodec(t *testing.T) {
connID := "connID"
cfg := config.NewDefaultCGRConfig()
@@ -364,20 +266,20 @@ func TestCMgetConnWithConfigInternalRPCCodec(t *testing.T) {
},
}
- cc := make(chan rpcclient.ClientConnector, 1)
+ cc := make(chan birpc.ClientConnector, 1)
cM := &ConnManager{
cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
+ rpcInternal: map[string]chan birpc.ClientConnector{
connID: cc,
},
connCache: ltcache.NewCache(-1, 0, true, nil),
}
- rcv, err := cM.getConnWithConfig(connID, cfg.RPCConns()[connID], nil, cc, true)
+ rcv, err := cM.getConnWithConfig(context.Background(), connID, cfg.RPCConns()[connID], cc, true)
if err != nil {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
+ t.Fatalf("expected: <%+v>, \nreceived: <%+v>", nil, err)
}
if _, cancast := rcv.(*rpcclient.RPCParallelClientPool); !cancast {
@@ -396,21 +298,21 @@ func TestCMgetConnWithConfigInternalBiRPCCodecUnsupported(t *testing.T) {
},
}
- cc := make(chan rpcclient.ClientConnector, 1)
+ cc := make(chan birpc.ClientConnector, 1)
cM := &ConnManager{
cfg: cfg,
- rpcInternal: map[string]chan rpcclient.ClientConnector{
+ rpcInternal: map[string]chan birpc.ClientConnector{
connID: cc,
},
connCache: ltcache.NewCache(-1, 0, true, nil),
}
experr := rpcclient.ErrUnsupportedCodec
- rcv, err := cM.getConnWithConfig(connID, cfg.RPCConns()[connID], nil, cc, true)
+ rcv, err := cM.getConnWithConfig(context.Background(), connID, cfg.RPCConns()[connID], cc, true)
if err == nil || err != experr {
- t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
+ t.Fatalf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
if _, cancast := rcv.(*rpcclient.RPCParallelClientPool); !cancast {
@@ -431,10 +333,10 @@ func TestCMCallErrgetConn(t *testing.T) {
Cache.SetWithoutReplicate(utils.CacheRPCConnections, connID, nil, nil, true, utils.NonTransactional)
experr := utils.ErrNotFound
- err := cM.Call([]string{connID}, nil, "", "", "")
+ err := cM.Call(context.Background(), []string{connID}, "", "", "")
if err == nil || err != experr {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
}
@@ -451,7 +353,7 @@ func TestCMCallWithConnIDsNoSubsHostIDs(t *testing.T) {
err := cM.CallWithConnIDs([]string{connID}, subsHostIDs, "", "", "")
if err != nil {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", nil, err)
}
}
@@ -471,7 +373,7 @@ func TestCMCallWithConnIDsNoConnIDs(t *testing.T) {
err := cM.CallWithConnIDs([]string{}, subsHostIDs, "", "", "")
if err == nil || err.Error() != experr {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
}
@@ -496,7 +398,7 @@ func TestCMCallWithConnIDsNoConns(t *testing.T) {
err := cM.CallWithConnIDs([]string{connID}, subsHostIDs, "", "", "")
if err != nil {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", nil, err)
}
}
@@ -523,7 +425,7 @@ func TestCMCallWithConnIDsInternallyDCed(t *testing.T) {
err := cM.CallWithConnIDs([]string{connID}, subsHostIDs, "", "", "")
if err == nil || err != experr {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", nil, err)
}
}
@@ -540,8 +442,8 @@ func TestCMCallWithConnIDs2(t *testing.T) {
}
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- "testMethod": func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ "testMethod": func(ctx *context.Context, args, reply any) error {
return utils.ErrExists
},
},
@@ -562,7 +464,7 @@ func TestCMCallWithConnIDs2(t *testing.T) {
err := cM.CallWithConnIDs([]string{poolID}, subsHostIDs, "testMethod", "", "")
if err == nil || err != experr {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
}
@@ -585,11 +487,11 @@ func TestCMReload(t *testing.T) {
rcv2 := Cache.GetItemIDs(utils.CacheRPCConnections, utils.EmptyString)
if !reflect.DeepEqual(rcv1, exp) {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", exp, rcv1)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", exp, rcv1)
}
if !reflect.DeepEqual(rcv2, exp) {
- t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", exp, rcv2)
+ t.Errorf("expected: <%+v>, \nreceived: <%+v>", exp, rcv2)
}
}
diff --git a/engine/datamanager.go b/engine/datamanager.go
index 66634e99d..390391d17 100644
--- a/engine/datamanager.go
+++ b/engine/datamanager.go
@@ -19,11 +19,11 @@ along with this program. If not, see
package engine
import (
- "context"
"fmt"
"strings"
"github.com/cgrates/baningo"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -354,7 +354,7 @@ func (dm *DataManager) GetDestination(key string, cacheRead, cacheWrite bool, tr
dest, err = dm.dataDB.GetDestinationDrv(key, transactionID)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDestinations]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetDestination, &utils.StringWithAPIOpts{
Arg: key,
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
@@ -482,7 +482,7 @@ func (dm *DataManager) GetReverseDestination(prefix string,
ids, err = dm.dataDB.GetReverseDestinationDrv(prefix, transactionID)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaReverseDestinations]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetReverseDestination, &utils.StringWithAPIOpts{
Arg: prefix,
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
@@ -569,7 +569,7 @@ func (dm *DataManager) GetAccount(id string) (acc *Account, err error) {
itm.Remote {
splt := utils.SplitConcatenatedKey(id)
tenant := utils.FirstNonEmpty(splt[0], config.CgrConfig().GeneralCfg().DefaultTenant)
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetAccount, &utils.StringWithAPIOpts{
Arg: id,
Tenant: tenant,
@@ -652,7 +652,7 @@ func (dm *DataManager) GetFilter(tenant, id string, cacheRead, cacheWrite bool,
fltr, err = dm.DataDB().GetFilterDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaFilters]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil, utils.ReplicatorSv1GetFilter,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns, utils.ReplicatorSv1GetFilter,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
APIOpts: utils.GenerateDBItemOpts(itm.APIKey, itm.RouteID, utils.EmptyString,
@@ -780,7 +780,7 @@ func (dm *DataManager) GetThreshold(tenant, id string,
th, err = dm.dataDB.GetThresholdDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaThresholds]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetThreshold, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
APIOpts: utils.GenerateDBItemOpts(itm.APIKey, itm.RouteID, utils.EmptyString,
@@ -868,7 +868,7 @@ func (dm *DataManager) GetThresholdProfile(tenant, id string, cacheRead, cacheWr
th, err = dm.dataDB.GetThresholdProfileDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaThresholdProfiles]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetThresholdProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
@@ -1016,7 +1016,7 @@ func (dm *DataManager) GetStatQueue(tenant, id string,
sq, err = dm.dataDB.GetStatQueueDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaStatQueues]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil, utils.ReplicatorSv1GetStatQueue,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns, utils.ReplicatorSv1GetStatQueue,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
APIOpts: utils.GenerateDBItemOpts(itm.APIKey, itm.RouteID, utils.EmptyString,
@@ -1120,7 +1120,7 @@ func (dm *DataManager) GetStatQueueProfile(tenant, id string, cacheRead, cacheWr
sqp, err = dm.dataDB.GetStatQueueProfileDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaStatQueueProfiles]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetStatQueueProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
@@ -1298,7 +1298,7 @@ func (dm *DataManager) GetTiming(id string, skipCache bool,
t, err = dm.dataDB.GetTimingDrv(id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaTimings]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil, utils.ReplicatorSv1GetTiming,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns, utils.ReplicatorSv1GetTiming,
&utils.StringWithAPIOpts{
Arg: id,
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
@@ -1390,7 +1390,7 @@ func (dm *DataManager) GetResource(tenant, id string, cacheRead, cacheWrite bool
rs, err = dm.dataDB.GetResourceDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaResources]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetResource,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
@@ -1480,7 +1480,7 @@ func (dm *DataManager) GetResourceProfile(tenant, id string, cacheRead, cacheWri
rp, err = dm.dataDB.GetResourceProfileDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaResourceProfile]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetResourceProfile, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
APIOpts: utils.GenerateDBItemOpts(itm.APIKey, itm.RouteID, utils.EmptyString,
@@ -1625,7 +1625,7 @@ func (dm *DataManager) GetActionTriggers(id string, skipCache bool,
attrs, err = dm.dataDB.GetActionTriggersDrv(id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaActionTriggers]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil, utils.ReplicatorSv1GetActionTriggers,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns, utils.ReplicatorSv1GetActionTriggers,
&utils.StringWithAPIOpts{
Arg: id,
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
@@ -1729,7 +1729,7 @@ func (dm *DataManager) GetSharedGroup(key string, skipCache bool,
sg, err = dm.DataDB().GetSharedGroupDrv(key)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaSharedGroups]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetSharedGroup, &utils.StringWithAPIOpts{
Arg: key,
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
@@ -1827,7 +1827,7 @@ func (dm *DataManager) GetActions(key string, skipCache bool, transactionID stri
as, err = dm.DataDB().GetActionsDrv(key)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaActions]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetActions, &utils.StringWithAPIOpts{
Arg: key,
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
@@ -1927,7 +1927,7 @@ func (dm *DataManager) GetActionPlan(key string, cacheRead, cacheWrite bool, tra
ats, err = dm.dataDB.GetActionPlanDrv(key)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaActionPlans]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetActionPlan, &utils.StringWithAPIOpts{
Arg: key,
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
@@ -2010,7 +2010,7 @@ func (dm *DataManager) GetAllActionPlans() (ats map[string]*ActionPlan, err erro
}
ats, err = dm.dataDB.GetAllActionPlansDrv()
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaActionPlans]; ((err == nil && len(ats) == 0) || err == utils.ErrNotFound) && itm.Remote {
- err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetAllActionPlans,
&utils.StringWithAPIOpts{
Arg: utils.EmptyString,
@@ -2063,7 +2063,7 @@ func (dm *DataManager) GetAccountActionPlans(acntID string, cacheRead, cacheWrit
apIDs, err = dm.dataDB.GetAccountActionPlansDrv(acntID)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaAccountActionPlans]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetAccountActionPlans,
&utils.StringWithAPIOpts{
Arg: acntID,
@@ -2198,7 +2198,7 @@ func (dm *DataManager) GetRatingPlan(key string, skipCache bool,
rp, err = dm.DataDB().GetRatingPlanDrv(key)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaRatingPlans]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetRatingPlan,
&utils.StringWithAPIOpts{
Arg: key,
@@ -2290,7 +2290,7 @@ func (dm *DataManager) GetRatingProfile(key string, skipCache bool,
rpf, err = dm.DataDB().GetRatingProfileDrv(key)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaRatingProfiles]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetRatingProfile,
&utils.StringWithAPIOpts{
Arg: key,
@@ -2388,7 +2388,7 @@ func (dm *DataManager) GetRouteProfile(tenant, id string, cacheRead, cacheWrite
rpp, err = dm.dataDB.GetRouteProfileDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaRouteProfiles]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil, utils.ReplicatorSv1GetRouteProfile,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns, utils.ReplicatorSv1GetRouteProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
APIOpts: utils.GenerateDBItemOpts(itm.APIKey, itm.RouteID, utils.EmptyString,
@@ -2521,7 +2521,7 @@ func (dm *DataManager) GetAttributeProfile(tenant, id string, cacheRead, cacheWr
} else {
if attrPrfl, err = dm.dataDB.GetAttributeProfileDrv(tenant, id); err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaAttributeProfiles]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
@@ -2659,7 +2659,7 @@ func (dm *DataManager) GetChargerProfile(tenant, id string, cacheRead, cacheWrit
cpp, err = dm.dataDB.GetChargerProfileDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaChargerProfiles]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetChargerProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
@@ -2786,7 +2786,7 @@ func (dm *DataManager) GetDispatcherProfile(tenant, id string, cacheRead, cacheW
dpp, err = dm.dataDB.GetDispatcherProfileDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherProfiles]; err == utils.ErrDSPProfileNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetDispatcherProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
@@ -2919,7 +2919,7 @@ func (dm *DataManager) GetDispatcherHost(tenant, id string, cacheRead, cacheWrit
dH, err = dm.dataDB.GetDispatcherHostDrv(tenant, id)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherHosts]; err == utils.ErrDSPHostNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetDispatcherHost,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
@@ -3006,7 +3006,7 @@ func (dm *DataManager) GetItemLoadIDs(itemIDPrefix string, cacheWrite bool) (loa
loadIDs, err = dm.DataDB().GetItemLoadIDsDrv(itemIDPrefix)
if err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaLoadIDs]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetItemLoadIDs,
&utils.StringWithAPIOpts{
Arg: itemIDPrefix,
@@ -3101,7 +3101,7 @@ func (dm *DataManager) GetIndexes(idxItmType, tntCtx, idxKey string,
}
if indexes, err = dm.DataDB().GetIndexesDrv(idxItmType, tntCtx, idxKey); err != nil {
if itm := config.CgrConfig().DataDbCfg().Items[idxItmType]; err == utils.ErrNotFound && itm.Remote {
- if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil,
+ if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns,
utils.ReplicatorSv1GetIndexes,
&utils.GetIndexesArg{
IdxItmType: idxItmType,
@@ -3245,7 +3245,7 @@ func (dm *DataManager) checkFilters(tenant string, ids []string) (err error) {
// in case we can not find it localy try to find it in the remote DB
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaFilters]; err == utils.ErrNotFound && itm.Remote {
var fltr *Filter
- err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil, utils.ReplicatorSv1GetFilter,
+ err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns, utils.ReplicatorSv1GetFilter,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
APIOpts: utils.GenerateDBItemOpts(itm.APIKey, itm.RouteID, utils.EmptyString,
diff --git a/engine/datamanager_test.go b/engine/datamanager_test.go
index b5e0e111b..ff4b19679 100644
--- a/engine/datamanager_test.go
+++ b/engine/datamanager_test.go
@@ -24,6 +24,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/rpcclient"
@@ -50,10 +52,10 @@ func TestDmGetDestinationRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetDestination: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetDestination: func(ctx *context.Context, args, reply any) error {
rpl := &Destination{
Id: "nat", Prefixes: []string{"0257", "0256", "0723"},
}
@@ -63,7 +65,7 @@ func TestDmGetDestinationRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
exp := &Destination{
@@ -101,10 +103,10 @@ func TestDmGetAccountRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetAccount: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetAccount: func(ctx *context.Context, args, reply any) error {
rpl := &Account{
ID: "cgrates.org:exp",
UpdateTime: time.Now(),
@@ -115,7 +117,7 @@ func TestDmGetAccountRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
exp := &Account{
@@ -154,10 +156,10 @@ func TestDmGetFilterRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetFilter: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetFilter: func(ctx *context.Context, args, reply any) error {
rpl := &Filter{
Tenant: "cgrates.org",
ID: "Filter1",
@@ -179,7 +181,7 @@ func TestDmGetFilterRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
@@ -230,10 +232,10 @@ func TestDMGetThresholdRemote(t *testing.T) {
Replicate: true,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetThreshold: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetThreshold: func(ctx *context.Context, args, reply any) error {
rpl := &Threshold{
Tenant: "cgrates.org",
ID: "THD_ACNT_1001",
@@ -242,14 +244,14 @@ func TestDMGetThresholdRemote(t *testing.T) {
*reply.(**Threshold) = rpl
return nil
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -299,19 +301,19 @@ func TestDMGetThresholdRemoteErr(t *testing.T) {
Replicate: true,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetThreshold: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetThreshold: func(ctx *context.Context, args, reply any) error {
return utils.ErrNotFound
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -347,10 +349,10 @@ func TestDMGetThresholdProfileRemote(t *testing.T) {
Replicate: true,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetThresholdProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetThresholdProfile: func(ctx *context.Context, args, reply any) error {
rpl := &ThresholdProfile{
Tenant: "cgrates.org",
ID: "ID",
@@ -358,14 +360,14 @@ func TestDMGetThresholdProfileRemote(t *testing.T) {
*reply.(**ThresholdProfile) = rpl
return nil
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -409,19 +411,19 @@ func TestDMGetThresholdProfileRemoteErr(t *testing.T) {
Replicate: true,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetThresholdProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetThresholdProfile: func(ctx *context.Context, args, reply any) error {
return utils.ErrNotFound
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -461,10 +463,10 @@ func TestDMGetStatQueue(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetStatQueue: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetStatQueue: func(ctx *context.Context, args, reply any) error {
rpl := &StatQueue{
Tenant: "cgrates.org",
ID: "StatsID",
@@ -478,7 +480,7 @@ func TestDMGetStatQueue(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -560,10 +562,10 @@ func TestDMSetAccount(t *testing.T) {
DestinationIDs: utils.NewStringMap("RET"), Weight: 20},
}},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetAccount: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetAccount: func(ctx *context.Context, args, reply any) error {
accApiOpts, cancast := args.(AccountWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -575,7 +577,7 @@ func TestDMSetAccount(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -630,10 +632,10 @@ func TestDMRemoveAccount(t *testing.T) {
t.Error(err)
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1RemoveAccount: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1RemoveAccount: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -644,7 +646,7 @@ func TestDMRemoveAccount(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -694,10 +696,10 @@ func TestDmSetFilter(t *testing.T) {
},
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetFilter: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetFilter: func(ctx *context.Context, args, reply any) error {
fltr, cancast := args.(FilterWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -708,7 +710,7 @@ func TestDmSetFilter(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -749,10 +751,10 @@ func TestDMSetThreshold(t *testing.T) {
ID: "THD_ACNT_1001",
Hits: 0,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetThreshold: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetThreshold: func(ctx *context.Context, args, reply any) error {
thS, cancast := args.(ThresholdWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -763,7 +765,7 @@ func TestDMSetThreshold(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -805,10 +807,10 @@ func TestDmRemoveThreshold(t *testing.T) {
ID: "THD_ACNT_1001",
Hits: 0,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1RemoveThreshold: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1RemoveThreshold: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -819,7 +821,7 @@ func TestDmRemoveThreshold(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -854,10 +856,10 @@ func TestDMReverseDestinationRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetReverseDestination: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetReverseDestination: func(ctx *context.Context, args, reply any) error {
dest, cancast := args.(Destination)
if !cancast {
return utils.ErrNotConvertible
@@ -868,7 +870,7 @@ func TestDMReverseDestinationRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -910,10 +912,10 @@ func TestDMStatQueueRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetStatQueue: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetStatQueue: func(ctx *context.Context, args, reply any) error {
sqApiOpts, cancast := args.(StatQueueWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -921,7 +923,7 @@ func TestDMStatQueueRemote(t *testing.T) {
dm.dataDB.SetStatQueueDrv(nil, sqApiOpts.StatQueue)
return nil
},
- utils.ReplicatorSv1RemoveStatQueue: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveStatQueue: func(ctx *context.Context, args, reply any) error {
tntIDApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -932,7 +934,7 @@ func TestDMStatQueueRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -984,10 +986,10 @@ func TestDmTimingR(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetTiming: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetTiming: func(ctx *context.Context, args, reply any) error {
tpTimingApiOpts, cancast := args.(utils.TPTimingWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -995,7 +997,7 @@ func TestDmTimingR(t *testing.T) {
dm.DataDB().SetTimingDrv(tpTimingApiOpts.TPTiming)
return nil
},
- utils.ReplicatorSv1RemoveTiming: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveTiming: func(ctx *context.Context, args, reply any) error {
id, cancast := args.(string)
if !cancast {
return utils.ErrNotConvertible
@@ -1006,7 +1008,7 @@ func TestDmTimingR(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1054,10 +1056,10 @@ func TestDMSetActionTriggers(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetActionTriggers: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetActionTriggers: func(ctx *context.Context, args, reply any) error {
setActTrgAOpts, cancast := args.(SetActionTriggersArgWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1065,7 +1067,7 @@ func TestDMSetActionTriggers(t *testing.T) {
dm.DataDB().SetActionTriggersDrv(setActTrgAOpts.Key, setActTrgAOpts.Attrs)
return nil
},
- utils.ReplicatorSv1RemoveActionTriggers: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveActionTriggers: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1076,7 +1078,7 @@ func TestDMSetActionTriggers(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1131,10 +1133,10 @@ func TestDMResourceProfileRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetResourceProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetResourceProfile: func(ctx *context.Context, args, reply any) error {
rscPrflApiOpts, cancast := args.(ResourceProfileWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1142,7 +1144,7 @@ func TestDMResourceProfileRemote(t *testing.T) {
dm.DataDB().SetResourceProfileDrv(rscPrflApiOpts.ResourceProfile)
return nil
},
- utils.ReplicatorSv1SetResource: func(args, reply any) error {
+ utils.ReplicatorSv1SetResource: func(ctx *context.Context, args, reply any) error {
rscApiOpts, cancast := args.(ResourceWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1150,7 +1152,7 @@ func TestDMResourceProfileRemote(t *testing.T) {
dm.DataDB().SetResourceDrv(rscApiOpts.Resource)
return nil
},
- utils.ReplicatorSv1RemoveResourceProfile: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveResourceProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1161,7 +1163,7 @@ func TestDMResourceProfileRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1221,10 +1223,10 @@ func TestDmSharedGroup(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetSharedGroup: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetSharedGroup: func(ctx *context.Context, args, reply any) error {
shGrpApiOpts, cancast := args.(SharedGroupWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1232,7 +1234,7 @@ func TestDmSharedGroup(t *testing.T) {
dm.dataDB.SetSharedGroupDrv(shGrpApiOpts.SharedGroup)
return nil
},
- utils.ReplicatorSv1RemoveSharedGroup: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveSharedGroup: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1243,7 +1245,7 @@ func TestDmSharedGroup(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1300,10 +1302,10 @@ func TestDMThresholdProfile(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetThresholdProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetThresholdProfile: func(ctx *context.Context, args, reply any) error {
thPApiOpts, cancast := args.(ThresholdProfileWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1311,7 +1313,7 @@ func TestDMThresholdProfile(t *testing.T) {
dm.DataDB().SetThresholdProfileDrv(thPApiOpts.ThresholdProfile)
return nil
},
- utils.ReplicatorSv1SetThreshold: func(args, reply any) error {
+ utils.ReplicatorSv1SetThreshold: func(ctx *context.Context, args, reply any) error {
thApiOpts, cancast := args.(ThresholdWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1319,7 +1321,7 @@ func TestDMThresholdProfile(t *testing.T) {
dm.DataDB().SetThresholdDrv(thApiOpts.Threshold)
return nil
},
- utils.ReplicatorSv1RemoveThresholdProfile: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveThresholdProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1330,7 +1332,7 @@ func TestDMThresholdProfile(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1380,15 +1382,15 @@ func TestDMRemoveThresholdProfileErr(t *testing.T) {
}
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetThresholdProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetThresholdProfile: func(ctx *context.Context, args, reply any) error {
return fmt.Errorf("Can't Replicate")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1439,10 +1441,10 @@ func TestDmDispatcherHost(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetDispatcherHost: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetDispatcherHost: func(ctx *context.Context, args, reply any) error {
dspApiOpts, cancast := args.(DispatcherHostWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1450,7 +1452,7 @@ func TestDmDispatcherHost(t *testing.T) {
dm.DataDB().SetDispatcherHostDrv(dspApiOpts.DispatcherHost)
return nil
},
- utils.ReplicatorSv1RemoveDispatcherHost: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveDispatcherHost: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1461,7 +1463,7 @@ func TestDmDispatcherHost(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1512,19 +1514,19 @@ func TestGetDispatcherHostErr(t *testing.T) {
Replicate: true,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetDispatcherHost: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetDispatcherHost: func(ctx *context.Context, args, reply any) error {
return utils.ErrDSPHostNotFound
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -1572,10 +1574,10 @@ func TestChargerProfileRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetDispatcherHost: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetDispatcherHost: func(ctx *context.Context, args, reply any) error {
chrgPrflApiOpts, cancast := args.(ChargerProfileWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1583,7 +1585,7 @@ func TestChargerProfileRemote(t *testing.T) {
dm.DataDB().SetChargerProfileDrv(chrgPrflApiOpts.ChargerProfile)
return nil
},
- utils.ReplicatorSv1RemoveChargerProfile: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveChargerProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1594,7 +1596,7 @@ func TestChargerProfileRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1647,10 +1649,10 @@ func TestDispatcherProfileRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetDispatcherProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetDispatcherProfile: func(ctx *context.Context, args, reply any) error {
dspApiOpts, cancast := args.(DispatcherProfileWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1658,7 +1660,7 @@ func TestDispatcherProfileRemote(t *testing.T) {
dm.DataDB().SetDispatcherProfileDrv(dspApiOpts.DispatcherProfile)
return nil
},
- utils.ReplicatorSv1RemoveDispatcherProfile: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveDispatcherProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1669,7 +1671,7 @@ func TestDispatcherProfileRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1719,10 +1721,10 @@ func TestRouteProfileRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetRouteProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetRouteProfile: func(ctx *context.Context, args, reply any) error {
routeApiOpts, cancast := args.(RouteProfileWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1730,7 +1732,7 @@ func TestRouteProfileRemote(t *testing.T) {
dm.DataDB().SetRouteProfileDrv(routeApiOpts.RouteProfile)
return nil
},
- utils.ReplicatorSv1RemoveRouteProfile: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveRouteProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1741,7 +1743,7 @@ func TestRouteProfileRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1788,10 +1790,10 @@ func TestRatingPlanRemote(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetRatingPlan: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetRatingPlan: func(ctx *context.Context, args, reply any) error {
rPnApiOpts, cancast := args.(RatingPlanWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1799,7 +1801,7 @@ func TestRatingPlanRemote(t *testing.T) {
dm.DataDB().SetRatingPlanDrv(rPnApiOpts.RatingPlan)
return nil
},
- utils.ReplicatorSv1RemoveRatingPlan: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveRatingPlan: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1810,7 +1812,7 @@ func TestRatingPlanRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -1879,10 +1881,10 @@ func TestGetResourceRemote(t *testing.T) {
},
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetResource: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetResource: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(*utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1891,13 +1893,13 @@ func TestGetResourceRemote(t *testing.T) {
*reply.(**Resource) = rS
return nil
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -1948,10 +1950,10 @@ func TestGetResourceProfileRemote(t *testing.T) {
Weight: 20,
ThresholdIDs: []string{"Val1"},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetResourceProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetResourceProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(*utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -1963,7 +1965,7 @@ func TestGetResourceProfileRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2004,10 +2006,10 @@ func TestGetActionTriggers(t *testing.T) {
ID: "Test",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetActionTriggers: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetActionTriggers: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2016,14 +2018,14 @@ func TestGetActionTriggers(t *testing.T) {
*reply.(*ActionTriggers) = aT
return nil
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -2072,19 +2074,19 @@ func TestGetActionTriggersErr(t *testing.T) {
ID: "Test",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetActionTriggers: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetActionTriggers: func(ctx *context.Context, args, reply any) error {
return utils.ErrNotFound
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr1 := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr1 := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -2146,10 +2148,10 @@ func TestGetSharedGroupRemote(t *testing.T) {
"string2": false,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetSharedGroup: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetSharedGroup: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2161,7 +2163,7 @@ func TestGetSharedGroupRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2201,10 +2203,10 @@ func TestGetStatQueueProfileRemote(t *testing.T) {
FilterIDs: []string{"FLTR_ID"},
Weight: 10,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetStatQueueProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetStatQueueProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(*utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2216,7 +2218,7 @@ func TestGetStatQueueProfileRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2264,10 +2266,10 @@ func TestStatQueueProfileRemote(t *testing.T) {
FilterIDs: []string{"FLTR_ID"},
Weight: 10,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetStatQueueProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetStatQueueProfile: func(ctx *context.Context, args, reply any) error {
sqPApiOpts, cancast := args.(StatQueueProfileWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2275,7 +2277,7 @@ func TestStatQueueProfileRemote(t *testing.T) {
dm.DataDB().SetStatQueueProfileDrv(sqPApiOpts.StatQueueProfile)
return nil
},
- utils.ReplicatorSv1SetStatQueue: func(args, reply any) error {
+ utils.ReplicatorSv1SetStatQueue: func(ctx *context.Context, args, reply any) error {
sqApiOpts, cancast := args.(StatQueueWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2286,7 +2288,7 @@ func TestStatQueueProfileRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2322,10 +2324,10 @@ func TestDMActionsRemote(t *testing.T) {
Remote: true,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetActions: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetActions: func(ctx *context.Context, args, reply any) error {
sArgApiOpts, cancast := args.(SetActionsArgsWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2333,7 +2335,7 @@ func TestDMActionsRemote(t *testing.T) {
dm.DataDB().SetActionsDrv(sArgApiOpts.Key, sArgApiOpts.Acs)
return nil
},
- utils.ReplicatorSv1GetActions: func(args, reply any) error {
+ utils.ReplicatorSv1GetActions: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2341,7 +2343,7 @@ func TestDMActionsRemote(t *testing.T) {
dm.DataDB().GetActionsDrv(strApiOpts.Arg)
return nil
},
- utils.ReplicatorSv1RemoveActions: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveActions: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2355,7 +2357,7 @@ func TestDMActionsRemote(t *testing.T) {
ActionType: utils.MetaTopUp,
ExpirationString: utils.MetaUnlimited}}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2408,10 +2410,10 @@ func TestGetDispatcherHost(t *testing.T) {
Transport: utils.MetaJSON,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetDispatcherHost: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetDispatcherHost: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(*utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2423,7 +2425,7 @@ func TestGetDispatcherHost(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2463,10 +2465,10 @@ func TestGetReverseDestinationRemote(t *testing.T) {
},
}
ids := []string{"dest1", "dest2"}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetReverseDestination: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetReverseDestination: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2478,7 +2480,7 @@ func TestGetReverseDestinationRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2490,15 +2492,15 @@ func TestGetReverseDestinationRemote(t *testing.T) {
t.Errorf("expected %v,received %v", utils.ToJSON(ids), utils.ToJSON(val))
}
Cache = NewCacheS(cfg, dm, nil)
- clientConn2 := make(chan rpcclient.ClientConnector, 1)
+ clientConn2 := make(chan birpc.ClientConnector, 1)
clientConn2 <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't replicate")
},
},
}
- connMgr2 := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr2 := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn2,
})
SetConnManager(connMgr2)
@@ -2541,10 +2543,10 @@ func TestDMRemoveDestination(t *testing.T) {
dest := &Destination{
Id: "nat", Prefixes: []string{"0257", "0256", "0723"},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1RemoveDestination: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1RemoveDestination: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2552,7 +2554,7 @@ func TestDMRemoveDestination(t *testing.T) {
dm.DataDB().RemoveDestinationDrv(strApiOpts.Arg, utils.NonTransactional)
return nil
},
- utils.ReplicatorSv1GetReverseDestination: func(args, reply any) error {
+ utils.ReplicatorSv1GetReverseDestination: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2563,7 +2565,7 @@ func TestDMRemoveDestination(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2577,15 +2579,15 @@ func TestDMRemoveDestination(t *testing.T) {
t.Error(err)
}
Cache = NewCacheS(cfg, dm, nil)
- clientConn2 := make(chan rpcclient.ClientConnector, 1)
+ clientConn2 := make(chan birpc.ClientConnector, 1)
clientConn2 <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReplicateRemove: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReplicateRemove: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't replicate")
},
},
}
- connMgr2 := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr2 := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn2,
})
SetConnManager(connMgr2)
@@ -2622,10 +2624,10 @@ func TestDMRemoveFilter(t *testing.T) {
Remote: true,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1RemoveFilter: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1RemoveFilter: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2633,13 +2635,13 @@ func TestDMRemoveFilter(t *testing.T) {
dm.dataDB.RemoveFilterDrv(tntApiOpts.TenantID.Tenant, tntApiOpts.TenantID.ID)
return nil
},
- utils.ReplicatorSv1GetIndexes: func(args, reply any) error {
+ utils.ReplicatorSv1GetIndexes: func(ctx *context.Context, args, reply any) error {
return nil
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2712,10 +2714,10 @@ func TestRemoveStatQueueProfile(t *testing.T) {
FilterIDs: []string{"FLTR_ST_Resource1", "*string:~*req.Account:1001"},
Weight: 50,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1RemoveStatQueueProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1RemoveStatQueueProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2723,14 +2725,14 @@ func TestRemoveStatQueueProfile(t *testing.T) {
dm.DataDB().RemStatQueueProfileDrv(tntApiOpts.Tenant, tntApiOpts.ID)
return nil
},
- utils.ReplicatorSv1GetIndexes: func(args, reply any) error {
+ utils.ReplicatorSv1GetIndexes: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2788,10 +2790,10 @@ func TestDMGetTimingRemote(t *testing.T) {
EndTime: "00:00:01",
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetTiming: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetTiming: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2803,7 +2805,7 @@ func TestDMGetTimingRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2813,15 +2815,15 @@ func TestDMGetTimingRemote(t *testing.T) {
t.Error(err)
}
Cache = NewCacheS(cfg, dm, nil)
- clientConn2 := make(chan rpcclient.ClientConnector, 1)
+ clientConn2 := make(chan birpc.ClientConnector, 1)
clientConn2 <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't replicate")
},
},
}
- connMgr2 := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn2})
+ connMgr2 := NewConnManager(cfg, map[string]chan birpc.ClientConnector{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn2})
SetConnManager(connMgr2)
if _, err := dm.GetTiming(tp.ID, true, utils.NonTransactional); err == nil || err.Error() != "Can't replicate" {
t.Error(err)
@@ -2861,10 +2863,10 @@ func TestDmGetActions(t *testing.T) {
ActionType: utils.MetaTopUpReset,
ExpirationString: utils.MetaUnlimited},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetActions: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetActions: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2876,7 +2878,7 @@ func TestDmGetActions(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2909,10 +2911,10 @@ func TestDMSetLoadIDs(t *testing.T) {
RouteID: "route",
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetLoadIDs: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetLoadIDs: func(ctx *context.Context, args, reply any) error {
ldApiOpts, cancast := args.(*utils.LoadIDsWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2923,7 +2925,7 @@ func TestDMSetLoadIDs(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -2974,10 +2976,10 @@ func TestGetItemLoadIDsRemote(t *testing.T) {
"load1": 23,
"load2": 22,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetItemLoadIDs: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetItemLoadIDs: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -2989,7 +2991,7 @@ func TestGetItemLoadIDsRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -3007,13 +3009,13 @@ func TestGetItemLoadIDsRemote(t *testing.T) {
}
Cache = NewCacheS(cfg, dm, nil)
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReplicateSet: func(args, reply any) error { return errors.New("Can't replicate") },
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error { return errors.New("Can't replicate") },
},
}
- connMgr2 := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr2 := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientconn,
})
SetConnManager(connMgr2)
@@ -3049,18 +3051,18 @@ func TestDMItemLoadIDsRemoteErr(t *testing.T) {
"load1": 23,
"load2": 22,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetItemLoadIDs: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetItemLoadIDs: func(ctx *context.Context, args, reply any) error {
*reply.(*map[string]int64) = ld
return utils.ErrNotFound
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error { return errors.New("Can't replicate") },
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error { return errors.New("Can't replicate") },
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
@@ -3118,10 +3120,10 @@ func TestActionPlanRemote(t *testing.T) {
},
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetActionPlan: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetActionPlan: func(ctx *context.Context, args, reply any) error {
setActPlnOpts, cancast := args.(*SetActionPlanArgWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -3129,7 +3131,7 @@ func TestActionPlanRemote(t *testing.T) {
dm.dataDB.SetActionPlanDrv(setActPlnOpts.Key, setActPlnOpts.Ats)
return nil
},
- utils.ReplicatorSv1RemoveActionPlan: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveActionPlan: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -3137,7 +3139,7 @@ func TestActionPlanRemote(t *testing.T) {
dm.DataDB().RemoveActionPlanDrv(strApiOpts.Arg)
return nil
},
- utils.ReplicatorSv1GetAllActionPlans: func(args, reply any) error {
+ utils.ReplicatorSv1GetAllActionPlans: func(ctx *context.Context, args, reply any) error {
*reply.(*map[string]*ActionPlan) = map[string]*ActionPlan{
"act_key": actPln,
@@ -3147,7 +3149,7 @@ func TestActionPlanRemote(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -3193,10 +3195,10 @@ func TestAccountActionPlansRemote(t *testing.T) {
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetAccountActionPlans: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetAccountActionPlans: func(ctx *context.Context, args, reply any) error {
setActPlnOpts, cancast := args.(*SetActionPlanArgWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -3204,14 +3206,14 @@ func TestAccountActionPlansRemote(t *testing.T) {
dm.dataDB.SetActionPlanDrv(setActPlnOpts.Key, setActPlnOpts.Ats)
return nil
},
- utils.ReplicatorSv1RemAccountActionPlans: func(args, reply any) error {
+ utils.ReplicatorSv1RemAccountActionPlans: func(ctx *context.Context, args, reply any) error {
return nil
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -3476,10 +3478,10 @@ func TestDMRatingProfile(t *testing.T) {
}},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetRatingProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetRatingProfile: func(ctx *context.Context, args, reply any) error {
rtPrfApiOpts, cancast := args.(*RatingProfileWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -3487,7 +3489,7 @@ func TestDMRatingProfile(t *testing.T) {
dm.dataDB.SetRatingProfileDrv(rtPrfApiOpts.RatingProfile)
return nil
},
- utils.ReplicatorSv1RemoveRatingProfile: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveRatingProfile: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -3495,7 +3497,7 @@ func TestDMRatingProfile(t *testing.T) {
dm.DataDB().RemoveRatingProfileDrv(strApiOpts.Arg)
return nil
},
- utils.ReplicatorSv1GetRatingProfile: func(args, reply any) error {
+ utils.ReplicatorSv1GetRatingProfile: func(ctx *context.Context, args, reply any) error {
strApiOpts, cancast := args.(*utils.StringWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -3507,7 +3509,7 @@ func TestDMRatingProfile(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -3628,21 +3630,21 @@ func TestDMGetRatingPlan(t *testing.T) {
Ratings: map[string]*RIRate{"Ratings": {ConnectFee: 0.7}},
Timings: map[string]*RITiming{"Timings": {Months: utils.Months{4}}},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetRatingPlan: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetRatingPlan: func(ctx *context.Context, args, reply any) error {
*reply.(**RatingPlan) = rpL
return nil
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't replicate ")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -3691,21 +3693,21 @@ func TestDMChargerProfile(t *testing.T) {
AttributeIDs: []string{"ATTR_1"},
Weight: 20,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetChargerProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetChargerProfile: func(ctx *context.Context, args, reply any) error {
*reply.(**ChargerProfile) = chP
return nil
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't replicate ")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -3763,21 +3765,21 @@ func TestDMDispatcherProfile(t *testing.T) {
},
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetDispatcherProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetDispatcherProfile: func(ctx *context.Context, args, reply any) error {
*reply.(**DispatcherProfile) = dPP
return nil
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't replicate ")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -4121,18 +4123,18 @@ func TestCacheDataFromDBErr(t *testing.T) {
cfg.CacheCfg().Partitions[utils.CacheThresholdProfiles].Replicate = true
cfg.CacheCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetThresholdProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetThresholdProfile: func(ctx *context.Context, args, reply any) error {
return errors.New("Another Error")
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return fmt.Errorf("New Error")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -4189,20 +4191,20 @@ func TestDMGetRouteProfile(t *testing.T) {
},
Weight: 10,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetRouteProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetRouteProfile: func(ctx *context.Context, args, reply any) error {
*reply.(**RouteProfile) = rpL
return nil
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -4242,19 +4244,19 @@ func TestDMGetRouteProfileErr(t *testing.T) {
Replicate: true,
},
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetRouteProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetRouteProfile: func(ctx *context.Context, args, reply any) error {
return utils.ErrNotFound
},
- utils.CacheSv1ReplicateSet: func(args, reply any) error {
+ utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't Replicate")
},
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientConn,
})
@@ -4407,14 +4409,14 @@ func TestDMAttributeProfile(t *testing.T) {
},
Weight: 20.0,
}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetAttributeProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetAttributeProfile: func(ctx *context.Context, args, reply any) error {
*reply.(**AttributeProfile) = attrPrf
return nil
},
- utils.ReplicatorSv1SetAttributeProfile: func(args, reply any) error {
+ utils.ReplicatorSv1SetAttributeProfile: func(ctx *context.Context, args, reply any) error {
attrPrfApiOpts, cancast := args.(*AttributeProfileWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -4422,7 +4424,7 @@ func TestDMAttributeProfile(t *testing.T) {
dm.DataDB().SetAttributeProfileDrv(attrPrfApiOpts.AttributeProfile)
return nil
},
- utils.ReplicatorSv1RemoveAttributeProfile: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveAttributeProfile: func(ctx *context.Context, args, reply any) error {
tntApiOpts, cancast := args.(*utils.TenantIDWithAPIOpts)
if !cancast {
return utils.ErrNotConvertible
@@ -4433,7 +4435,7 @@ func TestDMAttributeProfile(t *testing.T) {
},
}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -4584,10 +4586,10 @@ func TestDmIndexes(t *testing.T) {
},
}
cfg.DataDbCfg().RplConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetIndexes: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetIndexes: func(ctx *context.Context, args, reply any) error {
setcastIndxArg, cancast := args.(*utils.SetIndexesArg)
if !cancast {
return utils.ErrNotConvertible
@@ -4595,7 +4597,7 @@ func TestDmIndexes(t *testing.T) {
dm.DataDB().SetIndexesDrv(setcastIndxArg.IdxItmType, setcastIndxArg.TntCtx, setcastIndxArg.Indexes, true, utils.NonTransactional)
return nil
},
- utils.ReplicatorSv1RemoveIndexes: func(args, reply any) error {
+ utils.ReplicatorSv1RemoveIndexes: func(ctx *context.Context, args, reply any) error {
gIdxArg, cancast := args.(*utils.GetIndexesArg)
if !cancast {
return utils.ErrNotConvertible
@@ -4605,7 +4607,7 @@ func TestDmIndexes(t *testing.T) {
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -4644,10 +4646,10 @@ func TestDmCheckFilters(t *testing.T) {
},
}
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetFilter: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetFilter: func(ctx *context.Context, args, reply any) error {
fltr := &Filter{
ID: "FLTR_1",
Tenant: "cgrates.org",
@@ -4664,7 +4666,7 @@ func TestDmCheckFilters(t *testing.T) {
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -4686,15 +4688,15 @@ func TestRemoveFilterIndexes(t *testing.T) {
},
}
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetIndexes: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetIndexes: func(ctx *context.Context, args, reply any) error {
return utils.ErrNotImplemented
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -4741,15 +4743,15 @@ func TestGetDispatcherProfileErr(t *testing.T) {
}
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1GetDispatcherProfile: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1GetDispatcherProfile: func(ctx *context.Context, args, reply any) error {
return utils.ErrDSPProfileNotFound
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
@@ -4890,7 +4892,7 @@ func TestDmCheckFiltersRmt(t *testing.T) {
cfg.DataDbCfg().Items[utils.MetaFilters].Remote = true
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, _ any) error {
if serviceMethod == utils.ReplicatorSv1GetFilter {
@@ -4898,7 +4900,7 @@ func TestDmCheckFiltersRmt(t *testing.T) {
}
return utils.ErrNotFound
})
- dm := NewDataManager(db, cfg.CacheCfg(), NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ dm := NewDataManager(db, cfg.CacheCfg(), NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
}))
dm.SetFilter(&Filter{
diff --git a/engine/destinations_test.go b/engine/destinations_test.go
index 005f0467b..36e2404ee 100644
--- a/engine/destinations_test.go
+++ b/engine/destinations_test.go
@@ -5,9 +5,10 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
"github.com/nyaruka/phonenumbers"
)
@@ -191,16 +192,16 @@ func TestDMSetDestinationSucces(t *testing.T) {
cfg.DataDbCfg().RplCache = "cache"
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetDestination: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetDestination: func(ctx *context.Context, args, reply any) error {
*reply.(*string) = "reply"
return nil
},
},
}
- connMngr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicationConnsCfg): clientConn,
})
@@ -227,16 +228,16 @@ func TestDMSetAccountSucces(t *testing.T) {
Replicate: true,
},
}*/
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetAccount: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetAccount: func(ctx *context.Context, args, reply any) error {
*reply.(*string) = "reply"
return nil
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicationConnsCfg): clientConn,
})
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -271,16 +272,16 @@ func TestDMSetReverseDestination(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ReplicatorSv1SetReverseDestination: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ReplicatorSv1SetReverseDestination: func(ctx *context.Context, args, reply any) error {
*reply.(*string) = "reply"
return nil
},
},
}
- connMngr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicationConnsCfg): clientConn,
})
diff --git a/engine/dispatcherprfl.go b/engine/dispatcherprfl.go
index bf55cb959..d9bb9a261 100644
--- a/engine/dispatcherprfl.go
+++ b/engine/dispatcherprfl.go
@@ -22,9 +22,10 @@ import (
"math/rand"
"sort"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
type DispatcherHostProfile struct {
@@ -133,7 +134,7 @@ func (dps DispatcherProfiles) Sort() {
type DispatcherHost struct {
Tenant string
*config.RemoteHost
- rpcConn rpcclient.ClientConnector
+ rpcConn birpc.ClientConnector
}
// DispatcherHostWithOpts is used in replicatorV1 for dispatcher
@@ -148,21 +149,26 @@ func (dH *DispatcherHost) TenantID() string {
}
// Call will build and cache the connection if it is not defined yet then will execute the method on conn
-func (dH *DispatcherHost) Call(serviceMethod string, args any, reply any) (err error) {
+func (dH *DispatcherHost) Call(ctx *context.Context, serviceMethod string, args any, reply any) (err error) {
if dH.rpcConn == nil {
// connect the rpcConn
cfg := config.CgrConfig()
- if dH.rpcConn, err = NewRPCConnection(dH.RemoteHost,
+ if dH.rpcConn, err = NewRPCConnection(ctx,
+ dH.RemoteHost,
cfg.TLSCfg().ClientKey,
- cfg.TLSCfg().ClientCerificate, cfg.TLSCfg().CaCertificate,
- cfg.GeneralCfg().ConnectAttempts, cfg.GeneralCfg().Reconnects,
- cfg.GeneralCfg().ConnectTimeout, cfg.GeneralCfg().ReplyTimeout,
- IntRPC.GetInternalChanel(), false, nil,
+ cfg.TLSCfg().ClientCerificate,
+ cfg.TLSCfg().CaCertificate,
+ cfg.GeneralCfg().ConnectAttempts,
+ cfg.GeneralCfg().Reconnects,
+ cfg.GeneralCfg().MaxReconnectInterval,
+ cfg.GeneralCfg().ConnectTimeout,
+ cfg.GeneralCfg().ReplyTimeout,
+ IntRPC.GetInternalChanel(), false,
utils.EmptyString, utils.EmptyString, nil); err != nil {
return
}
}
- return dH.rpcConn.Call(serviceMethod, args, reply)
+ return dH.rpcConn.Call(ctx, serviceMethod, args, reply)
}
type DispatcherHostIDs []string
diff --git a/engine/dispatcherprfl_test.go b/engine/dispatcherprfl_test.go
index 238a98d38..497e149e5 100644
--- a/engine/dispatcherprfl_test.go
+++ b/engine/dispatcherprfl_test.go
@@ -21,6 +21,7 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -230,7 +231,7 @@ type testRPCHost struct {
reply any
}
-func (v *testRPCHost) Call(serviceMethod string, args any, reply any) error {
+func (v *testRPCHost) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
v.serviceMethod = serviceMethod
v.args = args
v.reply = reply
@@ -247,7 +248,7 @@ func TestDispatcherHostCall(t *testing.T) {
}
var reply string
dspHost.rpcConn = tRPC
- if err := dspHost.Call(utils.AttributeSv1Ping, &utils.CGREvent{}, &reply); err != nil {
+ if err := dspHost.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(*etRPC, *tRPC) {
t.Errorf("Expected: %s , received: %s", utils.ToJSON(etRPC), utils.ToJSON(tRPC))
@@ -334,7 +335,7 @@ func TestDispatcherHostCallErr(t *testing.T) {
},
}
var reply string
- if err := dH.Call(utils.AttributeSv1Ping, &utils.CGREvent{}, &reply); err == nil || err.Error() != "dial tcp: missing address" {
+ if err := dH.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{}, &reply); err == nil || err.Error() != "dial tcp: missing address" {
t.Error(err)
}
}
diff --git a/engine/dynamicdp.go b/engine/dynamicdp.go
index 6b49854bf..2ce3947c6 100644
--- a/engine/dynamicdp.go
+++ b/engine/dynamicdp.go
@@ -23,6 +23,7 @@ import (
"github.com/nyaruka/phonenumbers"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -91,7 +92,7 @@ func (dDP *dynamicDP) fieldAsInterface(fldPath []string) (val any, err error) {
// fieldNameType (~*accounts), accountID(1001) and queried part (BalanceMap.*monetary[0].Value)
var account Account
- if err = connMgr.Call(dDP.apiConns, nil, utils.APIerSv2GetAccount,
+ if err = connMgr.Call(context.TODO(), dDP.apiConns, utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: dDP.tenant, Account: fldPath[1]}, &account); err != nil {
return
}
@@ -101,7 +102,7 @@ func (dDP *dynamicDP) fieldAsInterface(fldPath []string) (val any, err error) {
case utils.MetaResources:
// sample of fieldName : ~*resources.ResourceID.Field
var reply ResourceWithConfig
- if err := connMgr.Call(dDP.resConns, nil, utils.ResourceSv1GetResourceWithConfig,
+ if err := connMgr.Call(context.TODO(), dDP.resConns, utils.ResourceSv1GetResourceWithConfig,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: dDP.tenant, ID: fldPath[1]}}, &reply); err != nil {
return nil, err
}
@@ -112,7 +113,7 @@ func (dDP *dynamicDP) fieldAsInterface(fldPath []string) (val any, err error) {
// sample of fieldName : ~*stats.StatID.*acd
var statValues map[string]float64
- if err := connMgr.Call(dDP.stsConns, nil, utils.StatSv1GetQueueFloatMetrics,
+ if err := connMgr.Call(context.TODO(), dDP.stsConns, utils.StatSv1GetQueueFloatMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: dDP.tenant, ID: fldPath[1]}},
&statValues); err != nil {
return nil, err
diff --git a/engine/dynamicdp_test.go b/engine/dynamicdp_test.go
index 792ce6eff..1ecbc9ef4 100644
--- a/engine/dynamicdp_test.go
+++ b/engine/dynamicdp_test.go
@@ -25,9 +25,10 @@ import (
"strings"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
"github.com/nyaruka/phonenumbers"
)
@@ -35,10 +36,10 @@ func TestDynamicDpFieldAsInterface(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
ms := utils.MapStorage{}
dDp := newDynamicDP([]string{}, []string{utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg)}, []string{}, "cgrates.org", ms)
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
rpl := &map[string]float64{
"stat1": 31,
}
@@ -47,7 +48,7 @@ func TestDynamicDpFieldAsInterface(t *testing.T) {
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg): clientconn,
})
SetConnManager(connMgr)
diff --git a/engine/filters.go b/engine/filters.go
index 72978cf85..3783b1582 100644
--- a/engine/filters.go
+++ b/engine/filters.go
@@ -26,6 +26,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -494,7 +495,9 @@ func (fltr *FilterRule) passTimings(dDP utils.DataProvider) (bool, error) {
return false, err
}
var tm utils.TPTiming
- if err = connMgr.Call(config.CgrConfig().FilterSCfg().ApierSConns, nil, utils.APIerSv1GetTiming, &utils.ArgsGetTimingID{ID: valTmID}, &tm); err != nil {
+ if err = connMgr.Call(context.TODO(), config.CgrConfig().FilterSCfg().ApierSConns,
+ utils.APIerSv1GetTiming,
+ &utils.ArgsGetTimingID{ID: valTmID}, &tm); err != nil {
continue
}
ritm := &RITiming{
@@ -523,7 +526,9 @@ func (fltr *FilterRule) passDestinations(dDP utils.DataProvider) (bool, error) {
}
for _, p := range utils.SplitPrefix(dst, MIN_PREFIX_MATCH) {
var destIDs []string
- if err = connMgr.Call(config.CgrConfig().FilterSCfg().ApierSConns, nil, utils.APIerSv1GetReverseDestination, &p, &destIDs); err != nil {
+ if err = connMgr.Call(context.TODO(), config.CgrConfig().FilterSCfg().ApierSConns,
+ utils.APIerSv1GetReverseDestination,
+ &p, &destIDs); err != nil {
continue
}
for _, dID := range destIDs {
diff --git a/engine/filters_test.go b/engine/filters_test.go
index d06db2a34..371f86c5e 100644
--- a/engine/filters_test.go
+++ b/engine/filters_test.go
@@ -28,9 +28,10 @@ import (
"time"
"github.com/cgrates/baningo"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestFilterPassString(t *testing.T) {
@@ -1952,10 +1953,10 @@ func TestFiltersPassTimingsCallSuccessful(t *testing.T) {
config.SetCgrConfig(cfg)
Cache.Clear(nil)
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.APIerSv1GetTiming: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.APIerSv1GetTiming: func(ctx *context.Context, args, reply any) error {
exp := &utils.TPTiming{
ID: "MIDNIGHT",
Years: utils.Years{2020, 2018},
@@ -1972,7 +1973,7 @@ func TestFiltersPassTimingsCallSuccessful(t *testing.T) {
}
client <- ccM
- NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier): client,
})
@@ -2091,10 +2092,10 @@ func TestFiltersPassDestinationsCallSuccessSameDest(t *testing.T) {
config.SetCgrConfig(cfg)
Cache.Clear(nil)
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.APIerSv1GetReverseDestination: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.APIerSv1GetReverseDestination: func(ctx *context.Context, args, reply any) error {
rply := []string{"1002"}
*reply.(*[]string) = rply
return nil
@@ -2103,7 +2104,7 @@ func TestFiltersPassDestinationsCallSuccessSameDest(t *testing.T) {
}
client <- ccM
- NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier): client,
})
@@ -2140,10 +2141,10 @@ func TestFiltersPassDestinationsCallSuccessParseErr(t *testing.T) {
config.SetCgrConfig(cfg)
Cache.Clear(nil)
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.APIerSv1GetReverseDestination: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.APIerSv1GetReverseDestination: func(ctx *context.Context, args, reply any) error {
rply := []string{"1002"}
*reply.(*[]string) = rply
return nil
@@ -2152,7 +2153,7 @@ func TestFiltersPassDestinationsCallSuccessParseErr(t *testing.T) {
}
client <- ccM
- NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier): client,
})
@@ -2291,8 +2292,8 @@ func TestFilterGreaterThanOnObjectDP(t *testing.T) {
cfg.FilterSCfg().ResourceSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
dm := NewDataManager(NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items), cfg.CacheCfg(), nil)
mockConn := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResourceSv1GetResourceWithConfig: func(args any, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResourceSv1GetResourceWithConfig: func(ctx *context.Context, args any, reply any) error {
*(reply.(*ResourceWithConfig)) = ResourceWithConfig{
Resource: &Resource{},
}
@@ -2300,9 +2301,9 @@ func TestFilterGreaterThanOnObjectDP(t *testing.T) {
},
},
}
- mockChan := make(chan rpcclient.ClientConnector, 1)
+ mockChan := make(chan birpc.ClientConnector, 1)
mockChan <- mockConn
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): mockChan,
})
flts := NewFilterS(cfg, connMgr, dm)
@@ -2600,10 +2601,10 @@ func TestFilterPassTiming(t *testing.T) {
config.SetCgrConfig(cfg)
Cache.Clear(nil)
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.APIerSv1GetTiming: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.APIerSv1GetTiming: func(ctx *context.Context, args, reply any) error {
exp := &utils.TPTiming{
ID: "MIDNIGHT",
Years: utils.Years{2023},
@@ -2620,7 +2621,7 @@ func TestFilterPassTiming(t *testing.T) {
}
client <- ccM
- NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier): client,
})
diff --git a/engine/lib_test.go b/engine/lib_test.go
index 30dbcdfd9..dbd8c4895 100644
--- a/engine/lib_test.go
+++ b/engine/lib_test.go
@@ -21,9 +21,9 @@ package engine
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -35,12 +35,12 @@ var (
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/engine/libengine.go b/engine/libengine.go
index 8cb9fa8e2..925b1af8c 100644
--- a/engine/libengine.go
+++ b/engine/libengine.go
@@ -19,10 +19,15 @@ along with this program. If not, see
package engine
import (
+ "errors"
"fmt"
+ "reflect"
"strings"
"time"
+ "unicode"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -30,12 +35,12 @@ import (
)
// NewRPCPool returns a new pool of connection with the given configuration
-func NewRPCPool(dispatchStrategy string, keyPath, certPath, caPath string, connAttempts, reconnects int,
- connectTimeout, replyTimeout time.Duration, rpcConnCfgs []*config.RemoteHost,
- internalConnChan chan rpcclient.ClientConnector, lazyConnect bool,
- biRPCClient rpcclient.BiRPCConector, poolID string, connCache *ltcache.Cache) (rpcPool *rpcclient.RPCPool, err error) {
- var rpcClient rpcclient.ClientConnector
- var atLestOneConnected bool // If one connected we don't longer return errors
+func NewRPCPool(ctx *context.Context, dispatchStrategy string, keyPath, certPath, caPath string, connAttempts, reconnects int,
+ maxReconnectInterval, connectTimeout, replyTimeout time.Duration, rpcConnCfgs []*config.RemoteHost,
+ internalConnChan chan birpc.ClientConnector, lazyConnect bool,
+ poolID string, connCache *ltcache.Cache) (rpcPool *rpcclient.RPCPool, err error) {
+ var rpcClient birpc.ClientConnector
+ var atLeastOneConnected bool // If one connected we don't longer return errors
rpcPool = rpcclient.NewRPCPool(dispatchStrategy, replyTimeout)
for _, rpcConnCfg := range rpcConnCfgs {
if rpcConnCfg.Address == utils.EmptyString {
@@ -44,17 +49,17 @@ func NewRPCPool(dispatchStrategy string, keyPath, certPath, caPath string, connA
err = rpcclient.ErrDisconnected
continue
}
- if rpcClient, err = NewRPCConnection(rpcConnCfg, keyPath, certPath, caPath, connAttempts, reconnects,
- connectTimeout, replyTimeout, internalConnChan, lazyConnect, biRPCClient,
- poolID, rpcConnCfg.ID, connCache); err == rpcclient.ErrUnsupportedCodec {
+ if rpcClient, err = NewRPCConnection(ctx, rpcConnCfg, keyPath, certPath, caPath, connAttempts, reconnects,
+ maxReconnectInterval, connectTimeout, replyTimeout, internalConnChan, lazyConnect, poolID, rpcConnCfg.ID,
+ connCache); err == rpcclient.ErrUnsupportedCodec {
return nil, fmt.Errorf("Unsupported transport: <%s>", rpcConnCfg.Transport)
}
if err == nil {
- atLestOneConnected = true
+ atLeastOneConnected = true
}
rpcPool.AddClient(rpcClient)
}
- if atLestOneConnected {
+ if atLeastOneConnected {
err = nil
}
return
@@ -62,25 +67,42 @@ func NewRPCPool(dispatchStrategy string, keyPath, certPath, caPath string, connA
// NewRPCConnection creates a new connection based on the RemoteHost structure
// connCache is used to cache the connection with ID
-func NewRPCConnection(cfg *config.RemoteHost, keyPath, certPath, caPath string, connAttempts, reconnects int,
- connectTimeout, replyTimeout time.Duration, internalConnChan chan rpcclient.ClientConnector, lazyConnect bool,
- biRPCClient rpcclient.BiRPCConector, poolID, connID string, connCache *ltcache.Cache) (client rpcclient.ClientConnector, err error) {
+func NewRPCConnection(ctx *context.Context, cfg *config.RemoteHost, keyPath, certPath, caPath string, connAttempts, reconnects int,
+ maxReconnectInterval, connectTimeout, replyTimeout time.Duration, internalConnChan chan birpc.ClientConnector, lazyConnect bool,
+ poolID, connID string, connCache *ltcache.Cache) (client birpc.ClientConnector, err error) {
var id string
if connID != utils.EmptyString {
id = poolID + utils.ConcatenatedKeySep + connID
if x, ok := connCache.Get(id); ok && x != nil {
- return x.(rpcclient.ClientConnector), nil
+ return x.(birpc.ClientConnector), nil
}
}
if cfg.Address == rpcclient.InternalRPC ||
cfg.Address == rpcclient.BiRPCInternal {
- client, err = rpcclient.NewRPCClient("", "", cfg.TLS, utils.FirstNonEmpty(cfg.ClientKey, keyPath), utils.FirstNonEmpty(cfg.ClientCertificate, certPath), utils.FirstNonEmpty(cfg.CaCertificate, caPath), utils.FirstIntNonEmpty(cfg.ConnectAttempts, connAttempts),
- utils.FirstIntNonEmpty(cfg.Reconnects, reconnects), utils.FirstDurationNonEmpty(cfg.ConnectTimeout, connectTimeout), utils.FirstDurationNonEmpty(cfg.ReplyTimeout, replyTimeout), cfg.Address, internalConnChan, lazyConnect, biRPCClient)
- } else {
- client, err = rpcclient.NewRPCClient(utils.TCP, cfg.Address, cfg.TLS, utils.FirstNonEmpty(cfg.ClientKey, keyPath), utils.FirstNonEmpty(cfg.ClientCertificate, certPath), utils.FirstNonEmpty(cfg.CaCertificate, caPath),
+ client, err = rpcclient.NewRPCClient(ctx, "", "", cfg.TLS,
+ utils.FirstNonEmpty(cfg.ClientKey, keyPath),
+ utils.FirstNonEmpty(cfg.ClientCertificate, certPath),
+ utils.FirstNonEmpty(cfg.CaCertificate, caPath),
utils.FirstIntNonEmpty(cfg.ConnectAttempts, connAttempts),
- utils.FirstIntNonEmpty(cfg.Reconnects, reconnects), utils.FirstDurationNonEmpty(cfg.ConnectTimeout, connectTimeout), utils.FirstDurationNonEmpty(cfg.ReplyTimeout, replyTimeout),
- utils.FirstNonEmpty(cfg.Transport, rpcclient.GOBrpc), nil, lazyConnect, biRPCClient)
+ utils.FirstIntNonEmpty(cfg.Reconnects, reconnects),
+ utils.FirstDurationNonEmpty(cfg.MaxReconnectInterval, maxReconnectInterval),
+ utils.FibDuration,
+ utils.FirstDurationNonEmpty(cfg.ConnectTimeout, connectTimeout),
+ utils.FirstDurationNonEmpty(cfg.ReplyTimeout, replyTimeout),
+ cfg.Address, internalConnChan, lazyConnect, ctx.Client)
+ } else {
+ client, err = rpcclient.NewRPCClient(ctx, utils.TCP, cfg.Address, cfg.TLS,
+ utils.FirstNonEmpty(cfg.ClientKey, keyPath),
+ utils.FirstNonEmpty(cfg.ClientCertificate, certPath),
+ utils.FirstNonEmpty(cfg.CaCertificate, caPath),
+ utils.FirstIntNonEmpty(cfg.ConnectAttempts, connAttempts),
+ utils.FirstIntNonEmpty(cfg.Reconnects, reconnects),
+ utils.FirstDurationNonEmpty(cfg.MaxReconnectInterval, maxReconnectInterval),
+ utils.FibDuration,
+ utils.FirstDurationNonEmpty(cfg.ConnectTimeout, connectTimeout),
+ utils.FirstDurationNonEmpty(cfg.ReplyTimeout, replyTimeout),
+ utils.FirstNonEmpty(cfg.Transport, rpcclient.GOBrpc),
+ nil, lazyConnect, ctx.Client)
}
if connID != utils.EmptyString &&
err == nil {
@@ -101,10 +123,11 @@ func NewRPCClientSet() (s RPCClientSet) {
type RPCClientSet map[string]*rpcclient.RPCClient
// AddInternalRPCClient creates and adds to the set a new rpc client using the provided configuration
-func (s RPCClientSet) AddInternalRPCClient(name string, connChan chan rpcclient.ClientConnector) {
- rpc, err := rpcclient.NewRPCClient(utils.EmptyString, utils.EmptyString, false,
+func (s RPCClientSet) AddInternalRPCClient(name string, connChan chan birpc.ClientConnector) {
+ rpc, err := rpcclient.NewRPCClient(context.TODO(), utils.EmptyString, utils.EmptyString, false,
utils.EmptyString, utils.EmptyString, utils.EmptyString,
config.CgrConfig().GeneralCfg().ConnectAttempts, config.CgrConfig().GeneralCfg().Reconnects,
+ config.CgrConfig().GeneralCfg().MaxReconnectInterval, utils.FibDuration,
config.CgrConfig().GeneralCfg().ConnectTimeout, config.CgrConfig().GeneralCfg().ReplyTimeout,
rpcclient.InternalRPC, connChan, true, nil)
if err != nil {
@@ -115,14 +138,14 @@ func (s RPCClientSet) AddInternalRPCClient(name string, connChan chan rpcclient.
}
// GetInternalChanel is used when RPCClientSet is passed as internal connection for RPCPool
-func (s RPCClientSet) GetInternalChanel() chan rpcclient.ClientConnector {
- connChan := make(chan rpcclient.ClientConnector, 1)
+func (s RPCClientSet) GetInternalChanel() chan birpc.ClientConnector {
+ connChan := make(chan birpc.ClientConnector, 1)
connChan <- s
return connChan
}
-// Call the implementation of the rpcclient.ClientConnector interface
-func (s RPCClientSet) Call(method string, args any, reply any) error {
+// Call the implementation of the birpc.ClientConnector interface
+func (s RPCClientSet) Call(ctx *context.Context, method string, args any, reply any) error {
methodSplit := strings.Split(method, ".")
if len(methodSplit) != 2 {
return rpcclient.ErrUnsupporteServiceMethod
@@ -131,7 +154,7 @@ func (s RPCClientSet) Call(method string, args any, reply any) error {
if !has {
return rpcclient.ErrUnsupporteServiceMethod
}
- return conn.Call(method, args, reply)
+ return conn.Call(ctx, method, args, reply)
}
// func (s RPCClientSet) ReconnectInternals(subsystems ...string) (err error) {
@@ -141,3 +164,160 @@ func (s RPCClientSet) Call(method string, args any, reply any) error {
// }
// }
// }
+
+func NewService(val any) (_ IntService, err error) {
+ return NewServiceWithName(val, utils.EmptyString, false)
+}
+
+func NewServiceWithName(val any, name string, useName bool) (_ IntService, err error) {
+ var srv *birpc.Service
+ if srv, err = birpc.NewService(val, name, useName); err != nil {
+ return
+ }
+ srv.Methods["Ping"] = pingM
+ s := IntService{srv.Name: srv}
+ for m, v := range srv.Methods {
+ m = strings.TrimPrefix(m, "BiRPC")
+ if len(m) < 2 || unicode.ToLower(rune(m[0])) != 'v' {
+ continue
+ }
+
+ key := srv.Name
+ if unicode.IsLower(rune(key[len(key)-1])) {
+ key += "V"
+ } else {
+ key += "v"
+ }
+ key += string(m[1])
+ srv2, has := s[key]
+ if !has {
+ srv2 = new(birpc.Service)
+ *srv2 = *srv
+ srv2.Name = key
+ RegisterPingMethod(srv2.Methods)
+ s[key] = srv2
+ }
+ srv2.Methods[m[2:]] = v
+ }
+ return s, nil
+}
+
+// func NewDispatcherService(val any) (_ IntService, err error) {
+// var srv *birpc.Service
+// if srv, err = birpc.NewService(val, utils.EmptyString, false); err != nil {
+// return
+// }
+// srv.Methods["Ping"] = pingM
+// s := IntService{srv.Name: srv}
+// for m, v := range srv.Methods {
+// key := srv.Name
+// switch {
+// case strings.HasPrefix(m, utils.AttributeS):
+// m = strings.TrimPrefix(m, utils.AttributeS)
+// key = utils.AttributeS
+// case strings.HasPrefix(m, utils.CacheS):
+// m = strings.TrimPrefix(m, utils.CacheS)
+// key = utils.CacheS
+// case strings.HasPrefix(m, utils.CDRs):
+// m = strings.TrimPrefix(m, utils.CDRs)
+// key = utils.CDRs
+// case strings.HasPrefix(m, utils.ChargerS):
+// m = strings.TrimPrefix(m, utils.ChargerS)
+// key = utils.ChargerS
+// case strings.HasPrefix(m, utils.ConfigS):
+// m = strings.TrimPrefix(m, utils.ConfigS)
+// key = utils.ConfigS
+// case strings.HasPrefix(m, utils.CoreS):
+// m = strings.TrimPrefix(m, utils.CoreS)
+// key = utils.CoreS
+// case strings.HasPrefix(m, utils.DispatcherS):
+// m = strings.TrimPrefix(m, utils.DispatcherS)
+// key = utils.DispatcherS
+// case strings.HasPrefix(m, utils.EeS):
+// m = strings.TrimPrefix(m, utils.EeS)
+// key = utils.EeS
+// case strings.HasPrefix(m, utils.GuardianS):
+// m = strings.TrimPrefix(m, utils.GuardianS)
+// key = utils.GuardianS
+// case strings.HasPrefix(m, utils.RALs):
+// m = strings.TrimPrefix(m, utils.RALs)
+// key = utils.RALs
+// case strings.HasPrefix(m, utils.ReplicatorS):
+// m = strings.TrimPrefix(m, utils.ReplicatorS)
+// key = utils.ReplicatorS
+// case strings.HasPrefix(m, utils.ResourceS):
+// m = strings.TrimPrefix(m, utils.ResourceS)
+// key = utils.ResourceS
+// case strings.HasPrefix(m, utils.Responder):
+// m = strings.TrimPrefix(m, utils.Responder)
+// key = utils.Responder
+// case strings.HasPrefix(m, utils.RouteS):
+// m = strings.TrimPrefix(m, utils.RouteS)
+// key = utils.RouteS
+// case strings.HasPrefix(m, utils.SchedulerS):
+// m = strings.TrimPrefix(m, utils.SchedulerS)
+// key = utils.SchedulerS
+// case strings.HasPrefix(m, utils.SessionS):
+// m = strings.TrimPrefix(m, utils.SessionS)
+// key = utils.SessionS
+// case strings.HasPrefix(m, utils.StatService):
+// m = strings.TrimPrefix(m, utils.StatService)
+// key = utils.StatService
+// case strings.HasPrefix(m, utils.ThresholdS):
+// m = strings.TrimPrefix(m, utils.ThresholdS)
+// key = utils.ThresholdS
+// }
+// if (len(m) < 2 || unicode.ToLower(rune(m[0])) != 'v') &&
+// key != utils.Responder {
+// continue
+// }
+// if key != utils.Responder {
+// if unicode.IsLower(rune(key[len(key)-1])) {
+// key += "V"
+// } else {
+// key += "v"
+// }
+// key += string(m[1])
+// m = m[2:]
+// }
+// srv2, has := s[key]
+// if !has {
+// srv2 = new(birpc.Service)
+// *srv2 = *srv
+// srv2.Name = key
+// RegisterPingMethod(srv2.Methods)
+// s[key] = srv2
+// }
+// srv2.Methods[m] = v
+// }
+// return s, nil
+// }
+
+type IntService map[string]*birpc.Service
+
+func (s IntService) Call(ctx *context.Context, serviceMethod string, args, reply any) error {
+ service, has := s[strings.Split(serviceMethod, utils.NestingSep)[0]]
+ if !has {
+ return errors.New("rpc: can't find service " + serviceMethod)
+ }
+ return service.Call(ctx, serviceMethod, args, reply)
+}
+
+func ping(_ any, _ *context.Context, _ *utils.CGREvent, reply *string) error {
+ *reply = utils.Pong
+ return nil
+}
+
+var pingM = &birpc.MethodType{
+ Method: reflect.Method{
+ Name: "Ping",
+ Type: reflect.TypeOf(ping),
+ Func: reflect.ValueOf(ping),
+ },
+ ArgType: reflect.TypeOf(new(utils.CGREvent)),
+ ReplyType: reflect.TypeOf(new(string)),
+}
+
+func RegisterPingMethod(methodMap map[string]*birpc.MethodType) {
+ methodMap["Ping"] = pingM
+}
diff --git a/engine/libengine_test.go b/engine/libengine_test.go
index e40800994..fe38ff445 100644
--- a/engine/libengine_test.go
+++ b/engine/libengine_test.go
@@ -27,6 +27,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -40,7 +42,7 @@ func TestLibengineNewRPCPoolNoAddress(t *testing.T) {
}()
connID := "connID"
- intChan := make(chan rpcclient.ClientConnector)
+ intChan := make(chan birpc.ClientConnector)
defaultCfg := config.NewDefaultCGRConfig()
defaultCfg.RPCConns()[connID] = config.NewDfltRPCConn()
defaultCfg.RPCConns()[connID].Conns = []*config.RemoteHost{
@@ -53,9 +55,12 @@ func TestLibengineNewRPCPoolNoAddress(t *testing.T) {
exp := &rpcclient.RPCPool{}
experr := rpcclient.ErrDisconnected
- rcv, err := NewRPCPool("", "", "", "", defaultCfg.GeneralCfg().ConnectAttempts,
- defaultCfg.GeneralCfg().Reconnects, defaultCfg.GeneralCfg().ConnectTimeout,
- 0, defaultCfg.RPCConns()[connID].Conns, intChan, false, nil, connID, connCache)
+ rcv, err := NewRPCPool(context.Background(), "", "", "", "",
+ defaultCfg.GeneralCfg().ConnectAttempts,
+ defaultCfg.GeneralCfg().Reconnects,
+ defaultCfg.GeneralCfg().MaxReconnectInterval,
+ defaultCfg.GeneralCfg().ConnectTimeout,
+ 0, defaultCfg.RPCConns()[connID].Conns, intChan, false, connID, connCache)
if err == nil || err != experr {
t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -75,30 +80,38 @@ func TestLibengineNewRPCConnection(t *testing.T) {
}()
cfg := &config.RemoteHost{
- ID: "a4f3f",
- Address: "localhost:6012",
- Transport: "*json",
- ConnectAttempts: 2,
- Reconnects: 5,
- ConnectTimeout: 2 * time.Minute,
- ReplyTimeout: 3 * time.Minute,
- TLS: true,
- ClientKey: "key1",
+ ID: "a4f3f",
+ Address: "localhost:6012",
+ Transport: "*json",
+ ConnectAttempts: 2,
+ Reconnects: 5,
+ MaxReconnectInterval: 5 * time.Minute,
+ ConnectTimeout: 2 * time.Minute,
+ ReplyTimeout: 3 * time.Minute,
+ TLS: true,
+ ClientKey: "key1",
}
expectedErr1 := "dial tcp [::1]:6012: connect: connection refused"
expectedErr2 := "dial tcp 127.0.0.1:6012: connect: connection refused"
cM := NewConnManager(config.NewDefaultCGRConfig(), nil)
- exp, err := rpcclient.NewRPCClient(utils.TCP, cfg.Address, cfg.TLS, cfg.ClientKey, cM.cfg.TLSCfg().ClientCerificate,
- cM.cfg.TLSCfg().CaCertificate, cfg.ConnectAttempts, cfg.Reconnects, cfg.ConnectTimeout, cfg.ReplyTimeout,
- cfg.Transport, nil, false, nil)
+ exp, err := rpcclient.NewRPCClient(context.Background(), utils.TCP, cfg.Address, cfg.TLS, cfg.ClientKey,
+ cM.cfg.TLSCfg().ClientCerificate, cM.cfg.TLSCfg().CaCertificate, cfg.ConnectAttempts, cfg.Reconnects,
+ cfg.MaxReconnectInterval, utils.FibDuration, cfg.ConnectTimeout, cfg.ReplyTimeout, cfg.Transport, nil, false, nil)
if err.Error() != expectedErr1 && err.Error() != expectedErr2 {
t.Errorf("Expected %v or %v \n but received \n %v", expectedErr1, expectedErr2, err)
}
- conn, err := NewRPCConnection(cfg, cM.cfg.TLSCfg().ClientKey, cM.cfg.TLSCfg().ClientCerificate, cM.cfg.TLSCfg().CaCertificate,
- cM.cfg.GeneralCfg().ConnectAttempts, cM.cfg.GeneralCfg().Reconnects, cM.cfg.GeneralCfg().ConnectTimeout, cM.cfg.GeneralCfg().ReplyTimeout,
- nil, false, nil, "*localhost", "a4f3f", new(ltcache.Cache))
+ conn, err := NewRPCConnection(context.Background(), cfg,
+ cM.cfg.TLSCfg().ClientKey,
+ cM.cfg.TLSCfg().ClientCerificate,
+ cM.cfg.TLSCfg().CaCertificate,
+ cM.cfg.GeneralCfg().ConnectAttempts,
+ cM.cfg.GeneralCfg().Reconnects,
+ cM.cfg.GeneralCfg().MaxReconnectInterval,
+ cM.cfg.GeneralCfg().ConnectTimeout,
+ cM.cfg.GeneralCfg().ReplyTimeout,
+ nil, false, "*localhost", "a4f3f", new(ltcache.Cache))
if err.Error() != expectedErr1 && err.Error() != expectedErr2 {
t.Errorf("Expected %v or %v \n but received \n %v", expectedErr1, expectedErr2, err)
}
@@ -124,10 +137,10 @@ func TestLibengineNewRPCConnectionInternal(t *testing.T) {
TLS: true,
ClientKey: "key1",
}
- cM := NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan rpcclient.ClientConnector))
- exp, err := rpcclient.NewRPCClient("", "", cfg.TLS, cfg.ClientKey, cM.cfg.TLSCfg().ClientCerificate,
- cM.cfg.TLSCfg().ClientCerificate, cfg.ConnectAttempts, cfg.Reconnects, cfg.ConnectTimeout, cfg.ReplyTimeout,
- rpcclient.InternalRPC, cM.rpcInternal["a4f3f"], false, nil)
+ cM := NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
+ exp, err := rpcclient.NewRPCClient(context.Background(), "", "", cfg.TLS, cfg.ClientKey, cM.cfg.TLSCfg().ClientCerificate,
+ cM.cfg.TLSCfg().ClientCerificate, cfg.ConnectAttempts, cfg.Reconnects, cfg.MaxReconnectInterval, utils.FibDuration,
+ cfg.ConnectTimeout, cfg.ReplyTimeout, rpcclient.InternalRPC, cM.rpcInternal["a4f3f"], false, nil)
// We only want to check if the client loaded with the correct config,
// therefore connection is not mandatory
@@ -135,9 +148,16 @@ func TestLibengineNewRPCConnectionInternal(t *testing.T) {
t.Error(err)
}
- conn, err := NewRPCConnection(cfg, cM.cfg.TLSCfg().ClientKey, cM.cfg.TLSCfg().ClientCerificate, cM.cfg.TLSCfg().CaCertificate,
- cM.cfg.GeneralCfg().ConnectAttempts, cM.cfg.GeneralCfg().Reconnects, cM.cfg.GeneralCfg().ConnectTimeout, cM.cfg.GeneralCfg().ReplyTimeout,
- cM.rpcInternal["a4f3f"], false, nil, "*internal", "a4f3f", new(ltcache.Cache))
+ conn, err := NewRPCConnection(context.Background(), cfg,
+ cM.cfg.TLSCfg().ClientKey,
+ cM.cfg.TLSCfg().ClientCerificate,
+ cM.cfg.TLSCfg().CaCertificate,
+ cM.cfg.GeneralCfg().ConnectAttempts,
+ cM.cfg.GeneralCfg().Reconnects,
+ cM.cfg.GeneralCfg().MaxReconnectInterval,
+ cM.cfg.GeneralCfg().ConnectTimeout,
+ cM.cfg.GeneralCfg().ReplyTimeout,
+ cM.rpcInternal["a4f3f"], false, "*internal", "a4f3f", new(ltcache.Cache))
if err != rpcclient.ErrInternallyDisconnected {
t.Error(err)
@@ -153,7 +173,7 @@ func TestLibengineNewRPCPoolUnsupportedTransport(t *testing.T) {
}()
connID := "connID"
- intChan := make(chan rpcclient.ClientConnector)
+ intChan := make(chan birpc.ClientConnector)
defaultCfg := config.NewDefaultCGRConfig()
defaultCfg.RPCConns()[connID] = config.NewDfltRPCConn()
defaultCfg.RPCConns()[connID].Conns = []*config.RemoteHost{
@@ -168,9 +188,13 @@ func TestLibengineNewRPCPoolUnsupportedTransport(t *testing.T) {
var exp *rpcclient.RPCPool
experr := fmt.Sprintf("Unsupported transport: <%s>",
defaultCfg.RPCConns()[connID].Conns[0].Transport)
- rcv, err := NewRPCPool("", "", "", "", defaultCfg.GeneralCfg().ConnectAttempts,
- defaultCfg.GeneralCfg().Reconnects, defaultCfg.GeneralCfg().ConnectTimeout,
- 0, defaultCfg.RPCConns()[connID].Conns, intChan, false, nil, connID, connCache)
+ rcv, err := NewRPCPool(context.Background(), "", "", "", "",
+ defaultCfg.GeneralCfg().ConnectAttempts,
+ defaultCfg.GeneralCfg().Reconnects,
+ defaultCfg.GeneralCfg().MaxReconnectInterval,
+ defaultCfg.GeneralCfg().ConnectTimeout,
+ 0, defaultCfg.RPCConns()[connID].Conns,
+ intChan, false, connID, connCache)
if err == nil || err.Error() != experr {
t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -193,11 +217,12 @@ func TestLibengineNewRPCClientSet(t *testing.T) {
func TestLibengineAddInternalRPCClientSuccess(t *testing.T) {
s := RPCClientSet{}
name := "testName"
- connChan := make(chan rpcclient.ClientConnector)
+ connChan := make(chan birpc.ClientConnector)
- expClient, err := rpcclient.NewRPCClient(utils.EmptyString, utils.EmptyString, false,
+ expClient, err := rpcclient.NewRPCClient(context.Background(), utils.EmptyString, utils.EmptyString, false,
utils.EmptyString, utils.EmptyString, utils.EmptyString,
config.CgrConfig().GeneralCfg().ConnectAttempts, config.CgrConfig().GeneralCfg().Reconnects,
+ config.CgrConfig().GeneralCfg().MaxReconnectInterval, utils.FibDuration,
config.CgrConfig().GeneralCfg().ConnectTimeout, config.CgrConfig().GeneralCfg().ReplyTimeout,
rpcclient.InternalRPC, connChan, true, nil)
@@ -247,7 +272,7 @@ func TestLibengineCallInvalidMethod(t *testing.T) {
reply := "testReply"
experr := rpcclient.ErrUnsupporteServiceMethod
- err := s.Call(method, args, reply)
+ err := s.Call(context.Background(), method, args, reply)
if err == nil || err != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -255,10 +280,11 @@ func TestLibengineCallInvalidMethod(t *testing.T) {
}
func TestLibengineCallMethodNotFound(t *testing.T) {
- connChan := make(chan rpcclient.ClientConnector)
- client, err := rpcclient.NewRPCClient(utils.EmptyString, utils.EmptyString, false,
+ connChan := make(chan birpc.ClientConnector)
+ client, err := rpcclient.NewRPCClient(context.Background(), utils.EmptyString, utils.EmptyString, false,
utils.EmptyString, utils.EmptyString, utils.EmptyString,
config.CgrConfig().GeneralCfg().ConnectAttempts, config.CgrConfig().GeneralCfg().Reconnects,
+ config.CgrConfig().GeneralCfg().MaxReconnectInterval, utils.FibDuration,
config.CgrConfig().GeneralCfg().ConnectTimeout, config.CgrConfig().GeneralCfg().ReplyTimeout,
rpcclient.InternalRPC, connChan, true, nil)
@@ -274,7 +300,7 @@ func TestLibengineCallMethodNotFound(t *testing.T) {
reply := "testReply"
experr := rpcclient.ErrUnsupporteServiceMethod
- err = s.Call(method, args, reply)
+ err = s.Call(context.Background(), method, args, reply)
if err == nil || err != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -282,10 +308,11 @@ func TestLibengineCallMethodNotFound(t *testing.T) {
}
func TestLibengineCallNilArgument(t *testing.T) {
- connChan := make(chan rpcclient.ClientConnector)
- client, err := rpcclient.NewRPCClient(utils.EmptyString, utils.EmptyString, false,
+ connChan := make(chan birpc.ClientConnector)
+ client, err := rpcclient.NewRPCClient(context.Background(), utils.EmptyString, utils.EmptyString, false,
utils.EmptyString, utils.EmptyString, utils.EmptyString,
config.CgrConfig().GeneralCfg().ConnectAttempts, config.CgrConfig().GeneralCfg().Reconnects,
+ config.CgrConfig().GeneralCfg().MaxReconnectInterval, utils.FibDuration,
config.CgrConfig().GeneralCfg().ConnectTimeout, config.CgrConfig().GeneralCfg().ReplyTimeout,
rpcclient.InternalRPC, connChan, true, nil)
@@ -302,7 +329,7 @@ func TestLibengineCallNilArgument(t *testing.T) {
experr := fmt.Sprintf("nil rpc in argument method: %s in: %v out: %v",
method, args, reply)
- err = s.Call(method, args, reply)
+ err = s.Call(context.Background(), method, args, reply)
if err == nil || err.Error() != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
diff --git a/engine/libtest.go b/engine/libtest.go
index 5a85a7fd5..f99910e8a 100644
--- a/engine/libtest.go
+++ b/engine/libtest.go
@@ -23,13 +23,13 @@ import (
"context"
"fmt"
"io"
- "net/rpc/jsonrpc"
"os"
"os/exec"
"path"
"strings"
"time"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
diff --git a/engine/remoterepl.go b/engine/remoterepl.go
index 816a05efc..d2e17ef74 100644
--- a/engine/remoterepl.go
+++ b/engine/remoterepl.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package engine
import (
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
)
@@ -38,7 +39,7 @@ func replicate(connMgr *ConnManager, connIDs []string, filtered bool, objType, o
var reply string
if !filtered {
// is not partial so send to all defined connections
- return utils.CastRPCErr(connMgr.Call(connIDs, nil, method, args, &reply))
+ return utils.CastRPCErr(connMgr.Call(context.TODO(), connIDs, method, args, &reply))
}
// is partial so get all the replicationHosts from cache based on object Type and ID
// alp_cgrates.org:ATTR1
@@ -60,7 +61,7 @@ func replicateMultipleIDs(connMgr *ConnManager, connIDs []string, filtered bool,
var reply string
if !filtered {
// is not partial so send to all defined connections
- return utils.CastRPCErr(connMgr.Call(connIDs, nil, method, args, &reply))
+ return utils.CastRPCErr(connMgr.Call(context.TODO(), connIDs, method, args, &reply))
}
// is partial so get all the replicationHosts from cache based on object Type and ID
// combine all hosts in a single set so if we receive a get with one ID in list
diff --git a/engine/resources.go b/engine/resources.go
index fe840d1b6..48bbd2067 100644
--- a/engine/resources.go
+++ b/engine/resources.go
@@ -26,6 +26,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -542,7 +543,7 @@ func (rS *ResourceService) processThresholds(rs Resources, opts map[string]any)
APIOpts: opts,
}
var tIDs []string
- if err := rS.connMgr.Call(rS.cgrcfg.ResourceSCfg().ThresholdSConns, nil,
+ if err := rS.connMgr.Call(context.TODO(), rS.cgrcfg.ResourceSCfg().ThresholdSConns,
utils.ThresholdSv1ProcessEvent, thEv, &tIDs); err != nil &&
(len(thIDs) != 0 || err.Error() != utils.ErrNotFound.Error()) {
utils.Logger.Warning(
@@ -670,8 +671,8 @@ func (rS *ResourceService) matchingResourcesForEvent(tnt string, ev *utils.CGREv
return
}
-// V1ResourcesForEvent returns active resource configs matching the event
-func (rS *ResourceService) V1ResourcesForEvent(args *utils.CGREvent, reply *Resources) (err error) {
+// V1GetResourcesForEvent returns active resource configs matching the event
+func (rS *ResourceService) V1GetResourcesForEvent(ctx *context.Context, args *utils.CGREvent, reply *Resources) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.Event)
}
@@ -721,7 +722,7 @@ func (rS *ResourceService) V1ResourcesForEvent(args *utils.CGREvent, reply *Reso
}
// V1AuthorizeResources queries service to find if an Usage is allowed
-func (rS *ResourceService) V1AuthorizeResources(args *utils.CGREvent, reply *string) (err error) {
+func (rS *ResourceService) V1AuthorizeResources(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.Event)
}
@@ -788,7 +789,7 @@ func (rS *ResourceService) V1AuthorizeResources(args *utils.CGREvent, reply *str
}
// V1AllocateResources is called when a resource requires allocation
-func (rS *ResourceService) V1AllocateResources(args *utils.CGREvent, reply *string) (err error) {
+func (rS *ResourceService) V1AllocateResources(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.Event)
}
@@ -859,7 +860,7 @@ func (rS *ResourceService) V1AllocateResources(args *utils.CGREvent, reply *stri
}
// V1ReleaseResources is called when we need to clear an allocation
-func (rS *ResourceService) V1ReleaseResources(args *utils.CGREvent, reply *string) (err error) {
+func (rS *ResourceService) V1ReleaseResources(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.Event)
}
@@ -923,7 +924,7 @@ func (rS *ResourceService) V1ReleaseResources(args *utils.CGREvent, reply *strin
}
// V1GetResource returns a resource configuration
-func (rS *ResourceService) V1GetResource(arg *utils.TenantIDWithAPIOpts, reply *Resource) error {
+func (rS *ResourceService) V1GetResource(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *Resource) error {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -951,7 +952,7 @@ type ResourceWithConfig struct {
Config *ResourceProfile
}
-func (rS *ResourceService) V1GetResourceWithConfig(arg *utils.TenantIDWithAPIOpts, reply *ResourceWithConfig) (err error) {
+func (rS *ResourceService) V1GetResourceWithConfig(ctx *context.Context, arg *utils.TenantIDWithAPIOpts, reply *ResourceWithConfig) (err error) {
if missing := utils.MissingStructFields(arg, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/engine/responder.go b/engine/responder.go
index 3b527e17f..923055c8e 100644
--- a/engine/responder.go
+++ b/engine/responder.go
@@ -25,6 +25,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -66,7 +67,7 @@ func (rs *Responder) usageAllowed(tor string, reqUsage time.Duration) (allowed b
/*
RPC method that provides the external RPC interface for getting the rating information.
*/
-func (rs *Responder) GetCost(arg *CallDescriptorWithAPIOpts, reply *CallCost) (err error) {
+func (rs *Responder) GetCost(ctx *context.Context, arg *CallDescriptorWithAPIOpts, reply *CallCost) (err error) {
// RPC caching
if arg.CgrID != utils.EmptyString && config.CgrConfig().CacheCfg().Partitions[utils.CacheRPCResponses].Limit != 0 {
cacheKey := utils.ConcatenatedKey(utils.ResponderGetCost, arg.CgrID)
@@ -114,7 +115,7 @@ func (rs *Responder) GetCost(arg *CallDescriptorWithAPIOpts, reply *CallCost) (e
// GetCostOnRatingPlans is used by RouteS to calculate the cost
// Receive a list of RatingPlans and pick the first without error
-func (rs *Responder) GetCostOnRatingPlans(arg *utils.GetCostOnRatingPlansArgs, reply *map[string]any) (err error) {
+func (rs *Responder) GetCostOnRatingPlans(ctx *context.Context, arg *utils.GetCostOnRatingPlansArgs, reply *map[string]any) (err error) {
tnt := arg.Tenant
if tnt == utils.EmptyString {
tnt = config.CgrConfig().GeneralCfg().DefaultTenant
@@ -170,7 +171,7 @@ func (rs *Responder) GetCostOnRatingPlans(arg *utils.GetCostOnRatingPlansArgs, r
return
}
-func (rs *Responder) Debit(arg *CallDescriptorWithAPIOpts, reply *CallCost) (err error) {
+func (rs *Responder) Debit(ctx *context.Context, arg *CallDescriptorWithAPIOpts, reply *CallCost) (err error) {
// RPC caching
if arg.Tenant == utils.EmptyString {
arg.Tenant = config.CgrConfig().GeneralCfg().DefaultTenant
@@ -211,7 +212,7 @@ func (rs *Responder) Debit(arg *CallDescriptorWithAPIOpts, reply *CallCost) (err
return
}
-func (rs *Responder) MaxDebit(arg *CallDescriptorWithAPIOpts, reply *CallCost) (err error) {
+func (rs *Responder) MaxDebit(ctx *context.Context, arg *CallDescriptorWithAPIOpts, reply *CallCost) (err error) {
// RPC caching
if arg.Tenant == utils.EmptyString {
arg.Tenant = config.CgrConfig().GeneralCfg().DefaultTenant
@@ -251,7 +252,7 @@ func (rs *Responder) MaxDebit(arg *CallDescriptorWithAPIOpts, reply *CallCost) (
return
}
-func (rs *Responder) RefundIncrements(arg *CallDescriptorWithAPIOpts, reply *Account) (err error) {
+func (rs *Responder) RefundIncrements(ctx *context.Context, arg *CallDescriptorWithAPIOpts, reply *Account) (err error) {
// RPC caching
if arg.Tenant == utils.EmptyString {
arg.Tenant = config.CgrConfig().GeneralCfg().DefaultTenant
@@ -292,7 +293,7 @@ func (rs *Responder) RefundIncrements(arg *CallDescriptorWithAPIOpts, reply *Acc
return
}
-func (rs *Responder) RefundRounding(arg *CallDescriptorWithAPIOpts, reply *Account) (err error) {
+func (rs *Responder) RefundRounding(ctx *context.Context, arg *CallDescriptorWithAPIOpts, reply *Account) (err error) {
// RPC caching
if arg.Tenant == utils.EmptyString {
arg.Tenant = config.CgrConfig().GeneralCfg().DefaultTenant
@@ -330,7 +331,7 @@ func (rs *Responder) RefundRounding(arg *CallDescriptorWithAPIOpts, reply *Accou
return
}
-func (rs *Responder) GetMaxSessionTime(arg *CallDescriptorWithAPIOpts, reply *time.Duration) (err error) {
+func (rs *Responder) GetMaxSessionTime(ctx *context.Context, arg *CallDescriptorWithAPIOpts, reply *time.Duration) (err error) {
if arg.Tenant == utils.EmptyString {
arg.Tenant = config.CgrConfig().GeneralCfg().DefaultTenant
}
@@ -344,7 +345,7 @@ func (rs *Responder) GetMaxSessionTime(arg *CallDescriptorWithAPIOpts, reply *ti
return
}
-func (rs *Responder) GetMaxSessionTimeOnAccounts(arg *utils.GetMaxSessionTimeOnAccountsArgs,
+func (rs *Responder) GetMaxSessionTimeOnAccounts(ctx *context.Context, arg *utils.GetMaxSessionTimeOnAccountsArgs,
reply *map[string]any) (err error) {
var maxDur time.Duration
tnt := arg.Tenant
@@ -378,7 +379,7 @@ func (rs *Responder) GetMaxSessionTimeOnAccounts(arg *utils.GetMaxSessionTimeOnA
return
}
-func (rs *Responder) Shutdown(arg *utils.TenantWithAPIOpts, reply *string) (err error) {
+func (rs *Responder) Shutdown(ctx *context.Context, arg *utils.TenantWithAPIOpts, reply *string) (err error) {
dm.DataDB().Close()
cdrStorage.Close()
defer rs.ShdChan.CloseOnce()
@@ -387,12 +388,12 @@ func (rs *Responder) Shutdown(arg *utils.TenantWithAPIOpts, reply *string) (err
}
// Ping used to detreminate if component is active
-func (chSv1 *Responder) Ping(ign *utils.CGREvent, reply *string) error {
+func (chSv1 *Responder) Ping(ctx *context.Context, ign *utils.CGREvent, reply *string) error {
*reply = utils.Pong
return nil
}
-func (rs *Responder) Call(serviceMethod string, args any, reply any) error {
+func (rs *Responder) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
parts := strings.Split(serviceMethod, ".")
if len(parts) != 2 {
return utils.ErrNotImplemented
diff --git a/engine/responder_test.go b/engine/responder_test.go
index 61fc87143..f6b5b4b7f 100644
--- a/engine/responder_test.go
+++ b/engine/responder_test.go
@@ -27,9 +27,9 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
var rsponder = &Responder{MaxComputedUsage: config.CgrConfig().RalsCfg().MaxComputedUsage}
@@ -170,7 +170,7 @@ func TestResponderGetCostMaxUsageANY(t *testing.T) {
},
}
var cc CallCost
- if err := rsponder.GetCost(cd, &cc); err == nil ||
+ if err := rsponder.GetCost(context.Background(), cd, &cc); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -197,7 +197,7 @@ func TestResponderGetCostMaxUsageVOICE(t *testing.T) {
},
}
var cc CallCost
- if err := rsponder.GetCost(cd, &cc); err == nil ||
+ if err := rsponder.GetCost(context.Background(), cd, &cc); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -224,7 +224,7 @@ func TestResponderDebitMaxUsageANY(t *testing.T) {
},
}
var cc CallCost
- if err := rsponder.Debit(cd, &cc); err == nil ||
+ if err := rsponder.Debit(context.Background(), cd, &cc); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -251,7 +251,7 @@ func TestResponderDebitMaxUsageVOICE(t *testing.T) {
},
}
var cc CallCost
- if err := rsponder.Debit(cd, &cc); err == nil ||
+ if err := rsponder.Debit(context.Background(), cd, &cc); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -278,7 +278,7 @@ func TestResponderMaxDebitMaxUsageANY(t *testing.T) {
},
}
var cc CallCost
- if err := rsponder.MaxDebit(cd, &cc); err == nil ||
+ if err := rsponder.MaxDebit(context.Background(), cd, &cc); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -305,7 +305,7 @@ func TestResponderMaxDebitMaxUsageVOICE(t *testing.T) {
},
}
var cc CallCost
- if err := rsponder.MaxDebit(cd, &cc); err == nil ||
+ if err := rsponder.MaxDebit(context.Background(), cd, &cc); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -332,7 +332,7 @@ func TestResponderRefundIncrementsMaxUsageANY(t *testing.T) {
},
}
var acc Account
- if err := rsponder.RefundIncrements(cd, &acc); err == nil ||
+ if err := rsponder.RefundIncrements(context.Background(), cd, &acc); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -359,7 +359,7 @@ func TestResponderRefundIncrementsMaxUsageVOICE(t *testing.T) {
},
}
var acc Account
- if err := rsponder.RefundIncrements(cd, &acc); err == nil ||
+ if err := rsponder.RefundIncrements(context.Background(), cd, &acc); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -386,7 +386,7 @@ func TestResponderRefundRoundingMaxUsageANY(t *testing.T) {
},
}
var reply Account
- if err := rsponder.RefundRounding(cd, &reply); err == nil ||
+ if err := rsponder.RefundRounding(context.Background(), cd, &reply); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -413,7 +413,7 @@ func TestResponderRefundRoundingMaxUsageVOICE(t *testing.T) {
},
}
var reply Account
- if err := rsponder.RefundRounding(cd, &reply); err == nil ||
+ if err := rsponder.RefundRounding(context.Background(), cd, &reply); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -440,7 +440,7 @@ func TestResponderGetMaxSessionTimeMaxUsageANY(t *testing.T) {
},
}
var reply time.Duration
- if err := rsponder.GetMaxSessionTime(cd, &reply); err == nil ||
+ if err := rsponder.GetMaxSessionTime(context.Background(), cd, &reply); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -467,7 +467,7 @@ func TestResponderGetMaxSessionTimeMaxUsageVOICE(t *testing.T) {
},
}
var reply time.Duration
- if err := rsponder.GetMaxSessionTime(cd, &reply); err == nil ||
+ if err := rsponder.GetMaxSessionTime(context.Background(), cd, &reply); err == nil ||
err.Error() != utils.ErrMaxUsageExceeded.Error() {
t.Errorf("Expected %+v, received : %+v", utils.ErrMaxUsageExceeded, err)
}
@@ -510,7 +510,7 @@ func TestResponderGetCost(t *testing.T) {
Destination: "uk",
}
- if err = rs.GetCost(arg, reply); err != nil {
+ if err = rs.GetCost(context.Background(), arg, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -569,7 +569,7 @@ func TestResponderGetCostSet(t *testing.T) {
&utils.CachedRPCResponse{Result: reply, Error: nil},
nil, true, utils.NonTransactional)
- if err = rs.GetCost(arg, reply); err != nil {
+ if err = rs.GetCost(context.Background(), arg, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -630,7 +630,7 @@ func TestResponderDebit(t *testing.T) {
Account: "acount",
Destination: "uk",
}
- if err := rs.Debit(arg, reply); err == nil || err != utils.ErrAccountNotFound {
+ if err := rs.Debit(context.Background(), arg, reply); err == nil || err != utils.ErrAccountNotFound {
t.Errorf("expected %+v ,received %+v", utils.ErrAccountNotFound, err)
}
}
@@ -659,7 +659,7 @@ func TestGetCostOnRatingPlansErr(t *testing.T) {
dm: dm,
},
}
- if err := rs.GetCostOnRatingPlans(arg, reply); err == nil || err != utils.ErrUnauthorizedDestination {
+ if err := rs.GetCostOnRatingPlans(context.Background(), arg, reply); err == nil || err != utils.ErrUnauthorizedDestination {
t.Errorf("expected %+v ,received %+v", utils.ErrUnauthorizedDestination, err)
}
}
@@ -728,7 +728,7 @@ func TestResponderDebitSet(t *testing.T) {
&utils.CachedRPCResponse{Result: reply, Error: nil},
nil, true, utils.NonTransactional)
- if err := rs.Debit(arg, reply); err != nil {
+ if err := rs.Debit(context.Background(), arg, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{Result: reply, Error: nil}
@@ -785,7 +785,7 @@ func TestResponderMaxDebit(t *testing.T) {
Account: "acount",
Destination: "uk",
}
- if err := rs.MaxDebit(arg, reply); err == nil || err != utils.ErrAccountNotFound {
+ if err := rs.MaxDebit(context.Background(), arg, reply); err == nil || err != utils.ErrAccountNotFound {
t.Errorf("expected %+v ,received %+v", utils.ErrAccountNotFound, err)
}
exp := &utils.CachedRPCResponse{
@@ -847,7 +847,7 @@ func TestResponderMaxDebitSet(t *testing.T) {
Cache.Set(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.ResponderMaxDebit, arg.CgrID),
&utils.CachedRPCResponse{Result: reply, Error: nil},
nil, true, utils.NonTransactional)
- if err := rs.MaxDebit(arg, reply); err != nil {
+ if err := rs.MaxDebit(context.Background(), arg, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -908,7 +908,7 @@ func TestResponderRefundIncrements(t *testing.T) {
UpdateTime: time.Date(2021, 12, 1, 12, 0, 0, 0, time.UTC),
executingTriggers: false,
}
- if err := rs.RefundIncrements(arg, reply); err != nil {
+ if err := rs.RefundIncrements(context.Background(), arg, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -975,7 +975,7 @@ func TestResponderRefundIncrementsSet(t *testing.T) {
Result: reply,
Error: nil,
}, nil, true, utils.NonTransactional)
- if err := rs.RefundIncrements(arg, reply); err != nil {
+ if err := rs.RefundIncrements(context.Background(), arg, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -1038,7 +1038,7 @@ func TestResponderRefundRounding(t *testing.T) {
UpdateTime: time.Date(2021, 12, 1, 12, 0, 0, 0, time.UTC),
executingTriggers: false,
}
- if err := rs.RefundRounding(arg, reply); err != nil {
+ if err := rs.RefundRounding(context.Background(), arg, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -1104,7 +1104,7 @@ func TestResponderRefundRoundingSet(t *testing.T) {
&utils.CachedRPCResponse{Result: reply, Error: err},
nil, true, utils.NonTransactional)
- if err := rs.RefundRounding(arg, reply); err != nil {
+ if err := rs.RefundRounding(context.Background(), arg, reply); err != nil {
t.Error(err)
}
exp := &utils.CachedRPCResponse{
@@ -1154,7 +1154,7 @@ func TestGetMaxSessionTimeOnAccountsErr(t *testing.T) {
},
}
expLog := ` ignoring cost for account: `
- if err := rs.GetMaxSessionTimeOnAccounts(arg, reply); err == nil || err != utils.ErrAccountNotFound {
+ if err := rs.GetMaxSessionTimeOnAccounts(context.Background(), arg, reply); err == nil || err != utils.ErrAccountNotFound {
t.Error(err)
}
if rcvLog := buf.String(); !strings.Contains(rcvLog, expLog) {
@@ -1163,50 +1163,6 @@ func TestGetMaxSessionTimeOnAccountsErr(t *testing.T) {
}
-func TestResponderCall(t *testing.T) {
- tmpConn := connMgr
- tmp := Cache
- defer func() {
- Cache = tmp
- connMgr = tmpConn
- }()
- Cache.Clear(nil)
- cfg := config.NewDefaultCGRConfig()
- cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
- db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- dm := NewDataManager(db, cfg.CacheCfg(), nil)
- Cache = NewCacheS(cfg, dm, nil)
- config.SetCgrConfig(cfg)
- rs := &Responder{
- Timezone: "UTC",
- FilterS: &FilterS{
- cfg: cfg,
- dm: dm,
- },
- MaxComputedUsage: map[string]time.Duration{},
- }
- clientConn := make(chan rpcclient.ClientConnector, 1)
- clientConn <- rs
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{})
- config.SetCgrConfig(cfg)
- SetConnManager(connMgr)
- var reply CallCost
- attr := &CallDescriptorWithAPIOpts{
- CallDescriptor: &CallDescriptor{
- Category: "call",
- Tenant: "cgrates.org",
- Subject: "dan",
- ToR: utils.MetaAny,
- Account: "dan",
- Destination: "+4917621621391",
- DurationIndex: 9,
- },
- }
- if err := rs.Call(utils.ResponderGetCost, attr, &reply); err != nil {
- t.Error(err)
- }
-}
-
func TestGetMaxSessionTime(t *testing.T) {
tmpdm := dm
cfg := config.NewDefaultCGRConfig()
@@ -1250,7 +1206,7 @@ func TestGetMaxSessionTime(t *testing.T) {
},
}
var reply time.Duration
- if err := rsponder.GetMaxSessionTime(cd, &reply); err == nil || err != utils.ErrAccountNotFound {
+ if err := rsponder.GetMaxSessionTime(context.Background(), cd, &reply); err == nil || err != utils.ErrAccountNotFound {
t.Errorf("Expected %+v, received :", err)
}
}
@@ -1286,7 +1242,7 @@ func TestResponderShutDown(t *testing.T) {
},
}
var reply string
- if err := rs.Shutdown(arg, &reply); err != nil {
+ if err := rs.Shutdown(context.Background(), arg, &reply); err != nil {
t.Error(err)
} else if reply != "Done!" {
t.Errorf("Expected Done!,Received %v", reply)
@@ -1378,7 +1334,7 @@ func TestResponderDebitDebit(t *testing.T) {
})
var reply CallCost
SetDataStorage(dm)
- if err := rsponder.Debit(cd, &reply); err != nil {
+ if err := rsponder.Debit(context.Background(), cd, &reply); err != nil {
t.Error(err)
} else if reply.Cost != 1.5 {
t.Errorf("expected Cost to be 1.5, got %v", reply.Cost)
@@ -1468,7 +1424,7 @@ func TestResponderGetCostOnRatingPlans(t *testing.T) {
utils.RatingPlanID: "RP1",
}
SetDataStorage(dm)
- if err := rsponder.GetCostOnRatingPlans(arg, &reply); err != nil {
+ if err := rsponder.GetCostOnRatingPlans(context.Background(), arg, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected %v, got %v", exp, reply)
diff --git a/engine/routes.go b/engine/routes.go
index 414350a83..bb84b7fbe 100644
--- a/engine/routes.go
+++ b/engine/routes.go
@@ -26,6 +26,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -224,7 +225,7 @@ func (rpS *RouteService) costForEvent(ev *utils.CGREvent,
var acntCost map[string]any
var initialUsage time.Duration
if len(acntIDs) != 0 {
- if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().RALsConns, nil, utils.ResponderGetMaxSessionTimeOnAccounts,
+ if err := rpS.connMgr.Call(context.TODO(), rpS.cgrcfg.RouteSCfg().RALsConns, utils.ResponderGetMaxSessionTimeOnAccounts,
&utils.GetMaxSessionTimeOnAccountsArgs{
Tenant: ev.Tenant,
Subject: subj,
@@ -258,7 +259,7 @@ func (rpS *RouteService) costForEvent(ev *utils.CGREvent,
if accountMaxUsage == 0 || accountMaxUsage < initialUsage {
var rpCost map[string]any
- if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().RALsConns, nil, utils.ResponderGetCostOnRatingPlans,
+ if err := rpS.connMgr.Call(context.TODO(), rpS.cgrcfg.RouteSCfg().RALsConns, utils.ResponderGetCostOnRatingPlans,
&utils.GetCostOnRatingPlansArgs{
Tenant: ev.Tenant,
Account: acnt,
@@ -286,7 +287,7 @@ func (rpS *RouteService) statMetrics(statIDs []string, tenant string) (stsMetric
if len(rpS.cgrcfg.RouteSCfg().StatSConns) != 0 {
for _, statID := range statIDs {
var metrics map[string]float64
- if err = rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().StatSConns, nil, utils.StatSv1GetQueueFloatMetrics,
+ if err = rpS.connMgr.Call(context.TODO(), rpS.cgrcfg.RouteSCfg().StatSConns, utils.StatSv1GetQueueFloatMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: tenant, ID: statID}}, &metrics); err != nil &&
err.Error() != utils.ErrNotFound.Error() {
utils.Logger.Warning(
@@ -317,8 +318,8 @@ func (rpS *RouteService) statMetricsForLoadDistribution(statIDs []string, tenant
// check if we get an ID in the following form (StatID:MetricID)
statWithMetric := strings.Split(statID, utils.InInFieldSep)
var metrics map[string]float64
- if err = rpS.connMgr.Call(
- rpS.cgrcfg.RouteSCfg().StatSConns, nil,
+ if err = rpS.connMgr.Call(context.TODO(),
+ rpS.cgrcfg.RouteSCfg().StatSConns,
utils.StatSv1GetQueueFloatMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
@@ -360,7 +361,7 @@ func (rpS *RouteService) resourceUsage(resIDs []string, tenant string) (tUsage f
if len(rpS.cgrcfg.RouteSCfg().ResourceSConns) != 0 {
for _, resID := range resIDs {
var res Resource
- if err = rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().ResourceSConns, nil, utils.ResourceSv1GetResource,
+ if err = rpS.connMgr.Call(context.TODO(), rpS.cgrcfg.RouteSCfg().ResourceSConns, utils.ResourceSv1GetResource,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: tenant, ID: resID}}, &res); err != nil && err.Error() != utils.ErrNotFound.Error() {
utils.Logger.Warning(
fmt.Sprintf("<%s> error: %s getting resource for ID : %s", utils.RouteS, err.Error(), resID))
@@ -557,7 +558,7 @@ type optsGetRoutes struct {
}
// V1GetRoutes returns the list of valid routes
-func (rpS *RouteService) V1GetRoutes(args *utils.CGREvent, reply *SortedRoutesList) (err error) {
+func (rpS *RouteService) V1GetRoutes(ctx *context.Context, args *utils.CGREvent, reply *SortedRoutesList) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
}
@@ -575,10 +576,12 @@ func (rpS *RouteService) V1GetRoutes(args *utils.CGREvent, reply *SortedRoutesLi
args.APIOpts = make(map[string]any)
}
args.APIOpts[utils.MetaSubsys] = utils.MetaRoutes
- context := utils.GetStringOpts(args, rpS.cgrcfg.RouteSCfg().Opts.Context, utils.OptsContext)
- args.APIOpts[utils.OptsContext] = utils.FirstNonEmpty(context, utils.MetaRoutes)
+ args.APIOpts[utils.OptsContext] = utils.FirstNonEmpty(
+ utils.GetStringOpts(args, rpS.cgrcfg.RouteSCfg().Opts.Context, utils.OptsContext),
+ utils.MetaRoutes,
+ )
var rplyEv AttrSProcessEventReply
- if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().AttributeSConns, nil,
+ if err := rpS.connMgr.Call(context.TODO(), rpS.cgrcfg.RouteSCfg().AttributeSConns,
utils.AttributeSv1ProcessEvent, args, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 {
args = rplyEv.CGREvent
} else if err.Error() != utils.ErrNotFound.Error() {
@@ -597,7 +600,7 @@ func (rpS *RouteService) V1GetRoutes(args *utils.CGREvent, reply *SortedRoutesLi
}
// V1GetRouteProfilesForEvent returns the list of valid route profiles
-func (rpS *RouteService) V1GetRouteProfilesForEvent(args *utils.CGREvent, reply *[]*RouteProfile) (err error) {
+func (rpS *RouteService) V1GetRouteProfilesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]*RouteProfile) (err error) {
if missing := utils.MissingStructFields(args, []string{utils.ID}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
} else if args.Event == nil {
@@ -736,9 +739,9 @@ func (rpS *RouteService) sortedRoutesForEvent(tnt string, args *utils.CGREvent)
}
// V1GetRoutesList returns the list of valid routes
-func (rpS *RouteService) V1GetRoutesList(args *utils.CGREvent, reply *[]string) (err error) {
+func (rpS *RouteService) V1GetRoutesList(ctx *context.Context, args *utils.CGREvent, reply *[]string) (err error) {
sR := new(SortedRoutesList)
- if err = rpS.V1GetRoutes(args, sR); err != nil {
+ if err = rpS.V1GetRoutes(ctx, args, sR); err != nil {
return
}
*reply = sR.RoutesWithParams()
diff --git a/engine/routes_test.go b/engine/routes_test.go
index e12eaf301..2d6b50bdf 100644
--- a/engine/routes_test.go
+++ b/engine/routes_test.go
@@ -29,8 +29,9 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
- "github.com/cgrates/rpcclient"
"github.com/cgrates/cgrates/utils"
)
@@ -859,8 +860,8 @@ func TestRouteServiceStatMetrics(t *testing.T) {
}()
testMock := &ccMock{
- calls: map[string]func(args, reply any) error{
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args, reply any) error{
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
rpl := map[string]float64{
"metric1": 21.11,
}
@@ -875,9 +876,9 @@ func TestRouteServiceStatMetrics(t *testing.T) {
cfg.RouteSCfg().StringIndexedFields = nil
cfg.RouteSCfg().PrefixIndexedFields = nil
cfg.RouteSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- testMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientconn,
})
rpS := NewRouteService(dmSPP, &FilterS{dm: dmSPP, cfg: cfg, connMgr: nil}, cfg, connMgr)
@@ -901,8 +902,8 @@ func TestRouteServiceStatMetricsLog(t *testing.T) {
log.SetOutput(os.Stderr)
}()
testMock := &ccMock{
- calls: map[string]func(args, reply any) error{
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args, reply any) error{
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
return errors.New("Error")
},
},
@@ -911,9 +912,9 @@ func TestRouteServiceStatMetricsLog(t *testing.T) {
data := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dmSPP := NewDataManager(data, config.CgrConfig().CacheCfg(), nil)
cfg.RouteSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- testMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientconn,
})
rpS := NewRouteService(dmSPP, &FilterS{dm: dmSPP, cfg: cfg, connMgr: nil}, cfg, connMgr)
@@ -1009,7 +1010,7 @@ func TestRouteServiceV1GetRouteProfilesForEvent(t *testing.T) {
Weight: 0,
},
}
- if err := rpS.V1GetRouteProfilesForEvent(args, (*[]*RouteProfile)(testRoutesPrfs)); err == nil || err != utils.ErrNotFound {
+ if err := rpS.V1GetRouteProfilesForEvent(context.Background(), args, (*[]*RouteProfile)(testRoutesPrfs)); err == nil || err != utils.ErrNotFound {
t.Error(err)
}
}
@@ -1020,8 +1021,8 @@ func TestRouteServiceV1GetRoutes(t *testing.T) {
}()
ccMock := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.AttributeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.AttributeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rpl := &AttrSProcessEventReply{
AlteredFields: []string{"testcase"},
CGREvent: testRoutesArgs[1],
@@ -1037,9 +1038,9 @@ func TestRouteServiceV1GetRoutes(t *testing.T) {
cfg.RouteSCfg().StringIndexedFields = nil
cfg.RouteSCfg().PrefixIndexedFields = nil
cfg.RouteSCfg().AttributeSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): clientConn,
})
rpS := NewRouteService(dmSPP, &FilterS{dm: dmSPP, cfg: cfg, connMgr: nil}, cfg, connMgr)
@@ -1053,7 +1054,7 @@ func TestRouteServiceV1GetRoutes(t *testing.T) {
}
expErr := fmt.Sprintf("MANDATORY_IE_MISSING: [%v]", utils.CGREventString)
var reply SortedRoutesList
- if err := rpS.V1GetRoutes(nil, &reply); err == nil || err.Error() != expErr {
+ if err := rpS.V1GetRoutes(context.Background(), nil, &reply); err == nil || err.Error() != expErr {
t.Errorf("Expected <%v>,Received <%v>", expErr, err.Error())
}
expS := SortedRoutesList{
@@ -1067,7 +1068,7 @@ func TestRouteServiceV1GetRoutes(t *testing.T) {
},
},
}}
- if err = rpS.V1GetRoutes(args, &reply); err != nil {
+ if err = rpS.V1GetRoutes(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply[0].ProfileID, expS[0].ProfileID) {
t.Errorf("Expected %v,Received %v", utils.ToJSON(expS), utils.ToJSON(reply))
@@ -1359,17 +1360,17 @@ func TestReaSortRoutes(t *testing.T) {
utils.Logger.SetLogLevel(0)
log.SetOutput(os.Stderr)
}()
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderGetMaxSessionTimeOnAccounts: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderGetMaxSessionTimeOnAccounts: func(ctx *context.Context, args, reply any) error {
rpl := map[string]any{
utils.CapMaxUsage: 3 * time.Minute,
}
*reply.(*map[string]any) = rpl
return nil
},
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
rpl := map[string]float64{
"metric": 22.0,
"metric3": 32.2,
@@ -1379,7 +1380,7 @@ func TestReaSortRoutes(t *testing.T) {
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientConn,
})
@@ -1524,17 +1525,17 @@ func TestLoadDistributionSorterSortRoutes(t *testing.T) {
cfg.RouteSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
cfg.RouteSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
cfg.GeneralCfg().DefaultTimezone = "UTC"
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderGetMaxSessionTimeOnAccounts: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderGetMaxSessionTimeOnAccounts: func(ctx *context.Context, args, reply any) error {
rpl := map[string]any{
utils.CapMaxUsage: 3 * time.Minute,
}
*reply.(*map[string]any) = rpl
return nil
},
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
rpl := map[string]float64{
"metric": 22.0,
"metric3": 32.2,
@@ -1544,7 +1545,7 @@ func TestLoadDistributionSorterSortRoutes(t *testing.T) {
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): clientConn,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientConn,
})
@@ -1634,8 +1635,8 @@ func TestRouteServicePopulateSortingData(t *testing.T) {
Cache.Clear(nil)
ccMock := &ccMock{
- calls: map[string]func(args, reply any) error{
- utils.ResponderGetMaxSessionTimeOnAccounts: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args, reply any) error{
+ utils.ResponderGetMaxSessionTimeOnAccounts: func(ctx *context.Context, args, reply any) error {
rpl := map[string]any{
utils.CapMaxUsage: 1 * time.Second,
utils.Cost: 0,
@@ -1643,7 +1644,7 @@ func TestRouteServicePopulateSortingData(t *testing.T) {
*reply.(*map[string]any) = rpl
return nil
},
- utils.ResponderGetCostOnRatingPlans: func(args, reply any) error {
+ utils.ResponderGetCostOnRatingPlans: func(ctx *context.Context, args, reply any) error {
rpl := map[string]any{
utils.CapMaxUsage: 5 * time.Second,
utils.Cost: 0,
@@ -1651,7 +1652,7 @@ func TestRouteServicePopulateSortingData(t *testing.T) {
*reply.(*map[string]any) = rpl
return nil
},
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
rpl := &map[string]float64{
"metric1": 12,
"stat": 2.1,
@@ -1659,7 +1660,7 @@ func TestRouteServicePopulateSortingData(t *testing.T) {
*reply.(*map[string]float64) = *rpl
return nil
},
- utils.ResourceSv1GetResource: func(args, reply any) error {
+ utils.ResourceSv1GetResource: func(ctx *context.Context, args, reply any) error {
rpl := &Resource{
Usages: map[string]*ResourceUsage{
"test_usage1": {
@@ -1684,9 +1685,9 @@ func TestRouteServicePopulateSortingData(t *testing.T) {
cfg.RouteSCfg().ResourceSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ResourceSConnsCfg)}
cfg.RouteSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg)}
cfg.RouteSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.RALsConnsCfg)}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMock
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.RALsConnsCfg): clientconn,
utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg): clientconn,
utils.ConcatenatedKey(utils.MetaInternal, utils.ResourceSConnsCfg): clientconn})
@@ -1796,15 +1797,15 @@ func TestRSStatMetricsLogg(t *testing.T) {
cfg.RouteSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't get StatMetrics")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientConn,
})
statIds := []string{"STATS_VENDOR_1:*sum#1"}
@@ -1831,15 +1832,15 @@ func TestRSStatMetricsForLoadDistributionLogg(t *testing.T) {
cfg.RouteSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't get StatMetrics")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientConn,
})
statIds := []string{"STATS_VENDOR_1:*sum#1"}
@@ -1865,15 +1866,15 @@ func TestResourceUsage(t *testing.T) {
}()
cfg.RouteSCfg().ResourceSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
resIds := []string{"RL1"}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResourceSv1GetResource: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResourceSv1GetResource: func(ctx *context.Context, args, reply any) error {
return errors.New("Can't get Resources")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): clientConn,
})
rps := NewRouteService(dm, nil, cfg, connMgr)
@@ -1942,15 +1943,15 @@ func TestRSPopulateSortingDataResourceErr(t *testing.T) {
config.SetCgrConfig(config.NewDefaultCGRConfig())
}()
cfg.RouteSCfg().ResourceSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResourceSv1GetResource: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResourceSv1GetResource: func(ctx *context.Context, args, reply any) error {
return errors.New("No Resources")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): clientConn,
})
rps := NewRouteService(dm, nil, cfg, connMgr)
@@ -2002,15 +2003,15 @@ func TestPopulateSortingDataStatsErr(t *testing.T) {
config.SetCgrConfig(config.NewDefaultCGRConfig())
}()
cfg.RouteSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.StatSv1GetQueueFloatMetrics: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.StatSv1GetQueueFloatMetrics: func(ctx *context.Context, args, reply any) error {
return errors.New("No Stats")
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): clientConn,
})
ev := &utils.CGREvent{
@@ -2056,10 +2057,10 @@ func TestPopulateSortingDataAccsErr(t *testing.T) {
config.SetCgrConfig(config.NewDefaultCGRConfig())
}()
cfg.RouteSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderGetMaxSessionTimeOnAccounts: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderGetMaxSessionTimeOnAccounts: func(ctx *context.Context, args, reply any) error {
rpl := map[string]any{
utils.CapMaxUsage: 50 * time.Second,
utils.Cost: 12.12,
@@ -2069,7 +2070,7 @@ func TestPopulateSortingDataAccsErr(t *testing.T) {
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): clientConn,
})
ev := &utils.CGREvent{
@@ -2118,20 +2119,20 @@ func TestPopulateSortingDataAccs2(t *testing.T) {
config.SetCgrConfig(config.NewDefaultCGRConfig())
}()
cfg.RouteSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderGetMaxSessionTimeOnAccounts: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderGetMaxSessionTimeOnAccounts: func(ctx *context.Context, args, reply any) error {
rpl := map[string]any{}
*reply.(*map[string]any) = rpl
return nil
},
- utils.ResponderGetCostOnRatingPlans: func(args, reply any) error {
+ utils.ResponderGetCostOnRatingPlans: func(ctx *context.Context, args, reply any) error {
return nil
},
},
}
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): clientConn,
})
ev := &utils.CGREvent{
@@ -2177,7 +2178,7 @@ func TestV1GetRoutesList(t *testing.T) {
dmSPP := NewDataManager(data, config.CgrConfig().CacheCfg(), nil)
rpS := NewRouteService(dmSPP, &FilterS{dm: dmSPP, cfg: cfg, connMgr: nil}, cfg, connMgr)
var reply []string
- if err := rpS.V1GetRoutesList(testRoutesArgs[0], &reply); err == nil || err != utils.ErrNotFound {
+ if err := rpS.V1GetRoutesList(context.Background(), testRoutesArgs[0], &reply); err == nil || err != utils.ErrNotFound {
t.Error(err)
}
@@ -2236,7 +2237,7 @@ func TestRoutesV1GetRoutes(t *testing.T) {
},
}
- if err := rpS.V1GetRouteProfilesForEvent(args, &reply); err != nil {
+ if err := rpS.V1GetRouteProfilesForEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
}
@@ -2287,7 +2288,7 @@ func TestRoutesV1GetRoutesList(t *testing.T) {
},
Weight: 10,
}, true)
- if err := rpS.V1GetRoutesList(testRoutesArgs[0], &reply); err != nil {
+ if err := rpS.V1GetRoutesList(context.Background(), testRoutesArgs[0], &reply); err != nil {
t.Error(err)
}
sort.Slice(reply, func(i, j int) bool {
@@ -2305,7 +2306,7 @@ func TestRouteServiceV1GetRoutesErr(t *testing.T) {
cfg.RouteSCfg().AttributeSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, _ any) error {
if serviceMethod == utils.AttributeSv1ProcessEvent {
@@ -2313,7 +2314,7 @@ func TestRouteServiceV1GetRoutesErr(t *testing.T) {
}
return utils.ErrNotImplemented
})
- rpS := NewRouteService(dm, NewFilterS(cfg, nil, dm), cfg, NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ rpS := NewRouteService(dm, NewFilterS(cfg, nil, dm), cfg, NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): clientConn,
}))
@@ -2356,7 +2357,7 @@ func TestRouteServiceV1GetRoutesErr(t *testing.T) {
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
- if err := rpS.V1GetRoutes(tc.args, &tc.reply); err == nil {
+ if err := rpS.V1GetRoutes(context.Background(), tc.args, &tc.reply); err == nil {
t.Errorf("expected error, received nil")
}
})
@@ -2365,23 +2366,23 @@ func TestRouteServiceV1GetRoutesErr(t *testing.T) {
func TestRouteServiceSortRoutesQos(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- clientConn := make(chan rpcclient.ClientConnector, 1)
+ clientConn := make(chan birpc.ClientConnector, 1)
rsp := &Responder{}
tmpDm := dm
defer func() {
SetDataStorage(tmpDm)
}()
clientConn <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ResponderGetMaxSessionTimeOnAccounts: func(args, reply any) error {
- return rsp.GetMaxSessionTimeOnAccounts(args.(*utils.GetMaxSessionTimeOnAccountsArgs), reply.(*map[string]any))
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ResponderGetMaxSessionTimeOnAccounts: func(ctx *context.Context, args, reply any) error {
+ return rsp.GetMaxSessionTimeOnAccounts(ctx, args.(*utils.GetMaxSessionTimeOnAccountsArgs), reply.(*map[string]any))
},
},
}
cfg.RouteSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
dm := NewDataManager(NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items), cfg.CacheCfg(), nil)
SetDataStorage(dm)
- rs := NewRouteService(dm, NewFilterS(cfg, nil, dm), cfg, NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ rs := NewRouteService(dm, NewFilterS(cfg, nil, dm), cfg, NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): clientConn,
}))
if err := dm.SetAccount(&Account{
@@ -2439,7 +2440,7 @@ func TestRouteServiceSortRoutesQos(t *testing.T) {
utils.Tenant: "cgrates.org",
utils.RequestType: utils.MetaPrepaid},
}
- if err := rs.V1GetRoutes(cgrEv, &reply); err == nil {
+ if err := rs.V1GetRoutes(context.Background(), cgrEv, &reply); err == nil {
t.Error(err)
}
}
diff --git a/engine/stats.go b/engine/stats.go
index 2e80ce9ea..7784feccf 100644
--- a/engine/stats.go
+++ b/engine/stats.go
@@ -24,6 +24,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -240,9 +241,9 @@ func (sS *StatService) matchingStatQueuesForEvent(tnt string, statsIDs []string,
return
}
-// Call implements rpcclient.ClientConnector interface for internal RPC
+// Call implements birpc.ClientConnector interface for internal RPC
// here for cases when passing StatsService as rpccclient.RpcClientConnection
-func (sS *StatService) Call(serviceMethod string, args any, reply any) error {
+func (sS *StatService) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
return utils.RPCCall(sS, serviceMethod, args, reply)
}
@@ -305,7 +306,7 @@ func (sS *StatService) processThresholds(sQs StatQueues, opts map[string]any) (e
thEv.Event[metricID] = metric.GetValue(sS.cgrcfg.GeneralCfg().RoundingDecimals)
}
var tIDs []string
- if err := sS.connMgr.Call(sS.cgrcfg.StatSCfg().ThresholdSConns, nil,
+ if err := sS.connMgr.Call(context.TODO(), sS.cgrcfg.StatSCfg().ThresholdSConns,
utils.ThresholdSv1ProcessEvent, thEv, &tIDs); err != nil &&
(len(thIDs) != 0 || err.Error() != utils.ErrNotFound.Error()) {
utils.Logger.Warning(
@@ -362,7 +363,7 @@ func (sS *StatService) processEvent(tnt string, args *utils.CGREvent) (statQueue
}
// V1ProcessEvent implements StatV1 method for processing an Event
-func (sS *StatService) V1ProcessEvent(args *utils.CGREvent, reply *[]string) (err error) {
+func (sS *StatService) V1ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
}
@@ -384,7 +385,7 @@ func (sS *StatService) V1ProcessEvent(args *utils.CGREvent, reply *[]string) (er
}
// V1GetStatQueuesForEvent implements StatV1 method for processing an Event
-func (sS *StatService) V1GetStatQueuesForEvent(args *utils.CGREvent, reply *[]string) (err error) {
+func (sS *StatService) V1GetStatQueuesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
}
@@ -421,7 +422,7 @@ func (sS *StatService) V1GetStatQueuesForEvent(args *utils.CGREvent, reply *[]st
}
// V1GetStatQueue returns a StatQueue object
-func (sS *StatService) V1GetStatQueue(args *utils.TenantIDWithAPIOpts, reply *StatQueue) (err error) {
+func (sS *StatService) V1GetStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *StatQueue) (err error) {
if missing := utils.MissingStructFields(args, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -443,7 +444,7 @@ func (sS *StatService) V1GetStatQueue(args *utils.TenantIDWithAPIOpts, reply *St
}
// V1GetQueueStringMetrics returns the metrics of a Queue as string values
-func (sS *StatService) V1GetQueueStringMetrics(args *utils.TenantID, reply *map[string]string) (err error) {
+func (sS *StatService) V1GetQueueStringMetrics(ctx *context.Context, args *utils.TenantID, reply *map[string]string) (err error) {
if missing := utils.MissingStructFields(args, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -472,7 +473,7 @@ func (sS *StatService) V1GetQueueStringMetrics(args *utils.TenantID, reply *map[
}
// V1GetQueueFloatMetrics returns the metrics as float64 values
-func (sS *StatService) V1GetQueueFloatMetrics(args *utils.TenantID, reply *map[string]float64) (err error) {
+func (sS *StatService) V1GetQueueFloatMetrics(ctx *context.Context, args *utils.TenantID, reply *map[string]float64) (err error) {
if missing := utils.MissingStructFields(args, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
@@ -501,7 +502,7 @@ func (sS *StatService) V1GetQueueFloatMetrics(args *utils.TenantID, reply *map[s
}
// V1GetQueueIDs returns list of queueIDs registered for a tenant
-func (sS *StatService) V1GetQueueIDs(tenant string, qIDs *[]string) (err error) {
+func (sS *StatService) V1GetQueueIDs(ctx *context.Context, tenant string, qIDs *[]string) (err error) {
if tenant == utils.EmptyString {
tenant = sS.cgrcfg.GeneralCfg().DefaultTenant
}
@@ -519,7 +520,7 @@ func (sS *StatService) V1GetQueueIDs(tenant string, qIDs *[]string) (err error)
}
// V1ResetStatQueue resets the stat queue
-func (sS *StatService) V1ResetStatQueue(tntID *utils.TenantID, rply *string) (err error) {
+func (sS *StatService) V1ResetStatQueue(ctx *context.Context, tntID *utils.TenantID, rply *string) (err error) {
if missing := utils.MissingStructFields(tntID, []string{utils.ID}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/engine/stats_test.go b/engine/stats_test.go
index 597f52684..6cbe95261 100644
--- a/engine/stats_test.go
+++ b/engine/stats_test.go
@@ -28,9 +28,10 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
var (
@@ -307,37 +308,49 @@ func TestStatQueuesProcessEvent(t *testing.T) {
stq := map[string]string{}
reply := []string{}
expected := []string{"StatQueueProfile1"}
- err := statService.V1ProcessEvent(testStatsArgs[0], &reply)
+ err := statService.V1ProcessEvent(context.Background(), testStatsArgs[0], &reply)
if err != nil {
t.Errorf("Error: %+v", err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
}
- err = statService.V1GetQueueStringMetrics(&utils.TenantID{Tenant: testStatsQ[0].Tenant, ID: testStatsQ[0].ID}, &stq)
+ err = statService.V1GetQueueStringMetrics(context.Background(),
+ &utils.TenantID{
+ Tenant: testStatsQ[0].Tenant,
+ ID: testStatsQ[0].ID,
+ }, &stq)
if err != nil {
t.Errorf("Error: %+v", err)
}
expected = []string{"StatQueueProfile2"}
- err = statService.V1ProcessEvent(testStatsArgs[1], &reply)
+ err = statService.V1ProcessEvent(context.Background(), testStatsArgs[1], &reply)
if err != nil {
t.Errorf("Error: %+v", err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
}
- err = statService.V1GetQueueStringMetrics(&utils.TenantID{Tenant: testStatsQ[1].Tenant, ID: testStatsQ[1].ID}, &stq)
+ err = statService.V1GetQueueStringMetrics(context.Background(),
+ &utils.TenantID{
+ Tenant: testStatsQ[1].Tenant,
+ ID: testStatsQ[1].ID,
+ }, &stq)
if err != nil {
t.Errorf("Error: %+v", err)
}
expected = []string{"StatQueueProfilePrefix"}
- err = statService.V1ProcessEvent(testStatsArgs[2], &reply)
+ err = statService.V1ProcessEvent(context.Background(), testStatsArgs[2], &reply)
if err != nil {
t.Errorf("Error: %+v", err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
}
- err = statService.V1GetQueueStringMetrics(&utils.TenantID{Tenant: testStatsQ[2].Tenant, ID: testStatsQ[2].ID}, &stq)
+ err = statService.V1GetQueueStringMetrics(context.Background(),
+ &utils.TenantID{
+ Tenant: testStatsQ[2].Tenant,
+ ID: testStatsQ[2].ID,
+ }, &stq)
if err != nil {
t.Errorf("Error: %+v", err)
}
@@ -458,7 +471,7 @@ func TestStatQueuesV1ProcessEvent(t *testing.T) {
reply := []string{}
expected := []string{"StatQueueProfile1", "StatQueueProfile3"}
expectedRev := []string{"StatQueueProfile3", "StatQueueProfile1"}
- if err := statService.V1ProcessEvent(ev, &reply); err != nil {
+ if err := statService.V1ProcessEvent(context.Background(), ev, &reply); err != nil {
t.Errorf("Error: %+v", err)
} else if !reflect.DeepEqual(reply, expected) && !reflect.DeepEqual(reply, expectedRev) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -1438,7 +1451,7 @@ func TestStatQueueV1ProcessEventProcessEventErr(t *testing.T) {
}
var reply []string
- if err := sS.V1ProcessEvent(args, &reply); err == nil ||
+ if err := sS.V1ProcessEvent(context.Background(), args, &reply); err == nil ||
err.Error() != utils.ErrPartiallyExecuted.Error() {
t.Errorf("expected: <%+v>, received: <%+v>", utils.ErrPartiallyExecuted, err)
}
@@ -1498,7 +1511,7 @@ func TestStatQueueV1ProcessEventMissingArgs(t *testing.T) {
var reply []string
experr := `MANDATORY_IE_MISSING: [CGREvent]`
- if err := sS.V1ProcessEvent(nil, &reply); err == nil ||
+ if err := sS.V1ProcessEvent(context.Background(), nil, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -1514,7 +1527,7 @@ func TestStatQueueV1ProcessEventMissingArgs(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [ID]`
- if err := sS.V1ProcessEvent(args, &reply); err == nil ||
+ if err := sS.V1ProcessEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -1529,7 +1542,7 @@ func TestStatQueueV1ProcessEventMissingArgs(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [Event]`
- if err := sS.V1ProcessEvent(args, &reply); err == nil ||
+ if err := sS.V1ProcessEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -1606,7 +1619,7 @@ func TestStatQueueV1GetQueueIDsOK(t *testing.T) {
expIDs := []string{"SQ1", "SQ3"}
var qIDs []string
- if err := sS.V1GetQueueIDs(utils.EmptyString, &qIDs); err != nil {
+ if err := sS.V1GetQueueIDs(context.Background(), utils.EmptyString, &qIDs); err != nil {
t.Error(err)
} else {
sort.Strings(qIDs)
@@ -1630,7 +1643,7 @@ func TestStatQueueV1GetQueueIDsGetKeysForPrefixErr(t *testing.T) {
sS := NewStatService(dm, cfg, filterS, nil)
var qIDs []string
- if err := sS.V1GetQueueIDs(utils.EmptyString, &qIDs); err == nil ||
+ if err := sS.V1GetQueueIDs(context.Background(), utils.EmptyString, &qIDs); err == nil ||
err.Error() != utils.ErrNotImplemented.Error() {
t.Errorf("expected: <%+v>, received: <%+v>", utils.ErrNotImplemented, err)
}
@@ -1689,11 +1702,12 @@ func TestStatQueueV1GetStatQueueOK(t *testing.T) {
}
var reply StatQueue
- if err := sS.V1GetStatQueue(&utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{
- ID: "SQ1",
- },
- }, &reply); err != nil {
+ if err := sS.V1GetStatQueue(context.Background(),
+ &utils.TenantIDWithAPIOpts{
+ TenantID: &utils.TenantID{
+ ID: "SQ1",
+ },
+ }, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, *sq) {
t.Errorf("expected: <%+v>, received: <%+v>",
@@ -1715,11 +1729,12 @@ func TestStatQueueV1GetStatQueueNotFound(t *testing.T) {
sS := NewStatService(dm, cfg, filterS, nil)
var reply StatQueue
- if err := sS.V1GetStatQueue(&utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{
- ID: "SQ1",
- },
- }, &reply); err == nil || err != utils.ErrNotFound {
+ if err := sS.V1GetStatQueue(context.Background(),
+ &utils.TenantIDWithAPIOpts{
+ TenantID: &utils.TenantID{
+ ID: "SQ1",
+ },
+ }, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, received: <%+v>", utils.ErrNotFound, err)
}
}
@@ -1778,9 +1793,10 @@ func TestStatQueueV1GetStatQueueMissingArgs(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [ID]`
var reply StatQueue
- if err := sS.V1GetStatQueue(&utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }, &reply); err == nil || err.Error() != experr {
+ if err := sS.V1GetStatQueue(context.Background(),
+ &utils.TenantIDWithAPIOpts{
+ TenantID: &utils.TenantID{},
+ }, &reply); err == nil || err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
}
@@ -1852,7 +1868,7 @@ func TestStatQueueV1GetStatQueuesForEventOK(t *testing.T) {
exp := []string{"SQ1", "SQ2"}
var reply []string
- if err := sS.V1GetStatQueuesForEvent(args, &reply); err != nil {
+ if err := sS.V1GetStatQueuesForEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
} else {
sort.Strings(reply)
@@ -1906,7 +1922,7 @@ func TestStatQueueV1GetStatQueuesForEventNotFoundErr(t *testing.T) {
}
var reply []string
- if err := sS.V1GetStatQueuesForEvent(args, &reply); err == nil ||
+ if err := sS.V1GetStatQueuesForEvent(context.Background(), args, &reply); err == nil ||
err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, received: <%+v>", utils.ErrNotFound, err)
}
@@ -1950,7 +1966,7 @@ func TestStatQueueV1GetStatQueuesForEventMissingArgs(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [CGREvent]`
var reply []string
- if err := sS.V1GetStatQueuesForEvent(nil, &reply); err == nil ||
+ if err := sS.V1GetStatQueuesForEvent(context.Background(), nil, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -1964,7 +1980,7 @@ func TestStatQueueV1GetStatQueuesForEventMissingArgs(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [ID]`
- if err := sS.V1GetStatQueuesForEvent(args, &reply); err == nil ||
+ if err := sS.V1GetStatQueuesForEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -1976,7 +1992,7 @@ func TestStatQueueV1GetStatQueuesForEventMissingArgs(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [Event]`
- if err := sS.V1GetStatQueuesForEvent(args, &reply); err == nil ||
+ if err := sS.V1GetStatQueuesForEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -2053,9 +2069,10 @@ func TestStatQueueV1ResetStatQueueOK(t *testing.T) {
}
var reply string
- if err := sS.V1ResetStatQueue(&utils.TenantID{
- ID: "SQ1",
- }, &reply); err != nil {
+ if err := sS.V1ResetStatQueue(context.Background(),
+ &utils.TenantID{
+ ID: "SQ1",
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned: <%q>", reply)
@@ -2121,9 +2138,10 @@ func TestStatQueueV1ResetStatQueueNotFoundErr(t *testing.T) {
}
var reply string
- if err := sS.V1ResetStatQueue(&utils.TenantID{
- ID: "SQ2",
- }, &reply); err == nil || err != utils.ErrNotFound {
+ if err := sS.V1ResetStatQueue(context.Background(),
+ &utils.TenantID{
+ ID: "SQ2",
+ }, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, received: <%+v>", utils.ErrNotFound, err)
}
}
@@ -2184,7 +2202,7 @@ func TestStatQueueV1ResetStatQueueMissingArgs(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [ID]`
var reply string
- if err := sS.V1ResetStatQueue(&utils.TenantID{}, &reply); err == nil ||
+ if err := sS.V1ResetStatQueue(context.Background(), &utils.TenantID{}, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -2247,9 +2265,10 @@ func TestStatQueueV1ResetStatQueueUnsupportedMetricType(t *testing.T) {
experr := `unsupported metric type `
var reply string
- if err := sS.V1ResetStatQueue(&utils.TenantID{
- ID: "SQ1",
- }, &reply); err == nil || err.Error() != experr {
+ if err := sS.V1ResetStatQueue(context.Background(),
+ &utils.TenantID{
+ ID: "SQ1",
+ }, &reply); err == nil || err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
}
@@ -2335,8 +2354,8 @@ func TestStatQueueProcessThresholdsOK(t *testing.T) {
Cache.Clear(nil)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
exp := &utils.CGREvent{
Tenant: "cgrates.org",
ID: args.(*utils.CGREvent).ID,
@@ -2358,9 +2377,9 @@ func TestStatQueueProcessThresholdsOK(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
- connMgr = NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal,
})
@@ -2443,15 +2462,15 @@ func TestStatQueueProcessThresholdsErrPartExec(t *testing.T) {
Cache.Clear(nil)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
return utils.ErrExists
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
- connMgr = NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal,
})
@@ -2569,9 +2588,10 @@ func TestStatQueueV1GetQueueFloatMetricsOK(t *testing.T) {
utils.MetaTCD: 3600000000000,
}
reply := map[string]float64{}
- if err := sS.V1GetQueueFloatMetrics(&utils.TenantID{
- ID: "SQ1",
- }, &reply); err != nil {
+ if err := sS.V1GetQueueFloatMetrics(context.Background(),
+ &utils.TenantID{
+ ID: "SQ1",
+ }, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("expected: <%+v>, received: <%+v>", expected, reply)
@@ -2633,9 +2653,10 @@ func TestStatQueueV1GetQueueFloatMetricsErrNotFound(t *testing.T) {
}
reply := map[string]float64{}
- if err := sS.V1GetQueueFloatMetrics(&utils.TenantID{
- ID: "SQ2",
- }, &reply); err == nil || err != utils.ErrNotFound {
+ if err := sS.V1GetQueueFloatMetrics(context.Background(),
+ &utils.TenantID{
+ ID: "SQ2",
+ }, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, received: <%+v>", utils.ErrNotFound, err)
}
}
@@ -2696,7 +2717,7 @@ func TestStatQueueV1GetQueueFloatMetricsMissingArgs(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [ID]`
reply := map[string]float64{}
- if err := sS.V1GetQueueFloatMetrics(&utils.TenantID{}, &reply); err == nil ||
+ if err := sS.V1GetQueueFloatMetrics(context.Background(), &utils.TenantID{}, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -2716,9 +2737,10 @@ func TestStatQueueV1GetQueueFloatMetricsErrGetStats(t *testing.T) {
experr := `SERVER_ERROR: NO_DATABASE_CONNECTION`
reply := map[string]float64{}
- if err := sS.V1GetQueueFloatMetrics(&utils.TenantID{
- ID: "SQ1",
- }, &reply); err == nil || err.Error() != experr {
+ if err := sS.V1GetQueueFloatMetrics(context.Background(),
+ &utils.TenantID{
+ ID: "SQ1",
+ }, &reply); err == nil || err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
}
@@ -2781,9 +2803,10 @@ func TestStatQueueV1GetQueueStringMetricsOK(t *testing.T) {
utils.MetaTCD: "1h0m0s",
}
reply := map[string]string{}
- if err := sS.V1GetQueueStringMetrics(&utils.TenantID{
- ID: "SQ1",
- }, &reply); err != nil {
+ if err := sS.V1GetQueueStringMetrics(context.Background(),
+ &utils.TenantID{
+ ID: "SQ1",
+ }, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("expected: <%+v>, received: <%+v>", expected, reply)
@@ -2845,9 +2868,10 @@ func TestStatQueueV1GetQueueStringMetricsErrNotFound(t *testing.T) {
}
reply := map[string]string{}
- if err := sS.V1GetQueueStringMetrics(&utils.TenantID{
- ID: "SQ2",
- }, &reply); err == nil || err != utils.ErrNotFound {
+ if err := sS.V1GetQueueStringMetrics(context.Background(),
+ &utils.TenantID{
+ ID: "SQ2",
+ }, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, received: <%+v>", utils.ErrNotFound, err)
}
}
@@ -2908,7 +2932,7 @@ func TestStatQueueV1GetQueueStringMetricsMissingArgs(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [ID]`
reply := map[string]string{}
- if err := sS.V1GetQueueStringMetrics(&utils.TenantID{}, &reply); err == nil ||
+ if err := sS.V1GetQueueStringMetrics(context.Background(), &utils.TenantID{}, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
@@ -2928,9 +2952,10 @@ func TestStatQueueV1GetQueueStringMetricsErrGetStats(t *testing.T) {
experr := `SERVER_ERROR: NO_DATABASE_CONNECTION`
reply := map[string]string{}
- if err := sS.V1GetQueueStringMetrics(&utils.TenantID{
- ID: "SQ1",
- }, &reply); err == nil || err.Error() != experr {
+ if err := sS.V1GetQueueStringMetrics(context.Background(),
+ &utils.TenantID{
+ ID: "SQ1",
+ }, &reply); err == nil || err.Error() != experr {
t.Errorf("expected: <%+v>, received: <%+v>", experr, err)
}
}
@@ -2948,7 +2973,7 @@ func TestStatQueueStoreStatQueueStoreIntervalDisabled(t *testing.T) {
config.SetCgrConfig(cfg)
data := NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
dm := NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr = NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ connMgr = NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
Cache.Clear(nil)
filterS := NewFilterS(cfg, nil, dm)
sS := NewStatService(dm, cfg, filterS, connMgr)
@@ -3034,75 +3059,6 @@ func TestStatQueueGetStatQueueOK(t *testing.T) {
}
}
-func TestStatQueueCall(t *testing.T) {
- tmpC := config.CgrConfig()
- defer func() {
- config.SetCgrConfig(tmpC)
- }()
-
- cfg := config.NewDefaultCGRConfig()
- data := NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
- dm := NewDataManager(data, cfg.CacheCfg(), nil)
- Cache.Clear(nil)
- filterS := NewFilterS(cfg, nil, dm)
- sS := NewStatService(dm, cfg, filterS, nil)
-
- sqPrf := &StatQueueProfile{
- Tenant: "cgrates.org",
- ID: "SQ1",
- FilterIDs: []string{"*string:~*req.Account:1001"},
- ActivationInterval: &utils.ActivationInterval{
- ExpiryTime: time.Date(2021, 6, 1, 12, 0, 0, 0, time.UTC),
- },
- Weight: 10,
- Blocker: true,
- QueueLength: 10,
- ThresholdIDs: []string{"*none"},
- MinItems: 5,
- Metrics: []*MetricWithFilters{
- {
- MetricID: utils.MetaTCD,
- },
- },
- }
- sq := &StatQueue{
- sqPrfl: sqPrf,
- dirty: utils.BoolPointer(false),
- Tenant: "cgrates.org",
- ID: "SQ1",
- SQItems: []SQItem{
- {
- EventID: "SqProcessEvent",
- ExpiryTime: utils.TimePointer(time.Now()),
- },
- },
- SQMetrics: map[string]StatMetric{
- utils.MetaTCD: &StatTCD{
- Sum: time.Minute,
- val: utils.DurationPointer(time.Hour),
- },
- },
- }
-
- if err := dm.SetStatQueue(sq); err != nil {
- t.Error(err)
- }
-
- args := &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{
- Tenant: "cgrates.org",
- ID: "SQ1",
- },
- }
- var reply StatQueue
- if err := sS.Call(utils.StatSv1GetStatQueue, args, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, *sq) {
- t.Errorf("expected: <%+v>, received: <%+v>",
- utils.ToJSON(*sq), utils.ToJSON(reply))
- }
-}
-
func TestStatQueueStoreStatQueueCacheSetErr(t *testing.T) {
utils.Logger.SetLogLevel(4)
utils.Logger.SetSyslog(nil)
@@ -3127,7 +3083,7 @@ func TestStatQueueStoreStatQueueCacheSetErr(t *testing.T) {
config.SetCgrConfig(cfg)
data := NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
dm := NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr = NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ connMgr = NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
Cache = NewCacheS(cfg, dm, nil)
filterS := NewFilterS(cfg, connMgr, dm)
sS := NewStatService(dm, cfg, filterS, connMgr)
@@ -3213,7 +3169,7 @@ func TestStatQueueV1GetStatQueuesForSliceOptsErr(t *testing.T) {
},
}
var reply []string
- if err := sS.V1GetStatQueuesForEvent(args, &reply); err == nil {
+ if err := sS.V1GetStatQueuesForEvent(context.Background(), args, &reply); err == nil {
t.Error(err)
}
}
@@ -3281,7 +3237,7 @@ func TestStatQueueV1GetStatQueuesForEventBoolOptsErr(t *testing.T) {
},
}
var reply []string
- if err := sS.V1GetStatQueuesForEvent(args, &reply); err == nil {
+ if err := sS.V1GetStatQueuesForEvent(context.Background(), args, &reply); err == nil {
t.Error(err)
}
}
diff --git a/engine/thresholds.go b/engine/thresholds.go
index ee624239c..fda8a5a91 100644
--- a/engine/thresholds.go
+++ b/engine/thresholds.go
@@ -25,6 +25,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
@@ -482,7 +483,7 @@ func (tS *ThresholdService) processEvent(tnt string, args *utils.CGREvent) (thre
}
// V1ProcessEvent implements ThresholdService method for processing an Event
-func (tS *ThresholdService) V1ProcessEvent(args *utils.CGREvent, reply *[]string) (err error) {
+func (tS *ThresholdService) V1ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *[]string) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
}
@@ -504,7 +505,7 @@ func (tS *ThresholdService) V1ProcessEvent(args *utils.CGREvent, reply *[]string
}
// V1GetThresholdsForEvent queries thresholds matching an Event
-func (tS *ThresholdService) V1GetThresholdsForEvent(args *utils.CGREvent, reply *Thresholds) (err error) {
+func (tS *ThresholdService) V1GetThresholdsForEvent(ctx *context.Context, args *utils.CGREvent, reply *Thresholds) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
}
@@ -526,7 +527,7 @@ func (tS *ThresholdService) V1GetThresholdsForEvent(args *utils.CGREvent, reply
}
// V1GetThresholdIDs returns list of thresholdIDs configured for a tenant
-func (tS *ThresholdService) V1GetThresholdIDs(tenant string, tIDs *[]string) (err error) {
+func (tS *ThresholdService) V1GetThresholdIDs(ctx *context.Context, tenant string, tIDs *[]string) (err error) {
if tenant == utils.EmptyString {
tenant = tS.cgrcfg.GeneralCfg().DefaultTenant
}
@@ -544,7 +545,7 @@ func (tS *ThresholdService) V1GetThresholdIDs(tenant string, tIDs *[]string) (er
}
// V1GetThreshold retrieves a Threshold
-func (tS *ThresholdService) V1GetThreshold(tntID *utils.TenantID, t *Threshold) (err error) {
+func (tS *ThresholdService) V1GetThreshold(ctx *context.Context, tntID *utils.TenantID, t *Threshold) (err error) {
var thd *Threshold
tnt := tntID.Tenant
if tnt == utils.EmptyString {
@@ -563,7 +564,7 @@ func (tS *ThresholdService) V1GetThreshold(tntID *utils.TenantID, t *Threshold)
}
// V1ResetThreshold resets the threshold hits
-func (tS *ThresholdService) V1ResetThreshold(tntID *utils.TenantID, rply *string) (err error) {
+func (tS *ThresholdService) V1ResetThreshold(ctx *context.Context, tntID *utils.TenantID, rply *string) (err error) {
var thd *Threshold
tnt := tntID.Tenant
if tnt == utils.EmptyString {
diff --git a/engine/thresholds_test.go b/engine/thresholds_test.go
index 3d530465f..e1a3ef1c7 100644
--- a/engine/thresholds_test.go
+++ b/engine/thresholds_test.go
@@ -28,9 +28,10 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
var (
@@ -972,7 +973,7 @@ func TestThresholdsProcessEventMaxHitsDMErr(t *testing.T) {
cfg.CacheCfg().Partitions[utils.CacheThresholds].Replicate = true
config.SetCgrConfig(cfg)
data := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr = NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ connMgr = NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
dm := NewDataManager(data, cfg.CacheCfg(), connMgr)
filterS := NewFilterS(cfg, nil, dm)
tS := NewThresholdService(nil, cfg, filterS)
@@ -1133,7 +1134,7 @@ func TestThresholdsV1ProcessEventOK(t *testing.T) {
}
var reply []string
exp := []string{"TH1", "TH2"}
- if err := tS.V1ProcessEvent(args, &reply); err != nil {
+ if err := tS.V1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
} else {
sort.Strings(reply)
@@ -1195,7 +1196,7 @@ func TestThresholdsV1ProcessEventPartExecErr(t *testing.T) {
expLog1 := `[ERROR] Failed to get actions for ACT1: NOT_FOUND`
expLog2 := `[WARNING] failed executing actions: ACT1, error: NOT_FOUND`
var reply []string
- if err := tS.V1ProcessEvent(args, &reply); err == nil ||
+ if err := tS.V1ProcessEvent(context.Background(), args, &reply); err == nil ||
err != utils.ErrPartiallyExecuted {
t.Errorf("expected: <%+v>,\nreceived: <%+v>", utils.ErrPartiallyExecuted, err)
} else {
@@ -1256,13 +1257,13 @@ func TestThresholdsV1ProcessEventMissingArgs(t *testing.T) {
}
var reply []string
experr := `MANDATORY_IE_MISSING: [ID]`
- if err := tS.V1ProcessEvent(args, &reply); err == nil ||
+ if err := tS.V1ProcessEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
experr = `MANDATORY_IE_MISSING: [CGREvent]`
- if err := tS.V1ProcessEvent(nil, &reply); err == nil ||
+ if err := tS.V1ProcessEvent(context.Background(), nil, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -1272,7 +1273,7 @@ func TestThresholdsV1ProcessEventMissingArgs(t *testing.T) {
Event: nil,
}
experr = `MANDATORY_IE_MISSING: [Event]`
- if err := tS.V1ProcessEvent(args, &reply); err == nil ||
+ if err := tS.V1ProcessEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -1305,9 +1306,10 @@ func TestThresholdsV1GetThresholdOK(t *testing.T) {
ID: "TH1",
}
var rplyTh Threshold
- if err := tS.V1GetThreshold(&utils.TenantID{
- ID: "TH1",
- }, &rplyTh); err != nil {
+ if err := tS.V1GetThreshold(context.Background(),
+ &utils.TenantID{
+ ID: "TH1",
+ }, &rplyTh); err != nil {
t.Error(err)
} else {
var snooze time.Time
@@ -1343,9 +1345,10 @@ func TestThresholdsV1GetThresholdNotFoundErr(t *testing.T) {
}
var rplyTh Threshold
- if err := tS.V1GetThreshold(&utils.TenantID{
- ID: "TH2",
- }, &rplyTh); err == nil || err != utils.ErrNotFound {
+ if err := tS.V1GetThreshold(context.Background(),
+ &utils.TenantID{
+ ID: "TH2",
+ }, &rplyTh); err == nil || err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
}
@@ -1681,7 +1684,7 @@ func TestThresholdMatchingThresholdForEventLocks5(t *testing.T) {
}()
Cache.Clear(nil)
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- dm := NewDataManager(db, config.CgrConfig().CacheCfg(), NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector)))
+ dm := NewDataManager(db, config.CgrConfig().CacheCfg(), NewConnManager(cfg, make(map[string]chan birpc.ClientConnector)))
cfg.ThresholdSCfg().StoreInterval = 1
cfg.ThresholdSCfg().StringIndexedFields = nil
cfg.ThresholdSCfg().PrefixIndexedFields = nil
@@ -1885,7 +1888,7 @@ func TestThresholdsV1GetThresholdsForEventOK(t *testing.T) {
},
}
var reply Thresholds
- if err := tS.V1GetThresholdsForEvent(args, &reply); err != nil {
+ if err := tS.V1GetThresholdsForEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", exp, reply)
@@ -1919,7 +1922,7 @@ func TestThresholdsV1GetThresholdsForEventMissingArgs(t *testing.T) {
}
experr := `MANDATORY_IE_MISSING: [CGREvent]`
var reply Thresholds
- if err := tS.V1GetThresholdsForEvent(nil, &reply); err == nil ||
+ if err := tS.V1GetThresholdsForEvent(context.Background(), nil, &reply); err == nil ||
err.Error() != experr {
t.Error(err)
}
@@ -1935,7 +1938,7 @@ func TestThresholdsV1GetThresholdsForEventMissingArgs(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [ID]`
- if err := tS.V1GetThresholdsForEvent(args, &reply); err == nil ||
+ if err := tS.V1GetThresholdsForEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Error(err)
}
@@ -1950,7 +1953,7 @@ func TestThresholdsV1GetThresholdsForEventMissingArgs(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [Event]`
- if err := tS.V1GetThresholdsForEvent(args, &reply); err == nil ||
+ if err := tS.V1GetThresholdsForEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Error(err)
}
@@ -1996,7 +1999,7 @@ func TestThresholdsV1GetThresholdIDsOK(t *testing.T) {
expIDs := []string{"TH1", "TH2"}
var reply []string
- if err := tS.V1GetThresholdIDs("", &reply); err != nil {
+ if err := tS.V1GetThresholdIDs(context.Background(), "", &reply); err != nil {
t.Error(err)
} else {
sort.Strings(reply)
@@ -2020,7 +2023,7 @@ func TestThresholdsV1GetThresholdIDsGetKeysForPrefixErr(t *testing.T) {
tS := NewThresholdService(dm, cfg, filterS)
var reply []string
- if err := tS.V1GetThresholdIDs("", &reply); err == nil ||
+ if err := tS.V1GetThresholdIDs(context.Background(), "", &reply); err == nil ||
err != utils.ErrNotImplemented {
t.Error(err)
}
@@ -2064,9 +2067,10 @@ func TestThresholdsV1ResetThresholdOK(t *testing.T) {
"cgrates.org:TH1": {},
}
var reply string
- if err := tS.V1ResetThreshold(&utils.TenantID{
- ID: "TH1",
- }, &reply); err != nil {
+ if err := tS.V1ResetThreshold(context.Background(),
+ &utils.TenantID{
+ ID: "TH1",
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned: <%q>", reply)
@@ -2112,9 +2116,10 @@ func TestThresholdsV1ResetThresholdErrNotFound(t *testing.T) {
}
var reply string
- if err := tS.V1ResetThreshold(&utils.TenantID{
- ID: "TH1",
- }, &reply); err == nil || err != utils.ErrNotFound {
+ if err := tS.V1ResetThreshold(context.Background(),
+ &utils.TenantID{
+ ID: "TH1",
+ }, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
}
@@ -2155,9 +2160,10 @@ func TestThresholdsV1ResetThresholdNegativeStoreIntervalOK(t *testing.T) {
}
var reply string
- if err := tS.V1ResetThreshold(&utils.TenantID{
- ID: "TH1",
- }, &reply); err != nil {
+ if err := tS.V1ResetThreshold(context.Background(),
+ &utils.TenantID{
+ ID: "TH1",
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned: <%q>", reply)
@@ -2202,9 +2208,10 @@ func TestThresholdsV1ResetThresholdNegativeStoreIntervalErr(t *testing.T) {
}
var reply string
- if err := tS.V1ResetThreshold(&utils.TenantID{
- ID: "TH1",
- }, &reply); err == nil || err != utils.ErrNoDatabaseConn {
+ if err := tS.V1ResetThreshold(context.Background(),
+ &utils.TenantID{
+ ID: "TH1",
+ }, &reply); err == nil || err != utils.ErrNoDatabaseConn {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNoDatabaseConn, err)
}
}
@@ -2344,7 +2351,7 @@ func TestThresholdsStoreThresholdCacheSetErr(t *testing.T) {
config.SetCgrConfig(cfg)
data := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr = NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ connMgr = NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
Cache = NewCacheS(cfg, dm, nil)
filterS := NewFilterS(cfg, nil, dm)
tS := NewThresholdService(dm, cfg, filterS)
diff --git a/engine/tpreader.go b/engine/tpreader.go
index 7b7c85eff..e5f157103 100644
--- a/engine/tpreader.go
+++ b/engine/tpreader.go
@@ -26,6 +26,7 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -784,7 +785,7 @@ func (tpr *TpReader) LoadAccountActionsFiltered(qriedAA *utils.TPAccountActions)
return err
}
var reply string
- if err := connMgr.Call(tpr.cacheConns, nil,
+ if err := connMgr.Call(context.TODO(), tpr.cacheConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
AccountActionPlanIDs: []string{id},
ActionPlanIDs: []string{accountAction.ActionPlanId},
@@ -891,7 +892,7 @@ func (tpr *TpReader) LoadAccountActionsFiltered(qriedAA *utils.TPAccountActions)
return errors.New(err.Error() + " (SetActionTriggers): " + accountAction.ActionTriggersId)
}
var reply string
- if err := connMgr.Call(tpr.cacheConns, nil,
+ if err := connMgr.Call(context.TODO(), tpr.cacheConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionTriggerIDs: []string{accountAction.ActionTriggersId},
}, &reply); err != nil {
@@ -1009,7 +1010,7 @@ func (tpr *TpReader) LoadAccountActionsFiltered(qriedAA *utils.TPAccountActions)
return err
}
var reply string
- if err := connMgr.Call(tpr.cacheConns, nil,
+ if err := connMgr.Call(context.TODO(), tpr.cacheConns,
utils.CacheSv1ReloadCache, &utils.AttrReloadCacheWithAPIOpts{
ActionIDs: []string{k},
}, &reply); err != nil {
@@ -2340,7 +2341,7 @@ func CallCache(connMgr *ConnManager, cacheConns []string, caching string, args m
log.Print("Reloading cache")
}
- if err = connMgr.Call(cacheConns, nil, method, cacheArgs, &reply); err != nil {
+ if err = connMgr.Call(context.TODO(), cacheConns, method, cacheArgs, &reply); err != nil {
return
}
@@ -2348,7 +2349,7 @@ func CallCache(connMgr *ConnManager, cacheConns []string, caching string, args m
if verbose {
log.Print("Clearing indexes")
}
- if err = connMgr.Call(cacheConns, nil, utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err = connMgr.Call(context.TODO(), cacheConns, utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
APIOpts: opts,
CacheIDs: cacheIDs,
Tenant: tenant,
@@ -2371,7 +2372,7 @@ func (tpr *TpReader) ReloadScheduler(verbose bool) (err error) {
if verbose {
log.Print("Reloading scheduler")
}
- if err = connMgr.Call(tpr.schedulerConns, nil, utils.SchedulerSv1Reload,
+ if err = connMgr.Call(context.TODO(), tpr.schedulerConns, utils.SchedulerSv1Reload,
new(utils.CGREvent), &reply); err != nil {
log.Printf("WARNING: Got error on scheduler reload: %s\n", err.Error())
}
diff --git a/engine/tpreader_test.go b/engine/tpreader_test.go
index 1ce315fc7..2589ac2a2 100644
--- a/engine/tpreader_test.go
+++ b/engine/tpreader_test.go
@@ -29,10 +29,11 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
- "github.com/cgrates/rpcclient"
)
func TestTPReaderCallCacheNoCaching(t *testing.T) {
@@ -69,10 +70,10 @@ func TestTPReaderCallCacheReloadCacheFirstCallErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
Cache.Clear(nil)
cacheConns := []string{"cacheConn1"}
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReloadCache: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReloadCache: func(ctx *context.Context, args, reply any) error {
expArgs := &utils.AttrReloadCacheWithAPIOpts{
APIOpts: map[string]any{
utils.MetaSubsys: utils.MetaChargers,
@@ -93,7 +94,7 @@ func TestTPReaderCallCacheReloadCacheFirstCallErr(t *testing.T) {
}
client <- ccM
- cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
"cacheConn1": client,
})
caching := utils.MetaReload
@@ -134,13 +135,13 @@ func TestTPReaderCallCacheReloadCacheSecondCallErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
Cache.Clear(nil)
cacheConns := []string{"cacheConn1"}
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReloadCache: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReloadCache: func(ctx *context.Context, args, reply any) error {
return nil
},
- utils.CacheSv1Clear: func(args, reply any) error {
+ utils.CacheSv1Clear: func(ctx *context.Context, args, reply any) error {
expArgs := &utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.MetaSubsys: utils.MetaChargers,
@@ -161,7 +162,7 @@ func TestTPReaderCallCacheReloadCacheSecondCallErr(t *testing.T) {
}
client <- ccM
- cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
"cacheConn1": client,
})
caching := utils.MetaReload
@@ -214,10 +215,10 @@ func TestTPReaderCallCacheLoadCache(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
Cache.Clear(nil)
cacheConns := []string{"cacheConn1"}
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1LoadCache: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1LoadCache: func(ctx *context.Context, args, reply any) error {
expArgs := &utils.AttrReloadCacheWithAPIOpts{
APIOpts: map[string]any{
utils.MetaSubsys: utils.MetaChargers,
@@ -234,7 +235,7 @@ func TestTPReaderCallCacheLoadCache(t *testing.T) {
}
return nil
},
- utils.CacheSv1Clear: func(args, reply any) error {
+ utils.CacheSv1Clear: func(ctx *context.Context, args, reply any) error {
expArgs := &utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.MetaSubsys: utils.MetaChargers,
@@ -255,7 +256,7 @@ func TestTPReaderCallCacheLoadCache(t *testing.T) {
}
client <- ccM
- cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
"cacheConn1": client,
})
caching := utils.MetaLoad
@@ -283,10 +284,10 @@ func TestTPReaderCallCacheRemoveItems(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
Cache.Clear(nil)
cacheConns := []string{"cacheConn1"}
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1RemoveItems: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1RemoveItems: func(ctx *context.Context, args, reply any) error {
expArgs := &utils.AttrReloadCacheWithAPIOpts{
APIOpts: map[string]any{
utils.MetaSubsys: utils.MetaChargers,
@@ -303,7 +304,7 @@ func TestTPReaderCallCacheRemoveItems(t *testing.T) {
}
return nil
},
- utils.CacheSv1Clear: func(args, reply any) error {
+ utils.CacheSv1Clear: func(ctx *context.Context, args, reply any) error {
expArgs := &utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.MetaSubsys: utils.MetaChargers,
@@ -324,7 +325,7 @@ func TestTPReaderCallCacheRemoveItems(t *testing.T) {
}
client <- ccM
- cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
"cacheConn1": client,
})
caching := utils.MetaRemove
@@ -352,10 +353,10 @@ func TestTPReaderCallCacheClear(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
Cache.Clear(nil)
cacheConns := []string{"cacheConn1"}
- client := make(chan rpcclient.ClientConnector, 1)
+ client := make(chan birpc.ClientConnector, 1)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1Clear: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1Clear: func(ctx *context.Context, args, reply any) error {
expArgs := &utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.MetaSubsys: utils.MetaChargers,
@@ -375,7 +376,7 @@ func TestTPReaderCallCacheClear(t *testing.T) {
}
client <- ccM
- cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
"cacheConn1": client,
})
caching := utils.MetaClear
@@ -950,23 +951,23 @@ func TestTPReaderReloadCache(t *testing.T) {
AccountActionPlanIDs: []string{"AccountActionPlansID"},
ReverseDestinationIDs: []string{},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.CacheSv1ReloadCache: func(args any, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.CacheSv1ReloadCache: func(ctx *context.Context, args any, reply any) error {
if !reflect.DeepEqual(args, argExpect) {
t.Errorf("Expected %v \nbut received %v", utils.ToJSON(argExpect), utils.ToJSON(args))
}
return nil
},
- utils.CacheSv1Clear: func(args any, reply any) error {
+ utils.CacheSv1Clear: func(ctx *context.Context, args any, reply any) error {
return nil
},
},
}
tmp := connMgr
defer func() { connMgr = tmp }()
- connMgr = NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
tpr := &TpReader{
@@ -1087,8 +1088,8 @@ func TestTPReaderLoadAll(t *testing.T) {
func TestTpReaderReloadScheduler(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
ccMocK := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.SchedulerSv1Reload: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.SchedulerSv1Reload: func(ctx *context.Context, args, reply any) error {
rpl := "reply"
*reply.(*string) = rpl
@@ -1096,12 +1097,12 @@ func TestTpReaderReloadScheduler(t *testing.T) {
},
},
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- ccMocK
tmp := connMgr
defer func() { connMgr = tmp }()
- connMgr = NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.SchedulerConnsCfg): clientconn,
})
@@ -2214,7 +2215,7 @@ func TestTprLoadAccountActionFiltered(t *testing.T) {
if err != nil {
t.Error(err)
}
- clientconn := make(chan rpcclient.ClientConnector, 1)
+ clientconn := make(chan birpc.ClientConnector, 1)
clientconn <- clMock(func(serviceMethod string, _, _ any) error {
if serviceMethod == utils.CacheSv1ReloadCache {
@@ -2222,7 +2223,7 @@ func TestTprLoadAccountActionFiltered(t *testing.T) {
}
return utils.ErrNotImplemented
})
- connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): clientconn,
})
timings := &utils.ApierTPTiming{
diff --git a/engine/z_actions2_it_test.go b/engine/z_actions2_it_test.go
index 4fd23586b..8e191e358 100644
--- a/engine/z_actions2_it_test.go
+++ b/engine/z_actions2_it_test.go
@@ -21,12 +21,13 @@ along with this program. If not, see
package engine
import (
- "net/rpc"
"path"
"runtime"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -36,7 +37,7 @@ var (
actsCfgPath string
actsCfgDir string
actsCfg *config.CGRConfig
- actsRPC *rpc.Client
+ actsRPC *birpc.Client
)
var sTestsActions = []func(t *testing.T){
@@ -189,13 +190,13 @@ func testActionsExecuteRemoveSMCos1(t *testing.T) {
},
},
}
- if err := actsRPC.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: "cgrates.org", ActionsId: attrsAA.ActionsId}
- if err := actsRPC.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -222,13 +223,13 @@ func testActionsExecuteRemoveSMCos2(t *testing.T) {
},
},
}
- if err := actsRPC.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: "cgrates.org", ActionsId: attrsAA.ActionsId}
- if err := actsRPC.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -243,7 +244,7 @@ func testActionsExecuteRemoveSMCos2(t *testing.T) {
func testActionsUpdateBalance(t *testing.T) {
var reply string
attrsSetAccount := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "testAcc"}
- if err := actsRPC.Call(utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -251,7 +252,7 @@ func testActionsUpdateBalance(t *testing.T) {
topupAction := &utils.AttrSetActions{ActionsId: "ACT_TOPUP_RST", Actions: []*utils.TPAction{
{Identifier: utils.MetaTopUp, BalanceId: "test", BalanceType: utils.MetaMonetary, Units: "5", ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
}}
- if err := actsRPC.Call(utils.APIerSv2SetActions, topupAction, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv2SetActions, topupAction, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -259,27 +260,27 @@ func testActionsUpdateBalance(t *testing.T) {
changeBlockerAction := &utils.AttrSetActions{ActionsId: "ACT_BAL_UPDT", Actions: []*utils.TPAction{
{Identifier: utils.MetaSetBalance, BalanceId: "test", BalanceBlocker: "true"},
}}
- if err := actsRPC.Call(utils.APIerSv2SetActions, changeBlockerAction, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv2SetActions, changeBlockerAction, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: topupAction.ActionsId}
- if err := actsRPC.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
runtime.Gosched()
attrsEA2 := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: changeBlockerAction.ActionsId}
- if err := actsRPC.Call(utils.APIerSv1ExecuteAction, attrsEA2, &reply); err != nil {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA2, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
var acc Account
attrs2 := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testAcc"}
- if err := actsRPC.Call(utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
+ if err := actsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if acc.BalanceMap[utils.MetaMonetary][0].ID != "test" {
t.Errorf("Expected test result received %v ", acc.BalanceMap[utils.MetaMonetary][0].ID)
diff --git a/engine/z_actions_it_test.go b/engine/z_actions_it_test.go
index e2f252f16..26cdae77b 100644
--- a/engine/z_actions_it_test.go
+++ b/engine/z_actions_it_test.go
@@ -24,7 +24,6 @@ import (
"io"
"net/http"
"net/http/httptest"
- "net/rpc"
"path"
"reflect"
"strconv"
@@ -32,13 +31,15 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
var (
actsLclCfg *config.CGRConfig
- actsLclRpc *rpc.Client
+ actsLclRpc *birpc.Client
actsLclCfgPath string
actionsConfigDIR string
@@ -127,7 +128,7 @@ func testActionsitRpcConn(t *testing.T) {
func testActionsitSetCdrlogDebit(t *testing.T) {
var reply string
attrsSetAccount := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan2904"}
- if err := actsLclRpc.Call(utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -136,19 +137,19 @@ func testActionsitSetCdrlogDebit(t *testing.T) {
{Identifier: utils.MetaDebit, BalanceType: utils.MetaMonetary, Units: "5", ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
{Identifier: utils.CDRLog},
}}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
var rcvedCdrs []*ExternalCDR
- if err := actsLclRpc.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
Accounts: []string{attrsSetAccount.Account}}, &rcvedCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rcvedCdrs) != 1 {
@@ -170,7 +171,7 @@ func testActionsitSetCdrlogDebit(t *testing.T) {
func testActionsitSetCdrlogTopup(t *testing.T) {
var reply string
attrsSetAccount := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan2905"}
- if err := actsLclRpc.Call(utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -179,19 +180,19 @@ func testActionsitSetCdrlogTopup(t *testing.T) {
{Identifier: utils.MetaTopUp, BalanceType: utils.MetaMonetary, Units: "5", ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
{Identifier: utils.CDRLog},
}}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
var rcvedCdrs []*ExternalCDR
- if err := actsLclRpc.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
Accounts: []string{attrsSetAccount.Account}}, &rcvedCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rcvedCdrs) != 1 {
@@ -218,19 +219,19 @@ func testActionsitCdrlogEmpty(t *testing.T) {
Units: "5", ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
{Identifier: utils.CDRLog},
}}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
var rcvedCdrs []*ExternalCDR
- if err := actsLclRpc.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
Accounts: []string{attrsSetAccount.Account}, RunIDs: []string{utils.MetaDebit}}, &rcvedCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rcvedCdrs) != 2 {
@@ -257,25 +258,25 @@ func testActionsitCdrlogWithParams(t *testing.T) {
DestinationIds: "RET", Units: "25", ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
},
}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
var rcvedCdrs []*ExternalCDR
- if err := actsLclRpc.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
Accounts: []string{attrsSetAccount.Account}, RunIDs: []string{utils.MetaDebit}, RequestTypes: []string{"*pseudoprepaid"}}, &rcvedCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rcvedCdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(rcvedCdrs))
}
- if err := actsLclRpc.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
Accounts: []string{attrsSetAccount.Account}, RunIDs: []string{utils.MetaDebitReset}, RequestTypes: []string{"*pseudoprepaid"}}, &rcvedCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rcvedCdrs) != 1 {
@@ -295,19 +296,19 @@ func testActionsitCdrlogWithParams2(t *testing.T) {
ExtraParameters: `{"RequestType":"*pseudoprepaid", "Usage":"10", "Subject":"testActionsitCdrlogWithParams2", "ToR":"~ActionType:s/^\\*(.*)$/did_$1/"}`},
},
}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
var rcvedCdrs []*ExternalCDR
- if err := actsLclRpc.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
Accounts: []string{attrsSetAccount.Account}, Subjects: []string{"testActionsitCdrlogWithParams2"}}, &rcvedCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rcvedCdrs) != 1 {
@@ -324,7 +325,7 @@ func testActionsitThresholdCDrLog(t *testing.T) {
var reply string
attrsSetAccount := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "th_acc"}
- if err := actsLclRpc.Call(utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -333,13 +334,13 @@ func testActionsitThresholdCDrLog(t *testing.T) {
{Identifier: utils.MetaTopUp, BalanceType: utils.MetaMonetary, Units: "5", ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
{Identifier: utils.CDRLog},
}}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
//make sure that the threshold don't exit
- if err := actsLclRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &thReply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -361,12 +362,12 @@ func testActionsitThresholdCDrLog(t *testing.T) {
Async: false,
},
}
- if err := actsLclRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := actsLclRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}, &thReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, thReply) {
@@ -405,13 +406,13 @@ func testActionsitThresholdCDrLog(t *testing.T) {
}
var ids []string
eIDs := []string{"THD_Test"}
- if err := actsLclRpc.Call(utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
}
var rcvedCdrs []*ExternalCDR
- if err := actsLclRpc.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{Sources: []string{utils.CDRLog},
Accounts: []string{attrsSetAccount.Account}}, &rcvedCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rcvedCdrs) != 1 {
@@ -454,7 +455,7 @@ func testActionsitCDRAccount(t *testing.T) {
},
Overwrite: true,
}
- if err := actsLclRpc.Call(utils.APIerSv1AddBalance, attrs, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1AddBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.AddBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.AddBalance received: %s", reply)
@@ -466,7 +467,7 @@ func testActionsitCDRAccount(t *testing.T) {
{Identifier: utils.MetaCDRAccount, ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
},
}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -475,7 +476,7 @@ func testActionsitCDRAccount(t *testing.T) {
var acc Account
attrs2 := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: acnt}
var uuid string
- if err := actsLclRpc.Call(utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else {
voice := acc.BalanceMap[utils.MetaVoice]
@@ -517,7 +518,7 @@ func testActionsitCDRAccount(t *testing.T) {
},
},
}
- if err := actsLclRpc.Call(utils.CDRsV1ProcessCDR, args, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.CDRsV1ProcessCDR, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -525,13 +526,13 @@ func testActionsitCDRAccount(t *testing.T) {
time.Sleep(100 * time.Millisecond)
attrsEA := &utils.AttrExecuteAction{Tenant: "cgrates.org", Account: acnt, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
- if err := actsLclRpc.Call(utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if tv := acc.BalanceMap[utils.MetaVoice].GetTotalValue(); tv != float64(10*time.Second) {
t.Errorf("Calling APIerSv1.GetBalance expected: %f, received: %f", float64(10*time.Second), tv)
@@ -550,13 +551,13 @@ func testActionsitThresholdCgrRpcAction(t *testing.T) {
"Attempts":1,
"Async" :false,
"Params": {}}`}}}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
//make sure that the threshold don't exit
- if err := actsLclRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TH_CGRRPC"}, &thReply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -577,12 +578,12 @@ func testActionsitThresholdCgrRpcAction(t *testing.T) {
Async: false,
},
}
- if err := actsLclRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := actsLclRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TH_CGRRPC"}, &thReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, thReply) {
@@ -597,7 +598,7 @@ func testActionsitThresholdCgrRpcAction(t *testing.T) {
}
var ids []string
eIDs := []string{"TH_CGRRPC"}
- if err := actsLclRpc.Call(utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -614,13 +615,13 @@ func testActionsitThresholdPostEvent(t *testing.T) {
attrsAA := &utils.AttrSetActions{ActionsId: "ACT_TH_POSTEVENT", Actions: []*utils.TPAction{
{Identifier: utils.MetaPostEvent, ExtraParameters: "http://127.0.0.1:12080/invalid_json"},
}}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
//make sure that the threshold don't exit
- if err := actsLclRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_PostEvent"}, &thReply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -641,12 +642,12 @@ func testActionsitThresholdPostEvent(t *testing.T) {
Async: false,
},
}
- if err := actsLclRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := actsLclRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_PostEvent"}, &thReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, thReply) {
@@ -679,7 +680,7 @@ func testActionsitThresholdPostEvent(t *testing.T) {
}
var ids []string
eIDs := []string{"THD_PostEvent"}
- if err := actsLclRpc.Call(utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, ev, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -693,7 +694,7 @@ func testActionsitSetSDestinations(t *testing.T) {
Tenant: "cgrates.org",
Account: "testAccSetDDestination",
}
- if err := actsLclRpc.Call(utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -702,14 +703,14 @@ func testActionsitSetSDestinations(t *testing.T) {
{Identifier: utils.MetaTopUp, BalanceType: utils.MetaMonetary, DestinationIds: "*ddc_test",
Units: "5", ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
}}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant, Account: attrsSetAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -717,13 +718,13 @@ func testActionsitSetSDestinations(t *testing.T) {
var acc Account
attrs2 := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testAccSetDDestination"}
- if err := actsLclRpc.Call(utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
t.Error(err.Error())
} else if _, has := acc.BalanceMap[utils.MetaMonetary][0].DestinationIDs["*ddc_test"]; !has {
t.Errorf("Unexpected destinationIDs: %+v", acc.BalanceMap[utils.MetaMonetary][0].DestinationIDs)
}
- if err := actsLclRpc.Call(utils.APIerSv1SetDestination,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetDestination,
&utils.AttrSetDestination{Id: "*ddc_test", Prefixes: []string{"111", "222"}}, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
@@ -731,7 +732,7 @@ func testActionsitSetSDestinations(t *testing.T) {
}
//verify destinations
var dest Destination
- if err := actsLclRpc.Call(utils.APIerSv1GetDestination,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1GetDestination,
utils.StringPointer("*ddc_test"), &dest); err != nil {
t.Error(err.Error())
} else {
@@ -756,7 +757,7 @@ func testActionsitSetSDestinations(t *testing.T) {
},
}
- if err := actsLclRpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -772,7 +773,7 @@ func testActionsitSetSDestinations(t *testing.T) {
utils.Usage: 6 * time.Second,
},
}
- if err := actsLclRpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -786,7 +787,7 @@ func testActionsitSetSDestinations(t *testing.T) {
utils.Usage: 6 * time.Second,
},
}
- if err := actsLclRpc.Call(utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &args, &reply2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply2, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply2)
@@ -796,7 +797,7 @@ func testActionsitSetSDestinations(t *testing.T) {
attrSetDDest := &utils.AttrSetActions{ActionsId: "ACT_setDDestination", Actions: []*utils.TPAction{
{Identifier: utils.MetaSetDDestinations, ExtraParameters: "DistinctMetricProfile"},
}}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrSetDDest, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrSetDDest, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -804,14 +805,14 @@ func testActionsitSetSDestinations(t *testing.T) {
attrsetDDest := &utils.AttrExecuteAction{Tenant: attrsSetAccount.Tenant,
Account: attrsSetAccount.Account, ActionsId: attrSetDDest.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsetDDest, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsetDDest, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
//verify destinations
- if err := actsLclRpc.Call(utils.APIerSv1GetDestination,
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1GetDestination,
utils.StringPointer("*ddc_test"), &dest); err != nil {
t.Error(err.Error())
} else {
@@ -830,7 +831,7 @@ func testActionsitresetAccountCDR(t *testing.T) {
Tenant: "cgrates.org",
Account: "123456789",
}
- if err := actsLclRpc.Call(utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1SetAccount, attrsSetAccount, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -842,7 +843,7 @@ func testActionsitresetAccountCDR(t *testing.T) {
{Identifier: utils.MetaCDRAccount, ExpiryTime: utils.MetaUnlimited, Weight: 20.0},
},
}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -851,7 +852,7 @@ func testActionsitresetAccountCDR(t *testing.T) {
var acc Account
attrs2 := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: account}
var uuid string
- if err := actsLclRpc.Call(utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else {
voice := acc.BalanceMap[utils.MetaVoice]
@@ -892,7 +893,7 @@ func testActionsitresetAccountCDR(t *testing.T) {
},
},
}
- if err := actsLclRpc.Call(utils.CDRsV1ProcessCDR, args, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.CDRsV1ProcessCDR, args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -900,13 +901,13 @@ func testActionsitresetAccountCDR(t *testing.T) {
time.Sleep(100 * time.Millisecond)
attrsEA := &utils.AttrExecuteAction{Tenant: "cgrates.org", Account: account, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
}
- if err := actsLclRpc.Call(utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs2, &acc); err != nil {
t.Error("Got error on APIerSv1.GetAccount: ", err.Error())
} else if tv := acc.BalanceMap[utils.MetaVoice].GetTotalValue(); tv != float64(10*time.Second) {
t.Errorf("Calling APIerSv1.GetBalance expected: %f, received: %f", float64(10*time.Second), tv)
@@ -957,14 +958,14 @@ func testActionsitremoteSetAccount(t *testing.T) {
{Identifier: utils.MetaRemoteSetAccount, ExtraParameters: ts.URL, Weight: 20.0},
},
}
- if err := actsLclRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: "cgrates.org", Account: account, ActionsId: attrsAA.ActionsId}
- if err := actsLclRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -972,7 +973,7 @@ func testActionsitremoteSetAccount(t *testing.T) {
var acc2 Account
attrs2 := &utils.AttrGetAccount{Account: account}
- if err := actsLclRpc.Call(utils.APIerSv2GetAccount, attrs2, &acc2); err != nil {
+ if err := actsLclRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs2, &acc2); err != nil {
t.Fatal("Got error on APIerSv1.GetAccount: ", err.Error())
}
acc2.UpdateTime = exp.UpdateTime
diff --git a/engine/z_attributes_test.go b/engine/z_attributes_test.go
index c8b226009..2f00b509d 100644
--- a/engine/z_attributes_test.go
+++ b/engine/z_attributes_test.go
@@ -23,6 +23,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -600,7 +601,7 @@ func TestAttributeProcessWithMultipleRuns1(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -709,7 +710,7 @@ func TestAttributeProcessWithMultipleRuns2(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -818,7 +819,7 @@ func TestAttributeProcessWithMultipleRuns3(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -908,7 +909,7 @@ func TestAttributeProcessWithMultipleRuns4(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1020,7 +1021,7 @@ func TestAttributeMultipleProcessWithBlocker(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1129,7 +1130,7 @@ func TestAttributeMultipleProcessWithBlocker2(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1199,7 +1200,7 @@ func TestAttributeProcessValue(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1279,7 +1280,7 @@ func TestAttributeAttributeFilterIDs(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1351,7 +1352,7 @@ func TestAttributeProcessEventConstant(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1429,7 +1430,7 @@ func TestAttributeProcessEventVariable(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1512,7 +1513,7 @@ func TestAttributeProcessEventComposed(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Fatalf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1587,7 +1588,7 @@ func TestAttributeProcessEventSum(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1664,7 +1665,7 @@ func TestAttributeProcessEventUsageDifference(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1741,7 +1742,7 @@ func TestAttributeProcessEventValueExponent(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -1807,7 +1808,7 @@ func BenchmarkAttributeProcessEventConstant(b *testing.B) {
var reply AttrSProcessEventReply
b.ResetTimer()
for i := 0; i < b.N; i++ {
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
b.Errorf("Error: %+v", err)
}
}
@@ -1866,7 +1867,7 @@ func BenchmarkAttributeProcessEventVariable(b *testing.B) {
var reply AttrSProcessEventReply
b.ResetTimer()
for i := 0; i < b.N; i++ {
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
b.Errorf("Error: %+v", err)
}
}
@@ -2686,7 +2687,7 @@ func TestAttributeIndexSelectsFalse(t *testing.T) {
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err == nil || err != utils.ErrNotFound {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("Expected not found, reveiced: %+v", err)
}
@@ -2748,7 +2749,7 @@ func TestProcessAttributeWithSameWeight(t *testing.T) {
},
}
var rcv AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(ev, &rcv); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), ev, &rcv); err != nil {
t.Errorf("Error: %+v", err)
}
clnEv := ev.Clone()
@@ -2848,7 +2849,7 @@ func TestAttributeMultipleProcessWithFiltersExists(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -2945,7 +2946,7 @@ func TestAttributeMultipleProcessWithFiltersNotEmpty(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(attrArgs, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), attrArgs, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
if !reflect.DeepEqual(eRply.MatchedProfiles, reply.MatchedProfiles) {
@@ -3005,7 +3006,7 @@ func TestAttributeMetaTenant(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(args, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(eRply, reply) {
@@ -3112,7 +3113,7 @@ func TestAttributesPorcessEventMatchingProcessRuns(t *testing.T) {
},
},
}
- if err := attr.V1ProcessEvent(args, reply); err != nil {
+ if err := attr.V1ProcessEvent(context.Background(), args, reply); err != nil {
t.Error(err)
} else if sort.Strings(reply.AlteredFields); !reflect.DeepEqual(expReply, reply) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expReply), utils.ToJSON(reply))
@@ -3193,7 +3194,7 @@ func TestAttributeMultipleProfileRunns(t *testing.T) {
},
}
var reply AttrSProcessEventReply
- if err := attrS.V1ProcessEvent(args, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
sort.Strings(reply.AlteredFields)
@@ -3233,7 +3234,7 @@ func TestAttributeMultipleProfileRunns(t *testing.T) {
},
}
reply = AttrSProcessEventReply{}
- if err := attrS.V1ProcessEvent(args, &reply); err != nil {
+ if err := attrS.V1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Errorf("Error: %+v", err)
}
sort.Strings(reply.AlteredFields)
diff --git a/engine/z_chargers_test.go b/engine/z_chargers_test.go
index 6c5cc5891..5fe9c9bfb 100644
--- a/engine/z_chargers_test.go
+++ b/engine/z_chargers_test.go
@@ -24,6 +24,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/rpcclient"
@@ -212,14 +214,14 @@ func TestChargersprocessEventNoConnIDs(t *testing.T) {
}
type ccMock struct {
- calls map[string]func(args any, reply any) error
+ calls map[string]func(ctx *context.Context, args any, reply any) error
}
-func (ccM *ccMock) Call(serviceMethod string, args any, reply any) (err error) {
+func (ccM *ccMock) Call(ctx *context.Context, serviceMethod string, args any, reply any) (err error) {
if call, has := ccM.calls[serviceMethod]; !has {
return rpcclient.ErrUnsupporteServiceMethod
} else {
- return call(args, reply)
+ return call(ctx, args, reply)
}
}
@@ -243,8 +245,8 @@ func TestChargersprocessEventCallNilErr(t *testing.T) {
}
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.AttributeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.AttributeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rply := AttrSProcessEventReply{
AlteredFields: []string{utils.AccountField},
CGREvent: &utils.CGREvent{
@@ -260,7 +262,7 @@ func TestChargersprocessEventCallNilErr(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
cS := &ChargerService{
@@ -270,7 +272,7 @@ func TestChargersprocessEventCallNilErr(t *testing.T) {
cfg: cfg,
},
cfg: cfg,
- connMgr: NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr: NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): rpcInternal,
}),
}
@@ -332,13 +334,13 @@ func TestChargersprocessEventCallErr(t *testing.T) {
}
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.AttributeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.AttributeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
return utils.ErrNotFound
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
cS := &ChargerService{
@@ -348,7 +350,7 @@ func TestChargersprocessEventCallErr(t *testing.T) {
cfg: cfg,
},
cfg: cfg,
- connMgr: NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr: NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): rpcInternal,
}),
}
@@ -415,8 +417,8 @@ func TestChargersV1ProcessEventErrNotFound(t *testing.T) {
}
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.AttributeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.AttributeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rply := AttrSProcessEventReply{
AlteredFields: []string{utils.AccountField},
CGREvent: &utils.CGREvent{
@@ -432,7 +434,7 @@ func TestChargersV1ProcessEventErrNotFound(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
cS := &ChargerService{
@@ -442,7 +444,7 @@ func TestChargersV1ProcessEventErrNotFound(t *testing.T) {
cfg: cfg,
},
cfg: cfg,
- connMgr: NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr: NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): rpcInternal,
}),
}
@@ -455,7 +457,7 @@ func TestChargersV1ProcessEventErrNotFound(t *testing.T) {
reply := &[]*ChrgSProcessEventReply{}
experr := utils.ErrNotFound
- err := cS.V1ProcessEvent(args, reply)
+ err := cS.V1ProcessEvent(context.Background(), args, reply)
if err == nil || err != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -486,8 +488,8 @@ func TestChargersV1ProcessEventErrOther(t *testing.T) {
}
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- "invalidMethod": func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ "invalidMethod": func(ctx *context.Context, args, reply any) error {
rply := AttrSProcessEventReply{
AlteredFields: []string{utils.AccountField},
CGREvent: &utils.CGREvent{
@@ -503,7 +505,7 @@ func TestChargersV1ProcessEventErrOther(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
cS := &ChargerService{
@@ -513,7 +515,7 @@ func TestChargersV1ProcessEventErrOther(t *testing.T) {
cfg: cfg,
},
cfg: cfg,
- connMgr: NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr: NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): rpcInternal,
}),
}
@@ -527,7 +529,7 @@ func TestChargersV1ProcessEventErrOther(t *testing.T) {
exp := &[]*ChrgSProcessEventReply{}
experr := fmt.Sprintf("SERVER_ERROR: %s", rpcclient.ErrUnsupporteServiceMethod)
- err := cS.V1ProcessEvent(args, reply)
+ err := cS.V1ProcessEvent(context.Background(), args, reply)
if err == nil || err.Error() != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -563,8 +565,8 @@ func TestChargersV1ProcessEvent(t *testing.T) {
}
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.AttributeSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.AttributeSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
rply := AttrSProcessEventReply{
AlteredFields: []string{utils.AccountField},
CGREvent: &utils.CGREvent{
@@ -580,7 +582,7 @@ func TestChargersV1ProcessEvent(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
cS := &ChargerService{
@@ -590,7 +592,7 @@ func TestChargersV1ProcessEvent(t *testing.T) {
cfg: cfg,
},
cfg: cfg,
- connMgr: NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr: NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): rpcInternal,
}),
}
@@ -615,7 +617,7 @@ func TestChargersV1ProcessEvent(t *testing.T) {
},
},
}
- err := cS.V1ProcessEvent(args, reply)
+ err := cS.V1ProcessEvent(context.Background(), args, reply)
if err != nil {
t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
@@ -674,7 +676,7 @@ func TestChargersV1GetChargersForEventNilErr(t *testing.T) {
RunID: "*default",
},
}
- err := cS.V1GetChargersForEvent(args, reply)
+ err := cS.V1GetChargersForEvent(context.Background(), args, reply)
if err != nil {
t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
@@ -720,7 +722,7 @@ func TestChargersV1GetChargersForEventErr(t *testing.T) {
exp := &ChargerProfiles{}
experr := fmt.Sprintf("SERVER_ERROR: %s", utils.ErrNotImplemented)
- err := cS.V1GetChargersForEvent(args, reply)
+ err := cS.V1GetChargersForEvent(context.Background(), args, reply)
if err == nil || err.Error() != experr {
t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
diff --git a/engine/z_loader_it_test.go b/engine/z_loader_it_test.go
index c8da7b7b6..3db28b8dc 100644
--- a/engine/z_loader_it_test.go
+++ b/engine/z_loader_it_test.go
@@ -26,9 +26,9 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
var (
@@ -96,11 +96,15 @@ func testLoaderITInitDataDB(t *testing.T) {
if err = dataDbCsv.Flush(utils.EmptyString); err != nil {
t.Fatal("Error when flushing datadb")
}
- cacheChan := make(chan rpcclient.ClientConnector, 1)
- connMgr = NewConnManager(lCfg, map[string]chan rpcclient.ClientConnector{
+ cacheChan := make(chan birpc.ClientConnector, 1)
+ connMgr = NewConnManager(lCfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): cacheChan,
})
- cacheChan <- NewCacheS(lCfg, NewDataManager(dataDbCsv, lCfg.CacheCfg(), connMgr), nil)
+ srv, err := NewService(NewCacheS(lCfg, NewDataManager(dataDbCsv, lCfg.CacheCfg(), connMgr), nil))
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheChan <- srv
}
// Create/reset storage tariff plan tables, used as database connectin establishment also
diff --git a/engine/z_resources_test.go b/engine/z_resources_test.go
index 7c372f8d8..d632f2bed 100644
--- a/engine/z_resources_test.go
+++ b/engine/z_resources_test.go
@@ -28,6 +28,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/rpcclient"
@@ -944,10 +946,10 @@ func TestResourceV1AuthorizeResourceMissingStruct(t *testing.T) {
utils.OptsResourcesUnits: 20,
},
}
- if err := resService.V1AuthorizeResources(argsMissingTenant, reply); err != nil && err.Error() != "MANDATORY_IE_MISSING: [Event]" {
+ if err := resService.V1AuthorizeResources(context.Background(), argsMissingTenant, reply); err != nil && err.Error() != "MANDATORY_IE_MISSING: [Event]" {
t.Error(err.Error())
}
- if err := resService.V1AuthorizeResources(argsMissingUsageID, reply); err != nil && err.Error() != "MANDATORY_IE_MISSING: [Event]" {
+ if err := resService.V1AuthorizeResources(context.Background(), argsMissingUsageID, reply); err != nil && err.Error() != "MANDATORY_IE_MISSING: [Event]" {
t.Error(err.Error())
}
}
@@ -2648,16 +2650,17 @@ func TestResourceAllocateResourceOtherDB(t *testing.T) {
}
var reply string
exp := rProf.ID
- if err := rs.V1AllocateResources(&utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "ef0f554",
- Event: map[string]any{"": ""},
- APIOpts: map[string]any{
- "Resource": "RL_DB",
- utils.OptsResourcesUsageID: "56156434-2e44-4f16-a766-086f10b413cd",
- utils.OptsResourcesUnits: 1,
- },
- }, &reply); err != nil {
+ if err := rs.V1AllocateResources(context.Background(),
+ &utils.CGREvent{
+ Tenant: "cgrates.org",
+ ID: "ef0f554",
+ Event: map[string]any{"": ""},
+ APIOpts: map[string]any{
+ "Resource": "RL_DB",
+ utils.OptsResourcesUsageID: "56156434-2e44-4f16-a766-086f10b413cd",
+ utils.OptsResourcesUnits: 1,
+ },
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != exp {
t.Errorf("Expected: %q, received: %q", exp, reply)
@@ -2815,7 +2818,7 @@ func TestResourcesStoreResourceErrCache(t *testing.T) {
cfg.CacheCfg().Partitions[utils.CacheResources].Replicate = true
cfg.RPCConns()["test"] = &config.RPCConn{Conns: []*config.RemoteHost{{}}}
config.SetCgrConfig(cfg)
- dm := NewDataManager(NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items), cfg.CacheCfg(), NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector)))
+ dm := NewDataManager(NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items), cfg.CacheCfg(), NewConnManager(cfg, make(map[string]chan birpc.ClientConnector)))
rS := NewResourceService(dm, cfg, nil, nil)
Cache = NewCacheS(cfg, dm, nil)
r := &Resource{
@@ -2893,8 +2896,8 @@ func TestResourcesProcessThresholdsOK(t *testing.T) {
Cache.Clear(nil)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
exp := &utils.CGREvent{
Tenant: "cgrates.org",
ID: args.(*utils.CGREvent).ID,
@@ -2916,11 +2919,11 @@ func TestResourcesProcessThresholdsOK(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
rS := &ResourceService{
cgrcfg: cfg,
- connMgr: NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr: NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal,
}),
}
@@ -2960,8 +2963,8 @@ func TestResourcesProcessThresholdsCallErr(t *testing.T) {
Cache.Clear(nil)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
exp := &utils.CGREvent{
Tenant: "cgrates.org",
ID: args.(*utils.CGREvent).ID,
@@ -2983,11 +2986,11 @@ func TestResourcesProcessThresholdsCallErr(t *testing.T) {
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
rS := &ResourceService{
cgrcfg: cfg,
- connMgr: NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr: NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal,
}),
}
@@ -3232,7 +3235,7 @@ func TestResourcesV1ResourcesForEventOK(t *testing.T) {
},
}
var reply Resources
- if err := rS.V1ResourcesForEvent(args, &reply); err != nil {
+ if err := rS.V1GetResourcesForEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected: <%+v>, \nreceived: <%+v>",
@@ -3290,7 +3293,7 @@ func TestResourcesV1ResourcesForEventNotFound(t *testing.T) {
}
var reply Resources
- if err := rS.V1ResourcesForEvent(args, &reply); err == nil ||
+ if err := rS.V1GetResourcesForEvent(context.Background(), args, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -3336,7 +3339,7 @@ func TestResourcesV1ResourcesForEventMissingParameters(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [Event]`
var reply Resources
- if err := rS.V1ResourcesForEvent(nil, &reply); err == nil ||
+ if err := rS.V1GetResourcesForEvent(context.Background(), nil, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -3352,7 +3355,7 @@ func TestResourcesV1ResourcesForEventMissingParameters(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [ID]`
- if err := rS.V1ResourcesForEvent(args, &reply); err == nil ||
+ if err := rS.V1GetResourcesForEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -3366,7 +3369,7 @@ func TestResourcesV1ResourcesForEventMissingParameters(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [Event]`
- if err := rS.V1ResourcesForEvent(args, &reply); err == nil ||
+ if err := rS.V1GetResourcesForEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -3380,7 +3383,7 @@ func TestResourcesV1ResourcesForEventMissingParameters(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [UsageID]`
- if err := rS.V1ResourcesForEvent(args, &reply); err == nil ||
+ if err := rS.V1GetResourcesForEvent(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -3469,7 +3472,7 @@ func TestResourcesV1ResourcesForEventCacheReplyExists(t *testing.T) {
&utils.CachedRPCResponse{Result: &cacheReply, Error: nil},
nil, true, utils.NonTransactional)
var reply Resources
- if err := rS.V1ResourcesForEvent(args, &reply); err != nil {
+ if err := rS.V1GetResourcesForEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, cacheReply) {
t.Errorf("expected: <%+v>, \nreceived: <%+v>",
@@ -3561,7 +3564,7 @@ func TestResourcesV1ResourcesForEventCacheReplySet(t *testing.T) {
},
}
var reply Resources
- if err := rS.V1ResourcesForEvent(args, &reply); err != nil {
+ if err := rS.V1GetResourcesForEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected: <%+v>, \nreceived: <%+v>",
@@ -3642,7 +3645,7 @@ func TestResourcesV1GetResourceOK(t *testing.T) {
},
}
var reply Resource
- if err := rS.V1GetResource(args, &reply); err != nil {
+ if err := rS.V1GetResource(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected: <%+v>, \nreceived: <%+v>",
@@ -3698,7 +3701,7 @@ func TestResourcesV1GetResourceNotFound(t *testing.T) {
},
}
var reply Resource
- if err := rS.V1GetResource(args, &reply); err == nil ||
+ if err := rS.V1GetResource(context.Background(), args, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -3751,7 +3754,7 @@ func TestResourcesV1GetResourceMissingParameters(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [ID]`
var reply Resource
- if err := rS.V1GetResource(args, &reply); err == nil ||
+ if err := rS.V1GetResource(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -3824,7 +3827,7 @@ func TestResourcesV1GetResourceWithConfigOK(t *testing.T) {
},
}
var reply ResourceWithConfig
- if err := rS.V1GetResourceWithConfig(args, &reply); err != nil {
+ if err := rS.V1GetResourceWithConfig(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected: <%+v>, \nreceived: <%+v>",
@@ -3902,7 +3905,7 @@ func TestResourcesV1GetResourceWithConfigNilrPrfOK(t *testing.T) {
},
}
var reply ResourceWithConfig
- if err := rS.V1GetResourceWithConfig(args, &reply); err != nil {
+ if err := rS.V1GetResourceWithConfig(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, exp) {
t.Errorf("expected: <%+v>, \nreceived: <%+v>",
@@ -3960,7 +3963,7 @@ func TestResourcesV1GetResourceWithConfigNilrPrfProfileNotFound(t *testing.T) {
},
}
var reply ResourceWithConfig
- if err := rS.V1GetResourceWithConfig(args, &reply); err == nil ||
+ if err := rS.V1GetResourceWithConfig(context.Background(), args, &reply); err == nil ||
err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -4013,7 +4016,7 @@ func TestResourcesV1GetResourceWithConfigResourceNotFound(t *testing.T) {
},
}
var reply ResourceWithConfig
- if err := rS.V1GetResourceWithConfig(args, &reply); err == nil || err != utils.ErrNotFound {
+ if err := rS.V1GetResourceWithConfig(context.Background(), args, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
}
@@ -4064,7 +4067,7 @@ func TestResourcesV1GetResourceWithConfigMissingParameters(t *testing.T) {
TenantID: &utils.TenantID{},
}
var reply ResourceWithConfig
- if err := rS.V1GetResourceWithConfig(args, &reply); err == nil || err.Error() != experr {
+ if err := rS.V1GetResourceWithConfig(context.Background(), args, &reply); err == nil || err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
}
@@ -4108,7 +4111,7 @@ func TestResourcesV1AuthorizeResourcesOK(t *testing.T) {
}
var reply string
- if err := rS.V1AuthorizeResources(args, &reply); err != nil {
+ if err := rS.V1AuthorizeResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -4155,7 +4158,7 @@ func TestResourcesV1AuthorizeResourcesNotAuthorized(t *testing.T) {
}
var reply string
- if err := rS.V1AuthorizeResources(args, &reply); err == nil ||
+ if err := rS.V1AuthorizeResources(context.Background(), args, &reply); err == nil ||
err != utils.ErrResourceUnauthorized {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrResourceUnauthorized, err)
}
@@ -4201,7 +4204,7 @@ func TestResourcesV1AuthorizeResourcesNoMatch(t *testing.T) {
}
var reply string
- if err := rS.V1AuthorizeResources(args, &reply); err == nil ||
+ if err := rS.V1AuthorizeResources(context.Background(), args, &reply); err == nil ||
err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -4239,7 +4242,7 @@ func TestResourcesV1AuthorizeResourcesNilCGREvent(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [Event]`
var reply string
- if err := rS.V1AuthorizeResources(args, &reply); err == nil ||
+ if err := rS.V1AuthorizeResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -4284,7 +4287,7 @@ func TestResourcesV1AuthorizeResourcesMissingUsageID(t *testing.T) {
experr := `MANDATORY_IE_MISSING: [UsageID]`
var reply string
- if err := rS.V1AuthorizeResources(args, &reply); err == nil ||
+ if err := rS.V1AuthorizeResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -4363,7 +4366,7 @@ func TestResourcesV1AuthorizeResourcesCacheReplyExists(t *testing.T) {
nil, true, utils.NonTransactional)
var reply string
- if err := rS.V1AuthorizeResources(args, &reply); err != nil {
+ if err := rS.V1AuthorizeResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != cacheReply {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -4439,7 +4442,7 @@ func TestResourcesV1AuthorizeResourcesCacheReplySet(t *testing.T) {
}
var reply string
- if err := rS.V1AuthorizeResources(args, &reply); err != nil {
+ if err := rS.V1AuthorizeResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -4495,7 +4498,7 @@ func TestResourcesV1AllocateResourcesOK(t *testing.T) {
}
var reply string
- if err := rS.V1AllocateResources(args, &reply); err != nil {
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -4541,7 +4544,7 @@ func TestResourcesV1AllocateResourcesNoMatch(t *testing.T) {
}
var reply string
- if err := rS.V1AllocateResources(args, &reply); err == nil ||
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err == nil ||
err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -4586,7 +4589,7 @@ func TestResourcesV1AllocateResourcesMissingParameters(t *testing.T) {
var reply string
experr := `MANDATORY_IE_MISSING: [UsageID]`
- if err := rS.V1AllocateResources(args, &reply); err == nil ||
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -4601,7 +4604,7 @@ func TestResourcesV1AllocateResourcesMissingParameters(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [Event]`
- if err := rS.V1AllocateResources(args, &reply); err == nil ||
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -4618,7 +4621,7 @@ func TestResourcesV1AllocateResourcesMissingParameters(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [ID]`
- if err := rS.V1AllocateResources(args, &reply); err == nil ||
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -4697,7 +4700,7 @@ func TestResourcesV1AllocateResourcesCacheReplyExists(t *testing.T) {
nil, true, utils.NonTransactional)
var reply string
- if err := rS.V1AllocateResources(args, &reply); err != nil {
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != cacheReply {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -4773,7 +4776,7 @@ func TestResourcesV1AllocateResourcesCacheReplySet(t *testing.T) {
}
var reply string
- if err := rS.V1AllocateResources(args, &reply); err != nil {
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -4828,7 +4831,7 @@ func TestResourcesV1AllocateResourcesResAllocErr(t *testing.T) {
}
var reply string
- if err := rS.V1AllocateResources(args, &reply); err == nil ||
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err == nil ||
err != utils.ErrResourceUnavailable {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrResourceUnavailable, err)
}
@@ -4879,15 +4882,15 @@ func TestResourcesV1AllocateResourcesProcessThErr(t *testing.T) {
}
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
return utils.ErrExists
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
- cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal,
})
fltrs := NewFilterS(cfg, nil, dm)
@@ -4906,7 +4909,7 @@ func TestResourcesV1AllocateResourcesProcessThErr(t *testing.T) {
}
var reply string
- if err := rS.V1AllocateResources(args, &reply); err == nil ||
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err == nil ||
err != utils.ErrPartiallyExecuted {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrPartiallyExecuted, err)
}
@@ -4951,13 +4954,13 @@ func TestResourcesV1ReleaseResourcesOK(t *testing.T) {
},
}
var reply string
- if err := rS.V1AllocateResources(args, &reply); err != nil {
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
t.Errorf("Unexpected reply returned: %q", reply)
}
- if err := rS.V1ReleaseResources(args, &reply); err != nil {
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -5002,7 +5005,7 @@ func TestResourcesV1ReleaseResourcesUsageNotFound(t *testing.T) {
},
}
var reply string
- if err := rS.V1AllocateResources(args, &reply); err != nil {
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -5021,7 +5024,7 @@ func TestResourcesV1ReleaseResourcesUsageNotFound(t *testing.T) {
}
experr := `cannot find usage record with id: RU_Test2`
- if err := rS.V1ReleaseResources(args, &reply); err == nil ||
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -5066,7 +5069,7 @@ func TestResourcesV1ReleaseResourcesNoMatch(t *testing.T) {
}
var reply string
- if err := rS.V1ReleaseResources(args, &reply); err == nil ||
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err == nil ||
err != utils.ErrNotFound {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -5111,7 +5114,7 @@ func TestResourcesV1ReleaseResourcesMissingParameters(t *testing.T) {
var reply string
experr := `MANDATORY_IE_MISSING: [UsageID]`
- if err := rS.V1ReleaseResources(args, &reply); err == nil ||
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -5126,7 +5129,7 @@ func TestResourcesV1ReleaseResourcesMissingParameters(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [Event]`
- if err := rS.V1ReleaseResources(args, &reply); err == nil ||
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -5143,7 +5146,7 @@ func TestResourcesV1ReleaseResourcesMissingParameters(t *testing.T) {
}
experr = `MANDATORY_IE_MISSING: [ID]`
- if err := rS.V1ReleaseResources(args, &reply); err == nil ||
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -5222,7 +5225,7 @@ func TestResourcesV1ReleaseResourcesCacheReplyExists(t *testing.T) {
nil, true, utils.NonTransactional)
var reply string
- if err := rS.V1ReleaseResources(args, &reply); err != nil {
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != cacheReply {
t.Errorf("Unexpected reply returned: %q", reply)
@@ -5299,7 +5302,7 @@ func TestResourcesV1ReleaseResourcesCacheReplySet(t *testing.T) {
var reply string
experr := `cannot find usage record with id: RU_Test`
- if err := rS.V1ReleaseResources(args, &reply); err == nil ||
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -5323,15 +5326,15 @@ func TestResourcesV1ReleaseResourcesProcessThErr(t *testing.T) {
data := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(data, cfg.CacheCfg(), nil)
ccM := &ccMock{
- calls: map[string]func(args any, reply any) error{
- utils.ThresholdSv1ProcessEvent: func(args, reply any) error {
+ calls: map[string]func(ctx *context.Context, args any, reply any) error{
+ utils.ThresholdSv1ProcessEvent: func(ctx *context.Context, args, reply any) error {
return utils.ErrExists
},
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- ccM
- cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ cM := NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal,
})
@@ -5395,7 +5398,7 @@ func TestResourcesV1ReleaseResourcesProcessThErr(t *testing.T) {
t.Error(err)
}
- if err := rS.V1ReleaseResources(args, &reply); err == nil ||
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err == nil ||
err != utils.ErrPartiallyExecuted {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrPartiallyExecuted, err)
}
@@ -5416,7 +5419,7 @@ func TestResourcesStoreResourceError(t *testing.T) {
defer config.SetCgrConfig(dft)
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- dm := NewDataManager(db, cfg.CacheCfg(), NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector)))
+ dm := NewDataManager(db, cfg.CacheCfg(), NewConnManager(cfg, make(map[string]chan birpc.ClientConnector)))
rS := NewResourceService(dm, cfg, NewFilterS(cfg, nil, dm), nil)
@@ -5450,19 +5453,19 @@ func TestResourcesStoreResourceError(t *testing.T) {
}
cfg.DataDbCfg().Items[utils.MetaResources].Replicate = true
var reply string
- if err := rS.V1AllocateResources(args, &reply); err != utils.ErrDisconnected {
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err != utils.ErrDisconnected {
t.Error(err)
}
cfg.DataDbCfg().Items[utils.MetaResources].Replicate = false
- if err := rS.V1AllocateResources(args, &reply); err != nil {
+ if err := rS.V1AllocateResources(context.Background(), args, &reply); err != nil {
t.Error(err)
} else if reply != "Approved" {
t.Errorf("Unexpected reply returned: %q", reply)
}
cfg.DataDbCfg().Items[utils.MetaResources].Replicate = true
- if err := rS.V1ReleaseResources(args, &reply); err != utils.ErrDisconnected {
+ if err := rS.V1ReleaseResources(context.Background(), args, &reply); err != utils.ErrDisconnected {
t.Error(err)
}
}
@@ -5800,7 +5803,7 @@ func TestResourceMatchingResourcesForEventLocks3(t *testing.T) {
// config.SetCgrConfig(cfg)
// data := NewInternalDB(nil, nil, true,cfg.DataDbCfg().Items)
// dm := NewDataManager(data, cfg.CacheCfg(), nil)
-// connMgr = NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+// connMgr = NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
// Cache = NewCacheS(cfg, dm, nil)
// fltrs := NewFilterS(cfg, nil, dm)
@@ -6041,7 +6044,7 @@ func TestResourcesMatchingResourcesForEventCacheSetErr(t *testing.T) {
config.SetCgrConfig(cfg)
data := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr = NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ connMgr = NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
Cache = NewCacheS(cfg, dm, nil)
fltrs := NewFilterS(cfg, nil, dm)
@@ -6081,7 +6084,7 @@ func TestResourcesMatchingResourcesForEventFinalCacheSetErr(t *testing.T) {
config.SetCgrConfig(cfg)
data := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr = NewConnManager(cfg, make(map[string]chan rpcclient.ClientConnector))
+ connMgr = NewConnManager(cfg, make(map[string]chan birpc.ClientConnector))
Cache = NewCacheS(cfg, dm, nil)
fltrs := NewFilterS(cfg, nil, dm)
diff --git a/ers/amqpv1_it_test.go b/ers/amqpv1_it_test.go
index e47577690..a46b66876 100644
--- a/ers/amqpv1_it_test.go
+++ b/ers/amqpv1_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package ers
import (
- "context"
"flag"
"fmt"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
amqpv1 "github.com/Azure/go-amqp"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
diff --git a/ers/ers.go b/ers/ers.go
index 4a03809bc..68c806057 100644
--- a/ers/ers.go
+++ b/ers/ers.go
@@ -29,6 +29,7 @@ import (
"sync"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -228,7 +229,7 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent,
rdrCfg.Flags.ParamValue(utils.MetaRoutesMaxCost),
)
rply := new(sessions.V1AuthorizeReply)
- err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1AuthorizeEvent,
+ err = erS.connMgr.Call(context.TODO(), erS.cfg.ERsCfg().SessionSConns, utils.SessionSv1AuthorizeEvent,
authArgs, rply)
case utils.MetaInitiate:
initArgs := sessions.NewV1InitSessionArgs(
@@ -242,7 +243,7 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent,
rdrCfg.Flags.Has(utils.MetaAccounts),
cgrEv, rdrCfg.Flags.Has(utils.MetaFD))
rply := new(sessions.V1InitSessionReply)
- err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1InitiateSession,
+ err = erS.connMgr.Call(context.TODO(), erS.cfg.ERsCfg().SessionSConns, utils.SessionSv1InitiateSession,
initArgs, rply)
case utils.MetaUpdate:
updateArgs := sessions.NewV1UpdateSessionArgs(
@@ -251,7 +252,7 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent,
rdrCfg.Flags.Has(utils.MetaAccounts),
cgrEv, rdrCfg.Flags.Has(utils.MetaFD))
rply := new(sessions.V1UpdateSessionReply)
- err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1UpdateSession,
+ err = erS.connMgr.Call(context.TODO(), erS.cfg.ERsCfg().SessionSConns, utils.SessionSv1UpdateSession,
updateArgs, rply)
case utils.MetaTerminate:
terminateArgs := sessions.NewV1TerminateSessionArgs(
@@ -263,7 +264,7 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent,
rdrCfg.Flags.ParamsSlice(utils.MetaStats, utils.MetaIDs),
cgrEv, rdrCfg.Flags.Has(utils.MetaFD))
rply := utils.StringPointer("")
- err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1TerminateSession,
+ err = erS.connMgr.Call(context.TODO(), erS.cfg.ERsCfg().SessionSConns, utils.SessionSv1TerminateSession,
terminateArgs, rply)
case utils.MetaMessage:
evArgs := sessions.NewV1ProcessMessageArgs(
@@ -283,7 +284,7 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent,
rdrCfg.Flags.ParamValue(utils.MetaRoutesMaxCost),
)
rply := new(sessions.V1ProcessMessageReply) // need it so rpcclient can clone
- err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1ProcessMessage,
+ err = erS.connMgr.Call(context.TODO(), erS.cfg.ERsCfg().SessionSConns, utils.SessionSv1ProcessMessage,
evArgs, rply)
if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) {
cgrEv.Event[utils.Usage] = 0 // avoid further debits
@@ -297,7 +298,7 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent,
Paginator: cgrArgs,
}
rply := new(sessions.V1ProcessEventReply)
- err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1ProcessEvent,
+ err = erS.connMgr.Call(context.TODO(), erS.cfg.ERsCfg().SessionSConns, utils.SessionSv1ProcessEvent,
evArgs, rply)
case utils.MetaCDRs: // allow CDR processing
}
@@ -308,7 +309,7 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent,
if rdrCfg.Flags.Has(utils.MetaCDRs) &&
!rdrCfg.Flags.Has(utils.MetaDryRun) {
rplyCDRs := utils.StringPointer("")
- err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1ProcessCDR,
+ err = erS.connMgr.Call(context.TODO(), erS.cfg.ERsCfg().SessionSConns, utils.SessionSv1ProcessCDR,
cgrEv, rplyCDRs)
}
diff --git a/ers/ers_it_test.go b/ers/ers_it_test.go
index e78158430..2b0f26fc0 100644
--- a/ers/ers_it_test.go
+++ b/ers/ers_it_test.go
@@ -33,6 +33,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/rpcclient"
"github.com/cgrates/cgrates/config"
@@ -714,7 +716,7 @@ type testMockClients struct {
calls map[string]func(args any, reply any) error
}
-func (sT *testMockClients) Call(method string, arg any, rply any) error {
+func (sT *testMockClients) Call(ctx *context.Context, method string, arg any, rply any) error {
if call, has := sT.calls[method]; !has {
return rpcclient.ErrUnsupporteServiceMethod
} else {
@@ -739,9 +741,9 @@ func TestERsProcessEvent11(t *testing.T) {
},
},
}
- clientChan := make(chan rpcclient.ClientConnector, 1)
+ clientChan := make(chan birpc.ClientConnector, 1)
clientChan <- testMockClient
- connMng := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMng := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS): clientChan,
})
srv := NewERService(cfg, fltrS, connMng)
diff --git a/ers/ers_reload_it_test.go b/ers/ers_reload_it_test.go
index 683a37a6a..3d23ebb62 100644
--- a/ers/ers_reload_it_test.go
+++ b/ers/ers_reload_it_test.go
@@ -21,11 +21,13 @@ along with this program. If not, see
package ers
import (
- "net/rpc"
"os"
"path"
"testing"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -34,7 +36,7 @@ import (
var (
reloadCfgPath string
reloadCfg *config.CGRConfig
- reloadRPC *rpc.Client
+ reloadRPC *birpc.Client
ersReloadConfigDIR string
reloadTests = []func(t *testing.T){
@@ -129,7 +131,7 @@ func testReloadVerifyDisabledReaders(t *testing.T) {
func testReloadReloadConfigFromPath(t *testing.T) {
var reply string
- if err := reloadRPC.Call(utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+ if err := reloadRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
Path: path.Join(*dataDir, "conf", "samples", "ers_reload", "first_reload"),
Section: config.ERsJson,
}, &reply); err != nil {
@@ -141,7 +143,7 @@ func testReloadReloadConfigFromPath(t *testing.T) {
func testReloadVerifyFirstReload(t *testing.T) {
var reply map[string]any
- if err := reloadRPC.Call(utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
+ if err := reloadRPC.Call(context.Background(), utils.ConfigSv1GetConfig, &config.SectionWithAPIOpts{
Section: config.ERsJson,
}, &reply); err != nil {
t.Error(err)
diff --git a/ers/filecsv_it_test.go b/ers/filecsv_it_test.go
index 86b5bb446..ca5f75515 100644
--- a/ers/filecsv_it_test.go
+++ b/ers/filecsv_it_test.go
@@ -22,13 +22,15 @@ package ers
import (
"fmt"
- "net/rpc"
"os"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -39,7 +41,7 @@ var (
csvCfgPath string
csvCfgDIR string
csvCfg *config.CGRConfig
- csvRPC *rpc.Client
+ csvRPC *birpc.Client
fileContent1 = `dbafe9c8614c785a65aabd116dd3959c3c56f7f6,default,*voice,dsafdsaf,*rated,*out,cgrates.org,call,1001,1001,+4986517174963,2013-11-07 08:42:25 +0000 UTC,2013-11-07 08:42:26 +0000 UTC,10s,1.0100,val_extra3,"",val_extra1
dbafe9c8614c785a65aabd116dd3959c3c56f7f7,default,*voice,dsafdsag,*rated,*out,cgrates.org,call,1001,1001,+4986517174964,2013-11-07 09:42:25 +0000 UTC,2013-11-07 09:42:26 +0000 UTC,20s,1.0100,val_extra3,"",val_extra1
@@ -143,7 +145,7 @@ func testCsvITLoadTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{
FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
var loadInst utils.LoadInstance
- if err := csvRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := csvRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
attrs, &loadInst); err != nil {
t.Error(err)
}
@@ -179,14 +181,14 @@ func testCsvITHandleSessionFile(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 10.0
- if err := csvRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := csvRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := csvRPC.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{},
+ if err := csvRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{},
&aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -203,7 +205,7 @@ func testCsvITHandleSessionFile(t *testing.T) {
func testCsvITCheckSession(t *testing.T) {
time.Sleep(200 * time.Millisecond)
aSessions := make([]*sessions.ExternalSession, 0)
- if err := csvRPC.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
+ if err := csvRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 3 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
@@ -220,7 +222,7 @@ func testCsvITTerminateSession(t *testing.T) {
}
time.Sleep(100 * time.Millisecond)
aSessions := make([]*sessions.ExternalSession, 0)
- if err := csvRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := csvRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -247,7 +249,7 @@ func testCsvITAnalyseCDRs(t *testing.T) {
OriginIDs: []string{"SessionFromCsv"},
},
}
- if err := csvRPC.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := csvRPC.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -258,7 +260,7 @@ func testCsvITAnalyseCDRs(t *testing.T) {
}
args.RPCCDRsFilter = &utils.RPCCDRsFilter{RunIDs: []string{"SupplierCharges"},
OriginIDs: []string{"SessionFromCsv"}}
- if err := csvRPC.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := csvRPC.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -271,7 +273,7 @@ func testCsvITAnalyseCDRs(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 9.85
- if err := csvRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := csvRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -299,7 +301,7 @@ func testCsvITAnalyzeFilteredCDR(t *testing.T) {
Sources: []string{"ers_csv"},
},
}
- if err := csvRPC.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := csvRPC.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 2 {
t.Error("Unexpected number of CDRs returned: ", utils.ToJSON(cdrs))
@@ -355,7 +357,7 @@ func testCsvITAnalyzeReaderWithFilter(t *testing.T) {
Sources: []string{"ers_template_combined"},
},
}
- if err := csvRPC.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := csvRPC.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 2 {
t.Error("Unexpected number of CDRs returned: ", utils.ToJSON(cdrs))
diff --git a/ers/filefwv_it_test.go b/ers/filefwv_it_test.go
index 6ec3f73ef..df431a04b 100644
--- a/ers/filefwv_it_test.go
+++ b/ers/filefwv_it_test.go
@@ -23,13 +23,15 @@ package ers
import (
"fmt"
- "net/rpc"
"os"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -40,7 +42,7 @@ var (
fwvCfgPath string
fwvCfgDIR string
fwvCfg *config.CGRConfig
- fwvRPC *rpc.Client
+ fwvRPC *birpc.Client
fwvTests = []func(t *testing.T){
testCreateDirs,
@@ -125,7 +127,7 @@ func testFWVITLoadTPFromFolder(t *testing.T) {
},
}
var result string
- if err := fwvRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := fwvRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -184,12 +186,12 @@ func testFWVITHandleCdr1File(t *testing.T) {
func testFWVITAnalyseCDRs(t *testing.T) {
time.Sleep(time.Second)
var reply []*engine.ExternalCDR
- if err := fwvRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil {
+ if err := fwvRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 29 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
}
- if err := fwvRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginIDs: []string{"CDR0000010"}}, &reply); err != nil {
+ if err := fwvRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginIDs: []string{"CDR0000010"}}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
diff --git a/ers/filejson_it_test.go b/ers/filejson_it_test.go
index bc99c6d4d..53987b798 100644
--- a/ers/filejson_it_test.go
+++ b/ers/filejson_it_test.go
@@ -24,13 +24,15 @@ package ers
import (
"encoding/json"
"fmt"
- "net/rpc"
"os"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
v2 "github.com/cgrates/cgrates/apier/v2"
@@ -44,7 +46,7 @@ var (
jsonCfgPath string
jsonCfgDIR string
jsonCfg *config.CGRConfig
- jsonRPC *rpc.Client
+ jsonRPC *birpc.Client
fileContent = `
{
@@ -148,7 +150,7 @@ func testJSONAddData(t *testing.T) {
utils.CacheOpt: utils.MetaReload,
},
}
- if err := jsonRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
+ if err := jsonRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -158,7 +160,7 @@ func testJSONAddData(t *testing.T) {
Tenant: "cgrates.org",
Account: "voiceAccount",
}
- if err := jsonRPC.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+ if err := jsonRPC.Call(context.Background(), utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
t.Fatal(err)
}
attrs := &utils.AttrSetBalance{
@@ -172,12 +174,12 @@ func testJSONAddData(t *testing.T) {
utils.Weight: 10.0,
},
}
- if err := jsonRPC.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := jsonRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
var acnt *engine.Account
- if err := jsonRPC.Call(utils.APIerSv2GetAccount,
+ if err := jsonRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "voiceAccount"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaVoice][0].Value != 600000000000 {
@@ -205,7 +207,7 @@ func testJSONVerify(t *testing.T) {
OriginIDs: []string{"testJsonCDR"},
},
}
- if err := jsonRPC.Call(utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
+ if err := jsonRPC.Call(context.Background(), utils.CDRsV1GetCDRs, args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -216,7 +218,7 @@ func testJSONVerify(t *testing.T) {
}
var acnt *engine.Account
- if err := jsonRPC.Call(utils.APIerSv2GetAccount,
+ if err := jsonRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "voiceAccount"}, &acnt); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 || acnt.BalanceMap[utils.MetaVoice][0].Value != 480000000000 {
diff --git a/ers/filexml_it_test.go b/ers/filexml_it_test.go
index 22964c286..cc61ffc74 100644
--- a/ers/filexml_it_test.go
+++ b/ers/filexml_it_test.go
@@ -22,13 +22,15 @@ package ers
import (
"fmt"
- "net/rpc"
"os"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/config"
@@ -39,7 +41,7 @@ var (
xmlCfgPath string
xmlCfgDIR string
xmlCfg *config.CGRConfig
- xmlRPC *rpc.Client
+ xmlRPC *birpc.Client
xmlTests = []func(t *testing.T){
testCreateDirs,
@@ -115,7 +117,7 @@ func testXMLITLoadTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{
FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
var loadInst utils.LoadInstance
- if err := xmlRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := xmlRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
attrs, &loadInst); err != nil {
t.Error(err)
}
@@ -270,12 +272,12 @@ func testXMLITHandleCdr1File(t *testing.T) {
func testXmlITAnalyseCDRs(t *testing.T) {
var reply []*engine.ExternalCDR
- if err := xmlRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil {
+ if err := xmlRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 6 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
}
- if err := xmlRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{DestinationPrefixes: []string{"+4915117174963"}}, &reply); err != nil {
+ if err := xmlRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{DestinationPrefixes: []string{"+4915117174963"}}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 3 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
diff --git a/ers/flatstore_it_test.go b/ers/flatstore_it_test.go
index 8001397fd..4cd302b66 100644
--- a/ers/flatstore_it_test.go
+++ b/ers/flatstore_it_test.go
@@ -22,13 +22,15 @@ along with this program. If not, see
package ers
import (
- "net/rpc"
"os"
"path"
"path/filepath"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
@@ -40,7 +42,7 @@ var (
flatstoreCfgPath string
flatstoreCfgDIR string
flatstoreCfg *config.CGRConfig
- flatstoreRPC *rpc.Client
+ flatstoreRPC *birpc.Client
fullSuccessfull = `INVITE|2daec40c|548625ac|dd0c4c617a9919d29a6175cdff223a9e@0:0:0:0:0:0:0:0|200|OK|1436454408|*prepaid|1001|1002||3401:2069362475
BYE|2daec40c|548625ac|dd0c4c617a9919d29a6175cdff223a9e@0:0:0:0:0:0:0:0|200|OK|1436454410|||||3401:2069362475
@@ -167,7 +169,7 @@ func testFlatstoreITLoadTPFromFolder(t *testing.T) {
},
}
var result string
- if err := flatstoreRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := flatstoreRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -229,13 +231,13 @@ func testFlatstoreITHandleCdr1File(t *testing.T) {
func testFlatstoreITAnalyseCDRs(t *testing.T) {
var reply []*engine.ExternalCDR
- if err := flatstoreRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil {
+ if err := flatstoreRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 8 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
t.Error(utils.ToJSON(reply))
}
- if err := flatstoreRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{MinUsage: "1"}, &reply); err != nil {
+ if err := flatstoreRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{MinUsage: "1"}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 5 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
@@ -273,7 +275,7 @@ func testFlatstoreITHandleCdr2File(t *testing.T) {
func testFlatstoreITAnalyseCDRs2(t *testing.T) {
var reply []*engine.ExternalCDR
- if err := flatstoreRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginHosts: []string{"flatStoreACK"}, MinUsage: "1"}, &reply); err != nil {
+ if err := flatstoreRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginHosts: []string{"flatStoreACK"}, MinUsage: "1"}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 4 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
@@ -310,12 +312,12 @@ func testFlatstoreITHandleCdr3File(t *testing.T) {
func testFlatstoreITAnalyseCDRs3(t *testing.T) {
var reply []*engine.ExternalCDR
- if err := flatstoreRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginHosts: []string{"flatstoreMMErs"}}, &reply); err != nil {
+ if err := flatstoreRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginHosts: []string{"flatstoreMMErs"}}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 3 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
}
- if err := flatstoreRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginHosts: []string{"flatstoreMMErs"}, MinUsage: "1"}, &reply); err != nil {
+ if err := flatstoreRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{OriginHosts: []string{"flatstoreMMErs"}, MinUsage: "1"}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
diff --git a/ers/kafka_it_test.go b/ers/kafka_it_test.go
index 855e7e1f6..a867263c3 100644
--- a/ers/kafka_it_test.go
+++ b/ers/kafka_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package ers
import (
- "context"
"fmt"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
diff --git a/ers/lib_test.go b/ers/lib_test.go
index aa3e19bc4..b01089744 100644
--- a/ers/lib_test.go
+++ b/ers/lib_test.go
@@ -21,11 +21,11 @@ package ers
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
"os"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -37,12 +37,12 @@ var (
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/ers/partial_csv_it_test.go b/ers/partial_csv_it_test.go
index f7c6bee3f..53037a92b 100644
--- a/ers/partial_csv_it_test.go
+++ b/ers/partial_csv_it_test.go
@@ -22,13 +22,15 @@ along with this program. If not, see
package ers
import (
- "net/rpc"
"os"
"path"
"strings"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
@@ -40,7 +42,7 @@ var (
partCfgPath string
partCfgDIR string
partCfg *config.CGRConfig
- partRPC *rpc.Client
+ partRPC *birpc.Client
partTests = []func(t *testing.T){
testCreateDirs,
@@ -136,7 +138,7 @@ func testPartITLoadTPFromFolder(t *testing.T) {
},
}
var result string
- if err := partRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := partRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -201,17 +203,17 @@ func testPartITVerifyFiles(t *testing.T) {
func testPartITAnalyseCDRs(t *testing.T) {
var reply []*engine.ExternalCDR
- if err := partRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil {
+ if err := partRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
}
- if err := partRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{DestinationPrefixes: []string{"+4986517174963"}}, &reply); err != nil {
+ if err := partRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{DestinationPrefixes: []string{"+4986517174963"}}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
}
- if err := partRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{DestinationPrefixes: []string{"+4986517174960"}}, &reply); err != nil {
+ if err := partRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{DestinationPrefixes: []string{"+4986517174960"}}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
diff --git a/general_tests/a1_it_test.go b/general_tests/a1_it_test.go
index 2dccc7ab2..6766d9be3 100644
--- a/general_tests/a1_it_test.go
+++ b/general_tests/a1_it_test.go
@@ -23,12 +23,13 @@ package general_tests
import (
"encoding/json"
"fmt"
- "net/rpc"
"path"
"sync"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
@@ -41,7 +42,7 @@ var (
a1ConfigDir string
a1CfgPath string
a1Cfg *config.CGRConfig
- a1rpc *rpc.Client
+ a1rpc *birpc.Client
sTestsA1it = []func(t *testing.T){
testA1itLoadConfig,
@@ -112,7 +113,7 @@ func testA1itRPCConn(t *testing.T) {
func testA1itLoadTPFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "a1")}
- if err := a1rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -131,7 +132,7 @@ func testA1itLoadTPFromFolder(t *testing.T) {
},
}
var cc engine.CallCost
- if err := a1rpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.ResponderGetCost, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.Cost != 0.0 {
t.Errorf("Calling Responder.GetCost got callcost: %v", cc)
@@ -148,7 +149,7 @@ func testA1itLoadTPFromFolder(t *testing.T) {
},
}
var result string
- if err := a1rpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -166,14 +167,14 @@ func testA1itAddBalance1(t *testing.T) {
utils.ID: "rpdata1_test",
},
}
- if err := a1rpc.Call(utils.APIerSv1AddBalance, argAdd, &reply); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv1AddBalance, argAdd, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf(reply)
}
argGet := &utils.AttrGetAccount{Tenant: argAdd.Tenant, Account: argAdd.Account}
var acnt *engine.Account
- if err := a1rpc.Call(utils.APIerSv2GetAccount, argGet, &acnt); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv2GetAccount, argGet, &acnt); err != nil {
t.Error(err)
} else {
if acnt.BalanceMap[utils.MetaData].GetTotalValue() != argAdd.Value { // We expect 11.5 since we have added in the previous test 1.5
@@ -213,7 +214,7 @@ func testA1itDataSession1(t *testing.T) {
}
var initRpl *sessions.V1InitSessionReply
- if err := a1rpc.Call(utils.SessionSv1InitiateSession,
+ if err := a1rpc.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Fatal(err)
}
@@ -253,7 +254,7 @@ func testA1itDataSession1(t *testing.T) {
usage = 2097152
var updateRpl *sessions.V1UpdateSessionReply
- if err := a1rpc.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage == nil || *updateRpl.MaxUsage != usage {
@@ -285,11 +286,11 @@ func testA1itDataSession1(t *testing.T) {
}
var rpl string
- if err := a1rpc.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := a1rpc.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
- if err := a1rpc.Call(utils.SessionSv1ProcessCDR, termArgs.CGREvent, &rpl); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.SessionSv1ProcessCDR, termArgs.CGREvent, &rpl); err != nil {
t.Error(err)
} else if rpl != utils.OK {
t.Errorf("Received reply: %s", rpl)
@@ -299,7 +300,7 @@ func testA1itDataSession1(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}
- if err := a1rpc.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -322,7 +323,7 @@ func testA1itDataSession1(t *testing.T) {
}
expBalance := float64(10000000000 - 2202800) // initial - total usage
var acnt *engine.Account
- if err := a1rpc.Call(utils.APIerSv2GetAccount,
+ if err := a1rpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "rpdata1"}, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != expBalance { // We expect 11.5 since we have added in the previous test 1.5
@@ -346,7 +347,7 @@ func testA1itConcurrentAPs(t *testing.T) {
ActionPlanIDs: []string{"PACKAGE_1"},
}
var reply string
- if err := a1rpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
t.Error(err)
}
wg.Done()
@@ -355,7 +356,7 @@ func testA1itConcurrentAPs(t *testing.T) {
wg.Wait()
// Make sure action plan was properly set
var aps []*engine.ActionPlan
- if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_1"}, &aps); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_1"}, &aps); err != nil {
t.Error(err)
} else if len(aps[0].AccountIDs.Slice()) != len(acnts) {
t.Errorf("Received: %+v", aps[0])
@@ -365,7 +366,7 @@ func testA1itConcurrentAPs(t *testing.T) {
wg.Add(3)
go func(acnt string) {
var atms []*v1.AccountActionTiming
- if err := a1rpc.Call(utils.APIerSv1GetAccountActionPlan,
+ if err := a1rpc.Call(context.Background(), utils.APIerSv1GetAccountActionPlan,
&utils.TenantAccount{Tenant: "cgrates.org", Account: acnt}, &atms); err != nil {
t.Error(err)
//} else if len(atms) != 2 || atms[0].ActionPlanId != "PACKAGE_1" {
@@ -375,7 +376,7 @@ func testA1itConcurrentAPs(t *testing.T) {
}(acnt)
go func(acnt string) {
var reply string
- if err := a1rpc.Call(utils.APIerSv1RemoveActionTiming,
+ if err := a1rpc.Call(context.Background(), utils.APIerSv1RemoveActionTiming,
&v1.AttrRemoveActionTiming{Tenant: "cgrates.org", Account: acnt, ActionPlanId: "PACKAGE_1"}, &reply); err != nil {
t.Error(err)
}
@@ -388,7 +389,7 @@ func testA1itConcurrentAPs(t *testing.T) {
ActionPlanIDs: []string{"PACKAGE_2"},
}
var reply string
- if err := a1rpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
t.Error(err)
}
wg.Done()
@@ -397,13 +398,13 @@ func testA1itConcurrentAPs(t *testing.T) {
wg.Wait()
// Make sure action plan was properly rem/set
aps = []*engine.ActionPlan{}
- if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_1"}, &aps); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_1"}, &aps); err != nil {
t.Error(err)
} else if len(aps[0].AccountIDs.Slice()) != 0 {
t.Errorf("Received: %+v", aps[0])
}
aps = []*engine.ActionPlan{}
- if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_2"}, &aps); err != nil {
+ if err := a1rpc.Call(context.Background(), utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_2"}, &aps); err != nil {
t.Error(err)
} else if len(aps[0].AccountIDs.Slice()) != len(acnts) {
t.Errorf("Received: %+v", aps[0])
diff --git a/general_tests/accounts_it_test.go b/general_tests/accounts_it_test.go
index d37f27efc..2b7524a7b 100644
--- a/general_tests/accounts_it_test.go
+++ b/general_tests/accounts_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -34,7 +35,7 @@ import (
var (
accCfgPath string
accCfg *config.CGRConfig
- accRpc *rpc.Client
+ accRpc *birpc.Client
accConfDIR string //run tests for specific configuration
account *engine.Account
accDelay int
@@ -118,7 +119,7 @@ func testV1AccRpcConn(t *testing.T) {
func testV1AccGetAccountBeforeSet(t *testing.T) {
var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -128,7 +129,7 @@ func testV1AccGetAccountBeforeSet(t *testing.T) {
func testV1AccLoadTarrifPlans(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := accRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := accRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -138,7 +139,7 @@ func testV1AccLoadTarrifPlans(t *testing.T) {
func testV1AccGetAccountAfterLoad(t *testing.T) {
var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
&reply); err != nil {
t.Error(err)
@@ -147,7 +148,7 @@ func testV1AccGetAccountAfterLoad(t *testing.T) {
func testV1AccRemAccount(t *testing.T) {
var reply string
- if err := accRpc.Call(utils.APIerSv1RemoveAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv1RemoveAccount,
&utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "1001"},
&reply); err != nil {
t.Error(err)
@@ -158,7 +159,7 @@ func testV1AccRemAccount(t *testing.T) {
func testV1AccGetAccountAfterDelete(t *testing.T) {
var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -167,7 +168,7 @@ func testV1AccGetAccountAfterDelete(t *testing.T) {
func testV1AccSetAccount(t *testing.T) {
var reply string
- if err := accRpc.Call(utils.APIerSv2SetAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv2SetAccount,
&utils.AttrSetAccount{Tenant: "cgrates.org", Account: "testacc"}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -177,7 +178,7 @@ func testV1AccSetAccount(t *testing.T) {
func testV1AccGetAccountAfterSet(t *testing.T) {
var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testacc"}, &reply); err != nil {
t.Error(err)
}
@@ -185,7 +186,7 @@ func testV1AccGetAccountAfterSet(t *testing.T) {
func testV1AccRemAccountSet(t *testing.T) {
var reply string
- if err := accRpc.Call(utils.APIerSv1RemoveAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv1RemoveAccount,
&utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "testacc"},
&reply); err != nil {
t.Error(err)
@@ -196,7 +197,7 @@ func testV1AccRemAccountSet(t *testing.T) {
func testV1AccGetAccountSetAfterDelete(t *testing.T) {
var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testacc"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -207,7 +208,7 @@ func testV1AccGetAccountSetAfterDelete(t *testing.T) {
Need to investigate for redis why didn't return not found
func testV1AccRemAccountAfterDelete(t *testing.T) {
var reply string
- if err := accRpc.Call(utils.APIerSv1RemoveAccount,
+ if err := accRpc.Call(context.Background(),utils.APIerSv1RemoveAccount,
&utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "testacc"},
&reply); err == nil || err.Error() != utils.NewErrServerError(utils.ErrNotFound).Error() {
t.Error(err)
@@ -220,7 +221,7 @@ func testV1AccMonthly(t *testing.T) {
timeAfter := time.Now().Add(10*time.Second).AddDate(0, 1, 0)
timeBefore := time.Now().Add(-10*time.Second).AddDate(0, 1, 0)
var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
+ if err := accRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1002"},
&reply); err != nil {
t.Error(err)
@@ -244,7 +245,7 @@ func testV1AccSendToThreshold(t *testing.T) {
{Identifier: utils.MetaDisableAccount},
{Identifier: utils.MetaLog},
}}
- if err := accRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := accRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -264,7 +265,7 @@ func testV1AccSendToThreshold(t *testing.T) {
},
}
- if err := accRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+ if err := accRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -279,7 +280,7 @@ func testV1AccSendToThreshold(t *testing.T) {
utils.ID: "testAccSetBalance",
},
}
- if err := accRpc.Call(utils.APIerSv1SetBalance, attrs, &reply); err != nil {
+ if err := accRpc.Call(context.Background(), utils.APIerSv1SetBalance, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetBalance received: %s", reply)
@@ -293,7 +294,7 @@ func testV1AccSendToThreshold(t *testing.T) {
Tenant: "cgrates.org",
Account: "testAccThreshold",
}
- if err := accRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := accRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.Disabled != true {
t.Errorf("Expecting: true, received: %v", acnt.Disabled)
diff --git a/general_tests/accountswiththresholds_it_test.go b/general_tests/accountswiththresholds_it_test.go
index af0d84e8d..35a71d3e8 100644
--- a/general_tests/accountswiththresholds_it_test.go
+++ b/general_tests/accountswiththresholds_it_test.go
@@ -21,12 +21,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -35,7 +36,7 @@ import (
var (
accWThdCfgPath string
accWThdCfg *config.CGRConfig
- accWThdRpc *rpc.Client
+ accWThdRpc *birpc.Client
accWThdConfDIR string //run tests for specific configuration
accWThdDelay int
@@ -123,7 +124,7 @@ func testAccWThdSetThresholdProfile(t *testing.T) {
},
}
var reply string
- if err := accWThdRpc.Call(utils.APIerSv1SetThresholdProfile, ThdPrf, &reply); err != nil {
+ if err := accWThdRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, ThdPrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -134,7 +135,7 @@ func testAccWThdSetThresholdProfile(t *testing.T) {
}
var result1 *engine.ThresholdProfile
- if err := accWThdRpc.Call(utils.APIerSv1GetThresholdProfile, args, &result1); err != nil {
+ if err := accWThdRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile, args, &result1); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result1, ThdPrf.ThresholdProfile) {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", utils.ToJSON(ThdPrf.ThresholdProfile), utils.ToJSON(result1))
@@ -154,7 +155,7 @@ func testAccWThdGetThresholdBeforeDebit(t *testing.T) {
}
var result2 *engine.Threshold
- if err := accWThdRpc.Call(utils.ThresholdSv1GetThreshold, &utils.TenantIDWithAPIOpts{TenantID: args}, &result2); err != nil {
+ if err := accWThdRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold, &utils.TenantIDWithAPIOpts{TenantID: args}, &result2); err != nil {
t.Error(err)
} else if result2.Snooze = expThd.Snooze; !reflect.DeepEqual(result2, expThd) {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", utils.ToJSON(expThd), utils.ToJSON(result2))
@@ -172,7 +173,7 @@ func testAccWThdSetBalance(t *testing.T) {
},
}
var reply string
- if err := accWThdRpc.Call(utils.APIerSv2SetBalance, args, &reply); err != nil {
+ if err := accWThdRpc.Call(context.Background(), utils.APIerSv2SetBalance, args, &reply); err != nil {
t.Error("Got error on SetBalance: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling SetBalance received: %s", reply)
@@ -186,7 +187,7 @@ func testAccWThdGetAccountBeforeDebit(t *testing.T) {
Tenant: "cgrates.org",
Account: "1002",
}
- if err := accWThdRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := accWThdRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != exp {
t.Errorf("Expecting: %v, received: %v",
@@ -211,7 +212,7 @@ func testAccWThdDebit1(t *testing.T) {
RunID: utils.MetaDefault,
}
cc := new(engine.CallCost)
- err = accWThdRpc.Call(utils.ResponderMaxDebit, &engine.CallDescriptorWithAPIOpts{
+ err = accWThdRpc.Call(context.Background(), utils.ResponderMaxDebit, &engine.CallDescriptorWithAPIOpts{
CallDescriptor: cd,
}, cc)
if err != nil {
@@ -236,7 +237,7 @@ func testAccWThdDebit2(t *testing.T) {
RunID: utils.MetaDefault,
}
cc := new(engine.CallCost)
- err = accWThdRpc.Call(utils.ResponderMaxDebit, &engine.CallDescriptorWithAPIOpts{
+ err = accWThdRpc.Call(context.Background(), utils.ResponderMaxDebit, &engine.CallDescriptorWithAPIOpts{
CallDescriptor: cd,
}, cc)
if err != nil {
@@ -251,7 +252,7 @@ func testAccWThdGetAccountAfterDebit(t *testing.T) {
Tenant: "cgrates.org",
Account: "1002",
}
- if err := accWThdRpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := accWThdRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != exp {
t.Errorf("Expecting: %v, received: %v",
@@ -261,7 +262,7 @@ func testAccWThdGetAccountAfterDebit(t *testing.T) {
func testAccWThdGetThresholdAfterDebit(t *testing.T) {
var result2 *engine.Threshold
- if err := accWThdRpc.Call(utils.ThresholdSv1GetThreshold, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1002"}}, &result2); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := accWThdRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1002"}}, &result2); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
diff --git a/general_tests/all_cfg_sect_rld_it_test.go b/general_tests/all_cfg_sect_rld_it_test.go
index e6d411ba4..4732a0f80 100644
--- a/general_tests/all_cfg_sect_rld_it_test.go
+++ b/general_tests/all_cfg_sect_rld_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -35,7 +36,7 @@ var (
testSectCfgDir string
testSectCfgPath string
testSectCfg *config.CGRConfig
- testSectRPC *rpc.Client
+ testSectRPC *birpc.Client
testSectTests = []func(t *testing.T){
testSectLoadConfig,
@@ -153,13 +154,13 @@ func testSectRPCConn(t *testing.T) {
func testSectConfigSReloadCores(t *testing.T) {
var replyPingBf string
- if err := testSectRPC.Call(utils.CoreSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.CoreSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
t.Error(err)
} else if replyPingBf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingBf)
}
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}",
}, &reply); err != nil {
@@ -169,7 +170,7 @@ func testSectConfigSReloadCores(t *testing.T) {
}
cfgStr := "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CoreSCfgJson,
}, &rpl); err != nil {
@@ -179,7 +180,7 @@ func testSectConfigSReloadCores(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.CoreSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.CoreSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -189,7 +190,7 @@ func testSectConfigSReloadCores(t *testing.T) {
func testSectConfigSReloadRPCConns(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"rpc_conns\":{\"*bijson_localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2014\",\"transport\":\"*birpc_json\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*birpc_internal\":{\"conns\":[{\"address\":\"*birpc_internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*internal\":{\"conns\":[{\"address\":\"*internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2012\",\"transport\":\"*json\"}],\"poolSize\":0,\"strategy\":\"*first\"}}}",
}, &reply); err != nil {
@@ -199,7 +200,7 @@ func testSectConfigSReloadRPCConns(t *testing.T) {
}
cfgStr := "{\"rpc_conns\":{\"*bijson_localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2014\",\"transport\":\"*birpc_json\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*birpc_internal\":{\"conns\":[{\"address\":\"*birpc_internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*internal\":{\"conns\":[{\"address\":\"*internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2012\",\"transport\":\"*json\"}],\"poolSize\":0,\"strategy\":\"*first\"}}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.RPCConnsJsonName,
}, &rpl); err != nil {
@@ -212,7 +213,7 @@ func testSectConfigSReloadRPCConns(t *testing.T) {
func testSectConfigSReloadDataDB(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"data_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"10\",\"db_password\":\"\",\"db_port\":6379,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*account_action_plans\":{\"remote\":false,\"replicate\":false},\"*accounts\":{\"remote\":false,\"replicate\":false},\"*action_plans\":{\"remote\":false,\"replicate\":false},\"*action_triggers\":{\"remote\":false,\"replicate\":false},\"*actions\":{\"remote\":false,\"replicate\":false},\"*attribute_profiles\":{\"remote\":false,\"replicate\":false},\"*charger_profiles\":{\"remote\":false,\"replicate\":false},\"*destinations\":{\"remote\":false,\"replicate\":false},\"*dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*filters\":{\"remote\":false,\"replicate\":false},\"*indexes\":{\"remote\":false,\"replicate\":false},\"*load_ids\":{\"remote\":false,\"replicate\":false},\"*rating_plans\":{\"remote\":false,\"replicate\":false},\"*rating_profiles\":{\"remote\":false,\"replicate\":false},\"*resource_profiles\":{\"remote\":false,\"replicate\":false},\"*resources\":{\"remote\":false,\"replicate\":false},\"*reverse_destinations\":{\"remote\":false,\"replicate\":false},\"*route_profiles\":{\"remote\":false,\"replicate\":false},\"*shared_groups\":{\"remote\":false,\"replicate\":false},\"*statqueue_profiles\":{\"remote\":false,\"replicate\":false},\"*statqueues\":{\"remote\":false,\"replicate\":false},\"*threshold_profiles\":{\"remote\":false,\"replicate\":false},\"*thresholds\":{\"remote\":false,\"replicate\":false},\"*timings\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"remote_conn_id\":\"\",\"remote_conns\":[],\"replication_cache\":\"\",\"replication_conns\":[],\"replication_filtered\":false}}",
}, &reply); err != nil {
@@ -222,7 +223,7 @@ func testSectConfigSReloadDataDB(t *testing.T) {
}
cfgStr := "{\"data_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"10\",\"db_password\":\"\",\"db_port\":6379,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*account_action_plans\":{\"remote\":false,\"replicate\":false},\"*accounts\":{\"remote\":false,\"replicate\":false},\"*action_plans\":{\"remote\":false,\"replicate\":false},\"*action_triggers\":{\"remote\":false,\"replicate\":false},\"*actions\":{\"remote\":false,\"replicate\":false},\"*attribute_profiles\":{\"remote\":false,\"replicate\":false},\"*charger_profiles\":{\"remote\":false,\"replicate\":false},\"*destinations\":{\"remote\":false,\"replicate\":false},\"*dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*filters\":{\"remote\":false,\"replicate\":false},\"*indexes\":{\"remote\":false,\"replicate\":false},\"*load_ids\":{\"remote\":false,\"replicate\":false},\"*rating_plans\":{\"remote\":false,\"replicate\":false},\"*rating_profiles\":{\"remote\":false,\"replicate\":false},\"*resource_profiles\":{\"remote\":false,\"replicate\":false},\"*resources\":{\"remote\":false,\"replicate\":false},\"*reverse_destinations\":{\"remote\":false,\"replicate\":false},\"*route_profiles\":{\"remote\":false,\"replicate\":false},\"*shared_groups\":{\"remote\":false,\"replicate\":false},\"*statqueue_profiles\":{\"remote\":false,\"replicate\":false},\"*statqueues\":{\"remote\":false,\"replicate\":false},\"*threshold_profiles\":{\"remote\":false,\"replicate\":false},\"*thresholds\":{\"remote\":false,\"replicate\":false},\"*timings\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"remote_conn_id\":\"\",\"remote_conns\":[],\"replication_cache\":\"\",\"replication_conns\":[],\"replication_filtered\":false}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.DATADB_JSN,
}, &rpl); err != nil {
@@ -235,7 +236,7 @@ func testSectConfigSReloadDataDB(t *testing.T) {
func testSectConfigSReloadStorDB(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"stor_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"cgrates\",\"db_password\":\"CGRateS.org\",\"db_port\":3306,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*cdrs\":{\"remote\":false,\"replicate\":false},\"*tp_actions\":{\"remote\":false,\"replicate\":false},\"*tp_attributes\":{\"remote\":false,\"replicate\":false},\"*tp_chargers\":{\"remote\":false,\"replicate\":false},\"*tp_destination_rates\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_filters\":{\"remote\":false,\"replicate\":false},\"*tp_rates\":{\"remote\":false,\"replicate\":false},\"*tp_rating_plans\":{\"remote\":false,\"replicate\":false},\"*tp_shared_groups\":{\"remote\":false,\"replicate\":false},\"*tp_stats\":{\"remote\":false,\"replicate\":false},\"*tp_thresholds\":{\"remote\":false,\"replicate\":false},\"*tp_timings\":{\"remote\":false,\"replicate\":false},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"mysqlLocation\":\"Local\",\"postgresSSLMode\":\"disable\",\"sqlConnMaxLifetime\":0,\"sqlMaxIdleConns\":10,\"sqlMaxOpenConns\":100},\"prefix_indexed_fields\":[],\"remote_conns\":null,\"replication_conns\":null,\"string_indexed_fields\":[]}}",
}, &reply); err != nil {
@@ -245,7 +246,7 @@ func testSectConfigSReloadStorDB(t *testing.T) {
}
cfgStr := "{\"stor_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"cgrates\",\"db_password\":\"CGRateS.org\",\"db_port\":3306,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*cdrs\":{\"remote\":false,\"replicate\":false},\"*tp_action_triggers\":{\"remote\":false,\"replicate\":false},\"*tp_actions\":{\"remote\":false,\"replicate\":false},\"*tp_attributes\":{\"remote\":false,\"replicate\":false},\"*tp_chargers\":{\"remote\":false,\"replicate\":false},\"*tp_destination_rates\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_filters\":{\"remote\":false,\"replicate\":false},\"*tp_rates\":{\"remote\":false,\"replicate\":false},\"*tp_rating_plans\":{\"remote\":false,\"replicate\":false},\"*tp_shared_groups\":{\"remote\":false,\"replicate\":false},\"*tp_stats\":{\"remote\":false,\"replicate\":false},\"*tp_thresholds\":{\"remote\":false,\"replicate\":false},\"*tp_timings\":{\"remote\":false,\"replicate\":false},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"mysqlLocation\":\"Local\",\"postgresSSLMode\":\"disable\",\"sqlConnMaxLifetime\":0,\"sqlMaxIdleConns\":10,\"sqlMaxOpenConns\":100},\"prefix_indexed_fields\":[],\"remote_conns\":null,\"replication_conns\":null,\"string_indexed_fields\":[]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.STORDB_JSN,
}, &rpl); err != nil {
@@ -258,7 +259,7 @@ func testSectConfigSReloadStorDB(t *testing.T) {
func testSectConfigSReloadListen(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"listen\":{\"http\":\":2080\",\"http_tls\":\"127.0.0.1:2280\",\"rpc_gob\":\":2013\",\"rpc_gob_tls\":\"127.0.0.1:2023\",\"rpc_json\":\":2012\",\"rpc_json_tls\":\"127.0.0.1:2022\"}}",
}, &reply); err != nil {
@@ -268,7 +269,7 @@ func testSectConfigSReloadListen(t *testing.T) {
}
cfgStr := "{\"listen\":{\"http\":\":2080\",\"http_tls\":\"127.0.0.1:2280\",\"rpc_gob\":\":2013\",\"rpc_gob_tls\":\"127.0.0.1:2023\",\"rpc_json\":\":2012\",\"rpc_json_tls\":\"127.0.0.1:2022\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.LISTEN_JSN,
}, &rpl); err != nil {
@@ -281,7 +282,7 @@ func testSectConfigSReloadListen(t *testing.T) {
func testSectConfigSReloadTLS(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"tls\":{\"ca_certificate\":\"\",\"client_certificate\":\"\",\"client_key\":\"\",\"server_certificate\":\"\",\"server_key\":\"\",\"server_name\":\"\",\"server_policy\":4}}",
}, &reply); err != nil {
@@ -291,7 +292,7 @@ func testSectConfigSReloadTLS(t *testing.T) {
}
cfgStr := "{\"tls\":{\"ca_certificate\":\"\",\"client_certificate\":\"\",\"client_key\":\"\",\"server_certificate\":\"\",\"server_key\":\"\",\"server_name\":\"\",\"server_policy\":4}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.TlsCfgJson,
}, &rpl); err != nil {
@@ -304,7 +305,7 @@ func testSectConfigSReloadTLS(t *testing.T) {
func testSectConfigSReloadHTTP(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"http\":{\"auth_users\":{},\"client_opts\":{\"dialFallbackDelay\":\"300ms\",\"dialKeepAlive\":\"30s\",\"dialTimeout\":\"30s\",\"disableCompression\":false,\"disableKeepAlives\":false,\"expectContinueTimeout\":\"0\",\"forceAttemptHttp2\":true,\"idleConnTimeout\":\"90s\",\"maxConnsPerHost\":0,\"maxIdleConns\":100,\"maxIdleConnsPerHost\":2,\"responseHeaderTimeout\":\"0\",\"skipTlsVerify\":false,\"tlsHandshakeTimeout\":\"10s\"},\"freeswitch_cdrs_url\":\"/freeswitch_json\",\"http_cdrs\":\"/cdr_http\",\"json_rpc_url\":\"/jsonrpc\",\"registrars_url\":\"/registrar\",\"use_basic_auth\":false,\"ws_url\":\"/ws\"}}",
}, &reply); err != nil {
@@ -315,7 +316,7 @@ func testSectConfigSReloadHTTP(t *testing.T) {
cfgStr := "{\"http\":{\"auth_users\":{},\"client_opts\":{\"dialFallbackDelay\":\"300ms\",\"dialKeepAlive\":\"30s\",\"dialTimeout\":\"30s\",\"disableCompression\":false,\"disableKeepAlives\":false,\"expectContinueTimeout\":\"0s\",\"forceAttemptHttp2\":true,\"idleConnTimeout\":\"1m30s\",\"maxConnsPerHost\":0,\"maxIdleConns\":100,\"maxIdleConnsPerHost\":2,\"responseHeaderTimeout\":\"0s\",\"skipTlsVerify\":false,\"tlsHandshakeTimeout\":\"10s\"},\"freeswitch_cdrs_url\":\"/freeswitch_json\",\"http_cdrs\":\"/cdr_http\",\"json_rpc_url\":\"/jsonrpc\",\"registrars_url\":\"/registrar\",\"use_basic_auth\":false,\"ws_url\":\"/ws\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.HTTP_JSN,
}, &rpl); err != nil {
@@ -328,14 +329,14 @@ func testSectConfigSReloadHTTP(t *testing.T) {
func testSectConfigSReloadSchedulers(t *testing.T) {
var replyPingBf string
- if err := testSectRPC.Call(utils.SchedulerSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.SchedulerSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
t.Error(err)
} else if replyPingBf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingBf)
}
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"schedulers\":{\"cdrs_conns\":[\"*internal\"],\"dynaprepaid_actionplans\":[],\"enabled\":true,\"filters\":[],\"stats_conns\":[\"*localhost\"],\"thresholds_conns\":[]}}",
}, &reply); err != nil {
@@ -345,7 +346,7 @@ func testSectConfigSReloadSchedulers(t *testing.T) {
}
cfgStr := "{\"schedulers\":{\"cdrs_conns\":[\"*internal\"],\"dynaprepaid_actionplans\":[],\"enabled\":true,\"filters\":[],\"stats_conns\":[\"*localhost\"],\"thresholds_conns\":[]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.SCHEDULER_JSN,
}, &rpl); err != nil {
@@ -355,7 +356,7 @@ func testSectConfigSReloadSchedulers(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.SchedulerSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.SchedulerSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -365,14 +366,14 @@ func testSectConfigSReloadSchedulers(t *testing.T) {
func testSectConfigSReloadCaches(t *testing.T) {
var replyPingBf string
- if err := testSectRPC.Call(utils.CacheSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.CacheSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
t.Error(err)
} else if replyPingBf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingBf)
}
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"caches\":{\"partitions\":{\"*account_action_plans\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*action_plans\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*action_triggers\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*actions\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*apiban\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2m0s\"},\"*attribute_filter_indexes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*attribute_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*caps_events\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*cdr_ids\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10m0s\"},\"*charger_filter_indexes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*charger_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*closed_sessions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*destinations\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*diameter_messages\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*dispatcher_filter_indexes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatcher_hosts\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatcher_loads\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatcher_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatcher_routes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatchers\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*event_charges\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*event_resources\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*filters\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*load_ids\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*rating_plans\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*rating_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*replication_hosts\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*resource_filter_indexes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*resource_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*resources\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*reverse_destinations\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*reverse_filter_indexes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*route_filter_indexes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*route_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*rpc_connections\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*rpc_responses\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2s\"},\"*shared_groups\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*stat_filter_indexes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*statqueue_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*statqueues\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*stir\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*threshold_filter_indexes\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*threshold_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*thresholds\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*timings\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false},\"*tmp_rating_profiles\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"1m0s\"},\"*uch\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"}},\"replication_conns\":[]}}",
}, &reply); err != nil {
@@ -382,7 +383,7 @@ func testSectConfigSReloadCaches(t *testing.T) {
}
cfgStr := "{\"caches\":{\"partitions\":{\"*account_action_plans\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*action_plans\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*action_triggers\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*actions\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*apiban\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2m0s\"},\"*attribute_filter_indexes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*attribute_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*caps_events\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*cdr_ids\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10m0s\"},\"*charger_filter_indexes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*charger_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*closed_sessions\":{\"limit\":-1,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*destinations\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*diameter_messages\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*dispatcher_filter_indexes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatcher_hosts\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatcher_loads\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatcher_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatcher_routes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*dispatchers\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*event_charges\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*event_resources\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*filters\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*load_ids\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*rating_plans\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*rating_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*replication_hosts\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*resource_filter_indexes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*resource_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*resources\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*reverse_destinations\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*reverse_filter_indexes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*route_filter_indexes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*route_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*rpc_connections\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*rpc_responses\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2s\"},\"*sentrypeer\":{\"limit\":-1,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":true,\"ttl\":\"24h0m0s\"},\"*shared_groups\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*stat_filter_indexes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*statqueue_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*statqueues\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*stir\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*threshold_filter_indexes\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*threshold_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*thresholds\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*timings\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false},\"*tmp_rating_profiles\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"1m0s\"},\"*uch\":{\"limit\":0,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"}},\"remote_conns\":[],\"replication_conns\":[]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CACHE_JSN,
}, &rpl); err != nil {
@@ -392,7 +393,7 @@ func testSectConfigSReloadCaches(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.CacheSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.CacheSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -402,7 +403,7 @@ func testSectConfigSReloadCaches(t *testing.T) {
func testSectConfigSReloadFilters(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"filters\":{\"apiers_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*localhost\"]}}",
}, &reply); err != nil {
@@ -412,7 +413,7 @@ func testSectConfigSReloadFilters(t *testing.T) {
}
cfgStr := "{\"filters\":{\"apiers_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*localhost\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.FilterSjsn,
}, &rpl); err != nil {
@@ -425,7 +426,7 @@ func testSectConfigSReloadFilters(t *testing.T) {
func testSectConfigSReloadRALS(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"rals\":{\"balance_rating_subject\":{\"*any\":\"*zero1ns\",\"*voice\":\"*zero1s\"},\"enabled\":true,\"max_computed_usage\":{\"*any\":\"189h0m0s\",\"*data\":\"107374182400\",\"*mms\":\"10000\",\"*sms\":\"10000\",\"*voice\":\"72h0m0s\"},\"max_increments\":3000000,\"remove_expired\":true,\"rp_subject_prefix_matching\":false,\"stats_conns\":[],\"thresholds_conns\":[\"*internal\"]}}",
}, &reply); err != nil {
@@ -435,7 +436,7 @@ func testSectConfigSReloadRALS(t *testing.T) {
}
cfgStr := "{\"rals\":{\"balance_rating_subject\":{\"*any\":\"*zero1ns\",\"*voice\":\"*zero1s\"},\"enabled\":true,\"max_computed_usage\":{\"*any\":\"189h0m0s\",\"*data\":\"107374182400\",\"*mms\":\"10000\",\"*sms\":\"10000\",\"*voice\":\"72h0m0s\"},\"max_increments\":3000000,\"remove_expired\":true,\"rp_subject_prefix_matching\":false,\"stats_conns\":[],\"thresholds_conns\":[\"*internal\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.RALS_JSN,
}, &rpl); err != nil {
@@ -445,7 +446,7 @@ func testSectConfigSReloadRALS(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.RALsV1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.RALsV1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -455,14 +456,14 @@ func testSectConfigSReloadRALS(t *testing.T) {
func testSectConfigSReloadCDRS(t *testing.T) {
var replyPingBf string
- if err := testSectRPC.Call(utils.CDRsV1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.CDRsV1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
t.Error(err)
} else if replyPingBf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingBf)
}
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"cdrs\":{\"attributes_conns\":[],\"chargers_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"extra_fields\":[],\"online_cdr_exports\":[],\"rals_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_cost_retries\":5,\"stats_conns\":[],\"store_cdrs\":true,\"thresholds_conns\":[]}}",
}, &reply); err != nil {
@@ -472,7 +473,7 @@ func testSectConfigSReloadCDRS(t *testing.T) {
}
cfgStr := "{\"cdrs\":{\"attributes_conns\":[],\"chargers_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"extra_fields\":[],\"online_cdr_exports\":[],\"rals_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_cost_retries\":5,\"stats_conns\":[],\"store_cdrs\":true,\"thresholds_conns\":[]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CDRS_JSN,
}, &rpl); err != nil {
@@ -482,7 +483,7 @@ func testSectConfigSReloadCDRS(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.CDRsV1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.CDRsV1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -492,7 +493,7 @@ func testSectConfigSReloadCDRS(t *testing.T) {
func testSectConfigSReloadERS(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"ers\":{\"enabled\":true,\"partial_cache_ttl\":\"1s\",\"readers\":[{\"cache_dump_fields\":[],\"concurrent_requests\":1024,\"fields\":[{\"mandatory\":true,\"path\":\"*cgreq.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"mandatory\":true,\"path\":\"*cgreq.OriginID\",\"tag\":\"OriginID\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"mandatory\":true,\"path\":\"*cgreq.RequestType\",\"tag\":\"RequestType\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"mandatory\":true,\"path\":\"*cgreq.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"mandatory\":true,\"path\":\"*cgreq.Category\",\"tag\":\"Category\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"mandatory\":true,\"path\":\"*cgreq.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"mandatory\":true,\"path\":\"*cgreq.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"mandatory\":true,\"path\":\"*cgreq.Destination\",\"tag\":\"Destination\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"mandatory\":true,\"path\":\"*cgreq.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"mandatory\":true,\"path\":\"*cgreq.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"mandatory\":true,\"path\":\"*cgreq.Usage\",\"tag\":\"Usage\",\"type\":\"*variable\",\"value\":\"~*req.13\"}],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{\"csvFieldSeparator\":\",\",\"csvHeaderDefineChar\":\":\",\"csvRowLength\":0,\"natsSubject\":\"cgrates_cdrs\",\"partialCacheAction\":\"*none\",\"partialOrderField\":\"~*req.AnswerTime\",\"xmlRootPath\":\"\"},\"partial_commit_fields\":[],\"processed_path\":\"/var/spool/cgrates/ers/out\",\"run_delay\":\"0\",\"source_path\":\"/var/spool/cgrates/ers/in\",\"tenant\":\"\",\"timezone\":\"\",\"type\":\"*none\"}],\"sessions_conns\":[\"*internal\"]}}",
}, &reply); err != nil {
@@ -502,7 +503,7 @@ func testSectConfigSReloadERS(t *testing.T) {
}
cfgStr := "{\"ers\":{\"enabled\":true,\"partial_cache_ttl\":\"1s\",\"readers\":[{\"cache_dump_fields\":[],\"concurrent_requests\":1024,\"fields\":[{\"mandatory\":true,\"path\":\"*cgreq.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"mandatory\":true,\"path\":\"*cgreq.OriginID\",\"tag\":\"OriginID\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"mandatory\":true,\"path\":\"*cgreq.RequestType\",\"tag\":\"RequestType\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"mandatory\":true,\"path\":\"*cgreq.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"mandatory\":true,\"path\":\"*cgreq.Category\",\"tag\":\"Category\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"mandatory\":true,\"path\":\"*cgreq.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"mandatory\":true,\"path\":\"*cgreq.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"mandatory\":true,\"path\":\"*cgreq.Destination\",\"tag\":\"Destination\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"mandatory\":true,\"path\":\"*cgreq.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"mandatory\":true,\"path\":\"*cgreq.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"mandatory\":true,\"path\":\"*cgreq.Usage\",\"tag\":\"Usage\",\"type\":\"*variable\",\"value\":\"~*req.13\"}],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{\"csvFieldSeparator\":\",\",\"csvHeaderDefineChar\":\":\",\"csvRowLength\":0,\"natsSubject\":\"cgrates_cdrs\",\"partialCacheAction\":\"*none\",\"partialOrderField\":\"~*req.AnswerTime\",\"xmlRootPath\":\"\"},\"partial_commit_fields\":[],\"processed_path\":\"/var/spool/cgrates/ers/out\",\"run_delay\":\"0\",\"source_path\":\"/var/spool/cgrates/ers/in\",\"tenant\":\"\",\"timezone\":\"\",\"type\":\"*none\"}],\"sessions_conns\":[\"*internal\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: "ers",
}, &rpl); err != nil {
@@ -515,7 +516,7 @@ func testSectConfigSReloadERS(t *testing.T) {
func testSectConfigSReloadEES(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":true,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}",
}, &reply); err != nil {
@@ -525,7 +526,7 @@ func testSectConfigSReloadEES(t *testing.T) {
}
cfgStr := "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":true,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: "ees",
}, &rpl); err != nil {
@@ -538,7 +539,7 @@ func testSectConfigSReloadEES(t *testing.T) {
func testSectConfigSReloadSessions(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"sessions\":{\"alterable_fields\":[],\"attributes_conns\":[\"*internal\"],\"cdrs_conns\":[\"*internal\"],\"channel_sync_interval\":\"0\",\"chargers_conns\":[\"*internal\"],\"client_protocol\":1,\"debit_interval\":\"0\",\"default_usage\":{\"*any\":\"3h0m0s\",\"*data\":\"1048576\",\"*sms\":\"1\",\"*voice\":\"3h0m0s\"},\"enabled\":true,\"listen_bigob\":\"\",\"listen_bijson\":\"127.0.0.1:2014\",\"min_dur_low_balance\":\"0\",\"rals_conns\":[\"*internal\"],\"replication_conns\":[],\"resources_conns\":[\"*internal\"],\"routes_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_indexes\":[\"OriginID\"],\"session_ttl\":\"0\",\"stats_conns\":[],\"stir\":{\"allowed_attest\":[\"*any\"],\"default_attest\":\"A\",\"payload_maxduration\":\"-1\",\"privatekey_path\":\"\",\"publickey_path\":\"\"},\"store_session_costs\":false,\"terminate_attempts\":5,\"thresholds_conns\":[]}}",
}, &reply); err != nil {
@@ -548,7 +549,7 @@ func testSectConfigSReloadSessions(t *testing.T) {
}
cfgStr := "{\"sessions\":{\"alterable_fields\":[],\"attributes_conns\":[\"*internal\"],\"cdrs_conns\":[\"*internal\"],\"channel_sync_interval\":\"0\",\"chargers_conns\":[\"*internal\"],\"client_protocol\":1,\"debit_interval\":\"0\",\"default_usage\":{\"*any\":\"3h0m0s\",\"*data\":\"1048576\",\"*sms\":\"1\",\"*voice\":\"3h0m0s\"},\"enabled\":true,\"listen_bigob\":\"\",\"listen_bijson\":\"127.0.0.1:2014\",\"min_dur_low_balance\":\"0\",\"rals_conns\":[\"*internal\"],\"replication_conns\":[],\"resources_conns\":[\"*internal\"],\"routes_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_indexes\":[\"OriginID\"],\"session_ttl\":\"0\",\"stats_conns\":[],\"stir\":{\"allowed_attest\":[\"*any\"],\"default_attest\":\"A\",\"payload_maxduration\":\"-1\",\"privatekey_path\":\"\",\"publickey_path\":\"\"},\"store_session_costs\":false,\"terminate_attempts\":5,\"thresholds_conns\":[]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.SessionSJson,
}, &rpl); err != nil {
@@ -558,7 +559,7 @@ func testSectConfigSReloadSessions(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.SessionSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.SessionSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -568,7 +569,7 @@ func testSectConfigSReloadSessions(t *testing.T) {
func testSectConfigSReloadAsteriskAgent(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"asterisk_agent": {
"enabled": true,
@@ -586,7 +587,7 @@ func testSectConfigSReloadAsteriskAgent(t *testing.T) {
}
cfgStr := "{\"asterisk_agent\":{\"asterisk_conns\":[{\"address\":\"127.0.0.1:8088\",\"alias\":\"\",\"connect_attempts\":3,\"max_reconnect_interval\":\"0s\",\"password\":\"CGRateS.org\",\"reconnects\":5,\"user\":\"cgrates\"}],\"create_cdr\":true,\"enabled\":true,\"sessions_conns\":[\"*birpc_internal\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.AsteriskAgentJSN,
}, &rpl); err != nil {
@@ -599,7 +600,7 @@ func testSectConfigSReloadAsteriskAgent(t *testing.T) {
func testSectConfigSReloadFreeswitchAgent(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"freeswitch_agent": {
"enabled": true,
@@ -623,7 +624,7 @@ func testSectConfigSReloadFreeswitchAgent(t *testing.T) {
}
cfgStr := "{\"freeswitch_agent\":{\"create_cdr\":true,\"empty_balance_ann_file\":\"empty_balance_ann_file\",\"empty_balance_context\":\"empty_balance_context\",\"enabled\":true,\"event_socket_conns\":[{\"address\":\"127.0.0.1:8021\",\"alias\":\"alias\",\"password\":\"ClueCon\",\"reconnects\":5}],\"extra_fields\":\"extra_fields\",\"low_balance_ann_file\":\"low_balance_ann_file\",\"max_wait_connection\":\"2s\",\"sessions_conns\":[\"*birpc_internal\"],\"subscribe_park\":true}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.FreeSWITCHAgentJSN,
}, &rpl); err != nil {
@@ -633,7 +634,7 @@ func testSectConfigSReloadFreeswitchAgent(t *testing.T) {
}
var reply2 string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"freeswitch_agent": {
"enabled": false,
@@ -660,7 +661,7 @@ func testSectConfigSReloadFreeswitchAgent(t *testing.T) {
func testSectConfigSReloadKamailioAgent(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"kamailio_agent": {
"enabled": true,
@@ -679,7 +680,7 @@ func testSectConfigSReloadKamailioAgent(t *testing.T) {
}
cfgStr := "{\"kamailio_agent\":{\"create_cdr\":true,\"enabled\":true,\"evapi_conns\":[{\"address\":\"127.0.0.1:8448\",\"alias\":\"\",\"reconnects\":5}],\"sessions_conns\":[\"*birpc_internal\"],\"timezone\":\"local\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.KamailioAgentJSN,
}, &rpl); err != nil {
@@ -688,7 +689,7 @@ func testSectConfigSReloadKamailioAgent(t *testing.T) {
t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
}
var reply2 string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"kamailio_agent": {
"enabled": false,
@@ -710,7 +711,7 @@ func testSectConfigSReloadKamailioAgent(t *testing.T) {
func testSectConfigSReloadDiameterAgent(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"diameter_agent": {
"enabled": true,
@@ -750,7 +751,7 @@ func testSectConfigSReloadDiameterAgent(t *testing.T) {
}
cfgStr := "{\"diameter_agent\":{\"asr_template\":\"asr_template\",\"concurrent_requests\":-1,\"dictionaries_path\":\"/usr/share/cgrates/diameter/dict/\",\"enabled\":true,\"forced_disconnect\":\"*none\",\"listen\":\"127.0.0.1:3868\",\"listen_net\":\"tcp\",\"origin_host\":\"CGR-DA\",\"origin_realm\":\"cgrates.org\",\"product_name\":\"CGRateS\",\"rar_template\":\"rar_template\",\"request_processors\":[{\"filters\":[],\"flags\":[\"1\"],\"id\":\"cgrates\",\"reply_fields\":[{\"path\":\"randomPath\",\"tag\":\"randomPath\"}],\"request_fields\":[{\"path\":\"randomPath\",\"tag\":\"randomPath\"}],\"tenant\":\"1\",\"timezone\":\"\"}],\"sessions_conns\":[\"*birpc_internal\"],\"synced_conn_requests\":false,\"vendor_id\":1}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: "diameter_agent",
}, &rpl); err != nil {
@@ -763,7 +764,7 @@ func testSectConfigSReloadDiameterAgent(t *testing.T) {
func testSectConfigSReloadRadiusAgent(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"radius_agent": {
"enabled": true,
@@ -800,7 +801,7 @@ func testSectConfigSReloadRadiusAgent(t *testing.T) {
}
cfgStr := "{\"radius_agent\":{\"client_dictionaries\":{\"*default\":\"/usr/share/cgrates/radius/dict/\"},\"client_secrets\":{\"*default\":\"CGRateS.org\"},\"enabled\":true,\"listen_acct\":\"127.0.0.1:1813\",\"listen_auth\":\"127.0.0.1:1812\",\"listen_net\":\"udp\",\"request_processors\":[{\"filters\":[],\"flags\":[\"1\"],\"id\":\"cgrates\",\"reply_fields\":[{\"path\":\"randomPath\",\"tag\":\"randomPath\"}],\"request_fields\":[{\"path\":\"randomPath\",\"tag\":\"randomPath\"}],\"tenant\":\"1\",\"timezone\":\"\"}],\"sessions_conns\":[\"*internal\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: "radius_agent",
}, &rpl); err != nil {
@@ -813,7 +814,7 @@ func testSectConfigSReloadRadiusAgent(t *testing.T) {
func testSectConfigSReloadHTTPAgent(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"http_agent": [
{
@@ -833,7 +834,7 @@ func testSectConfigSReloadHTTPAgent(t *testing.T) {
}
cfgStr := "{\"http_agent\":[{\"id\":\"conecto1\",\"reply_payload\":\"*xml\",\"request_payload\":\"*url\",\"request_processors\":[],\"sessions_conns\":[\"*internal\"],\"url\":\"/conecto\"}]}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.HttpAgentJson,
}, &rpl); err != nil {
@@ -846,7 +847,7 @@ func testSectConfigSReloadHTTPAgent(t *testing.T) {
func testSectConfigSReloadDNSAgent(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"dns_agent": {
"enabled": true,
@@ -868,7 +869,7 @@ func testSectConfigSReloadDNSAgent(t *testing.T) {
}
cfgStr := "{\"dns_agent\":{\"enabled\":true,\"listeners\":[{\"address\":\"127.0.0.1:53\",\"network\":\"udp\"}],\"request_processors\":[{\"filters\":null,\"flags\":null,\"id\":\"random\",\"timezone\":\"\"}],\"sessions_conns\":[\"*internal\"],\"timezone\":\"local\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.DNSAgentJson,
}, &rpl); err != nil {
@@ -881,7 +882,7 @@ func testSectConfigSReloadDNSAgent(t *testing.T) {
func testSectConfigSReloadAttributes(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"attributes": {
"enabled": true,
@@ -904,7 +905,7 @@ func testSectConfigSReloadAttributes(t *testing.T) {
cfgStr := "{\"attributes\":{\"any_context\":true,\"apiers_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"opts\":{\"*processRuns\":1,\"*profileIDs\":[],\"*profileIgnoreFilters\":false,\"*profileRuns\":0},\"prefix_indexed_fields\":[\"prefix_indexed_fields\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*internal\"],\"string_indexed_fields\":[\"string_indexed_fields\"],\"suffix_indexed_fields\":[\"suffix_indexed_fields\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.ATTRIBUTE_JSN,
}, &rpl); err != nil {
@@ -914,7 +915,7 @@ func testSectConfigSReloadAttributes(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -925,7 +926,7 @@ func testSectConfigSReloadAttributes(t *testing.T) {
func testSectConfigSReloadChargers(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"chargers": {
"enabled": true,
@@ -943,7 +944,7 @@ func testSectConfigSReloadChargers(t *testing.T) {
}
cfgStr := "{\"chargers\":{\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"prefix_indexed_fields\":[\"prefix_indexed_fields\"],\"string_indexed_fields\":[\"string_indexed_fields\"],\"suffix_indexed_fields\":[\"suffix_indexed_fields\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.ChargerSCfgJson,
}, &rpl); err != nil {
@@ -953,7 +954,7 @@ func testSectConfigSReloadChargers(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.ChargerSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.ChargerSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -963,7 +964,7 @@ func testSectConfigSReloadChargers(t *testing.T) {
func testSectConfigSReloadResources(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"resources": {
"enabled": true,
@@ -982,7 +983,7 @@ func testSectConfigSReloadResources(t *testing.T) {
}
cfgStr := "{\"resources\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"opts\":{\"*units\":1,\"*usageID\":\"\"},\"prefix_indexed_fields\":[\"prefix_indexed_fields\"],\"store_interval\":\"-1ns\",\"string_indexed_fields\":[\"string_indexed_fields\"],\"suffix_indexed_fields\":[\"suffix_indexed_fields\"],\"thresholds_conns\":[\"*internal\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.RESOURCES_JSON,
}, &rpl); err != nil {
@@ -992,7 +993,7 @@ func testSectConfigSReloadResources(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.ResourceSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.ResourceSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -1002,7 +1003,7 @@ func testSectConfigSReloadResources(t *testing.T) {
func testSectConfigSReloadStats(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"stats": {
"enabled": true,
@@ -1023,7 +1024,7 @@ func testSectConfigSReloadStats(t *testing.T) {
}
cfgStr := "{\"stats\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"opts\":{\"*profileIDs\":[],\"*profileIgnoreFilters\":false},\"prefix_indexed_fields\":[\"prefix_indexed_fields\"],\"store_interval\":\"-1ns\",\"store_uncompressed_limit\":1,\"string_indexed_fields\":[\"string_indexed_fields\"],\"suffix_indexed_fields\":[\"suffix_indexed_fields\"],\"thresholds_conns\":[\"*internal\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.STATS_JSON,
}, &rpl); err != nil {
@@ -1032,7 +1033,7 @@ func testSectConfigSReloadStats(t *testing.T) {
t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
}
var replyPingAf string
- if err := testSectRPC.Call(utils.StatSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.StatSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -1043,7 +1044,7 @@ func testSectConfigSReloadStats(t *testing.T) {
func testSectConfigSReloadThresholds(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"thresholds\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"prefix_indexed_fields\":[\"prefix_indexed_fields\"],\"store_interval\":\"-1\",\"string_indexed_fields\":[\"string_indexed_fields\"],\"suffix_indexed_fields\":[\"suffix_indexed_fields\"]}}",
}, &reply); err != nil {
@@ -1053,7 +1054,7 @@ func testSectConfigSReloadThresholds(t *testing.T) {
}
cfgStr := "{\"thresholds\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"opts\":{\"*profileIDs\":[],\"*profileIgnoreFilters\":false},\"prefix_indexed_fields\":[\"prefix_indexed_fields\"],\"store_interval\":\"-1ns\",\"string_indexed_fields\":[\"string_indexed_fields\"],\"suffix_indexed_fields\":[\"suffix_indexed_fields\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.THRESHOLDS_JSON,
}, &rpl); err != nil {
@@ -1063,7 +1064,7 @@ func testSectConfigSReloadThresholds(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.ThresholdSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.ThresholdSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -1073,7 +1074,7 @@ func testSectConfigSReloadThresholds(t *testing.T) {
func testSectConfigSReloadRoutes(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"routes": {
"enabled": true,
@@ -1096,7 +1097,7 @@ func testSectConfigSReloadRoutes(t *testing.T) {
}
cfgStr := "{\"routes\":{\"attributes_conns\":[\"*localhost\"],\"default_ratio\":1,\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"opts\":{\"*context\":\"*routes\",\"*ignoreErrors\":false,\"*maxCost\":\"\"},\"prefix_indexed_fields\":[\"prefix_indexed_fields\"],\"rals_conns\":[\"*localhost\"],\"resources_conns\":[\"*localhost\"],\"stats_conns\":[\"*localhost\"],\"string_indexed_fields\":[\"string_indexed_fields\"],\"suffix_indexed_fields\":[\"suffix_indexed_fields\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.RouteSJson,
}, &rpl); err != nil {
@@ -1106,7 +1107,7 @@ func testSectConfigSReloadRoutes(t *testing.T) {
}
var replyPingAf string
- if err := testSectRPC.Call(utils.RouteSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+ if err := testSectRPC.Call(context.Background(), utils.RouteSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
t.Error(err)
} else if replyPingAf != utils.Pong {
t.Errorf("Expected OK received: %s", replyPingAf)
@@ -1116,7 +1117,7 @@ func testSectConfigSReloadRoutes(t *testing.T) {
func testSectConfigSReloadLoaders(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
Tenant: "cgrates.org",
Path: path.Join(*dataDir, "conf", "samples", "tutinternal"),
Section: config.LoaderJson,
@@ -1127,7 +1128,7 @@ func testSectConfigSReloadLoaders(t *testing.T) {
}
cfgStr := "{\"loaders\":[{\"caches_conns\":[\"*internal\"],\"data\":[{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"TenantID\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ProfileID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeFilterIDs\",\"tag\":\"AttributeFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Path\",\"tag\":\"Path\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Value\",\"tag\":\"Value\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Attributes.csv\",\"flags\":null,\"type\":\"*attributes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Element\",\"tag\":\"Element\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Values\",\"tag\":\"Values\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.5\"}],\"file_name\":\"Filters.csv\",\"flags\":null,\"type\":\"*filters\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"UsageTTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Limit\",\"tag\":\"Limit\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"AllocationMessage\",\"tag\":\"AllocationMessage\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Resources.csv\",\"flags\":null,\"type\":\"*resources\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"QueueLength\",\"tag\":\"QueueLength\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"TTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinItems\",\"tag\":\"MinItems\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"MetricIDs\",\"tag\":\"MetricIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"MetricFilterIDs\",\"tag\":\"MetricFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"Stats.csv\",\"flags\":null,\"type\":\"*stats\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"MaxHits\",\"tag\":\"MaxHits\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"MinHits\",\"tag\":\"MinHits\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinSleep\",\"tag\":\"MinSleep\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ActionIDs\",\"tag\":\"ActionIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Async\",\"tag\":\"Async\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Thresholds.csv\",\"flags\":null,\"type\":\"*thresholds\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Sorting\",\"tag\":\"Sorting\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"SortingParameters\",\"tag\":\"SortingParameters\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"RouteID\",\"tag\":\"RouteID\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"RouteFilterIDs\",\"tag\":\"RouteFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"RouteAccountIDs\",\"tag\":\"RouteAccountIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"RouteRatingPlanIDs\",\"tag\":\"RouteRatingPlanIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"RouteResourceIDs\",\"tag\":\"RouteResourceIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"RouteStatIDs\",\"tag\":\"RouteStatIDs\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"RouteWeight\",\"tag\":\"RouteWeight\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"path\":\"RouteBlocker\",\"tag\":\"RouteBlocker\",\"type\":\"*variable\",\"value\":\"~*req.13\"},{\"path\":\"RouteParameters\",\"tag\":\"RouteParameters\",\"type\":\"*variable\",\"value\":\"~*req.14\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.15\"}],\"file_name\":\"Routes.csv\",\"flags\":null,\"type\":\"*routes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeIDs\",\"tag\":\"AttributeIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.6\"}],\"file_name\":\"Chargers.csv\",\"flags\":null,\"type\":\"*chargers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Strategy\",\"tag\":\"Strategy\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"StrategyParameters\",\"tag\":\"StrategyParameters\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ConnID\",\"tag\":\"ConnID\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"ConnFilterIDs\",\"tag\":\"ConnFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ConnWeight\",\"tag\":\"ConnWeight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ConnBlocker\",\"tag\":\"ConnBlocker\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"ConnParameters\",\"tag\":\"ConnParameters\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"DispatcherProfiles.csv\",\"flags\":null,\"type\":\"*dispatchers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Address\",\"tag\":\"Address\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Transport\",\"tag\":\"Transport\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ConnectAttempts\",\"tag\":\"ConnectAttempts\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Reconnects\",\"tag\":\"Reconnects\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MaxReconnectInterval\",\"tag\":\"MaxReconnectInterval\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ConnectTimeout\",\"tag\":\"ConnectTimeout\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"ReplyTimeout\",\"tag\":\"ReplyTimeout\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"TLS\",\"tag\":\"TLS\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ClientKey\",\"tag\":\"ClientKey\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"ClientCertificate\",\"tag\":\"ClientCertificate\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"CaCertificate\",\"tag\":\"CaCertificate\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"DispatcherHosts.csv\",\"flags\":null,\"type\":\"*dispatcher_hosts\"}],\"dry_run\":false,\"enabled\":false,\"field_separator\":\",\",\"id\":\"*default\",\"lockfile_path\":\".cgr.lck\",\"run_delay\":\"0\",\"tenant\":\"\",\"tp_in_dir\":\"/var/spool/cgrates/loader/in\",\"tp_out_dir\":\"/var/spool/cgrates/loader/out\"}]}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.LoaderJson,
}, &rpl); err != nil {
@@ -1140,7 +1141,7 @@ func testSectConfigSReloadLoaders(t *testing.T) {
func testSectConfigSReloadMailer(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"mailer\":{\"auth_password\":\"CGRateS.com\",\"auth_user\":\"cgrates2\",\"from_address\":\"cgr-mailer@internal.localdomain\",\"server\":\"internal\"}}",
}, &reply); err != nil {
@@ -1150,7 +1151,7 @@ func testSectConfigSReloadMailer(t *testing.T) {
}
cfgStr := "{\"mailer\":{\"auth_password\":\"CGRateS.com\",\"auth_user\":\"cgrates2\",\"from_address\":\"cgr-mailer@internal.localdomain\",\"server\":\"internal\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.MAILER_JSN,
}, &rpl); err != nil {
@@ -1163,7 +1164,7 @@ func testSectConfigSReloadMailer(t *testing.T) {
func testSectConfigSReloadSuretax(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"suretax": {
"url": "google.ro",
@@ -1201,7 +1202,7 @@ func testSectConfigSReloadSuretax(t *testing.T) {
}
cfgStr := "{\"suretax\":{\"bill_to_number\":\"3\",\"business_unit\":\"6\",\"client_number\":\"4\",\"client_tracking\":\"~*req.CGRID\",\"customer_number\":\"~*req.Subject\",\"include_local_cost\":true,\"orig_number\":\"~*req.Subject\",\"p2pplus4\":\"3\",\"p2pzipcode\":\"3\",\"plus4\":\"3\",\"regulatory_code\":\"04\",\"response_group\":\"04\",\"response_type\":\"D5\",\"return_file_code\":\"01\",\"sales_type_code\":\"RC\",\"tax_exemption_code_list\":\"3\",\"tax_included\":\"02\",\"tax_situs_rule\":\"05\",\"term_number\":\"~*req.Destination\",\"timezone\":\"UTC\",\"trans_type_code\":\"101010\",\"unit_type\":\"01\",\"units\":\"2\",\"url\":\"google.ro\",\"validation_key\":\"5\",\"zipcode\":\"3\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.SURETAX_JSON,
}, &rpl); err != nil {
@@ -1214,7 +1215,7 @@ func testSectConfigSReloadSuretax(t *testing.T) {
func testSectConfigSReloadLoader(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"loader\":{\"caches_conns\":[\"*internal\"],\"data_path\":\".path\",\"disable_reverse\":true,\"field_separator\":\";\",\"gapi_credentials\":\".testCredentials\",\"gapi_token\":\".testToken\",\"scheduler_conns\":[\"*internal\"],\"tpid\":\"testID\"}}",
}, &reply); err != nil {
@@ -1224,7 +1225,7 @@ func testSectConfigSReloadLoader(t *testing.T) {
}
cfgStr := "{\"loader\":{\"caches_conns\":[\"*internal\"],\"data_path\":\".path\",\"disable_reverse\":true,\"field_separator\":\";\",\"gapi_credentials\":\".testCredentials\",\"gapi_token\":\".testToken\",\"scheduler_conns\":[\"*internal\"],\"tpid\":\"testID\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CgrLoaderCfgJson,
}, &rpl); err != nil {
@@ -1237,7 +1238,7 @@ func testSectConfigSReloadLoader(t *testing.T) {
func testSectConfigSReloadMigrator(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"migrator\":{\"out_datadb_encoding\":\"testDatadbEncoding\",\"out_datadb_host\":\"127.1.1.1\",\"out_datadb_name\":\"10\",\"out_datadb_opts\":{\"redisCACertificate\":\"testRedisCACertificate\",\"redisClientCertificate\":\"testRedisClientCertificate\",\"redisClientKey\":\"testRedisClientKey\",\"redisCluster\":true,\"redisClusterOndownDelay\":\"4\",\"redisClusterSync\":\"10s\",\"redisSentinel\":\"redisTest\",\"redisTLS\":true},\"out_datadb_password\":\"dataDBPass\",\"out_datadb_port\":\"5555\",\"out_datadb_type\":\"redisTest\",\"out_datadb_user\":\"cgratesTest\",\"out_stordb_host\":\"125.1.1.1\",\"out_stordb_name\":\"cgratesStorDBName\",\"out_stordb_opts\":{},\"out_stordb_password\":\"StorDBPass\",\"out_stordb_port\":\"3333\",\"out_stordb_type\":\"mongo\",\"out_stordb_user\":\"cgratesTest\",\"users_filters\":[\"Stats\"]}}",
}, &reply); err != nil {
@@ -1247,7 +1248,7 @@ func testSectConfigSReloadMigrator(t *testing.T) {
}
cfgStr := "{\"migrator\":{\"out_datadb_encoding\":\"testDatadbEncoding\",\"out_datadb_host\":\"127.1.1.1\",\"out_datadb_name\":\"10\",\"out_datadb_opts\":{\"mongoQueryTimeout\":\"0s\",\"redisCACertificate\":\"testRedisCACertificate\",\"redisClientCertificate\":\"testRedisClientCertificate\",\"redisClientKey\":\"testRedisClientKey\",\"redisCluster\":true,\"redisClusterOndownDelay\":\"4ns\",\"redisClusterSync\":\"10s\",\"redisConnectAttempts\":20,\"redisConnectTimeout\":\"0s\",\"redisMaxConns\":10,\"redisReadTimeout\":\"0s\",\"redisSentinel\":\"redisTest\",\"redisTLS\":true,\"redisWriteTimeout\":\"0s\"},\"out_datadb_password\":\"dataDBPass\",\"out_datadb_port\":\"5555\",\"out_datadb_type\":\"*redisTest\",\"out_datadb_user\":\"cgratesTest\",\"out_stordb_host\":\"125.1.1.1\",\"out_stordb_name\":\"cgratesStorDBName\",\"out_stordb_opts\":{\"mongoQueryTimeout\":\"0s\",\"mysqlDSNParams\":null,\"mysqlLocation\":\"\",\"pgSSLMode\":\"\",\"sqlConnMaxLifetime\":\"0s\",\"sqlMaxIdleConns\":0,\"sqlMaxOpenConns\":0},\"out_stordb_password\":\"StorDBPass\",\"out_stordb_port\":\"3333\",\"out_stordb_type\":\"*mongo\",\"out_stordb_user\":\"cgratesTest\",\"users_filters\":[\"Stats\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.CgrMigratorCfgJson,
}, &rpl); err != nil {
@@ -1260,12 +1261,12 @@ func testSectConfigSReloadMigrator(t *testing.T) {
func testSectConfigSReloadDispatchers(t *testing.T) {
var replyPingBf string
- err := testSectRPC.Call(utils.DispatcherSv1Ping, &utils.CGREvent{}, &replyPingBf)
+ err := testSectRPC.Call(context.Background(), utils.DispatcherSv1Ping, &utils.CGREvent{}, &replyPingBf)
if err == nil || err.Error() != "rpc: can't find service DispatcherSv1.Ping" {
t.Error(err)
}
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"prefix_indexed_fields\":[\"*internal\"],\"string_indexed_fields\":[\"*internal\"],\"suffix_indexed_fields\":[\"*internal\"]}}",
}, &reply); err != nil {
@@ -1275,7 +1276,7 @@ func testSectConfigSReloadDispatchers(t *testing.T) {
}
cfgStr := "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"prefix_indexed_fields\":[\"*internal\"],\"prevent_loop\":false,\"string_indexed_fields\":[\"*internal\"],\"suffix_indexed_fields\":[\"*internal\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.DispatcherSJson,
}, &rpl); err != nil {
@@ -1288,7 +1289,7 @@ func testSectConfigSReloadDispatchers(t *testing.T) {
func testSectConfigSReloadRegistrarC(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"registrarc\":{\"dispatchers\":{\"enabled\":true,\"hosts\":[{\"Tenant\":\"*default\"}],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]},\"rpc\":{\"enabled\":true,\"hosts\":[{\"Tenant\":\"*default\"}],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]}}}",
}, &reply); err != nil {
@@ -1298,7 +1299,7 @@ func testSectConfigSReloadRegistrarC(t *testing.T) {
}
cfgStr := "{\"registrarc\":{\"dispatchers\":{\"hosts\":[{\"Tenant\":\"*default\",\"transport\":\"\"}],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]},\"rpc\":{\"hosts\":[{\"Tenant\":\"*default\",\"transport\":\"\"}],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]}}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.RegistrarCJson,
}, &rpl); err != nil {
@@ -1311,7 +1312,7 @@ func testSectConfigSReloadRegistrarC(t *testing.T) {
func testSectConfigSReloadAnalyzer(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"analyzers\":{\"cleanup_interval\":\"1h0m0s\",\"db_path\":\"/var/spool/cgrates/analyzers\",\"enabled\":true,\"index_type\":\"*scorch\",\"ttl\":\"24h0m0s\"}}",
}, &reply); err != nil {
@@ -1321,7 +1322,7 @@ func testSectConfigSReloadAnalyzer(t *testing.T) {
}
cfgStr := "{\"analyzers\":{\"cleanup_interval\":\"1h0m0s\",\"db_path\":\"/var/spool/cgrates/analyzers\",\"enabled\":true,\"index_type\":\"*scorch\",\"ttl\":\"24h0m0s\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.AnalyzerCfgJson,
}, &rpl); err != nil {
@@ -1334,7 +1335,7 @@ func testSectConfigSReloadAnalyzer(t *testing.T) {
func testSectConfigSReloadApiers(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"apiers\":{\"attributes_conns\":[\"*internal\"],\"caches_conns\":[\"*internal\"],\"ees_conns\":[\"*internal\"],\"enabled\":true,\"scheduler_conns\":[\"*internal\"]}}",
}, &reply); err != nil {
@@ -1344,7 +1345,7 @@ func testSectConfigSReloadApiers(t *testing.T) {
}
cfgStr := "{\"apiers\":{\"attributes_conns\":[\"*internal\"],\"caches_conns\":[\"*internal\"],\"ees_conns\":[\"*internal\"],\"enabled\":true,\"scheduler_conns\":[\"*internal\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.ApierS,
}, &rpl); err != nil {
@@ -1357,7 +1358,7 @@ func testSectConfigSReloadApiers(t *testing.T) {
func testSectConfigSReloadSIPAgent(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"sip_agent": {
"enabled": true,
@@ -1398,7 +1399,7 @@ func testSectConfigSReloadSIPAgent(t *testing.T) {
}
cfgStr := "{\"sip_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:5060\",\"listen_net\":\"udp\",\"request_processors\":[{\"filters\":[\"*string:~*req.request_type:OutboundAUTH\",\"*string:~*req.Msisdn:497700056231\"],\"flags\":[\"*dryrun\"],\"id\":\"OutboundAUTHDryRun\",\"reply_fields\":[{\"mandatory\":true,\"path\":\"*rep.response.Allow\",\"tag\":\"Allow\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*rep.response.Concatenated\",\"tag\":\"Concatenated1\",\"type\":\"*composed\",\"value\":\"~*req.MCC;/\"},{\"path\":\"*rep.response.Concatenated\",\"tag\":\"Concatenated2\",\"type\":\"*composed\",\"value\":\"Val1\"},{\"blocker\":true,\"path\":\"*rep.response.MaxDuration\",\"tag\":\"MaxDuration\",\"type\":\"*constant\",\"value\":\"1200\"},{\"path\":\"*rep.response.Unused\",\"tag\":\"Unused\",\"type\":\"*constant\",\"value\":\"0\"}],\"request_fields\":[],\"tenant\":\"cgrates.org\",\"timezone\":\"\"}],\"retransmission_timer\":100000000000,\"sessions_conns\":[\"*internal\"],\"timezone\":\"local\"}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.SIPAgentJson,
}, &rpl); err != nil {
@@ -1411,7 +1412,7 @@ func testSectConfigSReloadSIPAgent(t *testing.T) {
func testSectConfigSReloadTemplates(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: "{\"templates\":{\"*asr\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"}],\"*cca\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"path\":\"*rep.Result-Code\",\"tag\":\"ResultCode\",\"type\":\"*constant\",\"value\":\"2001\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"},{\"mandatory\":true,\"path\":\"*rep.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Type\",\"tag\":\"CCRequestType\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Type\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Number\",\"tag\":\"CCRequestNumber\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Number\"}],\"*cdrLog\":[{\"mandatory\":true,\"path\":\"*cdr.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.BalanceType\"},{\"mandatory\":true,\"path\":\"*cdr.OriginHost\",\"tag\":\"OriginHost\",\"type\":\"*constant\",\"value\":\"127.0.0.1\"},{\"mandatory\":true,\"path\":\"*cdr.RequestType\",\"tag\":\"RequestType\",\"type\":\"*constant\",\"value\":\"*none\"},{\"mandatory\":true,\"path\":\"*cdr.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.Tenant\"},{\"mandatory\":true,\"path\":\"*cdr.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Cost\",\"tag\":\"Cost\",\"type\":\"*variable\",\"value\":\"~*req.Cost\"},{\"mandatory\":true,\"path\":\"*cdr.Source\",\"tag\":\"Source\",\"type\":\"*constant\",\"value\":\"*cdrLog\"},{\"mandatory\":true,\"path\":\"*cdr.Usage\",\"tag\":\"Usage\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*cdr.RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.ActionType\"},{\"mandatory\":true,\"path\":\"*cdr.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.PreRated\",\"tag\":\"PreRated\",\"type\":\"*constant\",\"value\":\"true\"}],\"*err\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"}],\"*errSip\":[{\"mandatory\":true,\"path\":\"*rep.Request\",\"tag\":\"Request\",\"type\":\"*constant\",\"value\":\"SIP/2.0 500 Internal Server Error\"}],\"*rar\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"path\":\"*diamreq.Re-Auth-Request-Type\",\"tag\":\"ReAuthRequestType\",\"type\":\"*constant\",\"value\":\"0\"}]}}",
}, &reply); err != nil {
@@ -1421,7 +1422,7 @@ func testSectConfigSReloadTemplates(t *testing.T) {
}
cfgStr := "{\"templates\":{\"*asr\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"}],\"*cca\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"path\":\"*rep.Result-Code\",\"tag\":\"ResultCode\",\"type\":\"*constant\",\"value\":\"2001\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"},{\"mandatory\":true,\"path\":\"*rep.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Type\",\"tag\":\"CCRequestType\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Type\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Number\",\"tag\":\"CCRequestNumber\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Number\"}],\"*cdrLog\":[{\"mandatory\":true,\"path\":\"*cdr.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.BalanceType\"},{\"mandatory\":true,\"path\":\"*cdr.OriginHost\",\"tag\":\"OriginHost\",\"type\":\"*constant\",\"value\":\"127.0.0.1\"},{\"mandatory\":true,\"path\":\"*cdr.RequestType\",\"tag\":\"RequestType\",\"type\":\"*constant\",\"value\":\"*none\"},{\"mandatory\":true,\"path\":\"*cdr.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.Tenant\"},{\"mandatory\":true,\"path\":\"*cdr.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Cost\",\"tag\":\"Cost\",\"type\":\"*variable\",\"value\":\"~*req.Cost\"},{\"mandatory\":true,\"path\":\"*cdr.Source\",\"tag\":\"Source\",\"type\":\"*constant\",\"value\":\"*cdrLog\"},{\"mandatory\":true,\"path\":\"*cdr.Usage\",\"tag\":\"Usage\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*cdr.RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.ActionType\"},{\"mandatory\":true,\"path\":\"*cdr.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.PreRated\",\"tag\":\"PreRated\",\"type\":\"*constant\",\"value\":\"true\"}],\"*err\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"}],\"*errSip\":[{\"mandatory\":true,\"path\":\"*rep.Request\",\"tag\":\"Request\",\"type\":\"*constant\",\"value\":\"SIP/2.0 500 Internal Server Error\"}],\"*rar\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"path\":\"*diamreq.Re-Auth-Request-Type\",\"tag\":\"ReAuthRequestType\",\"type\":\"*constant\",\"value\":\"0\"}]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.TemplatesJson,
}, &rpl); err != nil {
@@ -1434,7 +1435,7 @@ func testSectConfigSReloadTemplates(t *testing.T) {
func testSectConfigSReloadConfigs(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"configs":{"enabled":true,"root_dir":"root_dir","url":"/configs/"}}`,
}, &reply); err != nil {
@@ -1444,7 +1445,7 @@ func testSectConfigSReloadConfigs(t *testing.T) {
}
cfgStr := `{"configs":{"enabled":true,"root_dir":"root_dir","url":"/configs/"}}`
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.ConfigSJson,
}, &rpl); err != nil {
@@ -1458,7 +1459,7 @@ func testSectConfigSReloadConfigs(t *testing.T) {
func testSectConfigSReloadAPIBan(t *testing.T) {
var reply string
- if err := testSectRPC.Call(utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
Config: `{"apiban":{"enabled":true,"keys":["keys"]}}`,
}, &reply); err != nil {
@@ -1468,7 +1469,7 @@ func testSectConfigSReloadAPIBan(t *testing.T) {
}
cfgStr := "{\"apiban\":{\"keys\":[\"keys\"]}}"
var rpl string
- if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+ if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
Section: config.APIBanCfgJson,
}, &rpl); err != nil {
@@ -1480,7 +1481,7 @@ func testSectConfigSReloadAPIBan(t *testing.T) {
}
func testSectStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
+ if err := engine.KillEngine(*waitRater); err != nil {
t.Error(err)
}
}
diff --git a/general_tests/attributes_filters_index_it_test.go b/general_tests/attributes_filters_index_it_test.go
index 68baf5ef3..93be8af57 100644
--- a/general_tests/attributes_filters_index_it_test.go
+++ b/general_tests/attributes_filters_index_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +38,7 @@ import (
var (
attrFltrCfgPath string
attrFltrCfg *config.CGRConfig
- attrFltrRPC *rpc.Client
+ attrFltrRPC *birpc.Client
alsPrfFltrConfigDIR string
sTestsAlsFltrPrf = []func(t *testing.T){
testAttributeFltrSInitCfg,
@@ -123,14 +124,14 @@ func testAttributeSetFltr1(t *testing.T) {
},
}
var result string
- if err := attrFltrRPC.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var indexes []string
- if err := attrFltrRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix,
Context: utils.MetaSessionS},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
@@ -155,7 +156,7 @@ func testAttributeSetProfile(t *testing.T) {
Weight: 20,
},
}
- if err := attrFltrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -171,7 +172,7 @@ func testAttributeSetProfile(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrFltrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrFltrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
@@ -180,7 +181,7 @@ func testAttributeSetProfile(t *testing.T) {
expIdx := []string{
"*prefix:*req.Subject:48:ApierTest",
}
- if err := attrFltrRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix,
Context: utils.MetaSessionS},
&indexes); err != nil {
@@ -204,7 +205,7 @@ func testAttributeSetFltr2(t *testing.T) {
}},
},
}
- if err := attrFltrRPC.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -235,7 +236,7 @@ func testAttributeSetFltr2(t *testing.T) {
},
}
var rplyEv engine.AttrSProcessEventReply
- if err := attrFltrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrFltrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(exp, rplyEv) {
@@ -246,7 +247,7 @@ func testAttributeSetFltr2(t *testing.T) {
expIdx := []string{
"*prefix:*req.Subject:44:ApierTest",
}
- if err := attrFltrRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix,
Context: utils.MetaSessionS},
&indexes); err != nil {
@@ -259,14 +260,14 @@ func testAttributeSetFltr2(t *testing.T) {
func testAttributeRemoveFltr(t *testing.T) {
var result string
- if err := attrFltrRPC.Call(utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := attrFltrRPC.Call(utils.APIerSv1RemoveFilter, &utils.TenantIDWithAPIOpts{
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1RemoveFilter, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_1"}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -274,7 +275,7 @@ func testAttributeRemoveFltr(t *testing.T) {
}
var indexes []string
- if err := attrFltrRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := attrFltrRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix,
Context: utils.MetaSessionS},
&indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
diff --git a/general_tests/attributes_it_test.go b/general_tests/attributes_it_test.go
index 96555abd7..9077f7cb7 100644
--- a/general_tests/attributes_it_test.go
+++ b/general_tests/attributes_it_test.go
@@ -21,7 +21,6 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"sort"
@@ -29,6 +28,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
attrCfgPath string
attrCfg *config.CGRConfig
- attrRPC *rpc.Client
+ attrRPC *birpc.Client
alsPrfConfigDIR string
sTestsAlsPrf = []func(t *testing.T){
testAttributeSInitCfg,
@@ -120,7 +121,7 @@ func testAttributeSRPCConn(t *testing.T) {
func testAttributeSLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := attrRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(200 * time.Millisecond)
@@ -156,7 +157,7 @@ func testAttributeSProcessEvent(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -196,13 +197,13 @@ func testAttributeSProcessEventWithAccount(t *testing.T) {
},
}
alsPrf.Compile()
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACCOUNT"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -239,7 +240,7 @@ func testAttributeSProcessEventWithAccount(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -279,13 +280,13 @@ func testAttributeSProcessEventWithAccountFull(t *testing.T) {
},
}
alsPrf.Compile()
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACCOUNT2"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -320,7 +321,7 @@ func testAttributeSProcessEventWithAccountFull(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -356,7 +357,7 @@ func testAttributeSProcessEventWithStat(t *testing.T) {
utils.Cost: 10.0,
},
}
- if err := attrRPC.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -373,7 +374,7 @@ func testAttributeSProcessEventWithStat(t *testing.T) {
utils.Cost: 10.5,
},
}
- if err := attrRPC.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -407,13 +408,13 @@ func testAttributeSProcessEventWithStat(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_STATS"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -450,7 +451,7 @@ func testAttributeSProcessEventWithStat(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -490,13 +491,13 @@ func testAttributeSProcessEventWithStatFull(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_STATS2"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -533,7 +534,7 @@ func testAttributeSProcessEventWithStatFull(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -558,14 +559,14 @@ func testAttributeSProcessEventWithResource(t *testing.T) {
}
var result string
- if err := attrRPC.Call(utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.ResourceProfile
- if err := attrRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, rlsConfig) {
@@ -584,7 +585,7 @@ func testAttributeSProcessEventWithResource(t *testing.T) {
utils.OptsResourcesUnits: 3,
},
}
- if err := attrRPC.Call(utils.ResourceSv1AllocateResources,
+ if err := attrRPC.Call(context.Background(), utils.ResourceSv1AllocateResources,
argsRU, &result); err != nil {
t.Error(err)
}
@@ -600,7 +601,7 @@ func testAttributeSProcessEventWithResource(t *testing.T) {
utils.OptsResourcesUnits: 2,
},
}
- if err := attrRPC.Call(utils.ResourceSv1AllocateResources,
+ if err := attrRPC.Call(context.Background(), utils.ResourceSv1AllocateResources,
argsRU2, &result); err != nil {
t.Error(err)
}
@@ -632,13 +633,13 @@ func testAttributeSProcessEventWithResource(t *testing.T) {
},
}
alsPrf.Compile()
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_RESOURCE"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -675,7 +676,7 @@ func testAttributeSProcessEventWithResource(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -715,13 +716,13 @@ func testAttributeSProcessEventWithResourceFull(t *testing.T) {
},
}
alsPrf.Compile()
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_RESOURCE2"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -755,7 +756,7 @@ func testAttributeSProcessEventWithResourceFull(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -806,13 +807,13 @@ func testAttributeSProcessEventWithLibPhoneNumber(t *testing.T) {
},
}
alsPrf.Compile()
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER2"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -851,7 +852,7 @@ func testAttributeSProcessEventWithLibPhoneNumber(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -909,13 +910,13 @@ func testAttributeSProcessEventWithLibPhoneNumberComposed(t *testing.T) {
},
}
alsPrf.Compile()
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER_COMPOSED"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -954,7 +955,7 @@ func testAttributeSProcessEventWithLibPhoneNumberComposed(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
@@ -994,13 +995,13 @@ func testAttributeSProcessEventWithLibPhoneNumberFull(t *testing.T) {
},
}
alsPrf.Compile()
- if err := attrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := attrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER"}}, &replyAttr); err != nil {
t.Fatal(err)
}
@@ -1039,7 +1040,7 @@ func testAttributeSProcessEventWithLibPhoneNumberFull(t *testing.T) {
}
sort.Strings(eRply.AlteredFields)
var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+ if err := attrRPC.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv); err != nil {
t.Fatal(err)
}
diff --git a/general_tests/auth_test.go b/general_tests/auth_test.go
index 3cbb621f8..2079815cb 100644
--- a/general_tests/auth_test.go
+++ b/general_tests/auth_test.go
@@ -21,6 +21,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -132,7 +133,7 @@ func TestAuthPostpaidNoAcnt(t *testing.T) {
t.Error(err)
}
var maxSessionTime time.Duration
- if err := rsponder.GetMaxSessionTime(&engine.CallDescriptorWithAPIOpts{CallDescriptor: cd}, &maxSessionTime); err != utils.ErrAccountNotFound {
+ if err := rsponder.GetMaxSessionTime(context.Background(), &engine.CallDescriptorWithAPIOpts{CallDescriptor: cd}, &maxSessionTime); err != utils.ErrAccountNotFound {
t.Error(err)
}
}
@@ -147,7 +148,7 @@ func TestAuthPostpaidFallbackDest(t *testing.T) {
t.Error(err)
}
var maxSessionTime time.Duration
- if err = rsponder.GetMaxSessionTime(&engine.CallDescriptorWithAPIOpts{CallDescriptor: cd}, &maxSessionTime); err != nil {
+ if err = rsponder.GetMaxSessionTime(context.Background(), &engine.CallDescriptorWithAPIOpts{CallDescriptor: cd}, &maxSessionTime); err != nil {
t.Error(err)
} else if maxSessionTime != 0 {
t.Error("Unexpected maxSessionTime received: ", maxSessionTime)
@@ -164,7 +165,7 @@ func TestAuthPostpaidWithDestination(t *testing.T) {
t.Error(err)
}
var maxSessionTime time.Duration
- if err := rsponder.GetMaxSessionTime(&engine.CallDescriptorWithAPIOpts{CallDescriptor: cd}, &maxSessionTime); err != nil {
+ if err := rsponder.GetMaxSessionTime(context.Background(), &engine.CallDescriptorWithAPIOpts{CallDescriptor: cd}, &maxSessionTime); err != nil {
t.Error(err)
} else if maxSessionTime != 0 {
t.Error("Unexpected maxSessionTime received: ", maxSessionTime)
diff --git a/general_tests/broadcast_client_it_test.go b/general_tests/broadcast_client_it_test.go
index fb11bea1a..b58d2add0 100644
--- a/general_tests/broadcast_client_it_test.go
+++ b/general_tests/broadcast_client_it_test.go
@@ -21,12 +21,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,8 +39,8 @@ var (
brodcastInternalCfgDIR string
brodcastCfg *config.CGRConfig
brodcastInternalCfg *config.CGRConfig
- brodcastRPC *rpc.Client
- brodcastInternalRPC *rpc.Client
+ brodcastRPC *birpc.Client
+ brodcastInternalRPC *birpc.Client
sTestBrodcastIt = []func(t *testing.T){
testbrodcastItLoadConfig,
@@ -124,10 +125,10 @@ func testbrodcastItRPCConn(t *testing.T) {
func testbrodcastItLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := brodcastRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := brodcastRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
- if err := brodcastInternalRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := brodcastInternalRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(200 * time.Millisecond)
@@ -152,7 +153,7 @@ func testbrodcastItProccessEvent(t *testing.T) {
}
var rply string
- if err := brodcastRPC.Call(utils.SessionSv1ProcessCDR, args, &rply); err != nil {
+ if err := brodcastRPC.Call(context.Background(), utils.SessionSv1ProcessCDR, args, &rply); err != nil {
t.Fatal(err)
}
if rply != utils.OK {
@@ -187,7 +188,7 @@ func testbrodcastItGetCDRs(t *testing.T) {
}
var cdrs []*engine.CDR
args := utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
- if err := brodcastRPC.Call(utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
+ if err := brodcastRPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
@@ -197,7 +198,7 @@ func testbrodcastItGetCDRs(t *testing.T) {
t.Errorf("Expected: %s ,received: %s", utils.ToJSON(eCDR), utils.ToJSON(cdrs[0]))
}
- if err := brodcastInternalRPC.Call(utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
+ if err := brodcastInternalRPC.Call(context.Background(), utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
diff --git a/general_tests/cacherpl_filter_update_it_test.go b/general_tests/cacherpl_filter_update_it_test.go
index 9108bda78..92d5ac1df 100644
--- a/general_tests/cacherpl_filter_update_it_test.go
+++ b/general_tests/cacherpl_filter_update_it_test.go
@@ -21,13 +21,14 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"os/exec"
"path"
"reflect"
"sort"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ var (
fltrUpdateCfgPath1, fltrUpdateCfgPath2 string
fltrUpdateCfgDIR1, fltrUpdateCfgDIR2 string
fltrUpdateCfg1, fltrUpdateCfg2 *config.CGRConfig
- fltrUpdateRPC1, fltrUpdateRPC2 *rpc.Client
+ fltrUpdateRPC1, fltrUpdateRPC2 *birpc.Client
testEng1 *exec.Cmd
sTestsFilterUpdate = []func(t *testing.T){
testFilterUpdateInitCfg,
@@ -168,14 +169,14 @@ func testFilterUpdateSetFilterE1(t *testing.T) {
}
var reply string
- if err := fltrUpdateRPC1.Call(utils.APIerSv1SetFilter, fltr, &reply); err != nil {
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.APIerSv1SetFilter, fltr, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
var result *engine.Filter
- if err := fltrUpdateRPC1.Call(utils.APIerSv1GetFilter,
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ID"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(fltr.Filter, result) {
@@ -206,13 +207,13 @@ func testFilterUpdateSetAttrProfileE1(t *testing.T) {
attrPrf.Compile()
var reply string
- if err := fltrUpdateRPC1.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &reply); err != nil {
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
var result *engine.AttributeProfile
- if err := fltrUpdateRPC1.Call(utils.APIerSv1GetAttributeProfile,
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ID"}}, &result); err != nil {
t.Fatal(err)
}
@@ -240,7 +241,7 @@ func testFilterUpdateGetAttrProfileForEventEv1E1(t *testing.T) {
eAttrPrf.Compile()
var attrReply *engine.AttributeProfile
- if err := fltrUpdateRPC1.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev1, &attrReply); err != nil {
t.Fatal(err)
}
@@ -269,7 +270,7 @@ func testFilterUpdateGetAttrProfileForEventEv1E2(t *testing.T) {
eAttrPrf.Compile()
var attrReply *engine.AttributeProfile
- if err := fltrUpdateRPC2.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev1, &attrReply); err != nil {
t.Fatal(err)
}
@@ -298,7 +299,7 @@ func testFilterUpdateGetAttrProfileForEventEv2E1(t *testing.T) {
eAttrPrf.Compile()
var attrReply *engine.AttributeProfile
- if err := fltrUpdateRPC1.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev2, &attrReply); err != nil {
t.Fatal(err)
}
@@ -327,7 +328,7 @@ func testFilterUpdateGetAttrProfileForEventEv2E2(t *testing.T) {
eAttrPrf.Compile()
var attrReply *engine.AttributeProfile
- if err := fltrUpdateRPC2.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev2, &attrReply); err != nil {
t.Fatal(err)
}
@@ -357,14 +358,14 @@ func testFilterUpdateSetFilterAfterAttrE1(t *testing.T) {
}
var reply string
- if err := fltrUpdateRPC1.Call(utils.APIerSv1SetFilter, fltr, &reply); err != nil {
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.APIerSv1SetFilter, fltr, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
var result *engine.Filter
- if err := fltrUpdateRPC1.Call(utils.APIerSv1GetFilter,
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ID"}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(fltr.Filter, result) {
@@ -374,7 +375,7 @@ func testFilterUpdateSetFilterAfterAttrE1(t *testing.T) {
func testFilterUpdateGetAttrProfileForEventEv1E1NotMatching(t *testing.T) {
var attrReply *engine.AttributeProfile
- if err := fltrUpdateRPC1.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev1, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -382,7 +383,7 @@ func testFilterUpdateGetAttrProfileForEventEv1E1NotMatching(t *testing.T) {
func testFilterUpdateGetAttrProfileForEventEv1E2NotMatching(t *testing.T) {
var attrReply *engine.AttributeProfile
- if err := fltrUpdateRPC2.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev1, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -390,7 +391,7 @@ func testFilterUpdateGetAttrProfileForEventEv1E2NotMatching(t *testing.T) {
func testFilterUpdateGetAttrProfileForEventEv2E1NotMatching(t *testing.T) {
var attrReply *engine.AttributeProfile
- if err := fltrUpdateRPC1.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev2, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -398,7 +399,7 @@ func testFilterUpdateGetAttrProfileForEventEv2E1NotMatching(t *testing.T) {
func testFilterUpdateGetAttrProfileForEventEv2E2NotMatching(t *testing.T) {
var attrReply *engine.AttributeProfile
- if err := fltrUpdateRPC2.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev2, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
diff --git a/general_tests/cacherpl_it_test.go b/general_tests/cacherpl_it_test.go
index 9d802b92b..9ae2ada75 100644
--- a/general_tests/cacherpl_it_test.go
+++ b/general_tests/cacherpl_it_test.go
@@ -21,7 +21,6 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"os/exec"
"path"
"reflect"
@@ -30,6 +29,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
@@ -40,13 +41,13 @@ import (
var (
dspEngine1Cfg *config.CGRConfig
dspEngine1CfgPath string
- dspEngine1RPC *rpc.Client
+ dspEngine1RPC *birpc.Client
dspEngine2Cfg *config.CGRConfig
dspEngine2CfgPath string
- dspEngine2RPC *rpc.Client
+ dspEngine2RPC *birpc.Client
engine1Cfg *config.CGRConfig
engine1CfgPath string
- engine1RPC *rpc.Client
+ engine1RPC *birpc.Client
sTestsCacheRpl = []func(t *testing.T){
testCacheRplInitCfg,
@@ -240,7 +241,7 @@ func testCacheRplAddData(t *testing.T) {
},
}
var result string
- if err := engine1RPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := engine1RPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -299,7 +300,7 @@ func testCacheRplAAAddData(t *testing.T) {
},
}
var result string
- if err := engine1RPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := engine1RPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -314,14 +315,14 @@ func testCacheRplPing(t *testing.T) {
utils.OptsRouteID: "testRoute123",
},
}
- if err := dspEngine1RPC.Call(utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
+ if err := dspEngine1RPC.Call(context.Background(), utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "Engine1" {
t.Errorf("Received: %s", utils.ToJSON(reply))
}
var rpl string
- if err := dspEngine1RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+ if err := dspEngine1RPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -339,7 +340,7 @@ func testCacheRplCheckReplication(t *testing.T) {
ev := utils.TenantWithAPIOpts{
Tenant: "cgrates.org",
}
- if err := dspEngine2RPC.Call(utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
+ if err := dspEngine2RPC.Call(context.Background(), utils.DispatcherSv1RemoteStatus, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "DispatcherEngine2" {
t.Errorf("Received: %s", utils.ToJSON(reply))
@@ -352,7 +353,7 @@ func testCacheRplCheckReplication(t *testing.T) {
CacheID: utils.CacheDispatcherRoutes,
},
}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
@@ -362,7 +363,7 @@ func testCacheRplCheckReplication(t *testing.T) {
}
var rpl string
- if err := dspEngine2RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+ if err := dspEngine2RPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -383,17 +384,17 @@ func testCacheRplAACheckReplication(t *testing.T) {
CacheID: utils.CacheDispatcherRoutes,
},
}
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
+ if err := dspEngine1RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var rpl string
- if err := dspEngine2RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+ if err := dspEngine2RPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
@@ -405,7 +406,7 @@ func testCacheRplAACheckReplication(t *testing.T) {
t.Errorf("Received: %s", rpl)
}
- if err := dspEngine1RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+ if err := dspEngine1RPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{
Tenant: "cgrates.org",
APIOpts: map[string]any{
utils.OptsRouteID: "testRouteFromDispatcher1",
@@ -418,7 +419,7 @@ func testCacheRplAACheckReplication(t *testing.T) {
expKeys := []string{"testRouteFromDispatcher2:*attributes", "testRouteFromDispatcher1:*attributes"}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
@@ -427,7 +428,7 @@ func testCacheRplAACheckReplication(t *testing.T) {
t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
}
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine1RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
@@ -446,11 +447,11 @@ func testCacheRplAACheckLoadReplication(t *testing.T) {
CacheID: utils.CacheDispatcherLoads,
},
}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
+ if err := dspEngine1RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -462,7 +463,7 @@ func testCacheRplAACheckLoadReplication(t *testing.T) {
wgDisp2.Add(1)
go func() {
var rpl []*engine.ChrgSProcessEventReply
- if err := dspEngine1RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
+ if err := dspEngine1RPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, &utils.CGREvent{
Tenant: "cgrates.org",
ID: "testCacheRplAACheckLoadReplication",
Event: map[string]any{
@@ -483,7 +484,7 @@ func testCacheRplAACheckLoadReplication(t *testing.T) {
}()
go func() {
var rpl []*engine.ChrgSProcessEventReply
- if err := dspEngine2RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
+ if err := dspEngine2RPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, &utils.CGREvent{
Tenant: "cgrates.org",
ID: "testCacheRplAACheckLoadReplication",
@@ -515,7 +516,7 @@ func testCacheRplAACheckLoadReplication(t *testing.T) {
CacheID: utils.CacheDispatcherRoutes,
},
}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
@@ -523,7 +524,7 @@ func testCacheRplAACheckLoadReplication(t *testing.T) {
if !reflect.DeepEqual(expKeys, rcvKeys) {
t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
}
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine1RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
@@ -539,7 +540,7 @@ func testCacheRplAACheckLoadReplication(t *testing.T) {
CacheID: utils.CacheDispatcherLoads,
},
}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
@@ -547,7 +548,7 @@ func testCacheRplAACheckLoadReplication(t *testing.T) {
if !reflect.DeepEqual(expKeys, rcvKeys) {
t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
}
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine1RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
@@ -565,7 +566,7 @@ func testCacheRplCheckLoadReplication(t *testing.T) {
CacheID: utils.CacheDispatcherLoads,
},
}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -574,7 +575,7 @@ func testCacheRplCheckLoadReplication(t *testing.T) {
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
- if err := dspEngine1RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
+ if err := dspEngine1RPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, &utils.CGREvent{
Tenant: "cgrates.org",
ID: "testCacheRplCheckLoadReplication",
@@ -603,7 +604,7 @@ func testCacheRplCheckLoadReplication(t *testing.T) {
CacheID: utils.CacheDispatcherRoutes,
},
}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
@@ -619,7 +620,7 @@ func testCacheRplCheckLoadReplication(t *testing.T) {
CacheID: utils.CacheDispatcherLoads,
},
}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+ if err := dspEngine2RPC.Call(context.Background(), utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
t.Error(err.Error())
}
sort.Strings(rcvKeys)
diff --git a/general_tests/cdrs_exp_it_test.go b/general_tests/cdrs_exp_it_test.go
index 147dc6c75..4c5679ac5 100644
--- a/general_tests/cdrs_exp_it_test.go
+++ b/general_tests/cdrs_exp_it_test.go
@@ -23,11 +23,9 @@ package general_tests
import (
"bytes"
- "context"
"encoding/json"
"fmt"
"net/http"
- "net/rpc"
"net/url"
"os"
"os/exec"
@@ -37,6 +35,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/ees"
@@ -50,7 +50,7 @@ var (
cdrsExpCfgPath string
cdrsExpCfgDir string
cdrsExpCfg *config.CGRConfig
- cdrsExpRPC *rpc.Client
+ cdrsExpRPC *birpc.Client
cdrsExpHTTPEv = make(chan map[string]any, 1)
cdrsExpHTTPServer *http.Server
@@ -233,7 +233,7 @@ func testCDRsExpLoadAddCharger(t *testing.T) {
},
}
var result string
- if err := cdrsExpRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := cdrsExpRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -246,7 +246,7 @@ func testCDRsExpExportEvent(t *testing.T) {
t.Error(err)
}
var reply string
- if err := cdrsExpRPC.Call(utils.CDRsV1ProcessEvent,
+ if err := cdrsExpRPC.Call(context.Background(), utils.CDRsV1ProcessEvent,
&engine.ArgV1ProcessEvent{
Flags: []string{"*export:true", utils.MetaRALs},
CGREvent: *cdrsExpEv,
diff --git a/general_tests/cdrs_internal_it_test.go b/general_tests/cdrs_internal_it_test.go
index 85a3ecf68..1d80e6e90 100644
--- a/general_tests/cdrs_internal_it_test.go
+++ b/general_tests/cdrs_internal_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/engine"
@@ -38,7 +39,7 @@ var (
cdrsIntCfgPath string
cdrsIntCfgDIR string
cdrsIntCfg *config.CGRConfig
- cdrsIntRPC *rpc.Client
+ cdrsIntRPC *birpc.Client
sTestsCdrsInt = []func(t *testing.T){
testCdrsIntInitCfg,
@@ -113,19 +114,19 @@ func testCdrsIntTestTTL(t *testing.T) {
}
var reply string
- if err := cdrsIntRPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsIntRPC.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.ExternalCDR
- if err := cdrsIntRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &cdrs); err != nil {
+ if err := cdrsIntRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Errorf("Expected 1 result received %v ", len(cdrs))
}
time.Sleep(time.Second + 50*time.Millisecond)
- if err := cdrsIntRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &cdrs); err == nil ||
+ if err := cdrsIntRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &cdrs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal("Unexpected error: ", err)
}
diff --git a/general_tests/cdrs_it_test.go b/general_tests/cdrs_it_test.go
index 815344653..cd84a39f8 100644
--- a/general_tests/cdrs_it_test.go
+++ b/general_tests/cdrs_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
cdrsCfgPath string
cdrsCfg *config.CGRConfig
- cdrsRpc *rpc.Client
+ cdrsRpc *birpc.Client
cdrsConfDIR string // run the tests for specific configuration
// subtests to be executed for each confDIR
@@ -137,21 +138,21 @@ func testV2CDRsRpcConn(t *testing.T) {
func testV2CDRsLoadTariffPlanFromFolder(t *testing.T) {
var loadInst utils.LoadInstance
- if err := cdrsRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
&utils.AttrLoadTpFromFolder{FolderPath: path.Join(
*dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
var resp string
- if err := cdrsRpc.Call(utils.APIerSv1RemoveChargerProfile,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1RemoveChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
var reply *engine.ChargerProfile
- if err := cdrsRpc.Call(utils.APIerSv1GetChargerProfile,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -182,7 +183,7 @@ func testV2CDRsProcessCDR(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -192,14 +193,14 @@ func testV2CDRsProcessCDR(t *testing.T) {
func testV2CDRsGetCdrs(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 2 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
}
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -213,7 +214,7 @@ func testV2CDRsGetCdrs(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -253,7 +254,7 @@ func testV2CDRsProcessCDR2(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -263,14 +264,14 @@ func testV2CDRsProcessCDR2(t *testing.T) {
func testV2CDRsGetCdrs2(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR2"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 2 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
}
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}, OriginIDs: []string{"testV2CDRsProcessCDR2"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -285,7 +286,7 @@ func testV2CDRsGetCdrs2(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, OriginIDs: []string{"testV2CDRsProcessCDR2"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -325,7 +326,7 @@ func testV2CDRsProcessCDR3(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -335,14 +336,14 @@ func testV2CDRsProcessCDR3(t *testing.T) {
func testV2CDRsGetCdrs3(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR3"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 1 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
}
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, OriginIDs: []string{"testV2CDRsProcessCDR3"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -357,7 +358,7 @@ func testV2CDRsGetCdrs3(t *testing.T) {
}
}
args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, OriginIDs: []string{"testV2CDRsProcessCDR3"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error("Unexpected error: ", err)
}
}
@@ -386,7 +387,7 @@ func testV2CDRsProcessCDR4(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -396,7 +397,7 @@ func testV2CDRsProcessCDR4(t *testing.T) {
func testV2CDRsGetCdrs4(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR4"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 2 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
@@ -406,7 +407,7 @@ func testV2CDRsGetCdrs4(t *testing.T) {
RunIDs: []string{"raw"},
OriginIDs: []string{"testV2CDRsProcessCDR4"},
}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
}
if len(cdrs) != 1 {
@@ -423,7 +424,7 @@ func testV2CDRsGetCdrs4(t *testing.T) {
RunIDs: []string{"CustomerCharges"},
OriginIDs: []string{"testV2CDRsProcessCDR4"},
}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
}
if len(cdrs) != 1 {
@@ -441,7 +442,7 @@ func testV2CDRsGetCdrs4(t *testing.T) {
func testV2CDRsGetCdrs5(t *testing.T) {
var cdrCnt int64
req := utils.RPCCDRsFilter{Accounts: []string{"testV2CDRsProcessCDR5"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 0 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
@@ -451,21 +452,21 @@ func testV2CDRsGetCdrs5(t *testing.T) {
RunIDs: []string{"raw"},
OriginIDs: []string{"testV2CDRsProcessCDR5"},
}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal("Unexpected error: ", err)
}
args = utils.RPCCDRsFilter{
RunIDs: []string{"CustomerCharges"},
OriginIDs: []string{"testV2CDRsProcessCDR5"},
}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Fatal("Unexpected error: ", err.Error())
}
}
func testV2CDRsSetStats(t *testing.T) {
var reply *engine.StatQueueProfile
- if err := cdrsRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "STS_PoccessCDR"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -487,12 +488,12 @@ func testV2CDRsSetStats(t *testing.T) {
},
}
var result string
- if err := cdrsRpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := cdrsRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "STS_PoccessCDR"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -505,7 +506,7 @@ func testV2CDRsSetThresholdProfile(t *testing.T) {
// Set Action
attrsAA := &utils.AttrSetActions{ActionsId: "ACT_THD_PoccessCDR", Actions: []*utils.TPAction{{Identifier: utils.MetaLog}}}
- if err := cdrsRpc.Call(utils.APIerSv2SetActions, attrsAA, &actreply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &actreply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if actreply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", actreply)
@@ -513,7 +514,7 @@ func testV2CDRsSetThresholdProfile(t *testing.T) {
// Set Account
attrsSetAccount := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "testV2CDRsProcessCDR5"}
- if err := cdrsRpc.Call(utils.APIerSv1SetAccount, attrsSetAccount, &actreply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetAccount, attrsSetAccount, &actreply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if actreply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", actreply)
@@ -522,7 +523,7 @@ func testV2CDRsSetThresholdProfile(t *testing.T) {
// Set Threshold
var reply *engine.ThresholdProfile
var result string
- if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -539,12 +540,12 @@ func testV2CDRsSetThresholdProfile(t *testing.T) {
Async: false,
},
}
- if err := cdrsRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -575,7 +576,7 @@ func testV2CDRsProcessCDR5(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -588,7 +589,7 @@ func testV2CDRsGetStats1(t *testing.T) {
expectedMetrics := map[string]string{
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: utils.NotAvailable,
}
- if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := cdrsRpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]},
}, &metrics); err != nil {
@@ -601,14 +602,14 @@ func testV2CDRsGetStats1(t *testing.T) {
func testV2CDRsGetThreshold1(t *testing.T) {
expected := []string{"THD_ACNT_1001", "THD_PoccessCDR"}
var result []string
- if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfileIDs,
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs,
&utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
}
var td engine.Threshold
- if err := cdrsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := cdrsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"},
}, &td); err != nil {
@@ -641,7 +642,7 @@ func testV2CDRsProcessCDR6(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -654,7 +655,7 @@ func testV2CDRsGetStats2(t *testing.T) {
expectedMetrics := map[string]string{
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: "120000000000",
}
- if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := cdrsRpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]},
}, &metrics); err != nil {
@@ -666,7 +667,7 @@ func testV2CDRsGetStats2(t *testing.T) {
func testV2CDRsGetThreshold2(t *testing.T) {
var td engine.Threshold
- if err := cdrsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := cdrsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"},
}, &td); err != nil {
@@ -700,7 +701,7 @@ func testV2CDRsProcessCDR7(t *testing.T) {
}
var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -710,7 +711,7 @@ func testV2CDRsProcessCDR7(t *testing.T) {
func testV2CDRsGetCdrs7(t *testing.T) {
var cdrCnt int64
req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR7"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrCnt != 2 {
t.Error("Unexpected number of CDRs returned: ", cdrCnt)
@@ -720,7 +721,7 @@ func testV2CDRsGetCdrs7(t *testing.T) {
RunIDs: []string{"raw"},
OriginIDs: []string{"testV2CDRsProcessCDR7"},
}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
}
if len(cdrs) != 1 {
@@ -737,7 +738,7 @@ func testV2CDRsGetCdrs7(t *testing.T) {
RunIDs: []string{"CustomerCharges"},
OriginIDs: []string{"testV2CDRsProcessCDR7"},
}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+ if err := cdrsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
}
if len(cdrs) != 1 {
diff --git a/general_tests/cdrs_onlexp_it_test.go b/general_tests/cdrs_onlexp_it_test.go
index b1f97900c..ca8336f33 100644
--- a/general_tests/cdrs_onlexp_it_test.go
+++ b/general_tests/cdrs_onlexp_it_test.go
@@ -22,7 +22,6 @@ along with this program. If not, see
package general_tests
import (
- "context"
"encoding/json"
"fmt"
"net/http"
@@ -34,6 +33,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/ees"
"github.com/cgrates/cgrates/engine"
@@ -185,8 +185,8 @@ func testCDRsOnExpAMQPQueuesCreation(t *testing.T) {
// Connect rpc client to rater
func testCDRsOnExpInitMasterRPC(t *testing.T) {
var err error
- cdrsMasterRpc, err = rpcclient.NewRPCClient(utils.TCP, cdrsMasterCfg.ListenCfg().RPCJSONListen, false, "", "", "", 1, 1,
- time.Second, 5*time.Second, rpcclient.JSONrpc, nil, false, nil)
+ cdrsMasterRpc, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, cdrsMasterCfg.ListenCfg().RPCJSONListen, false, "", "", "", 1, 1,
+ 0, utils.FibDuration, time.Second, 5*time.Second, rpcclient.JSONrpc, nil, false, nil)
if err != nil {
t.Fatal("Could not connect to rater: ", err.Error())
}
@@ -202,7 +202,7 @@ func testCDRsOnExpLoadDefaultCharger(t *testing.T) {
Weight: 20,
}
var result string
- if err := cdrsMasterRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := cdrsMasterRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -235,7 +235,8 @@ func testCDRsOnExpDisableOnlineExport(t *testing.T) {
},
}
var reply string
- if err := cdrsMasterRpc.Call(utils.CDRsV1ProcessEvent,
+ if err := cdrsMasterRpc.Call(context.Background(),
+ utils.CDRsV1ProcessEvent,
&engine.ArgV1ProcessEvent{
Flags: []string{"*export:false", "*chargers:false"},
CGREvent: *testCdr.AsCGREvent(),
@@ -280,21 +281,22 @@ func testCDRsOnExpHttpCdrReplication(t *testing.T) {
arg.APIOpts = map[string]any{"ExporterID": "http_localhost"}
// we expect that the cdr export to fail and go into the failed post directory
- if err := cdrsMasterRpc.Call(utils.CDRsV1ProcessEvent,
+ if err := cdrsMasterRpc.Call(context.Background(),
+ utils.CDRsV1ProcessEvent,
&engine.ArgV1ProcessEvent{
CGREvent: *arg,
}, &reply); err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
t.Error("Unexpected error: ", err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond)
- cdrsSlaveRpc, err := rpcclient.NewRPCClient(utils.TCP, "127.0.0.1:12012", false, "", "", "", 1, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+ cdrsSlaveRpc, err := rpcclient.NewRPCClient(context.Background(), utils.TCP, "127.0.0.1:12012", false, "", "", "", 1, 1,
+ 0, utils.FibDuration, time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
if err != nil {
t.Fatal("Could not connect to rater: ", err.Error())
}
// ToDo: Fix cdr_http to be compatible with rest of processCdr methods
var rcvedCdrs []*engine.ExternalCDR
- if err := cdrsSlaveRpc.Call(utils.APIerSv2GetCDRs,
+ if err := cdrsSlaveRpc.Call(context.Background(), utils.APIerSv2GetCDRs,
&utils.RPCCDRsFilter{CGRIDs: []string{testCdr1.CGRID}, RunIDs: []string{utils.MetaDefault}}, &rcvedCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rcvedCdrs) != 1 {
@@ -396,7 +398,8 @@ func testCDRsOnExpAMQPReplication(t *testing.T) {
},
}
var reply string
- if err := cdrsMasterRpc.Call(utils.CDRsV1ProcessEvent,
+ if err := cdrsMasterRpc.Call(context.Background(),
+ utils.CDRsV1ProcessEvent,
&engine.ArgV1ProcessEvent{
Flags: []string{"*export:true"},
diff --git a/general_tests/cdrs_post_failover_it_test.go b/general_tests/cdrs_post_failover_it_test.go
index 75db3c6ac..e97fa13b0 100644
--- a/general_tests/cdrs_post_failover_it_test.go
+++ b/general_tests/cdrs_post_failover_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"os"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/ees"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +38,7 @@ import (
var (
cdrsPostFailCfgPath string
cdrsPostFailCfg *config.CGRConfig
- cdrsPostFailRpc *rpc.Client
+ cdrsPostFailRpc *birpc.Client
cdrsPostFailConfDIR string // run the tests for specific configuration
// subtests to be executed for each confDIR
@@ -117,21 +118,21 @@ func testCDRsPostFailoverRpcConn(t *testing.T) {
func testCDRsPostFailoverLoadTariffPlanFromFolder(t *testing.T) {
var loadInst utils.LoadInstance
- if err := cdrsPostFailRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := cdrsPostFailRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
&utils.AttrLoadTpFromFolder{FolderPath: path.Join(
*dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
var resp string
- if err := cdrsPostFailRpc.Call(utils.APIerSv1RemoveChargerProfile,
+ if err := cdrsPostFailRpc.Call(context.Background(), utils.APIerSv1RemoveChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
}
var reply *engine.ChargerProfile
- if err := cdrsPostFailRpc.Call(utils.APIerSv1GetChargerProfile,
+ if err := cdrsPostFailRpc.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"},
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -163,21 +164,21 @@ func testCDRsPostFailoverProcessCDR(t *testing.T) {
}
var reply string
- if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsPostFailRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
args.ID = "2"
args.Event[utils.OriginID] = "2"
- if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsPostFailRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
args.ID = "3"
args.Event[utils.OriginID] = "3"
- if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := cdrsPostFailRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
diff --git a/general_tests/cdrs_processevent_it_test.go b/general_tests/cdrs_processevent_it_test.go
index b588de4b9..17047171f 100644
--- a/general_tests/cdrs_processevent_it_test.go
+++ b/general_tests/cdrs_processevent_it_test.go
@@ -22,7 +22,6 @@ package general_tests
import (
"fmt"
- "net/rpc"
"os"
"path"
"reflect"
@@ -31,6 +30,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/ees"
@@ -42,7 +43,7 @@ var (
pecdrsCfgPath string
pecdrsConfDIR string
pecdrsCfg *config.CGRConfig
- pecdrsRpc *rpc.Client
+ pecdrsRpc *birpc.Client
sTestsCDRsIT_ProcessEvent = []func(t *testing.T){
testV1CDRsInitConfig,
@@ -128,7 +129,7 @@ func testV1CDRsRpcConn(t *testing.T) {
func testV1CDRsLoadTariffPlanFromFolder(t *testing.T) {
var loadInst string
- if err := pecdrsRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder,
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder,
&utils.AttrLoadTpFromFolder{FolderPath: path.Join(
*dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
t.Error(err)
@@ -152,13 +153,13 @@ func testV1CDRsProcessEventAttrS(t *testing.T) {
},
}
var reply string
- if err := pecdrsRpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("received: %s", reply)
}
expectedVoice := 120000000000.0
- if err := pecdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
@@ -198,13 +199,13 @@ func testV1CDRsProcessEventAttrS(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := pecdrsRpc.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyAt *engine.AttributeProfile
- if err := pecdrsRpc.Call(utils.APIerSv1GetAttributeProfile, &utils.TenantIDWithAPIOpts{
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile, &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &replyAt); err != nil {
t.Fatal(err)
}
@@ -212,13 +213,13 @@ func testV1CDRsProcessEventAttrS(t *testing.T) {
if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAt) {
t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(alsPrf.AttributeProfile), utils.ToJSON(replyAt))
}
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
// check if the CDR was correctly processed
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost1"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
@@ -265,13 +266,13 @@ func testV1CDRsProcessEventChrgS(t *testing.T) {
},
}
var reply string
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost2"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 3 {
@@ -308,13 +309,13 @@ func testV1CDRsProcessEventRalS(t *testing.T) {
},
}
var reply string
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost3"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
@@ -348,7 +349,7 @@ func testV1CDRsProcessEventSts(t *testing.T) {
},
}
var reply string
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -381,7 +382,7 @@ func testV1CDRsProcessEventSts(t *testing.T) {
CostDetails: nil,
},
}
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost4"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
@@ -400,7 +401,7 @@ func testV1CDRsProcessEventSts(t *testing.T) {
utils.MetaTCD: "15m0s",
}
- if err := pecdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := pecdrsRpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
t.Error(err)
}
@@ -428,13 +429,13 @@ func testV1CDRsProcessEventStore(t *testing.T) {
},
}
var reply string
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost5"}}}, &cdrs); err == nil ||
err.Error() != "SERVER_ERROR: NOT_FOUND" {
t.Fatal("Unexpected error: ", err.Error())
@@ -445,7 +446,7 @@ func testV1CDRsProcessEventStore(t *testing.T) {
func testV1CDRsProcessEventThreshold(t *testing.T) {
var reply string
- if err := pecdrsRpc.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "ACT_LOG",
Actions: []*utils.TPAction{
{Identifier: utils.MetaLog},
@@ -473,7 +474,7 @@ func testV1CDRsProcessEventThreshold(t *testing.T) {
Async: true,
},
}
- if err := pecdrsRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -485,7 +486,7 @@ func testV1CDRsProcessEventThreshold(t *testing.T) {
utils.AllowNegative: true,
},
}
- if err := pecdrsRpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
t.Fatal(err)
}
attrs := &utils.AttrSetBalance{
@@ -498,7 +499,7 @@ func testV1CDRsProcessEventThreshold(t *testing.T) {
utils.Weight: 10.0,
},
}
- if err := pecdrsRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Fatal(err)
}
args := &engine.ArgV1ProcessEvent{
@@ -521,21 +522,21 @@ func testV1CDRsProcessEventThreshold(t *testing.T) {
},
},
}
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost6"}}}, &cdrs); err != nil {
t.Error("Unexpected error: ", err)
} else if len(cdrs) != 1 {
t.Errorf("Expecting: 1, received: %+v", len(cdrs))
}
var td engine.Threshold
- if err := pecdrsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := pecdrsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}}, &td); err != nil {
t.Error(err)
} else if td.Hits != 1 {
@@ -547,7 +548,7 @@ func testV1CDRsProcessEventThreshold(t *testing.T) {
Account: "1005"}
time.Sleep(50 * time.Millisecond)
expectedVoice := 10.0
- if err := pecdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
@@ -572,7 +573,7 @@ func testV1CDRsProcessEventExport(t *testing.T) {
},
},
}
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err == nil ||
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err == nil ||
err.Error() != utils.ErrPartiallyExecuted.Error() { // the export should fail as we test if the cdr is corectly writen in file
t.Error("Unexpected error: ", err)
}
@@ -655,7 +656,7 @@ func testV1CDRsV2ProcessEventRalS(t *testing.T) {
},
}
var reply []*utils.EventWithFlags
- if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
}
reply[0].Event["CostDetails"] = nil
@@ -671,7 +672,7 @@ func testV1CDRsV2ProcessEventRalS(t *testing.T) {
}
}
var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost101"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
@@ -684,7 +685,7 @@ func testV1CDRsV2ProcessEventRalS(t *testing.T) {
argsEv.CGREvent.ID = "test1002"
argsEv.CGREvent.Event[utils.Usage] = time.Minute
- if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
}
expRply[0].Event["Usage"] = 60000000000.
@@ -702,7 +703,7 @@ func testV1CDRsV2ProcessEventRalS(t *testing.T) {
}
argsEv.CGREvent.Event[utils.Usage] = 30 * time.Second
- if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
+ if err := pecdrsRpc.Call(context.Background(), utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
}
reply[0].Event["CostDetails"] = nil
diff --git a/general_tests/cgrloader_it_test.go b/general_tests/cgrloader_it_test.go
index 7095eac03..840f8a813 100644
--- a/general_tests/cgrloader_it_test.go
+++ b/general_tests/cgrloader_it_test.go
@@ -23,11 +23,12 @@ package general_tests
import (
"flag"
- "net/rpc"
"os/exec"
"path"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ var (
loaderGoogleSheet = flag.Bool("google_sheet", false, "Run the test with google sheet")
cgrloaderCfgPath string
cgrloaderCfg *config.CGRConfig
- cgrloaderRPC *rpc.Client
+ cgrloaderRPC *birpc.Client
cgrloaderConfDIR string //run tests for specific configuration
sTestsCGRLoaders = []func(t *testing.T){
@@ -128,7 +129,7 @@ func testCGRLoaderGetData(t *testing.T) {
"ATTR_1001_SESSIONAUTH", "ATTR_1002_SESSIONAUTH", "ATTR_1003_SESSIONAUTH",
"ATTR_ACC_ALIAS"}
var result []string
- if err := cgrloaderRPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+ if err := cgrloaderRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
t.Error(err)
} else if len(expected) != len(result) {
t.Errorf("Expecting : %+v, received: %+v", expected, result)
diff --git a/general_tests/data_it_test.go b/general_tests/data_it_test.go
index e41361c98..8fb9e803a 100644
--- a/general_tests/data_it_test.go
+++ b/general_tests/data_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -36,7 +37,7 @@ import (
var (
dataCfgPath string
dataCfg *config.CGRConfig
- dataRpc *rpc.Client
+ dataRpc *birpc.Client
dataConfDIR string //run tests for specific configuration
dataDelay int
@@ -116,7 +117,7 @@ func testV1DataRpcConn(t *testing.T) {
func testV1DataGetAccountBeforeSet(t *testing.T) {
var reply *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -126,7 +127,7 @@ func testV1DataGetAccountBeforeSet(t *testing.T) {
func testV1DataLoadTarrifPlans(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testData")}
- if err := dataRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := dataRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -147,7 +148,7 @@ func testV1DataDataDebitUsageWith10Kilo(t *testing.T) {
},
}
var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -155,7 +156,7 @@ func testV1DataDataDebitUsageWith10Kilo(t *testing.T) {
expected := 356000000.0
var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataCost"},
&acc); err != nil {
t.Error(err)
@@ -177,7 +178,7 @@ func testV1DataDataDebitUsageWith10Kilo(t *testing.T) {
AnswerTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
}
tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1DebitUsage,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv1DebitUsage,
&engine.UsageRecordWithAPIOpts{UsageRecord: usageRecord}, &reply); err != nil {
t.Error(err)
}
@@ -186,7 +187,7 @@ func testV1DataDataDebitUsageWith10Kilo(t *testing.T) {
}
expected = 100000000.0
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataCost"},
&acc); err != nil {
t.Error(err)
@@ -203,7 +204,7 @@ func testV1DataGetCostWith10Kilo(t *testing.T) {
Subject: "10kilo", AnswerTime: "*now", Usage: 256000000}
var rply *engine.DataCost
tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
+ if err := dataRpc.Call(context.Background(), utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if rply.Cost != 25600.000000 {
t.Errorf("Unexpected cost received: %f", rply.Cost)
@@ -226,7 +227,7 @@ func testV1DataDebitBalanceWith10Kilo(t *testing.T) {
},
}
var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -234,7 +235,7 @@ func testV1DataDebitBalanceWith10Kilo(t *testing.T) {
expected := 356000000.0
var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance"},
&acc); err != nil {
t.Error(err)
@@ -245,7 +246,7 @@ func testV1DataDebitBalanceWith10Kilo(t *testing.T) {
expected, rply)
}
tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1DebitBalance, &v1.AttrAddBalance{
+ if err := dataRpc.Call(context.Background(), utils.APIerSv1DebitBalance, &v1.AttrAddBalance{
Tenant: "cgrates.org",
Account: "testV1DataDebitBalance",
BalanceType: utils.MetaData,
@@ -260,7 +261,7 @@ func testV1DataDebitBalanceWith10Kilo(t *testing.T) {
}
expected = 100000000.0
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance"},
&acc); err != nil {
t.Error(err)
@@ -285,7 +286,7 @@ func testV1DataDataDebitUsage1G0(t *testing.T) {
},
}
var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -293,7 +294,7 @@ func testV1DataDataDebitUsage1G0(t *testing.T) {
expected := 1100000000.0
var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataDebitUsage1G0"},
&acc); err != nil {
t.Error(err)
@@ -315,7 +316,7 @@ func testV1DataDataDebitUsage1G0(t *testing.T) {
AnswerTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
}
tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1DebitUsage,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv1DebitUsage,
&engine.UsageRecordWithAPIOpts{UsageRecord: usageRecord}, &reply); err != nil {
t.Error(err)
}
@@ -324,7 +325,7 @@ func testV1DataDataDebitUsage1G0(t *testing.T) {
}
expected = 100000000.0
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataDebitUsage1G0"},
&acc); err != nil {
t.Error(err)
@@ -341,7 +342,7 @@ func testV1DataGetCost1G0(t *testing.T) {
Subject: "10kilo", AnswerTime: "*now", Usage: 1000000000}
var rply *engine.DataCost
tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
+ if err := dataRpc.Call(context.Background(), utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if rply.Cost != 100000.000000 {
t.Errorf("Unexpected cost received: %f", rply.Cost)
@@ -364,7 +365,7 @@ func testV1DataDebitBalance1G0(t *testing.T) {
},
}
var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -372,7 +373,7 @@ func testV1DataDebitBalance1G0(t *testing.T) {
expected := 1100000000.0
var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance1G0"},
&acc); err != nil {
t.Error(err)
@@ -383,7 +384,7 @@ func testV1DataDebitBalance1G0(t *testing.T) {
expected, rply)
}
tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1DebitBalance, &v1.AttrAddBalance{
+ if err := dataRpc.Call(context.Background(), utils.APIerSv1DebitBalance, &v1.AttrAddBalance{
Tenant: "cgrates.org",
Account: "testV1DataDebitBalance1G0",
BalanceType: utils.MetaData,
@@ -398,7 +399,7 @@ func testV1DataDebitBalance1G0(t *testing.T) {
}
expected = 100000000.0
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance1G0"},
&acc); err != nil {
t.Error(err)
@@ -423,7 +424,7 @@ func testV1DataInitSession(t *testing.T) {
},
}
var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -431,7 +432,7 @@ func testV1DataInitSession(t *testing.T) {
expected := 1100000000.0
var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
+ if err := dataRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataInitSession"},
&acc); err != nil {
t.Error(err)
@@ -471,13 +472,13 @@ func testV1DataInitSession(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := dataRpc.Call(utils.SessionSv1InitiateSession,
+ if err := dataRpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err != nil {
t.Error(err)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
+ if err := dataRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions,
&utils.SessionFilter{}, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
@@ -517,12 +518,12 @@ func testV1DataUpdateWith1Mo(t *testing.T) {
},
}
var rply sessions.V1UpdateSessionReply
- if err := dataRpc.Call(utils.SessionSv1UpdateSession,
+ if err := dataRpc.Call(context.Background(), utils.SessionSv1UpdateSession,
args, &rply); err != nil {
t.Error(err)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
+ if err := dataRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions,
&utils.SessionFilter{}, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
@@ -561,12 +562,12 @@ func testV1DataUpdateWith1Go(t *testing.T) {
},
}
var rply sessions.V1UpdateSessionReply
- if err := dataRpc.Call(utils.SessionSv1UpdateSession,
+ if err := dataRpc.Call(context.Background(), utils.SessionSv1UpdateSession,
args, &rply); err != nil {
t.Error(err)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
+ if err := dataRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions,
&utils.SessionFilter{}, &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
diff --git a/general_tests/dest_management_it_test.go b/general_tests/dest_management_it_test.go
index 7ac47c79f..00de08b90 100644
--- a/general_tests/dest_management_it_test.go
+++ b/general_tests/dest_management_it_test.go
@@ -38,7 +38,7 @@ import (
var (
destCfgPath string
destCfg *config.CGRConfig
- destRPC *rpc.Client
+ destRPC *birpc.Client
sTestDestManag = []func (t *testing.T){
testDestManagInitCfg,
@@ -112,7 +112,7 @@ func testDestManagRpcConn(t *testing.T) {
func testDestManagLoadTariffPlanFromFolderAll(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "alldests")}
var destLoadInst utils.LoadInstance
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -121,14 +121,14 @@ func testDestManagLoadTariffPlanFromFolderAll(t *testing.T) {
func testDestManagAllDestinationLoaded(t *testing.T) {
dests := make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 6 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
var rcvStats utils.CacheStats
- if err := destRPC.Call(utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
} else if rcvStats.Destinations != 9 {
t.Errorf("Calling APIerSv1.GetCacheStats received: %+v", rcvStats)
@@ -139,7 +139,7 @@ func testDestManagAllDestinationLoaded(t *testing.T) {
func testDestManagLoadTariffPlanFromFolderRemoveSome(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "removesome")}
var destLoadInst utils.LoadInstance
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -147,14 +147,14 @@ func testDestManagLoadTariffPlanFromFolderRemoveSome(t *testing.T) {
func testDestManagRemoveSomeDestinationLoaded(t *testing.T) {
dests := make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 6 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
var rcvStats utils.CacheStats
- if err := destRPC.Call(utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
} else if rcvStats.Destinations != 9 {
t.Errorf("Calling APIerSv1.GetCacheStats received: %+v", rcvStats)
@@ -164,7 +164,7 @@ func testDestManagRemoveSomeDestinationLoaded(t *testing.T) {
func testDestManagLoadTariffPlanFromFolderRemoveSomeFlush(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "removesome"), FlushDb: true}
var destLoadInst utils.LoadInstance
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -172,14 +172,14 @@ func testDestManagLoadTariffPlanFromFolderRemoveSomeFlush(t *testing.T) {
func testDestManagRemoveSomeFlushDestinationLoaded(t *testing.T) {
dests := make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 4 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
var rcvStats utils.CacheStats
- if err := destRPC.Call(utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
} else if rcvStats.Destinations != 5 {
t.Errorf("Calling APIerSv1.GetCacheStats received: %+v", rcvStats)
@@ -189,7 +189,7 @@ func testDestManagRemoveSomeFlushDestinationLoaded(t *testing.T) {
func testDestManagLoadTariffPlanFromFolderAddBack(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "addback")}
var destLoadInst utils.LoadInstance
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -197,14 +197,14 @@ func testDestManagLoadTariffPlanFromFolderAddBack(t *testing.T) {
func testDestManagAddBackDestinationLoaded(t *testing.T) {
dests := make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 6 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
var rcvStats utils.CacheStats
- if err := destRPC.Call(utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
} else if rcvStats.Destinations != 9 {
t.Errorf("Calling APIerSv1.GetCacheStats received: %+v", rcvStats)
@@ -214,7 +214,7 @@ func testDestManagAddBackDestinationLoaded(t *testing.T) {
func testDestManagLoadTariffPlanFromFolderAddOne(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "addone")}
var destLoadInst utils.LoadInstance
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -222,14 +222,14 @@ func testDestManagLoadTariffPlanFromFolderAddOne(t *testing.T) {
func testDestManagAddOneDestinationLoaded(t *testing.T) {
dests := make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 7 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
var rcvStats utils.CacheStats
- if err := destRPC.Call(utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
} else if rcvStats.Destinations != 10 {
t.Errorf("Calling APIerSv1.GetCacheStats received: %+v", rcvStats)
@@ -241,46 +241,46 @@ func testDestManagCacheWithGetCache(t *testing.T) {
t.Fatal(err)
}
var reply string
- if err := destRPC.Call(utils.APIerSv1ReloadCache, utils.AttrReloadCache{}, &reply); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1ReloadCache, utils.AttrReloadCache{}, &reply); err != nil {
t.Error("Got error on APIerSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ReloadCache received: %+v", reply)
}
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "cacheall"), FlushDb: true}
var destLoadInst utils.LoadInstance
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
dests := make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 1 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
var rcvStats utils.CacheStats
- if err := destRPC.Call(utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
} else if rcvStats.Destinations != 2 {
t.Errorf("Calling APIerSv1.GetCacheStats received: %+v", rcvStats)
}
attrs = &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "cacheone"), FlushDb: true}
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
dests = make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 1 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
- if err := destRPC.Call(utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1GetCacheStats, utils.AttrCacheStats{}, &rcvStats); err != nil {
t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
} else if rcvStats.Destinations != 1 {
t.Errorf("Calling APIerSv1.GetCacheStats received: %+v", rcvStats)
@@ -292,20 +292,20 @@ func testDestManagCacheWithGetCost(t *testing.T) {
t.Fatal(err)
}
var reply string
- if err := destRPC.Call(utils.APIerSv1ReloadCache, utils.AttrReloadCache{}, &reply); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv1ReloadCache, utils.AttrReloadCache{}, &reply); err != nil {
t.Error("Got error on APIerSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ReloadCache received: %+v", reply)
}
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "cacheall"), FlushDb: true}
var destLoadInst utils.LoadInstance
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
dests := make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 1 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
@@ -320,26 +320,26 @@ func testDestManagCacheWithGetCost(t *testing.T) {
TimeStart: time.Date(2016, 2, 24, 0, 0, 0, 0, time.UTC),
TimeEnd: time.Date(2016, 2, 24, 0, 0, 10, 0, time.UTC),
}
- if err := destRPC.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+ if err := destRPC.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
t.Error(err)
} else if cc.Cost != 1.6667 {
t.Error("Empty loadId received, loadInstance: ", utils.ToIJSON(cc))
}
attrs = &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "destinations", "cacheone"), FlushDb: true}
- if err := destRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &destLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
dests = make([]*engine.Destination, 0)
- if err := destRPC.Call(utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
+ if err := destRPC.Call(context.Background(),utils.APIerSv2GetDestinations, &v2.AttrGetDestinations{DestinationIDs: []string{}}, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
} else if len(dests) != 1 {
t.Errorf("Calling APIerSv2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
- if err := destRPC.Call(utils.ResponderGetCost, cd, &cc); err.Error() != utils.ErrUnauthorizedDestination.Error() {
+ if err := destRPC.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err.Error() != utils.ErrUnauthorizedDestination.Error() {
t.Error(err)
}
}
diff --git a/general_tests/destination_combined_it_test.go b/general_tests/destination_combined_it_test.go
index e632f51df..7996a9b64 100644
--- a/general_tests/destination_combined_it_test.go
+++ b/general_tests/destination_combined_it_test.go
@@ -26,6 +26,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -101,7 +102,7 @@ func testDestinationRpcConn(t *testing.T) {
func testDestinationFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tp_destination_with_any")}
- if err := tutorialRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := tutorialRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -117,7 +118,7 @@ func testDestinationGetCostFor1002(t *testing.T) {
Usage: "1m",
}
var rply *engine.EventCost
- if err := tutorialRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutorialRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected error received: ", err.Error())
} else if *rply.Cost != 0.01 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -134,7 +135,7 @@ func testDestinationGetCostFor1003(t *testing.T) {
Usage: "1m",
}
var rply *engine.EventCost
- if err := tutorialRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutorialRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected error received: ", err.Error())
} else if *rply.Cost != 0.3 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
diff --git a/general_tests/dispatcher_opts_it_test.go b/general_tests/dispatcher_opts_it_test.go
index da4925673..e33c1a795 100644
--- a/general_tests/dispatcher_opts_it_test.go
+++ b/general_tests/dispatcher_opts_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -40,9 +41,9 @@ var (
setterCfg *config.CGRConfig
cfg2OptsCfg *config.CGRConfig
cfg1Cfg *config.CGRConfig
- setterRPC *rpc.Client
- cgr2RPC *rpc.Client
- cgr1RPC *rpc.Client
+ setterRPC *birpc.Client
+ cgr2RPC *birpc.Client
+ cgr1RPC *birpc.Client
cfg1ConfigDIR string
cfg2ConfigDIR string
setterConfigDIR string
@@ -176,7 +177,7 @@ func testDispatcherCgr1CoreStatus(t *testing.T) {
utils.MetaDispatchers: false,
},
}
- if err := cgr1RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
+ if err := cgr1RPC.Call(context.Background(), utils.CoreSv1Status, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "HOST1" {
t.Errorf("Expected HOST1, received %v", reply[utils.NodeID])
@@ -193,7 +194,7 @@ func testDispatcherCgr2CoreStatus(t *testing.T) {
utils.MetaDispatchers: false,
},
}
- if err := cgr2RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
+ if err := cgr2RPC.Call(context.Background(), utils.CoreSv1Status, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "HOST2" {
t.Errorf("Expected HOST2, received %v", reply[utils.NodeID])
@@ -213,11 +214,11 @@ func testDispatcherGetItemBothEnginesFirstAttempt(t *testing.T) {
},
}
var reply any
- if err := cgr2RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr2RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -233,11 +234,11 @@ func testDispatcherGetItemBothEnginesFirstAttempt(t *testing.T) {
ItemID: "cgrates.org:DSP1",
},
}
- if err := cgr2RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr2RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -253,11 +254,11 @@ func testDispatcherGetItemBothEnginesFirstAttempt(t *testing.T) {
ItemID: "cgrates.org:DSP1",
},
}
- if err := cgr2RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr2RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -307,7 +308,7 @@ func testDispatcherSetterSetDispatcherProfile(t *testing.T) {
utils.MetaDispatchers: false,
},
}
- if err := setterRPC.Call(utils.APIerSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
+ if err := setterRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
t.Error("Unexpected error when calling APIerSv1.SetDispatcherHost: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -330,7 +331,7 @@ func testDispatcherSetterSetDispatcherProfile(t *testing.T) {
utils.MetaDispatchers: false,
},
}
- if err := setterRPC.Call(utils.APIerSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
+ if err := setterRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
t.Error("Unexpected error when calling APIerSv1.SetDispatcherHost: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -359,7 +360,7 @@ func testDispatcherSetterSetDispatcherProfile(t *testing.T) {
utils.MetaDispatchers: false,
},
}
- if err := setterRPC.Call(utils.APIerSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
+ if err := setterRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling APIerSv1.SetDispatcherProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -375,7 +376,7 @@ func testDispatcherCgr2CoreStatusWithRouteID(t *testing.T) {
},
}
// even if HOST1 is prio, this engine was not staretd yet, so HOST2 matched
- if err := cgr2RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
+ if err := cgr2RPC.Call(context.Background(), utils.CoreSv1Status, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "HOST2" {
t.Errorf("Expected HOST2, received %v", reply[utils.NodeID])
@@ -391,7 +392,7 @@ func testDispatcherCgr1CoreStatusWithRouteIDSecondAttempt(t *testing.T) {
},
}
// same HOST2 will be matched, due to routeID
- if err := cgr1RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
+ if err := cgr1RPC.Call(context.Background(), utils.CoreSv1Status, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "HOST2" {
t.Errorf("Expected HOST2, received %v", reply[utils.NodeID])
@@ -411,7 +412,7 @@ func testDispatcherCgr2GetItemHOST2(t *testing.T) {
},
}
var reply any
- if err := cgr2RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr2RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err != nil {
t.Error(err)
} else {
@@ -436,7 +437,7 @@ func testDispatcherCgr2GetItemHOST2(t *testing.T) {
ItemID: "cgrates.org:DSP1",
},
}
- if err := cgr2RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr2RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err != nil {
t.Error(err)
} else {
@@ -483,7 +484,7 @@ func testDispatcherCgr2GetItemHOST2(t *testing.T) {
},
}
// reply here is an interface type(singleResultDispatcher), it exists
- if err := cgr2RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr2RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err != nil {
t.Error(err)
}
@@ -491,7 +492,7 @@ func testDispatcherCgr2GetItemHOST2(t *testing.T) {
func testDisaptcherCacheClear(t *testing.T) {
var reply string
- if err := cgr1RPC.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.MetaDispatchers: false,
},
@@ -501,7 +502,7 @@ func testDisaptcherCacheClear(t *testing.T) {
t.Errorf("Unexpected reply returned")
}
- if err := cgr2RPC.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := cgr2RPC.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
APIOpts: map[string]any{
utils.MetaDispatchers: false,
},
@@ -521,7 +522,7 @@ func testDispatcherCgr1CoreStatusWithRouteIDButHost1(t *testing.T) {
},
}
// as the cache was cleared, HOST1 will match due to his high prio, and it will be set as *dispatcher_routes as HOST1
- if err := cgr1RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
+ if err := cgr1RPC.Call(context.Background(), utils.CoreSv1Status, &ev, &reply); err != nil {
t.Error(err)
} else if reply[utils.NodeID] != "HOST1" {
t.Errorf("Expected HOST1, received %v", reply[utils.NodeID])
@@ -541,7 +542,7 @@ func testDispatcherCgr1CheckCacheAfterRouting(t *testing.T) {
},
}
var reply any
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err != nil {
t.Error(err)
} else {
@@ -566,7 +567,7 @@ func testDispatcherCgr1CheckCacheAfterRouting(t *testing.T) {
ItemID: "cgrates.org:DSP1",
},
}
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err != nil {
t.Error(err)
} else {
@@ -613,7 +614,7 @@ func testDispatcherCgr1CheckCacheAfterRouting(t *testing.T) {
},
}
// reply here is an interface type(singleResultDispatcher), it exists
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err != nil {
t.Error(err)
}
@@ -642,7 +643,7 @@ func testDispatcherSetterSetDispatcherProfileOverwrite(t *testing.T) {
utils.MetaDispatchers: false,
},
}
- if err := setterRPC.Call(utils.APIerSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
+ if err := setterRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling APIerSv1.SetDispatcherProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -664,7 +665,7 @@ func testDispatcherCheckCacheAfterSetDispatcherDSP1(t *testing.T) {
},
}
var reply any // Should receive NOT_FOUND, as CallCache that was called in API will remove the DispatcherRoute
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Unexpected error returned: %v", err)
}
@@ -682,7 +683,7 @@ func testDispatcherCheckCacheAfterSetDispatcherDSP1(t *testing.T) {
},
}
// as the DSP1 profile was overwritten, only HOST2 in profile will be contained
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err != nil {
t.Error(err)
} else {
@@ -723,7 +724,7 @@ func testDispatcherCheckCacheAfterSetDispatcherDSP1(t *testing.T) {
},
}
// DispatcherInstance should also be removed, so it will be NOT_FOUND
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Unexpected error returned: %v and reply: %v", err, reply)
}
@@ -754,7 +755,7 @@ func testDispatcherSetterSetAnotherProifle(t *testing.T) {
utils.MetaDispatchers: false,
},
}
- if err := setterRPC.Call(utils.APIerSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
+ if err := setterRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling APIerSv1.SetDispatcherProfile: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
@@ -776,7 +777,7 @@ func testDispatcherCheckCacheAfterSetDispatcherDSP2(t *testing.T) {
}
var reply any
// NOT_FOUND
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Unexpected error returned: %v", err)
}
@@ -793,7 +794,7 @@ func testDispatcherCheckCacheAfterSetDispatcherDSP2(t *testing.T) {
},
}
// NOT_FOUND
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Unexpected error returned: %v", err)
}
@@ -810,7 +811,7 @@ func testDispatcherCheckCacheAfterSetDispatcherDSP2(t *testing.T) {
},
}
// NOT_FOUND
- if err := cgr1RPC.Call(utils.CacheSv1GetItem, argsCache,
+ if err := cgr1RPC.Call(context.Background(), utils.CacheSv1GetItem, argsCache,
&reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Unexpected error returned: %v", err)
}
diff --git a/general_tests/doubleremove_it_test.go b/general_tests/doubleremove_it_test.go
index 927d8931f..cdaf3ec8f 100644
--- a/general_tests/doubleremove_it_test.go
+++ b/general_tests/doubleremove_it_test.go
@@ -26,6 +26,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -105,7 +106,7 @@ func testdoubleRemoveRpcConn(t *testing.T) {
func testdoubleRemoveStatQueueProfile(t *testing.T) {
// check
var reply *engine.StatQueueProfile
- if err := sesRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -137,13 +138,13 @@ func testdoubleRemoveStatQueueProfile(t *testing.T) {
},
}
var result string
- if err := sesRPC.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statConfig, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//check
- if err := sesRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
@@ -151,24 +152,24 @@ func testdoubleRemoveStatQueueProfile(t *testing.T) {
}
//remove
- if err := sesRPC.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := sesRPC.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := sesRPC.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
&utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
// check
- if err := sesRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -179,7 +180,7 @@ func testdoubleRemoveActions(t *testing.T) {
// check
var reply1 []*utils.TPAction
if doubleRemoveDIR != "tutinternal" { // on internal do not get so we do not cache this action with nil in cache
- if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
t.Error(err)
}
}
@@ -195,13 +196,13 @@ func testdoubleRemoveActions(t *testing.T) {
Weight: 20.0}},
}
var reply string
- if err := sesRPC.Call(utils.APIerSv1SetActions, &attrs1, &reply); err != nil {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1SetActions, &attrs1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned: %s", reply)
}
// set it again (expect EXISTS)
- if err := sesRPC.Call(utils.APIerSv1SetActions, &attrs1, &reply); err == nil || err.Error() != "EXISTS" {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1SetActions, &attrs1, &reply); err == nil || err.Error() != "EXISTS" {
t.Error(err)
}
// check
@@ -216,26 +217,26 @@ func testdoubleRemoveActions(t *testing.T) {
ExpiryTime: utils.MetaUnlimited,
Weight: 20.0,
}}
- if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
t.Error("Got error on APIerSv1.GetActions: ", err.Error())
} else if !reflect.DeepEqual(eOut, reply1) {
t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
}
// remove
- if err := sesRPC.Call(utils.APIerSv1RemoveActions, &v1.AttrRemoveActions{
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1RemoveActions, &v1.AttrRemoveActions{
ActionIDs: []string{"ACTS_1"}}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
// remove it again (expect ErrNotFound)
- // if err := sesRPC.Call(utils.APIerSv1RemoveActions, &v1.AttrRemoveActions{
+ // if err := sesRPC.Call(context.Background(),utils.APIerSv1RemoveActions, &v1.AttrRemoveActions{
// ActionIDs: []string{"ACTS_1"}}, &reply); err == nil ||
// err.Error() != utils.ErrNotFound.Error() {
// t.Error(err)
// }
// check again
- if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
t.Error(err)
}
}
@@ -243,7 +244,7 @@ func testdoubleRemoveActions(t *testing.T) {
func testdoubleRemoveActionPlan(t *testing.T) {
//set action
var reply string
- if err := sesRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := sesRPC.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "ACTS_2",
Actions: []*utils.TPAction{{Identifier: utils.MetaLog}},
}, &reply); err != nil {
@@ -262,7 +263,7 @@ func testdoubleRemoveActionPlan(t *testing.T) {
BalanceDisabled: "false",
Weight: 0}}
- if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_2"), &reply1); err != nil {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1GetActions, utils.StringPointer("ACTS_2"), &reply1); err != nil {
t.Error("Got error on APIerSv1.GetActions: ", err.Error())
} else if !reflect.DeepEqual(eOut, reply1) {
t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
@@ -273,7 +274,7 @@ func testdoubleRemoveActionPlan(t *testing.T) {
should return ErrNotFound, right now it returns nil and an empty slice,
needs to be reviewed
- if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := sesRPC.Call(context.Background(),utils.APIerSv1GetActionPlan,
v1.AttrGetActionPlan{ID: utils.EmptyString}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %+v, rcv: %+v", err, utils.ToJSON(aps))
}
@@ -288,17 +289,17 @@ func testdoubleRemoveActionPlan(t *testing.T) {
Weight: 20.0},
},
}
- if err := sesRPC.Call(utils.APIerSv1SetActionPlan, &atms1, &reply); err != nil {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &atms1, &reply); err != nil {
t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Unexpected reply returned: %s", reply)
}
// set it again (expect EXISTS)
- if err := sesRPC.Call(utils.APIerSv1SetActionPlan, &atms1, &reply); err == nil || err.Error() != "EXISTS" {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1SetActionPlan, &atms1, &reply); err == nil || err.Error() != "EXISTS" {
t.Error(err)
}
// check
- if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1GetActionPlan,
&v1.AttrGetActionPlan{ID: "ATMS_1"}, &aps); err != nil {
t.Error(err)
} else if len(aps) != 1 {
@@ -312,7 +313,7 @@ func testdoubleRemoveActionPlan(t *testing.T) {
}
// remove
- if err := sesRPC.Call(utils.APIerSv1RemoveActionPlan, &v1.AttrGetActionPlan{
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1RemoveActionPlan, &v1.AttrGetActionPlan{
ID: "ATMS_1"}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -323,7 +324,7 @@ func testdoubleRemoveActionPlan(t *testing.T) {
this should return ErrNotFound, right now it returns nil and an empty slice,
needs to be reviewed.
- if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
+ if err := sesRPC.Call(context.Background(),utils.APIerSv1GetActionPlan,
v1.AttrGetActionPlan{ID: utils.EmptyString}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %+v, rcv: %+v", err, utils.ToJSON(aps))
}
diff --git a/general_tests/export_it_test.go b/general_tests/export_it_test.go
index e9f94d7ae..fff70511f 100644
--- a/general_tests/export_it_test.go
+++ b/general_tests/export_it_test.go
@@ -21,7 +21,6 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"os"
"path"
"reflect"
@@ -29,6 +28,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ var (
expCfgDir string
expCfgPath string
expCfg *config.CGRConfig
- expRpc *rpc.Client
+ expRpc *birpc.Client
sTestsExp = []func(t *testing.T){
testExpLoadConfig,
@@ -120,7 +121,7 @@ func testExpRPCConn(t *testing.T) {
func testExpLoadTPFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := expRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := expRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -132,7 +133,7 @@ func testExpExportToFolder(t *testing.T) {
arg := &utils.ArgExportToFolder{
Path: "/tmp/tp/",
}
- if err := expRpc.Call(utils.APIerSv1ExportToFolder, arg, &reply); err != nil {
+ if err := expRpc.Call(context.Background(), utils.APIerSv1ExportToFolder, arg, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -142,7 +143,7 @@ func testExpExportToFolder(t *testing.T) {
func testExpLoadTPFromExported(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: "/tmp/tp/"}
- if err := expRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := expRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -167,7 +168,7 @@ func testExpVerifyAttributes(t *testing.T) {
Weight: 10.0,
}
var reply *engine.AttributeProfile
- if err := expRpc.Call(utils.APIerSv1GetAttributeProfile,
+ if err := expRpc.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACNT_1001"}}, &reply); err != nil {
t.Fatal(err)
@@ -199,7 +200,7 @@ func testExpVerifyFilters(t *testing.T) {
},
}
var reply *engine.Filter
- if err := expRpc.Call(utils.APIerSv1GetFilter,
+ if err := expRpc.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ACCOUNT_1001"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(exp, reply) {
@@ -227,7 +228,7 @@ func testExpVerifyThresholds(t *testing.T) {
},
}
var reply *engine.ThresholdProfile
- if err := expRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := expRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -251,7 +252,7 @@ func testExpVerifyResources(t *testing.T) {
rPrf.ThresholdIDs = nil
}
var reply *engine.ResourceProfile
- if err := expRpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := expRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "RES_ACNT_1001"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, rPrf) {
@@ -287,7 +288,7 @@ func testExpVerifyStats(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
}
var reply *engine.StatQueueProfile
- if err := expRpc.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := expRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}, &reply); err != nil {
t.Error(err)
}
@@ -348,7 +349,7 @@ func testExpVerifyRoutes(t *testing.T) {
},
Weight: 10,
}
- if err := expRpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := expRpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}, &reply); err != nil {
t.Fatal(err)
}
diff --git a/general_tests/filtered_replication_it_test.go b/general_tests/filtered_replication_it_test.go
index f8e1d577d..fcdecb83f 100644
--- a/general_tests/filtered_replication_it_test.go
+++ b/general_tests/filtered_replication_it_test.go
@@ -27,12 +27,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
var (
@@ -40,15 +41,15 @@ var (
fltrRplInternalCfgPath string
fltrRplInternalCfg *config.CGRConfig
- fltrRplInternalRPC rpcclient.ClientConnector
+ fltrRplInternalRPC birpc.ClientConnector
fltrRplEngine1CfgPath string
fltrRplEngine1Cfg *config.CGRConfig
- fltrRplEngine1RPC rpcclient.ClientConnector
+ fltrRplEngine1RPC birpc.ClientConnector
fltrRplEngine2CfgPath string
fltrRplEngine2Cfg *config.CGRConfig
- fltrRplEngine2RPC rpcclient.ClientConnector
+ fltrRplEngine2RPC birpc.ClientConnector
sTestsFltrRpl = []func(t *testing.T){
testFltrRplInitCfg,
@@ -175,21 +176,21 @@ func testFltrRplAttributeProfile(t *testing.T) {
var replyPrfl *engine.AttributeProfile
var rplyIDs []string
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -199,16 +200,16 @@ func testFltrRplAttributeProfile(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -218,12 +219,12 @@ func testFltrRplAttributeProfile(t *testing.T) {
}
replyPrfl = nil
attrPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -234,7 +235,7 @@ func testFltrRplAttributeProfile(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetAttributeProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -243,22 +244,22 @@ func testFltrRplAttributeProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -282,21 +283,21 @@ func testFltrRplFilters(t *testing.T) {
var replyPrfl *engine.Filter
var rplyIDs []string
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetFilter, fltr, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetFilter, fltr, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetFilter,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -306,16 +307,16 @@ func testFltrRplFilters(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetFilter,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -325,12 +326,12 @@ func testFltrRplFilters(t *testing.T) {
}
replyPrfl = nil
fltr.Rules[0].Type = utils.MetaPrefix
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetFilter, fltr, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetFilter, fltr, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetFilter,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetFilter,
&utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -341,7 +342,7 @@ func testFltrRplFilters(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetFilter,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetFilter,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -350,22 +351,22 @@ func testFltrRplFilters(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveFilter,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveFilter,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -398,30 +399,30 @@ func testFltrRplThresholdProfile(t *testing.T) {
},
}
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetThresholdProfile, thPrfl, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetThresholdProfile, thPrfl, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -430,25 +431,25 @@ func testFltrRplThresholdProfile(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -456,7 +457,7 @@ func testFltrRplThresholdProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine1RPC.Call(utils.ThresholdSv1GetThreshold, argsTh, &replyTh); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold, argsTh, &replyTh); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(th, replyTh) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(th), utils.ToJSON(replyTh))
@@ -464,12 +465,12 @@ func testFltrRplThresholdProfile(t *testing.T) {
replyPrfl = nil
thPrfl.Weight = 10
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetThresholdProfile, thPrfl, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetThresholdProfile, thPrfl, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -479,7 +480,7 @@ func testFltrRplThresholdProfile(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetThresholdProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThresholdProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: thID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -487,7 +488,7 @@ func testFltrRplThresholdProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -501,13 +502,13 @@ func testFltrRplThresholdProfile(t *testing.T) {
}
var thIDs []string
//Testing ProcessEvent on set thresholdprofile using apier
- if err := fltrRplInternalRPC.Call(utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err != nil {
t.Fatal(err)
} else if expected := []string{thID}; !reflect.DeepEqual(expected, thIDs) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(thIDs))
}
- if err := fltrRplEngine1RPC.Call(utils.ThresholdSv1GetThreshold, argsTh, &replyTh); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold, argsTh, &replyTh); err != nil {
t.Fatal(err)
}
th.Hits = 1
@@ -516,26 +517,26 @@ func testFltrRplThresholdProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(th), utils.ToJSON(replyTh))
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: thID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -580,30 +581,30 @@ func testFltrRplStatQueueProfile(t *testing.T) {
},
}
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetStatQueueProfile, stPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -612,25 +613,25 @@ func testFltrRplStatQueueProfile(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -643,7 +644,7 @@ func testFltrRplStatQueueProfile(t *testing.T) {
sq.SQMetrics = map[string]engine.StatMetric{
utils.MetaACD: s,
}
- if err := fltrRplEngine1RPC.Call(utils.StatSv1GetStatQueue, argsSq, &replySq); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.StatSv1GetStatQueue, argsSq, &replySq); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(sq, replySq) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(sq), utils.ToJSON(replySq))
@@ -651,12 +652,12 @@ func testFltrRplStatQueueProfile(t *testing.T) {
replyPrfl = nil
stPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetStatQueueProfile, stPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, stPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetStatQueueProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -666,7 +667,7 @@ func testFltrRplStatQueueProfile(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetStatQueueProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueueProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: stID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -674,7 +675,7 @@ func testFltrRplStatQueueProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -689,13 +690,13 @@ func testFltrRplStatQueueProfile(t *testing.T) {
}
var sqIDs []string
//Testing ProcessEvent on set thresholdprofile using apier
- if err := fltrRplInternalRPC.Call(utils.StatSv1ProcessEvent, sEv, &sqIDs); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.StatSv1ProcessEvent, sEv, &sqIDs); err != nil {
t.Fatal(err)
} else if expected := []string{stID}; !reflect.DeepEqual(expected, sqIDs) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(sqIDs))
}
- if err := fltrRplEngine1RPC.Call(utils.StatSv1GetStatQueue, argsSq, &replySq); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.StatSv1GetStatQueue, argsSq, &replySq); err != nil {
t.Fatal(err)
}
sq.SQItems = []engine.SQItem{{
@@ -707,26 +708,26 @@ func testFltrRplStatQueueProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(sq), utils.ToJSON(replySq))
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveStatQueueProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveStatQueueProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: stID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -764,29 +765,29 @@ func testFltrRplResourceProfile(t *testing.T) {
},
}
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -795,25 +796,25 @@ func testFltrRplResourceProfile(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -821,7 +822,7 @@ func testFltrRplResourceProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine1RPC.Call(utils.ResourceSv1GetResource, argsRs, &replyRs); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ResourceSv1GetResource, argsRs, &replyRs); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(rs, replyRs) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rs), utils.ToJSON(replyRs))
@@ -829,12 +830,12 @@ func testFltrRplResourceProfile(t *testing.T) {
replyPrfl = nil
resPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetResourceProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -844,7 +845,7 @@ func testFltrRplResourceProfile(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetResourceProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResourceProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: resID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -852,7 +853,7 @@ func testFltrRplResourceProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -870,13 +871,13 @@ func testFltrRplResourceProfile(t *testing.T) {
}
var rsIDs string
//Testing ProcessEvent on set thresholdprofile using apier
- if err := fltrRplInternalRPC.Call(utils.ResourceSv1AllocateResources, rEv, &rsIDs); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.ResourceSv1AllocateResources, rEv, &rsIDs); err != nil {
t.Fatal(err)
} else if expected := resPrf.AllocationMessage; !reflect.DeepEqual(expected, rsIDs) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rsIDs))
}
- if err := fltrRplEngine1RPC.Call(utils.ResourceSv1GetResource, argsRs, &replyRs); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ResourceSv1GetResource, argsRs, &replyRs); err != nil {
t.Fatal(err)
}
usageID := utils.IfaceAsString(rEv.APIOpts[utils.OptsResourcesUsageID])
@@ -893,26 +894,26 @@ func testFltrRplResourceProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rs), utils.ToJSON(replyRs))
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveResourceProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveResourceProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: resID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -945,21 +946,21 @@ func testFltrRplRouteProfile(t *testing.T) {
var replyPrfl *engine.RouteProfile
var rplyIDs []string
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRouteProfile, rpPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetRouteProfile, rpPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -969,16 +970,16 @@ func testFltrRplRouteProfile(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -988,12 +989,12 @@ func testFltrRplRouteProfile(t *testing.T) {
}
replyPrfl = nil
rpPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRouteProfile, rpPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetRouteProfile, rpPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRouteProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1004,7 +1005,7 @@ func testFltrRplRouteProfile(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetRouteProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetRouteProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1013,22 +1014,22 @@ func testFltrRplRouteProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveRouteProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveRouteProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -1050,21 +1051,21 @@ func testFltrRplChargerProfile(t *testing.T) {
var replyPrfl *engine.ChargerProfile
var rplyIDs []string
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetChargerProfile, chPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1073,16 +1074,16 @@ func testFltrRplChargerProfile(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1091,12 +1092,12 @@ func testFltrRplChargerProfile(t *testing.T) {
}
replyPrfl = nil
chPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetChargerProfile, chPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1106,7 +1107,7 @@ func testFltrRplChargerProfile(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetChargerProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetChargerProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: chID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1114,22 +1115,22 @@ func testFltrRplChargerProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveChargerProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveChargerProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: chID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -1150,21 +1151,21 @@ func testFltrRplDispatcherProfile(t *testing.T) {
var replyPrfl *engine.DispatcherProfile
var rplyIDs []string
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherProfile, dspPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, dspPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1173,16 +1174,16 @@ func testFltrRplDispatcherProfile(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1191,12 +1192,12 @@ func testFltrRplDispatcherProfile(t *testing.T) {
}
replyPrfl = nil
dspPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherProfile, dspPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile, dspPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1206,7 +1207,7 @@ func testFltrRplDispatcherProfile(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetDispatcherProfile,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1214,22 +1215,22 @@ func testFltrRplDispatcherProfile(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveDispatcherProfile,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -1250,21 +1251,21 @@ func testFltrRplDispatcherHost(t *testing.T) {
var replyPrfl *engine.DispatcherHost
var rplyIDs []string
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherHost, dspPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost, dspPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1273,16 +1274,16 @@ func testFltrRplDispatcherHost(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1291,12 +1292,12 @@ func testFltrRplDispatcherHost(t *testing.T) {
}
replyPrfl = nil
dspPrf.Address = "127.0.0.1:2012"
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherHost, dspPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetDispatcherHost, dspPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherHost,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
&utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1306,7 +1307,7 @@ func testFltrRplDispatcherHost(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetDispatcherHost,
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherHost,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &replyPrfl); err != nil {
t.Fatal(err)
}
@@ -1314,22 +1315,22 @@ func testFltrRplDispatcherHost(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveDispatcherHost,
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1RemoveDispatcherHost,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
@@ -1347,23 +1348,23 @@ func testFltrRplAccount(t *testing.T) {
var replyPrfl *engine.Account
var rplyCount int
// empty
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
t.Fatal(err)
} else if rplyCount != 0 {
t.Fatal("Expected no accounts")
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
t.Fatal(err)
} else if rplyCount != 0 {
t.Fatal("Expected no accounts")
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv2SetAccount, attrPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv2SetAccount, attrPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
t.Fatal(err)
}
replyPrfl.BalanceMap = nil
@@ -1376,18 +1377,18 @@ func testFltrRplAccount(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
t.Fatal(err)
} else if rplyCount != 0 {
t.Fatal("Expected no accounts")
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
t.Fatal(err)
} else if rplyCount != 0 {
t.Fatal("Expected no accounts")
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
t.Fatal(err)
}
replyPrfl.BalanceMap = nil
@@ -1401,12 +1402,12 @@ func testFltrRplAccount(t *testing.T) {
replyPrfl = nil
attrPrf.ExtraOptions[utils.Disabled] = false
expPrf.Disabled = false
- if err := fltrRplInternalRPC.Call(utils.APIerSv2SetAccount, attrPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv2SetAccount, attrPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
t.Fatal(err)
}
replyPrfl.BalanceMap = nil
@@ -1420,7 +1421,7 @@ func testFltrRplAccount(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetAccount, &utils.StringWithAPIOpts{
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetAccount, &utils.StringWithAPIOpts{
Arg: expPrf.ID,
}, &replyPrfl); err != nil {
t.Fatal(err)
@@ -1434,7 +1435,7 @@ func testFltrRplAccount(t *testing.T) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
t.Fatal(err)
} else if rplyCount != 0 {
t.Fatal("Expected no accounts")
@@ -1461,29 +1462,29 @@ func testFltrRplDestination(t *testing.T) {
var rplyIDs *engine.Destination
var rplyIDs2 []string
// empty
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDestination, dstPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetDestination, dstPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(expPrf, replyPrfl) {
@@ -1491,30 +1492,30 @@ func testFltrRplDestination(t *testing.T) {
}
replyPrfl = nil
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(expPrf, replyPrfl) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
}
- if err := fltrRplEngine1RPC.Call(utils.APIerSv1GetReverseDestination, "dan", &rplyIDs2); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetReverseDestination, "dan", &rplyIDs2); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual([]string{dstID}, rplyIDs2) {
@@ -1525,12 +1526,12 @@ func testFltrRplDestination(t *testing.T) {
dstPrf.Prefixes = []string{"dan2"}
expPrf.Prefixes = []string{"dan2"}
args2.Arg = "dan2"
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDestination, dstPrf, &result); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1SetDestination, dstPrf, &result); err != nil {
t.Fatal(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
+ if err := fltrRplInternalRPC.Call(context.Background(), utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(expPrf, replyPrfl) {
@@ -1539,26 +1540,26 @@ func testFltrRplDestination(t *testing.T) {
replyPrfl = nil
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetDestination, args, &replyPrfl); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &replyPrfl); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(expPrf, replyPrfl) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
}
// use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err != nil {
+ if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual([]string{dstID}, rplyIDs2) {
t.Errorf("Expecting : %s, received: %s", utils.ToJSON([]string{dstID}), utils.ToJSON(rplyIDs2))
}
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Unexpected error: %v", err)
}
rplyIDs2 = nil
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+ if err := fltrRplEngine2RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Log(rplyIDs2)
t.Fatalf("Unexpected error: %v", err)
diff --git a/general_tests/filters_it_test.go b/general_tests/filters_it_test.go
index 6f0ebad55..bd962c7d7 100644
--- a/general_tests/filters_it_test.go
+++ b/general_tests/filters_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -38,7 +39,7 @@ import (
var (
fltrCfgPath string
fltrCfg *config.CGRConfig
- fltrRpc *rpc.Client
+ fltrRpc *birpc.Client
fltrConfDIR string //run tests for specific configuration
fltrDelay int
fltrInternalRestart bool // to reset db on internal restart engine
@@ -134,7 +135,7 @@ func testV1FltrRpcConn(t *testing.T) {
func testV1FltrLoadTarrifPlans(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := fltrRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -155,7 +156,7 @@ func testV1FltrAddStats(t *testing.T) {
utils.Cost: 10.0,
},
}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -172,7 +173,7 @@ func testV1FltrAddStats(t *testing.T) {
utils.Cost: 10.5,
},
}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -189,7 +190,7 @@ func testV1FltrAddStats(t *testing.T) {
utils.Cost: 12.5,
},
}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -206,7 +207,7 @@ func testV1FltrAddStats(t *testing.T) {
utils.Cost: 17.5,
},
}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -223,7 +224,7 @@ func testV1FltrAddStats(t *testing.T) {
utils.Cost: 12.5,
},
}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -241,7 +242,7 @@ func testV1FltrAddStats(t *testing.T) {
utils.PDD: 12 * time.Second,
},
}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -259,7 +260,7 @@ func testV1FltrAddStats(t *testing.T) {
utils.PDD: 15 * time.Second,
},
}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -284,7 +285,7 @@ func testV1FltrPopulateThreshold(t *testing.T) {
}
var result string
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -294,7 +295,7 @@ func testV1FltrPopulateThreshold(t *testing.T) {
attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
{Identifier: utils.MetaLog},
}}
- if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if result != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", result)
@@ -317,13 +318,13 @@ func testV1FltrPopulateThreshold(t *testing.T) {
Async: true,
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var rcvTh *engine.ThresholdProfile
- if err := fltrRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
@@ -341,7 +342,7 @@ func testV1FltrGetThresholdForEvent(t *testing.T) {
}
var ids []string
eIDs := []string{"TH_Stats1"}
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -366,7 +367,7 @@ func testV1FltrGetThresholdForEvent2(t *testing.T) {
}
var result string
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -388,7 +389,7 @@ func testV1FltrGetThresholdForEvent2(t *testing.T) {
ActionIDs: []string{"LOG"},
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -401,7 +402,7 @@ func testV1FltrGetThresholdForEvent2(t *testing.T) {
utils.AccountField: "1010"},
}
var ids []string
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
+ if err := fltrRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -421,14 +422,14 @@ func testV1FltrPopulateResources(t *testing.T) {
}
var result string
- if err := fltrRpc.Call(utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.ResourceProfile
- if err := fltrRpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, rlsConfig) {
@@ -448,7 +449,7 @@ func testV1FltrPopulateResources(t *testing.T) {
utils.OptsResourcesUnits: 3,
},
}
- if err := fltrRpc.Call(utils.ResourceSv1AllocateResources,
+ if err := fltrRpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
argsRU, &result); err != nil {
t.Error(err)
}
@@ -469,7 +470,7 @@ func testV1FltrPopulateResources(t *testing.T) {
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -487,13 +488,13 @@ func testV1FltrPopulateResources(t *testing.T) {
Async: true,
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var rcvTh *engine.ThresholdProfile
- if err := fltrRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
@@ -510,7 +511,7 @@ func testV1FltrPopulateResources(t *testing.T) {
var ids []string
eIDs := []string{"TH_ResTest"}
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, eIDs) {
t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
@@ -531,21 +532,21 @@ func testV1FltrPopulateResources(t *testing.T) {
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//Overwrite the threshold
- if err := fltrRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//expect NotFound error because filter doesn't match
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
+ if err := fltrRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -565,14 +566,14 @@ func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
}
var result string
- if err := fltrRpc.Call(utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.ResourceProfile
- if err := fltrRpc.Call(utils.APIerSv1GetResourceProfile,
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1GetResourceProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, rlsConfig) {
@@ -592,7 +593,7 @@ func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
utils.OptsResourcesUnits: 9,
},
}
- if err := fltrRpc.Call(utils.ResourceSv1AllocateResources, argsRU, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.ResourceSv1AllocateResources, argsRU, &result); err != nil {
t.Error(err)
} else if result != "Test_Available" {
t.Error("Unexpected reply returned", result)
@@ -619,7 +620,7 @@ func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -634,14 +635,14 @@ func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
Weight: 50,
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetStatQueueProfile, statsPrf, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetStatQueueProfile, statsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var replyStats *engine.StatQueueProfile
- if err := fltrRpc.Call(utils.APIerSv1GetStatQueueProfile, &utils.TenantID{Tenant: "cgrates.org",
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile, &utils.TenantID{Tenant: "cgrates.org",
ID: "STATS_RES_TEST12"}, &replyStats); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statsPrf.StatQueueProfile, replyStats) {
@@ -659,7 +660,7 @@ func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
}
var ids []string
expectedIDs := []string{"STATS_RES_TEST12", "Stat_1"}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, statsEv, &ids); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, statsEv, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedIDs, ids) {
t.Errorf("Expected %+v, received %+v", expectedIDs, ids)
@@ -680,14 +681,14 @@ func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
//overwrite the StatQueueProfile
- if err := fltrRpc.Call(utils.APIerSv1GetStatQueueProfile, &utils.TenantID{Tenant: "cgrates.org",
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1GetStatQueueProfile, &utils.TenantID{Tenant: "cgrates.org",
ID: "STATS_RES_TEST12"}, &replyStats); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(statsPrf.StatQueueProfile, replyStats) {
@@ -696,7 +697,7 @@ func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
//This filter won't match
expectedIDs = []string{"Stat_1"}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, statsEv, &ids); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.StatSv1ProcessEvent, statsEv, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedIDs, ids) {
t.Errorf("Expected %+v, received %+v", expectedIDs, ids)
@@ -705,7 +706,7 @@ func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
func testV1FltrAccounts(t *testing.T) {
var resp string
- if err := fltrRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -729,7 +730,7 @@ func testV1FltrAccounts(t *testing.T) {
}
var result string
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -738,7 +739,7 @@ func testV1FltrAccounts(t *testing.T) {
attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
{Identifier: utils.MetaLog},
}}
- if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if result != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", result)
@@ -756,13 +757,13 @@ func testV1FltrAccounts(t *testing.T) {
Async: true,
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var rcvTh *engine.ThresholdProfile
- if err := fltrRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
@@ -776,7 +777,7 @@ func testV1FltrAccounts(t *testing.T) {
utils.AccountField: "1001"},
}
var ids []string
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"TH_Account"}) {
t.Error("Unexpected reply returned", ids)
@@ -798,13 +799,13 @@ func testV1FltrAccounts(t *testing.T) {
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
+ if err := fltrRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -812,7 +813,7 @@ func testV1FltrAccounts(t *testing.T) {
func testV1FltrAccountsExistsDynamicaly(t *testing.T) {
var resp string
- if err := fltrRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TH_Account"}}, &resp); err != nil {
if err.Error() != utils.ErrNotFound.Error() { // no error if the threshold is already removed
t.Error(err)
@@ -826,7 +827,7 @@ func testV1FltrAccountsExistsDynamicaly(t *testing.T) {
attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
{Identifier: utils.MetaLog},
}}
- if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
}
//Add a threshold with filter from above and an inline filter for Account 1010
@@ -842,13 +843,13 @@ func testV1FltrAccountsExistsDynamicaly(t *testing.T) {
Async: true,
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var rcvTh *engine.ThresholdProfile
- if err := fltrRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
@@ -862,7 +863,7 @@ func testV1FltrAccountsExistsDynamicaly(t *testing.T) {
utils.AccountField: "1001"},
}
var ids []string
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"TH_AccountDinamic"}) {
t.Error("Unexpected reply returned", ids)
@@ -875,14 +876,14 @@ func testV1FltrAccountsExistsDynamicaly(t *testing.T) {
utils.AccountField: "non"},
}
ids = nil
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := fltrRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
func testV1FltrChargerSuffix(t *testing.T) {
var reply string
- if err := fltrRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+ if err := fltrRpc.Call(context.Background(), utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
CacheIDs: nil,
}, &reply); err != nil {
t.Error(err)
@@ -900,7 +901,7 @@ func testV1FltrChargerSuffix(t *testing.T) {
},
}
var result string
- if err := fltrRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -916,7 +917,7 @@ func testV1FltrChargerSuffix(t *testing.T) {
Weight: 20,
},
}
- if err := fltrRpc.Call(utils.APIerSv1SetChargerProfile, chargerProfile2, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -954,7 +955,7 @@ func testV1FltrChargerSuffix(t *testing.T) {
},
}
var result2 []*engine.ChrgSProcessEventReply
- if err := fltrRpc.Call(utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result2, processedEv) {
t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
@@ -992,7 +993,7 @@ func testV1FltrChargerSuffix(t *testing.T) {
utils.Destination: "999",
},
}
- if err := fltrRpc.Call(utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result2, processedEv) {
t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
@@ -1018,7 +1019,7 @@ func testV1FltrAttributesPrefix(t *testing.T) {
},
}
var result string
- if err := fltrRpc.Call(utils.APIerSv1SetAttributeProfile, chargerProfile, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1054,7 +1055,7 @@ func testV1FltrAttributesPrefix(t *testing.T) {
},
}
var result2 *engine.AttrSProcessEventReply
- if err := fltrRpc.Call(utils.AttributeSv1ProcessEvent, cgrEv, &result2); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent, cgrEv, &result2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result2, processedEv) {
t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
@@ -1074,7 +1075,7 @@ func testV1FltrPopulateTimings(t *testing.T) {
var reply string
- if err := fltrRpc.Call(utils.APIerSv1SetTiming, timing, &reply); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetTiming, timing, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -1095,7 +1096,7 @@ func testV1FltrPopulateTimings(t *testing.T) {
}
var result string
- if err := fltrRpc.Call(utils.APIerSv1SetFilter, filter, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetFilter, filter, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1117,7 +1118,7 @@ func testV1FltrPopulateTimings(t *testing.T) {
},
}
attrPrf.Compile()
- if err := fltrRpc.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
+ if err := fltrRpc.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -1151,7 +1152,7 @@ func testV1FltrPopulateTimings(t *testing.T) {
}
var rplyEv1 engine.AttrSProcessEventReply
- if err := fltrRpc.Call(utils.AttributeSv1ProcessEvent,
+ if err := fltrRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv1); err != nil {
t.Error(err)
} else {
@@ -1166,7 +1167,7 @@ func testV1FltrPopulateTimings(t *testing.T) {
ev.Event[utils.AnswerTime] = "2021-04-29T13:35:00Z"
var rplyEv2 engine.AttrSProcessEventReply
- if err := fltrRpc.Call(utils.AttributeSv1ProcessEvent,
+ if err := fltrRpc.Call(context.Background(), utils.AttributeSv1ProcessEvent,
ev, &rplyEv2); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error: %+v,%+v", err, utils.ErrNotFound)
}
diff --git a/general_tests/filters_test.go b/general_tests/filters_test.go
index 9c6dfd13c..b1db4f285 100644
--- a/general_tests/filters_test.go
+++ b/general_tests/filters_test.go
@@ -22,11 +22,11 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestFilterPassDestinations(t *testing.T) {
@@ -35,13 +35,17 @@ func TestFilterPassDestinations(t *testing.T) {
t.Errorf("Expecting: nil, received: %s", err)
}
config.CgrConfig().FilterSCfg().ApierSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier)}
- internalAPIerSv1Chan := make(chan rpcclient.ClientConnector, 1)
- connMgr := engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ internalAPIerSv1Chan := make(chan birpc.ClientConnector, 1)
+ connMgr := engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier): internalAPIerSv1Chan,
})
data := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
- internalAPIerSv1Chan <- &v1.APIerSv1{DataManager: dm}
+ srv, err := engine.NewService(&v1.APIerSv1{DataManager: dm})
+ if err != nil {
+ t.Error(err)
+ }
+ internalAPIerSv1Chan <- srv
engine.SetConnManager(connMgr)
cd := &engine.CallDescriptor{
Category: "call",
@@ -86,8 +90,8 @@ func TestFilterPassDestinations(t *testing.T) {
func TestInlineFilterPassFiltersForEvent(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.FilterSCfg().ApierSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier)}
- internalAPIerSv1Chan := make(chan rpcclient.ClientConnector, 1)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ internalAPIerSv1Chan := make(chan birpc.ClientConnector, 1)
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaApier): internalAPIerSv1Chan,
})
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -97,7 +101,12 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) {
[]string{"DE", "EU_LANDLINE"}, nil, true, ""); err != nil {
t.Errorf("Expecting: nil, received: %s", err)
}
- internalAPIerSv1Chan <- &v1.APIerSv1{DataManager: dmFilterPass}
+
+ apiSrv, err := engine.NewService(&v1.APIerSv1{DataManager: dmFilterPass})
+ if err != nil {
+ t.Fatal(err)
+ }
+ internalAPIerSv1Chan <- apiSrv
engine.SetConnManager(connMgr)
failEvent := map[string]any{
utils.Destination: "+5086517174963",
diff --git a/general_tests/fltr_sep_it_test.go b/general_tests/fltr_sep_it_test.go
index 2d6259215..f25242355 100644
--- a/general_tests/fltr_sep_it_test.go
+++ b/general_tests/fltr_sep_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -37,7 +38,7 @@ import (
var (
fltrSepCfgPath string
fltrSepCfg *config.CGRConfig
- fltrSepRPC *rpc.Client
+ fltrSepRPC *birpc.Client
fltrSepDelay int
fltrSepConfDIR string //run tests for specific configuration
@@ -111,7 +112,7 @@ func testFltrSepRpcConn(t *testing.T) {
func testFltrSepLoadTarrifPlans(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "fltr_sep")}
- if err := fltrSepRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := fltrSepRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -151,7 +152,7 @@ func testFltrSepFilterSeparation(t *testing.T) {
var attrReply *engine.AttributeProfile
// first option of the first filter and the second filter match
- if err := fltrSepRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrSepRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err != nil {
t.Error(err)
} else {
@@ -167,7 +168,7 @@ func testFltrSepFilterSeparation(t *testing.T) {
// third option of the first filter and the second filter match
ev.Event[utils.AccountField] = "1003"
- if err := fltrSepRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrSepRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err != nil {
t.Error(err)
} else {
@@ -183,14 +184,14 @@ func testFltrSepFilterSeparation(t *testing.T) {
// the second filter matches while none of the options from the first filter match
ev.Event[utils.AccountField] = "1004"
- if err := fltrSepRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrSepRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
// fourth option of the first filter matches while the second filter doesn't
ev.Event[utils.AccountField] = "1101"
- if err := fltrSepRPC.Call(utils.AttributeSv1GetAttributeForEvent,
+ if err := fltrSepRPC.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
ev, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
diff --git a/general_tests/fraud_detection_it_test.go b/general_tests/fraud_detection_it_test.go
index c9adb3534..6f7e7b576 100644
--- a/general_tests/fraud_detection_it_test.go
+++ b/general_tests/fraud_detection_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"os"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -37,7 +38,7 @@ import (
var (
fraudCfgPath string
fraudCfg *config.CGRConfig
- fraudRPC *rpc.Client
+ fraudRPC *birpc.Client
fraudDelay int
fraudConfDIR string
@@ -250,7 +251,7 @@ cgrates.org,THD_FRD,*gte:~*req.*tcc:2,,-1,1,0,false,0,ACT_FRD_STOP;ACT_FRD_LOG,t
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: "/tmp/TestFraudIT"}
- if err := fraudRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := fraudRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -281,7 +282,7 @@ func testFraudAuthorizeandProcess1(t *testing.T) {
false, false, false, cgrEv, utils.Paginator{}, false, "")
var rply sessions.V1AuthorizeReply
- if err := fraudRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+ if err := fraudRPC.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
t.Error(err)
}
cgrEv = &utils.CGREvent{
@@ -302,7 +303,7 @@ func testFraudAuthorizeandProcess1(t *testing.T) {
APIOpts: map[string]any{},
}
var reply string
- if err := fraudRPC.Call(utils.SessionSv1ProcessCDR,
+ if err := fraudRPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
cgrEv, &reply); err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrPartiallyExecuted, err)
}
@@ -331,7 +332,7 @@ func testFraudAuthorizeandProcess2(t *testing.T) {
false, false, false, cgrEv, utils.Paginator{}, false, "")
var rply sessions.V1AuthorizeReply
- if err := fraudRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+ if err := fraudRPC.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
t.Error(err)
}
cgrEv = &utils.CGREvent{
@@ -352,7 +353,7 @@ func testFraudAuthorizeandProcess2(t *testing.T) {
APIOpts: map[string]any{},
}
var reply string
- if err := fraudRPC.Call(utils.SessionSv1ProcessCDR,
+ if err := fraudRPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
cgrEv, &reply); err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrPartiallyExecuted, err)
}
@@ -381,7 +382,7 @@ func testFraudAuthorizeandProcess3(t *testing.T) {
false, false, false, cgrEv, utils.Paginator{}, false, "")
var rply sessions.V1AuthorizeReply
- if err := fraudRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+ if err := fraudRPC.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
t.Error(err)
}
cgrEv = &utils.CGREvent{
@@ -402,7 +403,7 @@ func testFraudAuthorizeandProcess3(t *testing.T) {
APIOpts: map[string]any{},
}
var reply string
- if err := fraudRPC.Call(utils.SessionSv1ProcessCDR,
+ if err := fraudRPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
cgrEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -433,7 +434,7 @@ func testFraudFinalAuthorize(t *testing.T) {
expErr := `RALS_ERROR:ACCOUNT_DISABLED`
var rply sessions.V1AuthorizeReply
- if err := fraudRPC.Call(utils.SessionSv1AuthorizeEvent, args,
+ if err := fraudRPC.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args,
&rply); err == nil || err.Error() != expErr {
t.Error(err)
}
diff --git a/general_tests/gocs_it_test.go b/general_tests/gocs_it_test.go
index bfe6d6cb0..eff37da39 100644
--- a/general_tests/gocs_it_test.go
+++ b/general_tests/gocs_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"os/exec"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/sessions"
@@ -42,7 +43,7 @@ import (
var (
auCfgPath, usCfgPath, dspCfgPath string
auCfg, usCfg, dspCfg *config.CGRConfig
- auRPC, usRPC, dspRPC *rpc.Client
+ auRPC, usRPC, dspRPC *birpc.Client
auEngine, usEngine, dspEngine *exec.Cmd
sTestsGOCS = []func(t *testing.T){
testGOCSInitCfg,
@@ -146,24 +147,24 @@ func testGOCSLoadData(t *testing.T) {
},
}
var result string
- if err := usRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var rpl *engine.ChargerProfile
- if err := usRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := usRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, rpl) {
t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, rpl)
}
- if err := usRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := usRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := usRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}, &rpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, rpl) {
@@ -205,13 +206,13 @@ func testGOCSLoadData(t *testing.T) {
}
// add a voice balance of 59 minutes
var reply string
- if err := usRPC.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("received: %s", reply)
}
expectedVoice := 3540000000000.0
- if err := usRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
@@ -241,7 +242,7 @@ func testGOCSAuthSession(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReply
- if err := dspRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+ if err := dspRPC.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
t.Fatal(err)
}
if rply.MaxUsage == nil || *rply.MaxUsage != authUsage {
@@ -272,7 +273,7 @@ func testGOCSInitSession(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := dspRPC.Call(utils.SessionSv1InitiateSession,
+ if err := dspRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -283,7 +284,7 @@ func testGOCSInitSession(t *testing.T) {
time.Sleep(10 * time.Millisecond)
aSessions := make([]*sessions.ExternalSession, 0)
- if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := auRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
@@ -294,7 +295,7 @@ func testGOCSInitSession(t *testing.T) {
}
aSessions = make([]*sessions.ExternalSession, 0)
- if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := usRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
@@ -311,13 +312,13 @@ func testGOCSInitSession(t *testing.T) {
}
// 59 mins - 5 mins = 54 mins
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := auRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -351,12 +352,12 @@ func testGOCSUpdateSession(t *testing.T) {
// right now dispatcher receive utils.ErrPartiallyExecuted
// in case of of engines fails
- if err := auRPC.Call(utils.SessionSv1UpdateSession, args, &rply); err != nil {
+ if err := auRPC.Call(context.Background(), utils.SessionSv1UpdateSession, args, &rply); err != nil {
t.Errorf("Expecting : %+v, received: %+v", utils.ErrPartiallyExecuted, err)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := auRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
@@ -374,7 +375,7 @@ func testGOCSUpdateSession(t *testing.T) {
// balanced changed in AU_SITE
// 54 min - 5 mins = 49 min
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := auRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -389,13 +390,13 @@ func testGOCSVerifyAccountsAfterStart(t *testing.T) {
Account: "1001",
}
// because US_SITE was down we should notice a difference between balance from accounts from US_SITE and AU_SITE
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := auRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -427,14 +428,14 @@ func testGOCSUpdateSession2(t *testing.T) {
var rply sessions.V1UpdateSessionReply
// Update the session on both US_SITE and AU_SITE
// With this update the account should be replicate from US_SITE to AU_SITE and forgot about the update than happens on AU_SITE
- if err := dspRPC.Call(utils.SessionSv1UpdateSession, args, &rply); err != nil {
+ if err := dspRPC.Call(context.Background(), utils.SessionSv1UpdateSession, args, &rply); err != nil {
t.Errorf("Expecting : %+v, received: %+v", nil, err)
} else if rply.MaxUsage == nil || *rply.MaxUsage != reqUsage {
t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := auRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
@@ -445,7 +446,7 @@ func testGOCSUpdateSession2(t *testing.T) {
}
aSessions = make([]*sessions.ExternalSession, 0)
- if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := usRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
@@ -461,13 +462,13 @@ func testGOCSUpdateSession2(t *testing.T) {
Account: "1001",
}
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := auRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -498,7 +499,7 @@ func testGOCSTerminateSession(t *testing.T) {
var rply string
// we send terminate session with the correct usage, but because the US_SITE was down
// this lost the previous session operations and will debit more
- if err := dspRPC.Call(utils.SessionSv1TerminateSession,
+ if err := dspRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -506,11 +507,11 @@ func testGOCSTerminateSession(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := auRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
}
- if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := usRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
}
@@ -521,13 +522,13 @@ func testGOCSTerminateSession(t *testing.T) {
Account: "1001",
}
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := auRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -556,7 +557,7 @@ func testGOCSProcessCDR(t *testing.T) {
var rply string
// process cdr should apply the correction because terminate was debited to much
// 59 - 15 = 44 minutes
- if err := usRPC.Call(utils.SessionSv1ProcessCDR,
+ if err := usRPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
args, &rply); err != nil {
t.Error(err)
}
@@ -570,13 +571,13 @@ func testGOCSProcessCDR(t *testing.T) {
Account: "1001",
}
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := auRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := usRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
diff --git a/general_tests/lib_test.go b/general_tests/lib_test.go
index d8944e709..722e4859d 100644
--- a/general_tests/lib_test.go
+++ b/general_tests/lib_test.go
@@ -20,27 +20,27 @@ package general_tests
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
var (
dataDir = flag.String("data_dir", "/usr/share/cgrates", "CGR data dir path here")
- waitRater = flag.Int("wait_rater", 100, "Number of milliseconds to wait for rater to start and cache")
+ waitRater = flag.Int("wait_rater", 500, "Number of milliseconds to wait for rater to start and cache")
encoding = flag.String("rpc", utils.MetaJSON, "what encoding would be used for rpc communication")
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
err error
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/general_tests/libengine_it_test.go b/general_tests/libengine_it_test.go
index 8b8689af0..5cb40489b 100644
--- a/general_tests/libengine_it_test.go
+++ b/general_tests/libengine_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -34,7 +35,7 @@ import (
var (
libengCfg *config.CGRConfig
- libengRpc *rpc.Client
+ libengRpc *birpc.Client
libengCfgPath string
libengConfigDIR string
@@ -109,15 +110,18 @@ func testLibengITRPCConnection(t *testing.T) {
Tenant: "cgrates.org",
}
var reply string
- conn, err := engine.NewRPCConnection(cgrCfg, "", "", "",
- cgrCfg.ConnectAttempts, cgrCfg.Reconnects, cgrCfg.ConnectTimeout, cgrCfg.ReplyTimeout, nil, false, nil, "*localhost",
+ conn, err := engine.NewRPCConnection(context.Background(),
+ cgrCfg, "", "", "",
+ cgrCfg.ConnectAttempts, cgrCfg.Reconnects,
+ cgrCfg.MaxReconnectInterval, cgrCfg.ConnectTimeout,
+ cgrCfg.ReplyTimeout, nil, false, "*localhost",
"a4f3f", new(ltcache.Cache))
if err != nil {
t.Error(err)
}
//We check if we get a reply timeout error when calling a sleep bigger than the reply timeout from connection config.
errExpect := "REPLY_TIMEOUT"
- if err := conn.Call(utils.CoreSv1Sleep, args, &reply); err.Error() != errExpect {
+ if err := conn.Call(context.Background(), utils.CoreSv1Sleep, args, &reply); err.Error() != errExpect {
t.Errorf("Expected %v \n but received \n %v", errExpect, err.Error())
}
diff --git a/general_tests/loader_nocontext_it_test.go b/general_tests/loader_nocontext_it_test.go
index eb21e5985..e0e3b0fef 100644
--- a/general_tests/loader_nocontext_it_test.go
+++ b/general_tests/loader_nocontext_it_test.go
@@ -22,7 +22,6 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"os"
"path"
"reflect"
@@ -30,6 +29,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -39,7 +40,7 @@ import (
var (
ldrCtxCfgPath string
ldrCtxCfg *config.CGRConfig
- ldrCtxRPC *rpc.Client
+ ldrCtxRPC *birpc.Client
ldrCtxConfDIR string //run tests for specific configuration
ldrCtxDelay int
@@ -157,7 +158,7 @@ cgrates.org,DSP2,,,,,,ALL2,,10,,,
func testLoaderNoContextLoadTariffPlans(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: "/tmp/TestLoaderNoContextIT"}
- if err := ldrCtxRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -172,7 +173,7 @@ func testLoaderNoContextGetFilterIndexesAfterLoad(t *testing.T) {
"*string:*req.Field1:Value1:ATTR_1",
}
var result []string
- if err := ldrCtxRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: "cgrates.org",
Context: utils.MetaAny,
@@ -190,7 +191,7 @@ func testLoaderNoContextGetFilterIndexesAfterLoad(t *testing.T) {
"*none:*any:*any:DSP1",
"*string:*req.Field1:Value1:DSP2",
}
- if err := ldrCtxRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: "cgrates.org",
Context: utils.MetaAny,
@@ -224,13 +225,13 @@ func testLoaderNoContextSetProfiles(t *testing.T) {
}
attrPrf.Compile()
var reply string
- if err := ldrCtxRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &reply); err != nil {
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, attrPrf, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
}
var attrReply *engine.AttributeProfile
- if err := ldrCtxRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_3"}}, &attrReply); err != nil {
t.Error(err)
} else {
@@ -254,7 +255,7 @@ func testLoaderNoContextSetProfiles(t *testing.T) {
},
}
- if err := ldrCtxRPC.Call(utils.APIerSv1SetDispatcherProfile,
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1SetDispatcherProfile,
dspPrf,
&reply); err != nil {
t.Error(err)
@@ -263,7 +264,7 @@ func testLoaderNoContextSetProfiles(t *testing.T) {
}
var dspReply *engine.DispatcherProfile
- if err := ldrCtxRPC.Call(utils.APIerSv1GetDispatcherProfile,
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "DSP3"},
&dspReply); err != nil {
t.Error(err)
@@ -283,7 +284,7 @@ func testLoaderNoContextGetFilterIndexesAfterSet(t *testing.T) {
"*string:*req.Field3:Value3:ATTR_3",
}
var result []string
- if err := ldrCtxRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaAttributes,
Tenant: "cgrates.org",
Context: utils.MetaAny,
@@ -302,7 +303,7 @@ func testLoaderNoContextGetFilterIndexesAfterSet(t *testing.T) {
"*string:*req.Field1:Value1:DSP2",
"*string:*req.RandomField:RandomValue:DSP3",
}
- if err := ldrCtxRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := ldrCtxRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaDispatchers,
Tenant: "cgrates.org",
Context: utils.MetaAny,
diff --git a/general_tests/loaders_internal_indexes_it_test.go b/general_tests/loaders_internal_indexes_it_test.go
index 52a168913..f3cd15044 100644
--- a/general_tests/loaders_internal_indexes_it_test.go
+++ b/general_tests/loaders_internal_indexes_it_test.go
@@ -21,13 +21,14 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -39,7 +40,7 @@ var (
loadersIDBIdxCfgPath string
loadersIDBIdxCfgPathInternal = path.Join(*dataDir, "conf", "samples", "loaders_indexes_internal_db")
loadersIDBIdxCfg, loadersIDBIdxCfgInternal *config.CGRConfig
- loadersIDBIdxRPC, loadersIDBIdxRPCInternal *rpc.Client
+ loadersIDBIdxRPC, loadersIDBIdxRPCInternal *birpc.Client
LoadersIDBIdxTests = []func(t *testing.T){
testLoadersIDBIdxItLoadConfig,
@@ -111,7 +112,7 @@ func testLoadersIDBIdxItRPCConn(t *testing.T) {
func testLoadersIDBIdxItLoad(t *testing.T) {
var loadInst utils.LoadInstance
- if err := loadersIDBIdxRPCInternal.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := loadersIDBIdxRPCInternal.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
&utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")},
&loadInst); err != nil {
t.Error(err)
@@ -136,7 +137,7 @@ func testLoadersIDBIdxCheckAttributes(t *testing.T) {
}
var reply *engine.AttributeProfile
- if err := loadersIDBIdxRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := loadersIDBIdxRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_1001_SIMPLEAUTH"}},
&reply); err != nil {
t.Error(err)
@@ -152,7 +153,7 @@ func testLoadersIDBIdxCheckAttributesIndexes(t *testing.T) {
"*string:*req.Account:1003:ATTR_1003_SIMPLEAUTH",
}
var indexes []string
- if err := loadersIDBIdxRPC.Call(utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
+ if err := loadersIDBIdxRPC.Call(context.Background(), utils.APIerSv1GetFilterIndexes, &v1.AttrGetFilterIndexes{
ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaString,
Context: "simpleauth"},
&indexes); err != nil {
diff --git a/general_tests/oldtutorial_it_test.go b/general_tests/oldtutorial_it_test.go
index a5299849c..6212522ca 100644
--- a/general_tests/oldtutorial_it_test.go
+++ b/general_tests/oldtutorial_it_test.go
@@ -39,7 +39,7 @@ package general_tests
// var tutLocalCfgPath string
// var tutFsLocalCfg *config.CGRConfig
-// var tutLocalRpc *rpc.Client
+// var tutLocalRpc *birpc.Client
// var loadInst utils.LoadInstance // Share load information between tests
// func TestTutITInitCfg(t *testing.T) {
@@ -87,7 +87,7 @@ package general_tests
// // Load the tariff plan, creating accounts and their balances
// func TestTutITLoadTariffPlanFromFolder(t *testing.T) {
// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(**dataDir, "tariffplans", "oldtutorial")}
-// if err := tutLocalRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
// t.Error(err)
// }
// time.Sleep(100*time.Millisecond + time.Duration(**waitRater)*time.Millisecond) // Give time for scheduler to execute topups
@@ -108,7 +108,7 @@ package general_tests
// ThresholdProfiles: 7, Filters: 16, SupplierProfiles: 3, AttributeProfiles: 1,
// CdrStats: 0, Users: 0} // CdrStats and Users are 0 because deprecated. To be removed
// var args utils.AttrCacheStats
-// if err := tutLocalRpc.Call(utils.APIerSv1GetCacheStats, args, &rcvStats); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv1GetCacheStats, args, &rcvStats); err != nil {
// t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
// } else if !reflect.DeepEqual(expectedStats, rcvStats) {
// t.Errorf("Calling APIerSv1.GetCacheStats expected: %+v, received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
@@ -120,7 +120,7 @@ package general_tests
// var rcvKeys utils.ArgsCache
// argsAPI := utils.ArgsCacheKeys{ArgsCache: utils.ArgsCache{
// DestinationIDs: &[]string{}, RatingPlanIDs: &[]string{"RP_RETAIL1", "RP_GENERIC", "NONEXISTENT"}}}
-// if err := tutLocalRpc.Call(utils.APIerSv1GetCacheKeys, argsAPI, &rcvKeys); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv1GetCacheKeys, argsAPI, &rcvKeys); err != nil {
// t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
// } else {
// if rcvKeys.DestinationIDs == nil {
@@ -145,7 +145,7 @@ package general_tests
// if err != nil {
// t.Fatal(err)
// }
-// if err := tutLocalRpc.Call(utils.APIerSv1GetCacheStats, args, &rcvStats); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv1GetCacheStats, args, &rcvStats); err != nil {
// t.Error("Got error on APIerSv1.GetCacheStats: ", err.Error())
// } else if !reflect.DeepEqual(expectedStats, rcvStats) {
// t.Errorf("Calling APIerSv1.GetCacheStats expected: %+v, received: %+v", expectedStats, rcvStats)
@@ -197,7 +197,7 @@ package general_tests
// TimeEnd: tEnd,
// }
// var cc engine.CallCost
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.6 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -214,7 +214,7 @@ package general_tests
// TimeEnd: tEnd,
// ExtraFields: map[string]string{"Uuid": "388539dfd4f5cefee8f488b78c6c244b9e19138e"},
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.6 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -231,7 +231,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.6418 { // 0.01 first minute, 0.04 25 seconds with RT_20CNT
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -248,7 +248,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -265,7 +265,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1.3 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -282,7 +282,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -299,7 +299,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1.3 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -314,7 +314,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(50 * time.Second),
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.5 {
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -328,7 +328,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(70 * time.Second),
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.62 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -342,7 +342,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(50 * time.Second),
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.5 {
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -356,7 +356,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(70 * time.Second),
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.7 { // In case of *disconnect strategy, it will not be applied so we can go on negative costs
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -370,7 +370,7 @@ package general_tests
// TimeStart: time.Date(2016, 1, 6, 19, 0, 0, 0, time.UTC),
// TimeEnd: time.Date(2016, 1, 6, 19, 1, 30, 0, time.UTC),
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.3249 { //
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -384,7 +384,7 @@ package general_tests
// TimeStart: time.Date(2016, 1, 6, 18, 31, 5, 0, time.UTC),
// TimeEnd: time.Date(2016, 1, 6, 18, 32, 35, 0, time.UTC),
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1.3 { //
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -398,7 +398,7 @@ package general_tests
// TimeStart: time.Date(2014, 12, 7, 8, 42, 26, 0, time.UTC),
// TimeEnd: time.Date(2014, 12, 7, 8, 44, 26, 0, time.UTC),
// }
-// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.3498 { //
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -419,7 +419,7 @@ package general_tests
// TimeEnd: tStart.Add(20 * time.Second),
// }
// var cc engine.CallCost
-// if err := tutLocalRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderMaxDebit, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.GetDuration() == 20 {
// t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
@@ -434,7 +434,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(200 * time.Second),
// }
-// if err := tutLocalRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderMaxDebit, cd, &cc); err != nil {
// t.Error("Got error on Responder.MaxDebit: ", err.Error())
// } else if cc.GetDuration() == 200 {
// t.Errorf("Calling Responder.MaxDebit got duration: %v", cc.GetDuration())
@@ -450,7 +450,7 @@ package general_tests
// TimeEnd: tStart.Add(120 * time.Second),
// }
// cd.CgrID = "1"
-// if err := tutLocalRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderMaxDebit, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.GetDuration() == 120 {
// t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
@@ -466,7 +466,7 @@ package general_tests
// TimeEnd: tStart.Add(120 * time.Second),
// }
// cd.CgrID = "2"
-// if err := tutLocalRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.ResponderMaxDebit, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.GetDuration() != 62*time.Second { // We have as strategy *dsconnect
// t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
@@ -586,7 +586,7 @@ package general_tests
// var cdrs []*engine.ExternalCDR
// req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault},
// Accounts: []string{"1004"}, DestinationPrefixes: []string{"1001"}}
-// if err := tutLocalRpc.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(cdrs) != 1 {
// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -646,7 +646,7 @@ package general_tests
// time.Sleep(time.Duration(**waitRater) * time.Millisecond)
// var cdrs []*engine.ExternalCDR
// req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, Accounts: []string{cdr.Account}, DestinationPrefixes: []string{cdr.Destination}}
-// if err := tutLocalRpc.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(cdrs) != 1 {
// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -671,7 +671,7 @@ package general_tests
// }
// time.Sleep(time.Duration(**waitRater) * time.Millisecond) // Give time for CDR to be processed
// req = utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, Accounts: []string{cdr2.Account}, DestinationPrefixes: []string{cdr2.Destination}}
-// if err := tutLocalRpc.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(cdrs) != 1 {
// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -696,7 +696,7 @@ package general_tests
// }
// time.Sleep(time.Duration(**waitRater) * time.Millisecond) // Give time for CDR to be processed
// req = utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, Accounts: []string{cdr3.Account}, DestinationPrefixes: []string{cdr3.Destination}}
-// if err := tutLocalRpc.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(cdrs) != 1 {
// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -967,7 +967,7 @@ package general_tests
// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}}
// var reply string
// for _, cdr := range []*engine.CDR{testCdr1, testCdr2} {
-// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1005,7 +1005,7 @@ package general_tests
// Tenant: "cgrates.org", Category: "call", Account: "1003", Subject: "1003", Destination: "1004",
// SetupTime: time.Date(2014, 12, 7, 8, 42, 24, 0, time.UTC), AnswerTime: time.Date(2014, 12, 7, 8, 42, 26, 0, time.UTC),
// Usage: 180 * time.Second}
-// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, testCdr3, &reply); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.CDRsV1ProcessCDR, testCdr3, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1068,7 +1068,7 @@ package general_tests
// SetupTime: time.Date(2014, 12, 7, 8, 42, 24, 0, time.UTC), AnswerTime: time.Date(2014, 12, 7, 8, 42, 26, 0, time.UTC),
// Usage: 60 * time.Second}
// var reply string
-// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, testCdr4, &reply); err != nil { // Should drop ACD under the 2m required by threshold, removing suppl2 from lcr
+// if err := tutLocalRpc.Call(context.Background(),utils.CDRsV1ProcessCDR, testCdr4, &reply); err != nil { // Should drop ACD under the 2m required by threshold, removing suppl2 from lcr
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1131,7 +1131,7 @@ package general_tests
// Tenant: "cgrates.org", Category: "call", Account: "1003", Subject: "1003", Destination: "1004",
// SetupTime: time.Date(2014, 12, 7, 8, 42, 24, 0, time.UTC), AnswerTime: time.Date(2014, 12, 7, 8, 42, 26, 0, time.UTC),
// Usage: time.Second}
-// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, testCdr5, &reply); err != nil { // Should drop ACD under the 1m required by threshold, removing suppl2 from lcr
+// if err := tutLocalRpc.Call(context.Background(),utils.CDRsV1ProcessCDR, testCdr5, &reply); err != nil { // Should drop ACD under the 1m required by threshold, removing suppl2 from lcr
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1158,7 +1158,7 @@ package general_tests
// func TestTutITSetAccount(t *testing.T) {
// var reply string
// attrs := &v2.AttrSetAccount{Tenant: "cgrates.org", Account: "tutacnt1", ActionPlanIDs: &[]string{"PACKAGE_10"}, ActionTriggerIDs: &[]string{"STANDARD_TRIGGERS"}, ReloadScheduler: true}
-// if err := tutLocalRpc.Call(utils.APIerSv2SetAccount, attrs, &reply); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2SetAccount, attrs, &reply); err != nil {
// t.Error("Got error on APIerSv2.SetAccount: ", err.Error())
// } else if reply != utils.OK {
// t.Errorf("Calling APIerSv2.SetAccount received: %s", reply)
@@ -1196,7 +1196,7 @@ package general_tests
// }
// attrs = &v2.AttrSetAccount{Tenant: "cgrates.org", Account: "tutacnt1", ActionPlanIDs: &[]string{"PACKAGE_10"}, ActionTriggerIDs: &[]string{"STANDARD_TRIGGERS"}, AllowNegative: utils.BoolPointer(true), Disabled: utils.BoolPointer(true), ReloadScheduler: true}
-// if err := tutLocalRpc.Call(utils.APIerSv2SetAccount, attrs, &reply); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2SetAccount, attrs, &reply); err != nil {
// t.Error("Got error on APIerSv2.SetAccount: ", err.Error())
// } else if reply != utils.OK {
// t.Errorf("Calling APIerSv2.SetAccount received: %s", reply)
@@ -1226,7 +1226,7 @@ package general_tests
// }
// attrs = &v2.AttrSetAccount{Tenant: "cgrates.org", Account: "tutacnt1", ActionPlanIDs: &[]string{"PACKAGE_1001"}, ActionTriggerIDs: &[]string{"CDRST1_WARN"}, AllowNegative: utils.BoolPointer(true), Disabled: utils.BoolPointer(true), ReloadScheduler: true}
-// if err := tutLocalRpc.Call(utils.APIerSv2SetAccount, attrs, &reply); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2SetAccount, attrs, &reply); err != nil {
// t.Error("Got error on APIerSv2.SetAccount: ", err.Error())
// } else if reply != utils.OK {
// t.Errorf("Calling APIerSv2.SetAccount received: %s", reply)
@@ -1349,7 +1349,7 @@ package general_tests
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
// }
-// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1357,7 +1357,7 @@ package general_tests
// time.Sleep(time.Duration(**waitRater) * time.Millisecond) // Give time for CDR to be processed
// var cdrs []*engine.ExternalCDR
// req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, CGRIDs: []string{cdr.CGRID}}
-// if err := tutLocalRpc.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(cdrs) != 1 {
// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1380,7 +1380,7 @@ package general_tests
// Usage: 90 * time.Second,
// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}}
// var reply string
-// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1389,7 +1389,7 @@ package general_tests
// time.Sleep(7000 * time.Millisecond) // Give time for CDR to be processed
// var cdrs []*engine.ExternalCDR
// req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, CGRIDs: []string{cdr.CGRID}}
-// if err := tutLocalRpc.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(cdrs) != 1 {
// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1412,7 +1412,7 @@ package general_tests
// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}}
// cdr.ComputeCGRID()
// var reply string
-// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1420,7 +1420,7 @@ package general_tests
// time.Sleep(50 * time.Millisecond) // Give time for CDR to be processed
// var cdrs []*engine.ExternalCDR
// req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, CGRIDs: []string{cdr.CGRID}}
-// if err := tutLocalRpc.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(cdrs) != 1 {
// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1438,7 +1438,7 @@ package general_tests
// ExportFileName: utils.StringPointer("TestTutITExportCDR.csv"),
// ExportTemplate: utils.StringPointer("TestTutITExportCDR"),
// RPCCDRsFilter: utils.RPCCDRsFilter{CGRIDs: []string{cdr.CGRID}, NotRunIDs: []string{utils.MetaRaw}}}
-// if err := tutLocalRpc.Call(utils.APIerSv1ExportCDRs, exportArgs, &replyExport); err != nil {
+// if err := tutLocalRpc.Call(context.Background(),utils.APIerSv1ExportCDRs, exportArgs, &replyExport); err != nil {
// t.Error(err)
// }
// eExportContent := `f0a92222a7d21b4d9f72744aabe82daef52e20d8,*default,testexportcdr1,*rated,cgrates.org,call,1001,1003,2016-11-30T18:06:04+01:00,98,1.33340,RETA
diff --git a/general_tests/poster_it_test.go b/general_tests/poster_it_test.go
index 2f0ad9352..d11ead890 100644
--- a/general_tests/poster_it_test.go
+++ b/general_tests/poster_it_test.go
@@ -23,12 +23,13 @@ package general_tests
import (
"encoding/json"
"fmt"
- "net/rpc"
"os"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/ees"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +38,7 @@ import (
var (
pstrCfg *config.CGRConfig
- pstrRpc *rpc.Client
+ pstrRpc *birpc.Client
pstrCfgPath string
pstrConfigDIR string
@@ -145,7 +146,7 @@ func testPosterReadFolder(format string) (expEv *ees.ExportEvents, err error) {
func testPosterITSetAccount(t *testing.T) {
var reply string
- if err := pstrRpc.Call(utils.APIerSv1SetAccount, pstrAccount, &reply); err != nil {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv1SetAccount, pstrAccount, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -160,13 +161,13 @@ func testPosterITAMQP(t *testing.T) {
{Identifier: utils.MetaExport, ExtraParameters: "amqp_fail"},
},
}
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -198,13 +199,13 @@ func testPosterITAMQPv1(t *testing.T) {
{Identifier: utils.MetaExport, ExtraParameters: "aws_fail"},
},
}
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -236,13 +237,13 @@ func testPosterITSQS(t *testing.T) {
{Identifier: utils.MetaExport, ExtraParameters: "sqs_fail"},
},
}
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -274,13 +275,13 @@ func testPosterITS3(t *testing.T) {
{Identifier: utils.MetaExport, ExtraParameters: "s3_fail"},
},
}
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
@@ -312,13 +313,13 @@ func testPosterITKafka(t *testing.T) {
{Identifier: utils.MetaExport, ExtraParameters: "kafka_fail"},
},
}
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
}
attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+ if err := pstrRpc.Call(context.Background(), utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
diff --git a/general_tests/redis_cluster_it_test.go b/general_tests/redis_cluster_it_test.go
index 268538bd4..86255a61d 100644
--- a/general_tests/redis_cluster_it_test.go
+++ b/general_tests/redis_cluster_it_test.go
@@ -25,7 +25,6 @@ import (
"bytes"
"flag"
"fmt"
- "net/rpc"
"os"
"os/exec"
"path"
@@ -33,6 +32,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -65,7 +66,7 @@ import (
var (
clsrConfig *config.CGRConfig
- clsrRPC *rpc.Client
+ clsrRPC *birpc.Client
clsrNodeCfgPath = path.Join(*dataDir, "redisCluster", "node%v.conf")
clsrEngineCfgPath = path.Join(*dataDir, "conf", "samples", "redisCluster")
@@ -203,13 +204,13 @@ func testClsrSetGetAttribute(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := clsrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := clsrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := clsrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest"}, &reply); err != nil {
t.Fatal(err)
}
@@ -243,7 +244,7 @@ func testClsrSetGetAttribute2(t *testing.T) {
}
alsPrf.Compile()
var reply *engine.AttributeProfile
- if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := clsrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest"}, &reply); err != nil {
t.Fatal(err)
}
@@ -254,7 +255,7 @@ func testClsrSetGetAttribute2(t *testing.T) {
// add another attribute
alsPrf.ID += "2"
var result string
- if err := clsrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := clsrRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -288,7 +289,7 @@ func testClsrGetAttribute(t *testing.T) {
}
alsPrf.Compile()
var reply *engine.AttributeProfile
- if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := clsrRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest2"}, &reply); err != nil {
t.Fatal(err)
}
diff --git a/general_tests/redis_tls_it_test.go b/general_tests/redis_tls_it_test.go
index 39795178b..0cde03c82 100644
--- a/general_tests/redis_tls_it_test.go
+++ b/general_tests/redis_tls_it_test.go
@@ -23,11 +23,12 @@ package general_tests
import (
"flag"
- "net/rpc"
"os/exec"
"path"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/config"
@@ -39,7 +40,7 @@ var (
redisTLSServer *exec.Cmd
redisTLSEngineCfg = path.Join(*dataDir, "conf", "samples", "redisTLS")
redisTLSCfg *config.CGRConfig
- redisTLSRPC *rpc.Client
+ redisTLSRPC *birpc.Client
sTestsRedisTLS = []func(t *testing.T){
testRedisTLSStartServer,
@@ -107,7 +108,7 @@ func testRedisTLSRPCCon(t *testing.T) {
func testRedisTLSSetGetAttribute(t *testing.T) {
// status command to check if the engine starts
var rply map[string]any
- if err := redisTLSRPC.Call(utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
+ if err := redisTLSRPC.Call(context.Background(), utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
t.Error(err)
}
}
diff --git a/general_tests/rerate_cdrs_it_test.go b/general_tests/rerate_cdrs_it_test.go
index 56f1e949e..7fb743bd2 100644
--- a/general_tests/rerate_cdrs_it_test.go
+++ b/general_tests/rerate_cdrs_it_test.go
@@ -22,12 +22,13 @@ package general_tests
import (
"math"
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
rrCdrsCfgPath string
rrCdrsCfg *config.CGRConfig
- rrCdrsRPC *rpc.Client
+ rrCdrsRPC *birpc.Client
rrCdrsConfDIR string //run tests for specific configuration
rrCdrsDelay int
rrCdrsUUID = utils.GenUUID()
@@ -121,7 +122,7 @@ func testRerateCDRsRPCConn(t *testing.T) {
func testRerateCDRsLoadTP(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "reratecdrs")}
- if err := rrCdrsRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := rrCdrsRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -146,7 +147,7 @@ func testRerateCDRsSetBalance(t *testing.T) {
},
}
var reply string
- if err := rrCdrsRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := rrCdrsRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -167,7 +168,7 @@ func testRerateCDRsGetAccountAfterBalanceSet(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := rrCdrsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := rrCdrsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
@@ -202,7 +203,7 @@ func testRerateCDRsProcessEventCDR1(t *testing.T) {
},
}
var reply string
- if err := rrCdrsRPC.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := rrCdrsRPC.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -212,7 +213,7 @@ func testRerateCDRsProcessEventCDR1(t *testing.T) {
func testRerateCDRsCheckCDRCostAfterProcessEvent1(t *testing.T) {
var cdrs []*engine.CDR
- if err := rrCdrsRPC.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := rrCdrsRPC.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"run_1"},
}}, &cdrs); err != nil {
@@ -244,7 +245,7 @@ func testRerateCDRsGetAccountAfterProcessEvent1(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := rrCdrsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := rrCdrsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
@@ -281,7 +282,7 @@ func testRerateCDRsProcessEventCDR2(t *testing.T) {
},
}
var reply string
- if err := rrCdrsRPC.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := rrCdrsRPC.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -291,7 +292,7 @@ func testRerateCDRsProcessEventCDR2(t *testing.T) {
func testRerateCDRsCheckCDRCostAfterProcessEvent2(t *testing.T) {
var cdrs []*engine.CDR
- if err := rrCdrsRPC.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := rrCdrsRPC.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"run_2"},
}}, &cdrs); err != nil {
@@ -323,7 +324,7 @@ func testRerateCDRsGetAccountAfterProcessEvent2(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := rrCdrsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := rrCdrsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
@@ -338,7 +339,7 @@ func testRerateCDRsGetAccountAfterProcessEvent2(t *testing.T) {
func testRerateCDRsRerateCDRs(t *testing.T) {
var reply string
- if err := rrCdrsRPC.Call(utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
+ if err := rrCdrsRPC.Call(context.Background(), utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
Flags: []string{utils.MetaRerate},
RPCCDRsFilter: utils.RPCCDRsFilter{
OrderBy: utils.AnswerTime,
@@ -352,7 +353,7 @@ func testRerateCDRsRerateCDRs(t *testing.T) {
func testRerateCDRsCheckCDRCostsAfterRerate(t *testing.T) {
var cdrs []*engine.CDR
- if err := rrCdrsRPC.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := rrCdrsRPC.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{
CGRIDs: []string{rrCdrsUUID},
OrderBy: utils.AnswerTime,
@@ -385,7 +386,7 @@ func testRerateCDRsGetAccountAfterRerate(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := rrCdrsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := rrCdrsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
diff --git a/general_tests/rerate_exp_it_test.go b/general_tests/rerate_exp_it_test.go
index 3d2fe38ee..af1c23d0d 100644
--- a/general_tests/rerate_exp_it_test.go
+++ b/general_tests/rerate_exp_it_test.go
@@ -22,12 +22,13 @@ package general_tests
import (
"math"
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ import (
var (
ng1CfgPath, ng2CfgPath string
ng1Cfg, ng2Cfg *config.CGRConfig
- ng1RPC, ng2RPC *rpc.Client
+ ng1RPC, ng2RPC *birpc.Client
ng1ConfDIR, ng2ConfDIR string //run tests for specific configuration
rrDelay int
ng1UUID = utils.GenUUID()
@@ -148,7 +149,7 @@ func testRerateExpRPCConn(t *testing.T) {
func testRerateExpLoadTP(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "reratecdrs")}
- if err := ng1RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -173,7 +174,7 @@ func testRerateExpSetBalance(t *testing.T) {
},
}
var reply string
- if err := ng1RPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -194,7 +195,7 @@ func testRerateExpGetAccountAfterBalanceSet(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := ng1RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
@@ -229,7 +230,7 @@ func testRerateExpProcessEventCDR1(t *testing.T) {
},
}
var reply string
- if err := ng1RPC.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
}
time.Sleep(50 * time.Millisecond)
@@ -237,7 +238,7 @@ func testRerateExpProcessEventCDR1(t *testing.T) {
func testRerateExpCheckCDRCostAfterProcessEvent1(t *testing.T) {
var cdrs []*engine.CDR
- if err := ng2RPC.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := ng2RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"run_1"},
}}, &cdrs); err != nil {
@@ -269,7 +270,7 @@ func testRerateExpGetAccountAfterProcessEvent1(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := ng1RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
@@ -306,7 +307,7 @@ func testRerateExpProcessEventCDR2(t *testing.T) {
},
}
var reply string
- if err := ng1RPC.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
}
time.Sleep(50 * time.Millisecond)
@@ -314,7 +315,7 @@ func testRerateExpProcessEventCDR2(t *testing.T) {
func testRerateExpCheckCDRCostAfterProcessEvent2(t *testing.T) {
var cdrs []*engine.CDR
- if err := ng2RPC.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := ng2RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"run_2"},
}}, &cdrs); err != nil {
@@ -346,7 +347,7 @@ func testRerateExpGetAccountAfterProcessEvent2(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := ng1RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
@@ -382,7 +383,7 @@ func testRerateExpProcessEventCDR3(t *testing.T) {
},
}
var reply string
- if err := ng2RPC.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+ if err := ng2RPC.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -391,7 +392,7 @@ func testRerateExpProcessEventCDR3(t *testing.T) {
func testRerateExpCheckCDRCostAfterProcessEvent3(t *testing.T) {
var cdrs []*engine.CDR
- if err := ng2RPC.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := ng2RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{
RunIDs: []string{"run_2"},
}}, &cdrs); err != nil {
@@ -423,7 +424,7 @@ func testRerateExpGetAccountAfterProcessEvent3(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := ng1RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
@@ -438,7 +439,7 @@ func testRerateExpGetAccountAfterProcessEvent3(t *testing.T) {
func testRerateExpRerateCDRs(t *testing.T) {
var reply string
- if err := ng2RPC.Call(utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
+ if err := ng2RPC.Call(context.Background(), utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
Flags: []string{utils.MetaRerate},
RPCCDRsFilter: utils.RPCCDRsFilter{
OrderBy: utils.AnswerTime,
@@ -452,7 +453,7 @@ func testRerateExpRerateCDRs(t *testing.T) {
func testRerateExpCheckCDRCostsAfterRerate(t *testing.T) {
var cdrs []*engine.CDR
- if err := ng2RPC.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+ if err := ng2RPC.Call(context.Background(), utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{
CGRIDs: []string{ng1UUID, ng2UUID},
OrderBy: utils.AnswerTime,
@@ -487,7 +488,7 @@ func testRerateExpGetAccountAfterRerate(t *testing.T) {
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := ng1RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := ng1RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else {
expAcnt.UpdateTime = acnt.UpdateTime
diff --git a/general_tests/resourcesv1_it_test.go b/general_tests/resourcesv1_it_test.go
index c365cedb0..b359a6e99 100644
--- a/general_tests/resourcesv1_it_test.go
+++ b/general_tests/resourcesv1_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -34,7 +35,7 @@ import (
var (
rlsV1CfgPath string
rlsV1Cfg *config.CGRConfig
- rlsV1Rpc *rpc.Client
+ rlsV1Rpc *birpc.Client
rlsV1ConfDIR string //run tests for specific configuration
sTestsRLSV1 = []func(t *testing.T){
@@ -122,7 +123,7 @@ func testV1RsSetProfile(t *testing.T) {
},
}
var result string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rls, &result); err != nil {
+ if err := rlsV1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rls, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -143,7 +144,7 @@ func testV1RsAllocate(t *testing.T) {
},
}
var reply string
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &reply); err != nil {
t.Error(err)
} else if reply != "Account1Channels" {
@@ -162,7 +163,7 @@ func testV1RsAllocate(t *testing.T) {
utils.OptsResourcesUnits: 1,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv2, &reply); err != nil {
t.Error(err)
} else if reply != "Account1Channels" {
@@ -183,7 +184,7 @@ func testV1RsAuthorize(t *testing.T) {
utils.OptsResourcesUsageID: "RandomUsageID",
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent,
args, &reply); err != nil {
t.Error(err)
}
@@ -217,7 +218,7 @@ func testV1RsAuthorize(t *testing.T) {
utils.OptsResourcesUnits: 1,
},
}
- if err := rlsV1Rpc.Call(utils.ResourceSv1AuthorizeResources,
+ if err := rlsV1Rpc.Call(context.Background(), utils.ResourceSv1AuthorizeResources,
&cgrEv, &reply2); err.Error() != "RESOURCE_UNAUTHORIZED" {
t.Error(err)
}
diff --git a/general_tests/route_it_test.go b/general_tests/route_it_test.go
index 501288147..2cc791d69 100644
--- a/general_tests/route_it_test.go
+++ b/general_tests/route_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +38,7 @@ import (
var (
splSv1CfgPath string
splSv1Cfg *config.CGRConfig
- splSv1Rpc *rpc.Client
+ splSv1Rpc *birpc.Client
splPrf *v1.RouteWithAPIOpts
splSv1ConfDIR string //run tests for specific configuration
@@ -121,7 +122,7 @@ func testV1SplSRpcConn(t *testing.T) {
func testV1SplSFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := splSv1Rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -129,7 +130,7 @@ func testV1SplSFromFolder(t *testing.T) {
func testV1SplSSetRouteProfilesWithoutRatingPlanIDs(t *testing.T) {
var reply *engine.RouteProfile
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE2"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -151,12 +152,12 @@ func testV1SplSSetRouteProfilesWithoutRatingPlanIDs(t *testing.T) {
},
}
var result string
- if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE2"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
@@ -174,11 +175,11 @@ func testV1SplSSetRouteProfilesWithoutRatingPlanIDs(t *testing.T) {
},
}
var suplsReply engine.SortedRoutesList
- if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := splSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err == nil || err.Error() != utils.NewErrServerError(utils.ErrAccountNotFound).Error() {
t.Error(err)
}
- if err := splSv1Rpc.Call(utils.APIerSv1RemoveRouteProfile, utils.TenantID{
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1RemoveRouteProfile, utils.TenantID{
Tenant: splPrf.Tenant,
ID: splPrf.ID,
}, &result); err != nil {
@@ -190,7 +191,7 @@ func testV1SplSSetRouteProfilesWithoutRatingPlanIDs(t *testing.T) {
func testV1SplSAddNewRoutePrf(t *testing.T) {
var reply *engine.RouteProfile
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceTest"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -228,12 +229,12 @@ func testV1SplSAddNewRoutePrf(t *testing.T) {
},
}
var result string
- if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceTest"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
@@ -261,7 +262,7 @@ func testV1SplSAddNewResPrf(t *testing.T) {
},
}
- if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf, &result); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -284,7 +285,7 @@ func testV1SplSAddNewResPrf(t *testing.T) {
},
}
- if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf2, &result); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rPrf2, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -307,7 +308,7 @@ func testV1SplSAddNewResPrf(t *testing.T) {
},
}
- if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf3, &result); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rPrf3, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -330,7 +331,7 @@ func testV1SplSAddNewResPrf(t *testing.T) {
},
}
- if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf4, &result); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1SetResourceProfile, rPrf4, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -352,7 +353,7 @@ func testV1SplSPopulateResUsage(t *testing.T) {
utils.OptsResourcesUnits: 4,
},
}
- if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := splSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &reply); err != nil {
t.Error(err)
}
@@ -374,7 +375,7 @@ func testV1SplSPopulateResUsage(t *testing.T) {
utils.OptsResourcesUnits: 7,
},
}
- if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := splSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &reply); err != nil {
t.Error(err)
}
@@ -396,7 +397,7 @@ func testV1SplSPopulateResUsage(t *testing.T) {
utils.OptsResourcesUnits: 7,
},
}
- if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := splSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &reply); err != nil {
t.Error(err)
}
@@ -418,7 +419,7 @@ func testV1SplSPopulateResUsage(t *testing.T) {
utils.OptsResourcesUnits: 7,
},
}
- if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := splSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
cgrEv, &reply); err != nil {
t.Error(err)
}
@@ -439,7 +440,7 @@ func testV1SplSGetSortedRoutes(t *testing.T) {
}
expSupplierIDs := []string{"route3", "route2", "route1"}
var suplsReply engine.SortedRoutesList
- if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := splSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else {
@@ -460,7 +461,7 @@ func testV1SplSGetSortedRoutes(t *testing.T) {
func testV1SplSAddNewRoutePrf2(t *testing.T) {
var reply *engine.RouteProfile
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceDescendent"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -498,12 +499,12 @@ func testV1SplSAddNewRoutePrf2(t *testing.T) {
},
}
var result string
- if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := splSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceDescendent"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
@@ -521,7 +522,7 @@ func testV1SplSGetSortedRoutes2(t *testing.T) {
}
expSupplierIDs := []string{"route1", "route3", "route2"}
var suplsReply engine.SortedRoutesList
- if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := splSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else {
@@ -553,7 +554,7 @@ func testV1SplSPopulateStats(t *testing.T) {
"StatID": "Stat_Supplier1",
},
}
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -568,7 +569,7 @@ func testV1SplSPopulateStats(t *testing.T) {
"StatID": "Stat_Supplier1",
},
}
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -578,7 +579,7 @@ func testV1SplSPopulateStats(t *testing.T) {
expectedMetrics := map[string]string{
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "LoadReq": "2",
}
- if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier1"}},
&metrics); err != nil {
t.Error(err)
@@ -595,7 +596,7 @@ func testV1SplSPopulateStats(t *testing.T) {
"StatID": "Stat_Supplier2",
},
}
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -610,13 +611,13 @@ func testV1SplSPopulateStats(t *testing.T) {
"StatID": "Stat_Supplier2",
},
}
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
}
- if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier2"}},
&metrics); err != nil {
t.Error(err)
@@ -633,7 +634,7 @@ func testV1SplSPopulateStats(t *testing.T) {
"StatID": "Stat_Supplier3",
},
}
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -648,7 +649,7 @@ func testV1SplSPopulateStats(t *testing.T) {
"StatID": "Stat_Supplier3",
},
}
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -663,7 +664,7 @@ func testV1SplSPopulateStats(t *testing.T) {
"StatID": "Stat_Supplier3",
},
}
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expected) {
t.Errorf("Expecting: %+v, received: %+v", expected, reply)
@@ -673,7 +674,7 @@ func testV1SplSPopulateStats(t *testing.T) {
utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "LoadReq": "3",
}
- if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := splSv1Rpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier3"}},
&metrics); err != nil {
t.Error(err)
@@ -719,7 +720,7 @@ func testV1SplSGetSoredRoutesWithLoad(t *testing.T) {
}
var suplsReply engine.SortedRoutesList
- if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := splSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &suplsReply); err != nil {
t.Error(err)
} else {
diff --git a/general_tests/routes_cases_it_test.go b/general_tests/routes_cases_it_test.go
index 0d3bb5bf0..a002e7afe 100644
--- a/general_tests/routes_cases_it_test.go
+++ b/general_tests/routes_cases_it_test.go
@@ -22,13 +22,14 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"sort"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -38,7 +39,7 @@ import (
var (
rtsCaseSv1CfgPath string
rtsCaseSv1Cfg *config.CGRConfig
- rtsCaseSv1Rpc *rpc.Client
+ rtsCaseSv1Rpc *birpc.Client
rtsCasePrf *v1.RouteWithAPIOpts
rtsCaseSv1ConfDIR string //run tests for specific configuration
@@ -134,7 +135,7 @@ func testV1RtsCaseRpcConn(t *testing.T) {
func testV1RtsCaseFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutroutes")}
- if err := rtsCaseSv1Rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -171,7 +172,7 @@ func testV1RtsCaseGetRoutesAfterLoading(t *testing.T) {
},
}
var reply *engine.RouteProfile
- if err := rtsCaseSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{ID: "ROUTE_ACNT_1001", Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -217,7 +218,7 @@ func testV1RtsCaseGetRoutesAfterLoading(t *testing.T) {
},
},
}
- if err := rtsCaseSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{ID: "ROUTE_ACNT_1002", Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -257,7 +258,7 @@ func testV1RtsCaseGetRoutesAfterLoading(t *testing.T) {
},
},
}
- if err := rtsCaseSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{ID: "ROUTE_ACNT_1003", Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -298,7 +299,7 @@ func testV1RtsCaseGetRoutesAfterLoading(t *testing.T) {
},
},
}
- if err := rtsCaseSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{ID: "ROUTE_ACNT_1004", Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -334,7 +335,7 @@ func testV1RtsCaseGetRoutesAfterLoading(t *testing.T) {
},
},
}
- if err := rtsCaseSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{ID: "ROUTE_ACNT_1005", Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -379,7 +380,7 @@ func testV1RtsCaseGetRoutesAfterLoading(t *testing.T) {
},
},
}
- if err := rtsCaseSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.APIerSv1GetRouteProfile,
&utils.TenantID{ID: "ROUTE_HC1", Tenant: "cgrates.org"},
&reply); err != nil {
t.Error(err)
@@ -422,7 +423,7 @@ func testV1RtsCasesSortingRoutesWeightAccountValue(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSrtdRoutes, reply) {
@@ -472,7 +473,7 @@ func testV1RtsCasesSortingRoutesWeightAllRoutes(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSrtdRoutes, reply) {
@@ -492,7 +493,7 @@ func testV1RtsCasesSortingRoutesWeightNotMatchingValue(t *testing.T) {
},
}
var result string
- if err := rtsCaseSv1Rpc.Call(utils.APIerSv1SetBalance, attrBal,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.APIerSv1SetBalance, attrBal,
&result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -534,7 +535,7 @@ func testV1RtsCasesSortingRoutesWeightNotMatchingValue(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSrtdRoutes, reply) {
@@ -579,7 +580,7 @@ func testV1RtsCasesSortingRoutesLowestCost(t *testing.T) {
}
var reply *engine.SortedRoutesList
//gonna match one route because the totalUsage by ne-allocated resources is 0
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSrtdRoutes, reply) {
@@ -633,7 +634,7 @@ func testV1RtsCasesSortingRoutesLowestCostDefaultUsage(t *testing.T) {
}
var reply *engine.SortedRoutesList
//gonna match one route because the totalUsage by ne-allocated resources is 0
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSrtdRoutes, reply) {
@@ -655,7 +656,7 @@ func testV1RtsCasesSortingRoutesLCSetStatsAndResForMatching(t *testing.T) {
},
}
var reply string
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
} else if reply != "RES_GRP1" {
@@ -676,7 +677,7 @@ func testV1RtsCasesSortingRoutesLCSetStatsAndResForMatching(t *testing.T) {
utils.Cost: 1.0,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &result); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &result); err != nil {
t.Error(err)
} else {
sort.Strings(result)
@@ -734,7 +735,7 @@ func testV1RtsCasesSortingRoutesLowestCostStats(t *testing.T) {
}
var reply *engine.SortedRoutesList
//gonna match one route because the totalUsage by ne-allocated resources is 0
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSrtdRoutes, reply) {
@@ -756,7 +757,7 @@ func testV1RtsCasesSortingRoutesLowestCosMatchingAllRoutes(t *testing.T) {
},
}
var result string
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
evRes, &result); err != nil {
t.Error(err)
} else if result != "RES_GRP1" {
@@ -815,7 +816,7 @@ func testV1RtsCasesSortingRoutesLowestCosMatchingAllRoutes(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSrtdRoutes, reply) {
@@ -871,7 +872,7 @@ func testV1RtsCasesSortingRoutesLowestCosMaxCost(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSrtdRoutes, reply) {
@@ -895,7 +896,7 @@ func testV1RtsCasesSortingRoutesLowestCosMaxCostNotMatch(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
@@ -917,7 +918,7 @@ func testV1RtsCasesSortingRoutesProcessMetrics(t *testing.T) {
},
}
var result []string
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &result); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &result); err != nil {
t.Error(err)
} else {
sort.Strings(expected)
@@ -926,7 +927,7 @@ func testV1RtsCasesSortingRoutesProcessMetrics(t *testing.T) {
t.Errorf("Expecting: %+v, received: %+v", expected, result)
}
}
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &result); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &result); err != nil {
t.Error(err)
} else {
sort.Strings(expected)
@@ -949,7 +950,7 @@ func testV1RtsCasesSortingRoutesProcessMetrics(t *testing.T) {
utils.Cost: 1.0,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &result); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &result); err != nil {
t.Error(err)
} else {
sort.Strings(expected)
@@ -958,7 +959,7 @@ func testV1RtsCasesSortingRoutesProcessMetrics(t *testing.T) {
t.Errorf("Expecting: %+v, received: %+v", expected, result)
}
}
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &result); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &result); err != nil {
t.Error(err)
} else {
sort.Strings(expected)
@@ -1014,7 +1015,7 @@ func testV1RtsCasesSortingRoutesQOS(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSrtdRoutes) {
@@ -1036,7 +1037,7 @@ func testV1RtsCasesSortingRoutesQOSAllRoutes(t *testing.T) {
},
}
var result []string
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &result); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &result); err != nil {
t.Error(err)
}
@@ -1095,7 +1096,7 @@ func testV1RtsCasesSortingRoutesQOSAllRoutes(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSrtdRoutes) {
@@ -1116,7 +1117,7 @@ func testV1RtsCasesSortingRoutesQOSNotFound(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
@@ -1135,7 +1136,7 @@ func testV1RtsCasesSortingRoutesAllocateResources(t *testing.T) {
},
}
var reply string
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
} else if reply != "RES_GRP1" {
@@ -1153,7 +1154,7 @@ func testV1RtsCasesSortingRoutesAllocateResources(t *testing.T) {
utils.OptsResourcesUnits: 7,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
ev, &reply); err != nil {
t.Error(err)
} else if reply != "RES_GRP2" {
@@ -1193,7 +1194,7 @@ func testV1RtsCasesSortingRoutesReasNotAllRoutes(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSrtdRoutes) {
@@ -1214,7 +1215,7 @@ func testV1RtsCasesSortingRoutesReasAllRoutes(t *testing.T) {
},
}
var replyStr string
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
evRs, &replyStr); err != nil {
t.Error(err)
} else if replyStr != "RES_GRP1" {
@@ -1259,7 +1260,7 @@ func testV1RtsCasesSortingRoutesReasAllRoutes(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSrtdRoutes) {
@@ -1282,9 +1283,9 @@ func testV1RtsCasesRoutesProcessStatsForLoadRtsSorting(t *testing.T) {
utils.Cost: 1.8,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
- } else if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ } else if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else {
sort.Strings(expected)
@@ -1305,9 +1306,9 @@ func testV1RtsCasesRoutesProcessStatsForLoadRtsSorting(t *testing.T) {
utils.Cost: 1.8,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
- } else if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ } else if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else {
sort.Strings(expected)
@@ -1330,7 +1331,7 @@ func testV1RtsCasesRoutesProcessStatsForLoadRtsSorting(t *testing.T) {
utils.Cost: 0.77,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
t.Error(err)
} else {
sort.Strings(expected)
@@ -1383,7 +1384,7 @@ func testV1RtsCasesRoutesLoadRtsSorting(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSrtdRoutes) {
@@ -1429,7 +1430,7 @@ func testV1RtsCasesSortRoutesHigherCostV2V3(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSrtdRoutes) {
@@ -1452,7 +1453,7 @@ func testV1RtsCasesSortRoutesHigherCostAllocateRes(t *testing.T) {
utils.OptsResourcesUnits: 7,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1ReleaseResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1ReleaseResources,
evRs, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -1470,7 +1471,7 @@ func testV1RtsCasesSortRoutesHigherCostAllocateRes(t *testing.T) {
utils.OptsResourcesUnits: 7,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1ReleaseResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1ReleaseResources,
evRs, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
@@ -1488,7 +1489,7 @@ func testV1RtsCasesSortRoutesHigherCostAllocateRes(t *testing.T) {
utils.OptsResourcesUnits: 1,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
evRs, &result); err != nil {
t.Error(err)
} else if result != "RES_GRP2" {
@@ -1507,7 +1508,7 @@ func testV1RtsCasesSortRoutesHigherCostAllocateRes(t *testing.T) {
utils.OptsResourcesUnits: 4,
},
}
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
evRs, &result); err != nil {
t.Error(err)
} else if result != "RES_GRP1" {
@@ -1553,7 +1554,7 @@ func testV1RtsCasesSortRoutesHigherCostV1V3(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSrtdRoutes) {
@@ -1574,7 +1575,7 @@ func testV1RtsCasesSortRoutesHigherCostAllRoutes(t *testing.T) {
},
}
var result string
- if err := rtsCaseSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.ResourceSv1AllocateResources,
evRs, &result); err != nil {
t.Error(err)
} else if result != "RES_GRP1" {
@@ -1626,7 +1627,7 @@ func testV1RtsCasesSortRoutesHigherCostAllRoutes(t *testing.T) {
},
}
var reply *engine.SortedRoutesList
- if err := rtsCaseSv1Rpc.Call(utils.RouteSv1GetRoutes,
+ if err := rtsCaseSv1Rpc.Call(context.Background(), utils.RouteSv1GetRoutes,
ev, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSrtdRoutes) {
diff --git a/general_tests/rpccaching_it_test.go b/general_tests/rpccaching_it_test.go
index 583fc9bd5..a08c714a7 100644
--- a/general_tests/rpccaching_it_test.go
+++ b/general_tests/rpccaching_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -37,7 +38,7 @@ import (
var (
rpcCfgPath string
rpcCfg *config.CGRConfig
- rpcRpc *rpc.Client
+ rpcRpc *birpc.Client
rpcConfDIR string //run tests for specific configuration
sTestsRPCMethods = []func(t *testing.T){
@@ -127,7 +128,7 @@ func testRPCMethodsRpcConn(t *testing.T) {
func testRPCMethodsFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := rpcRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -135,7 +136,7 @@ func testRPCMethodsFromFolder(t *testing.T) {
func testRPCMethodsAddData(t *testing.T) {
var resp string
- if err := rpcRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv1RemoveThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
@@ -147,7 +148,7 @@ func testRPCMethodsAddData(t *testing.T) {
{Identifier: utils.MetaDisableAccount},
{Identifier: utils.MetaLog},
}}
- if err := rpcRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -157,7 +158,7 @@ func testRPCMethodsAddData(t *testing.T) {
{Identifier: utils.MetaEnableAccount},
{Identifier: utils.MetaLog},
}}
- if err := rpcRpc.Call(utils.APIerSv2SetActions, attrsAA2, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv2SetActions, attrsAA2, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
t.Error("Got error on APIerSv2.SetActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
@@ -175,7 +176,7 @@ func testRPCMethodsAddData(t *testing.T) {
ActionIDs: []string{"DISABLE_LOG"},
},
}
- if err := rpcRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -192,7 +193,7 @@ func testRPCMethodsAddData(t *testing.T) {
ActionIDs: []string{"ENABLE_LOG"},
},
}
- if err := rpcRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl2, &reply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl2, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error("Unexpected reply returned", reply)
@@ -221,7 +222,7 @@ func testRPCMethodsAuthorizeSession(t *testing.T) {
}
//authorize the session
var rplyFirst sessions.V1AuthorizeReply
- if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rplyFirst); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rplyFirst); err != nil {
t.Fatal(err)
}
if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != authUsage {
@@ -239,7 +240,7 @@ func testRPCMethodsAuthorizeSession(t *testing.T) {
},
}
//process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
@@ -251,7 +252,7 @@ func testRPCMethodsAuthorizeSession(t *testing.T) {
Tenant: "cgrates.org",
Account: "1001",
}
- if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.Disabled != true {
t.Errorf("Expecting: true, received: %v", acnt.Disabled)
@@ -259,7 +260,7 @@ func testRPCMethodsAuthorizeSession(t *testing.T) {
//authorize again session (should take the response from cache)
var rply sessions.V1AuthorizeReply
- if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(rply, rplyFirst) {
t.Errorf("Expecting: %+v, \n received: %+v",
@@ -270,7 +271,7 @@ func testRPCMethodsAuthorizeSession(t *testing.T) {
time.Sleep(time.Second)
//authorize again session (this time we expect to receive an error)
- if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rply); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
t.Error("Unexpected error returned", err)
}
@@ -284,7 +285,7 @@ func testRPCMethodsAuthorizeSession(t *testing.T) {
},
}
//process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
@@ -313,7 +314,7 @@ func testRPCMethodsInitSession(t *testing.T) {
},
}
var rplyFirst sessions.V1InitSessionReply
- if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rplyFirst); err != nil {
t.Error(err)
}
@@ -332,7 +333,7 @@ func testRPCMethodsInitSession(t *testing.T) {
},
}
//process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
@@ -344,14 +345,14 @@ func testRPCMethodsInitSession(t *testing.T) {
Tenant: "cgrates.org",
Account: "1001",
}
- if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.Disabled != true {
t.Errorf("Expecting: true, received: %v", acnt.Disabled)
}
var rply sessions.V1InitSessionReply
- if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, rplyFirst) {
@@ -362,7 +363,7 @@ func testRPCMethodsInitSession(t *testing.T) {
//give time to CGRateS to delete the response from cache
time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err == nil || !(err.Error() == "RALS_ERROR:ACCOUNT_DISABLED" ||
err.Error() == utils.ErrExists.Error()) { // ErrExist -> initSession twice
t.Error("Unexpected error returned", err)
@@ -378,7 +379,7 @@ func testRPCMethodsInitSession(t *testing.T) {
},
}
//process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
@@ -407,7 +408,7 @@ func testRPCMethodsUpdateSession(t *testing.T) {
},
}
var rplyFirst sessions.V1UpdateSessionReply
- if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1UpdateSession,
args, &rplyFirst); err != nil {
t.Error(err)
}
@@ -426,7 +427,7 @@ func testRPCMethodsUpdateSession(t *testing.T) {
},
}
//process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
@@ -438,14 +439,14 @@ func testRPCMethodsUpdateSession(t *testing.T) {
Tenant: "cgrates.org",
Account: "1001",
}
- if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.Disabled != true {
t.Errorf("Expecting: true, received: %v", acnt.Disabled)
}
var rply sessions.V1UpdateSessionReply
- if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1UpdateSession,
args, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, rplyFirst) {
@@ -456,7 +457,7 @@ func testRPCMethodsUpdateSession(t *testing.T) {
//give time to CGRateS to delete the response from cache
time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1UpdateSession,
args, &rply); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
t.Error("Unexpected error returned", err)
}
@@ -471,7 +472,7 @@ func testRPCMethodsUpdateSession(t *testing.T) {
},
}
//process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
@@ -499,7 +500,7 @@ func testRPCMethodsTerminateSession(t *testing.T) {
},
}
var rply string
- if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
} else if rply != utils.OK {
@@ -509,7 +510,7 @@ func testRPCMethodsTerminateSession(t *testing.T) {
//replace event with empty
args.CGREvent.Event = map[string]any{}
- if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
} else if rply != utils.OK {
@@ -519,7 +520,7 @@ func testRPCMethodsTerminateSession(t *testing.T) {
//give time to CGRateS to delete the response from cache
time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err == nil || err.Error() != "MANDATORY_IE_MISSING: [OriginID]" {
t.Error(err)
}
@@ -544,7 +545,7 @@ func testRPCMethodsProcessCDR(t *testing.T) {
},
}
var rply string
- if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1ProcessCDR,
args, &rply); err != nil {
t.Error(err)
} else if rply != utils.OK {
@@ -554,7 +555,7 @@ func testRPCMethodsProcessCDR(t *testing.T) {
//verify the CDR
var cdrs []*engine.CDR
argsCDR := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -562,7 +563,7 @@ func testRPCMethodsProcessCDR(t *testing.T) {
//change originID so CGRID be different
args.Event[utils.OriginID] = "testRPCMethodsProcessCDR2"
// we should get response from cache
- if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1ProcessCDR,
args, &rply); err != nil {
t.Error(err)
} else if rply != utils.OK {
@@ -570,7 +571,7 @@ func testRPCMethodsProcessCDR(t *testing.T) {
}
time.Sleep(100 * time.Millisecond)
//verify the CDR
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -581,7 +582,7 @@ func testRPCMethodsProcessCDR(t *testing.T) {
//change originID so CGRID be different
args.Event[utils.OriginID] = "testRPCMethodsProcessCDR3"
- if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1ProcessCDR,
args, &rply); err != nil {
t.Error(err)
} else if rply != utils.OK {
@@ -589,7 +590,7 @@ func testRPCMethodsProcessCDR(t *testing.T) {
}
time.Sleep(100 * time.Millisecond)
//verify the CDR
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -618,7 +619,7 @@ func testRPCMethodsProcessEvent(t *testing.T) {
},
}
var rplyFirst sessions.V1ProcessMessageReply
- if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rplyFirst); err != nil {
t.Error(err)
} else if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != initUsage {
@@ -636,7 +637,7 @@ func testRPCMethodsProcessEvent(t *testing.T) {
},
}
//process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
@@ -648,7 +649,7 @@ func testRPCMethodsProcessEvent(t *testing.T) {
Tenant: "cgrates.org",
Account: "1001",
}
- if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
t.Error(err)
} else if acnt.Disabled != true {
t.Errorf("Expecting: true, received: %v", acnt.Disabled)
@@ -656,7 +657,7 @@ func testRPCMethodsProcessEvent(t *testing.T) {
//get response from cache
var rply sessions.V1ProcessMessageReply
- if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rply, rplyFirst) {
@@ -667,7 +668,7 @@ func testRPCMethodsProcessEvent(t *testing.T) {
//give time to CGRateS to delete the response from cache
time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
+ if err := rpcRpc.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rplyFirst); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
t.Error("Unexpected error returned", err)
}
@@ -682,7 +683,7 @@ func testRPCMethodsProcessEvent(t *testing.T) {
},
}
//process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
@@ -711,7 +712,7 @@ func testRPCMethodsCdrsProcessCDR(t *testing.T) {
}
var reply string
- if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -720,7 +721,7 @@ func testRPCMethodsCdrsProcessCDR(t *testing.T) {
//verify the CDR
var cdrs []*engine.CDR
argsCDR := utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -728,14 +729,14 @@ func testRPCMethodsCdrsProcessCDR(t *testing.T) {
//change originID so CGRID be different
args.Event[utils.OriginID] = "testRPCMethodsProcessCDR2"
// we should get response from cache
- if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(100 * time.Millisecond)
//verify the CDR
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -745,14 +746,14 @@ func testRPCMethodsCdrsProcessCDR(t *testing.T) {
time.Sleep(time.Second)
//change originID so CGRID be different
args.Event[utils.OriginID] = "testRPCMethodsProcessCDR4"
- if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
//verify the CDR
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -783,7 +784,7 @@ func testRPCMethodsCdrsStoreSessionCost(t *testing.T) {
}
var reply string
- if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -793,7 +794,7 @@ func testRPCMethodsCdrsStoreSessionCost(t *testing.T) {
//change originID so CGRID be different
args.Cost.CGRID = "testRPCMethodsCdrsStoreSessionCost"
// we should get response from cache
- if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -803,7 +804,7 @@ func testRPCMethodsCdrsStoreSessionCost(t *testing.T) {
time.Sleep(time.Second)
//change originID so CGRID be different
args.Cost.CGRID = "testRPCMethodsCdrsStoreSessionCost"
- if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args,
+ if err := rpcRpc.Call(context.Background(), utils.CDRsV2StoreSessionCost, args,
&reply); err == nil || err.Error() != "SERVER_ERROR: EXISTS" {
t.Error("Unexpected error: ", err.Error())
}
@@ -812,7 +813,7 @@ func testRPCMethodsCdrsStoreSessionCost(t *testing.T) {
// Load the tariff plan, creating accounts and their balances
func testRPCMethodsLoadData(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")}
- if err := rpcRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -834,7 +835,7 @@ func testRPCMethodsResponderDebit(t *testing.T) {
}
var cc engine.CallCost
//cache the response
- if err := rpcRpc.Call(utils.ResponderDebit, cd, &cc); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ResponderDebit, cd, &cc); err != nil {
t.Error(err)
} else if cc.GetDuration() != 15*time.Second {
t.Errorf("Expecting: %+v, \n received: %+v",
@@ -850,7 +851,7 @@ func testRPCMethodsResponderDebit(t *testing.T) {
}
var ccCache engine.CallCost
//cache the response
- if err := rpcRpc.Call(utils.ResponderDebit, cd2, &ccCache); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ResponderDebit, cd2, &ccCache); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ccCache, cc) {
t.Errorf("Expecting: %+v, \n received: %+v",
@@ -858,7 +859,7 @@ func testRPCMethodsResponderDebit(t *testing.T) {
}
//give time to CGRateS to delete the response from cache
time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.ResponderDebit, cd2, &cc); err == nil || err.Error() != "ACCOUNT_NOT_FOUND" {
+ if err := rpcRpc.Call(context.Background(), utils.ResponderDebit, cd2, &cc); err == nil || err.Error() != "ACCOUNT_NOT_FOUND" {
t.Error("Unexpected error returned", err)
}
}
@@ -880,7 +881,7 @@ func testRPCMethodsResponderMaxDebit(t *testing.T) {
}
var cc engine.CallCost
//cache the response
- if err := rpcRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ResponderMaxDebit, cd, &cc); err != nil {
t.Error(err)
} else if cc.GetDuration() != 15*time.Second {
t.Errorf("Expecting: %+v, \n received: %+v",
@@ -896,7 +897,7 @@ func testRPCMethodsResponderMaxDebit(t *testing.T) {
}
var ccCache engine.CallCost
//cache the response
- if err := rpcRpc.Call(utils.ResponderMaxDebit, cd2, &ccCache); err != nil {
+ if err := rpcRpc.Call(context.Background(), utils.ResponderMaxDebit, cd2, &ccCache); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(ccCache, cc) {
t.Errorf("Expecting: %+v, \n received: %+v",
@@ -904,7 +905,7 @@ func testRPCMethodsResponderMaxDebit(t *testing.T) {
}
//give time to CGRateS to delete the response from cache
time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.ResponderMaxDebit, cd2, &cc); err == nil || err.Error() != "ACCOUNT_NOT_FOUND" {
+ if err := rpcRpc.Call(context.Background(), utils.ResponderMaxDebit, cd2, &cc); err == nil || err.Error() != "ACCOUNT_NOT_FOUND" {
t.Error("Unexpected error returned", err)
}
}
diff --git a/general_tests/rpcclient_it_test.go b/general_tests/rpcclient_it_test.go
index 504c8d97c..f620f405c 100644
--- a/general_tests/rpcclient_it_test.go
+++ b/general_tests/rpcclient_it_test.go
@@ -29,6 +29,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -119,14 +120,14 @@ func testRPCITLclStartSecondEngine(t *testing.T) {
// Connect rpc client to rater
func testRPCITLclRpcConnPoolFirst(t *testing.T) {
rpcPoolFirst = rpcclient.NewRPCPool(rpcclient.PoolFirst, 0)
- rpcRAL1, err = rpcclient.NewRPCClient(utils.TCP, rpcITCfg1.ListenCfg().RPCJSONListen, false, "", "", "", 3, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+ rpcRAL1, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, rpcITCfg1.ListenCfg().RPCJSONListen, false, "", "", "", 3, 1,
+ 0, utils.FibDuration, time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
if err == nil {
t.Fatal("Should receive cannot connect error here")
}
rpcPoolFirst.AddClient(rpcRAL1)
- rpcRAL2, err = rpcclient.NewRPCClient(utils.TCP, rpcITCfg2.ListenCfg().RPCJSONListen, false, "", "", "", 3, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+ rpcRAL2, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, rpcITCfg2.ListenCfg().RPCJSONListen, false, "", "", "", 3, 1,
+ 0, utils.FibDuration, time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
if err != nil {
t.Fatal(err)
}
@@ -136,12 +137,12 @@ func testRPCITLclRpcConnPoolFirst(t *testing.T) {
// Connect rpc client to rater
func testRPCITLclStatusSecondEngine(t *testing.T) {
var status map[string]any
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
t.Error(err)
} else if status[utils.NodeID].(string) != node2 {
t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
@@ -158,14 +159,14 @@ func testRPCITLclStartFirstEngine(t *testing.T) {
// Connect rpc client to rater
func testRPCITLclStatusFirstInitial(t *testing.T) {
var status map[string]any
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
} else if status[utils.NodeID].(string) == node2 {
t.Fatalf("Should receive ralID different than second one, got: %s", status[utils.NodeID].(string))
}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
t.Error(err)
} else if status[utils.NodeID].(string) != node1 {
t.Errorf("Expecting:\n%s\nReceived:\n%s", node1, status[utils.NodeID].(string))
@@ -179,14 +180,14 @@ func testRPCITLclStatusFirstFailover(t *testing.T) {
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond)
var status map[string]any
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
} else if status[utils.NodeID].(string) == node1 {
t.Fatalf("Should receive ralID different than first one, got: %s", status[utils.NodeID].(string))
}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
t.Error(err)
} else if status[utils.NodeID].(string) != node2 {
t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
@@ -198,12 +199,12 @@ func testRPCITLclStatusFirstFailback(t *testing.T) {
t.Fatal(err)
}
var status map[string]any
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == node2 {
t.Error("Should receive new ID")
}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
t.Error(err)
} else if status[utils.NodeID].(string) != node1 {
t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
@@ -213,14 +214,14 @@ func testRPCITLclStatusFirstFailback(t *testing.T) {
// Make sure it executes on the first node supporting the command
func testRPCITLclTDirectedRPC(t *testing.T) {
var sessions []*sessions.ExternalSession
- if err := rpcPoolFirst.Call(utils.SessionSv1GetActiveSessions, utils.SessionFilter{}, &sessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := rpcPoolFirst.Call(context.Background(), utils.SessionSv1GetActiveSessions, utils.SessionFilter{}, &sessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
// func testRPCITLclTimeout(t *testing.T) {
// var status map[string]any
-// if err := rpcPoolFirst.Call(utils.CoreSv1Status, "10s", &status); err == nil {
+// if err := rpcPoolFirst.Call(context.Background(),utils.CoreSv1Status, "10s", &status); err == nil {
// t.Error("Expecting timeout")
// } else if err.Error() != rpcclient.ErrReplyTimeout.Error() {
// t.Error(err)
@@ -236,12 +237,12 @@ func testRPCITLclRpcConnPoolBcast(t *testing.T) {
func testRPCITLclBcastStatusInitial(t *testing.T) {
var status map[string]any
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
@@ -254,12 +255,12 @@ func testRPCITLclBcastStatusNoRals1(t *testing.T) {
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond)
var status map[string]any
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
@@ -272,7 +273,7 @@ func testRPCITLclBcastStatusBcastNoRals(t *testing.T) {
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond)
var status map[string]any
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err == nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err == nil {
t.Error("Should get error")
}
}
@@ -282,12 +283,12 @@ func testRPCITLclBcastStatusRALs2Up(t *testing.T) {
t.Fatal(err)
}
var status map[string]any
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
@@ -299,12 +300,12 @@ func testRPCITLclStatusBcastRALs1Up(t *testing.T) {
t.Fatal(err)
}
var status map[string]any
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty InstanceID received")
}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty InstanceID received")
@@ -314,30 +315,30 @@ func testRPCITLclStatusBcastRALs1Up(t *testing.T) {
/*
func TestRPCITStatusBcastCmd(t *testing.T) {
var stats utils.CacheStats
- if err := rpcRAL1.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
+ if err := rpcRAL1.Call(context.Background(),utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
t.Error(err)
} else if stats.LastRatingLoadID != utils.NotAvailable || stats.LastAccountingLoadID != utils.NotAvailable {
t.Errorf("Received unexpected stats: %+v", stats)
}
var loadInst utils.LoadInstance
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(**dataDir, "tariffplans", "oldtutorial")}
- if err := rpcRAL1.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := rpcRAL1.Call(context.Background(),utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
} else if loadInst.RatingLoadID == "" || loadInst.AccountingLoadID == "" {
t.Errorf("Empty loadId received, loadInstance: %+v", loadInst)
}
var reply string
- if err := rpcPoolBroadcast.Call(utils.APIerSv1ReloadCache, utils.AttrReloadCache{}, &reply); err != nil {
+ if err := rpcPoolBroadcast.Call(context.Background(),utils.APIerSv1ReloadCache, utils.AttrReloadCache{}, &reply); err != nil {
t.Error("Got error on APIerSv1.ReloadCache: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.ReloadCache got reply: ", reply)
}
- if err := rpcRAL1.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
+ if err := rpcRAL1.Call(context.Background(),utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
t.Error(err)
} else if stats.LastRatingLoadID != loadInst.RatingLoadID {
t.Errorf("Received unexpected stats: %+v vs %+v", stats, loadInst)
}
- if err := rpcRAL2.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
+ if err := rpcRAL2.Call(context.Background(),utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
t.Error(err)
} else if stats.LastRatingLoadID != loadInst.RatingLoadID {
t.Errorf("Received unexpected stats: %+v vs %+v", stats, loadInst)
@@ -353,14 +354,14 @@ func TestRPCITRmtRpcConnPool(t *testing.T) {
return
}
rpcPoolFirst = rpcclient.NewRPCPool(rpcclient.PoolFirst, 0)
- rpcRALRmt, err := rpcclient.NewRPCClient(utils.TCP, RemoteRALsAddr1, false, "", "", "", 1, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+ rpcRALRmt, err := rpcclient.NewRPCClient(context.Background(), utils.TCP, RemoteRALsAddr1, false, "", "", "", 1, 1,
+ 0, utils.FibDuration, time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
if err != nil {
t.Fatal(err)
}
rpcPoolFirst.AddClient(rpcRALRmt)
- rpcRAL1, err = rpcclient.NewRPCClient(utils.TCP, RemoteRALsAddr2, false, "", "", "", 1, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+ rpcRAL1, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, RemoteRALsAddr2, false, "", "", "", 1, 1,
+ 0, utils.FibDuration, time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
if err != nil {
t.Fatal(err)
}
@@ -372,12 +373,12 @@ func TestRPCITRmtStatusFirstInitial(t *testing.T) {
return
}
var status map[string]any
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
t.Error(err)
} else if status[utils.NodeID].(string) != node1 {
t.Errorf("Expecting:\n%s\nReceived:\n%s", node1, status[utils.NodeID].(string))
@@ -396,14 +397,14 @@ func TestRPCITRmtStatusFirstFailover(t *testing.T) {
}
fmt.Println("\n\nExecuting query ...")
var status map[string]any
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
} else if status[utils.NodeID].(string) == node1 {
t.Fatal("Did not failover")
}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
@@ -424,14 +425,14 @@ func TestRPCITRmtStatusFirstFailback(t *testing.T) {
}
fmt.Println("\n\nExecuting query ...")
var status map[string]any
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
} else if status[utils.NodeID].(string) == node2 {
t.Fatal("Did not do failback")
}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+ if err := rpcPoolFirst.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
t.Error(err)
} else if status[utils.NodeID].(string) == "" {
t.Error("Empty NodeID received")
diff --git a/general_tests/sentinel_it_test.go b/general_tests/sentinel_it_test.go
index ba3756e38..fda87c25a 100644
--- a/general_tests/sentinel_it_test.go
+++ b/general_tests/sentinel_it_test.go
@@ -23,7 +23,6 @@ package general_tests
import (
"flag"
- "net/rpc"
"os"
"os/exec"
"path"
@@ -31,6 +30,8 @@ import (
"strconv"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -43,7 +44,7 @@ var (
sentinel2ConfigPath = path.Join(*dataDir, "redisSentinel", "sentinel2.conf")
engineConfigPath = path.Join(*dataDir, "conf", "samples", "redisSentinel")
sentinelConfig *config.CGRConfig
- sentinelRPC *rpc.Client
+ sentinelRPC *birpc.Client
node1Exec *exec.Cmd
node2Exec *exec.Cmd
stlExec1 *exec.Cmd
@@ -154,13 +155,13 @@ func testRedisSentinelSetGetAttribute(t *testing.T) {
}
alsPrf.Compile()
var result string
- if err := sentinelRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := sentinelRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply *engine.AttributeProfile
- if err := sentinelRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := sentinelRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
t.Fatal(err)
}
@@ -190,7 +191,7 @@ func testRedisSentinelInsertion(t *testing.T) {
var result string
addFunc := func(t *testing.T, nrFail *int) {
alsPrf.ID = orgiginID + strconv.Itoa(index)
- if err := sentinelRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+ if err := sentinelRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
if err.Error() == "SERVER_ERROR: EOF" {
*nrFail = *nrFail + 1
} else {
@@ -280,7 +281,7 @@ func testRedisSentinelGetAttrAfterFailover(t *testing.T) {
}
alsPrf.Compile()
var reply *engine.AttributeProfile
- if err := sentinelRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := sentinelRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
t.Fatal(err)
}
diff --git a/general_tests/session2_it_test.go b/general_tests/session2_it_test.go
index 918ec0310..da52de941 100644
--- a/general_tests/session2_it_test.go
+++ b/general_tests/session2_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -37,7 +38,7 @@ var (
ses2CfgDir string
ses2CfgPath string
ses2Cfg *config.CGRConfig
- ses2RPC *rpc.Client
+ ses2RPC *birpc.Client
ses2Tests = []func(t *testing.T){
testSes2ItLoadConfig,
@@ -110,7 +111,7 @@ func testSes2ItRPCConn(t *testing.T) {
func testSes2ItLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := ses2RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := ses2RPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -128,7 +129,7 @@ func testSes2ItInitSession(t *testing.T) {
},
}
var reply string
- if err := ses2RPC.Call(utils.APIerSv2SetBalance,
+ if err := ses2RPC.Call(context.Background(), utils.APIerSv2SetBalance,
attrSetBalance, &reply); err != nil {
t.Fatal(err)
}
@@ -154,7 +155,7 @@ func testSes2ItInitSession(t *testing.T) {
},
}
var initRpl *sessions.V1InitSessionReply
- if err := ses2RPC.Call(utils.SessionSv1InitiateSession,
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Fatal(err)
}
@@ -163,14 +164,14 @@ func testSes2ItInitSession(t *testing.T) {
func testSes2ItAsActiveSessions(t *testing.T) {
var count int
- if err := ses2RPC.Call(utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
Filters: []string{"*string:~*req.Account:1001"},
}, &count); err != nil {
t.Fatal(err)
} else if count != 2 { // 2 chargers
t.Errorf("Expected 2 session received %v session(s)", count)
}
- if err := ses2RPC.Call(utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
Filters: []string{"*string:~*req.Account:1002"},
}, &count); err != nil {
t.Fatal(err)
@@ -207,20 +208,20 @@ func testSes2StirAuthenticate(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil { // no error verificated with success
t.Error(err)
}
// altered originator
args.APIOpts[utils.OptsStirOriginatorTn] = "1005"
- if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err == nil || err.Error() != "*stir_authenticate: wrong originatorTn" {
t.Errorf("Expected error :%q ,receved: %v", "*stir_authenticate: wrong originatorTn", err)
}
// altered identity
args.APIOpts[utils.OptsStirIdentity] = "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiL3Vzci9zaGFyZS9jZ3JhdGVzL3N0aXIvc3Rpcl9wdWJrZXkucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMzg4MDIsIm9yaWciOnsidG4iOiIxMDA1In0sIm9yaWdpZCI6IjEyMzQ1NiJ9.cMEMlFnfyTu8uxfeU4RoZTamA7ifFT9Ibwrvi1_LKwL2xAU6fZ_CSIxKbtyOpNhM_sV03x7CfA_v0T4sHkifzg;info=;ppt=shaken"
- if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err == nil || err.Error() != "*stir_authenticate: crypto/ecdsa: verification error" {
t.Errorf("Expected error :%q ,receved: %v", "*stir_authenticate: crypto/ecdsa: verification error", err)
}
@@ -249,7 +250,7 @@ func testSes2StirInit(t *testing.T) {
},
}
var rply sessions.V1ProcessEventReply
- if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil { // no error verificated with success
t.Error(err)
}
@@ -260,7 +261,7 @@ func testSes2StirInit(t *testing.T) {
func testSes2STIRAuthenticate(t *testing.T) {
var rply string
- if err := ses2RPC.Call(utils.SessionSv1STIRAuthenticate,
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1STIRAuthenticate,
&sessions.V1STIRAuthenticateArgs{
Attest: []string{"A"},
PayloadMaxDuration: "-1",
@@ -288,7 +289,7 @@ func testSes2STIRIdentity(t *testing.T) {
OverwriteIAT: true,
}
var rply string
- if err := ses2RPC.Call(utils.SessionSv1STIRIdentity,
+ if err := ses2RPC.Call(context.Background(), utils.SessionSv1STIRIdentity,
args, &rply); err != nil {
t.Error(err)
}
diff --git a/general_tests/session3_it_test.go b/general_tests/session3_it_test.go
index 8329e41e1..2ddacfe3d 100644
--- a/general_tests/session3_it_test.go
+++ b/general_tests/session3_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -38,7 +39,7 @@ var (
ses3CfgDir string
ses3CfgPath string
ses3Cfg *config.CGRConfig
- ses3RPC *rpc.Client
+ ses3RPC *birpc.Client
ses3Tests = []func(t *testing.T){
testSes3ItLoadConfig,
@@ -117,7 +118,7 @@ func testSes3ItRPCConn(t *testing.T) {
func testSes3ItLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := ses3RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := ses3RPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -153,7 +154,7 @@ func testSes3ItProcessEvent(t *testing.T) {
},
}
var rply sessions.V1ProcessMessageReply
- if err := ses3RPC.Call(utils.SessionSv1ProcessMessage,
+ if err := ses3RPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -208,7 +209,7 @@ func testSes3ItProcessEvent(t *testing.T) {
func testSes3ItThreshold1002After(t *testing.T) {
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001", Hits: 1}
- if err := ses3RPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := ses3RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd.Tenant, td.Tenant) {
@@ -228,7 +229,7 @@ func testSes3ItStatMetricsAfter(t *testing.T) {
utils.MetaTCD: "5m0s",
}
- if err := ses3RPC.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := ses3RPC.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
t.Error(err)
}
@@ -240,7 +241,7 @@ func testSes3ItStatMetricsAfter(t *testing.T) {
func testSes3ItThreshold1002After2(t *testing.T) {
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001", Hits: 2}
- if err := ses3RPC.Call(utils.ThresholdSv1GetThreshold,
+ if err := ses3RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd.Tenant, td.Tenant) {
@@ -260,7 +261,7 @@ func testSes3ItStatMetricsAfter2(t *testing.T) {
utils.MetaTCD: "10m0s",
}
- if err := ses3RPC.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := ses3RPC.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
t.Error(err)
}
@@ -281,7 +282,7 @@ func testSes3ItAddVoiceBalance(t *testing.T) {
},
}
var reply string
- if err := ses3RPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := ses3RPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -291,7 +292,7 @@ func testSes3ItAddVoiceBalance(t *testing.T) {
Tenant: "cgrates.org",
Account: "1002",
}
- if err := ses3RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := ses3RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(5*time.Second) {
t.Errorf("Expecting: %v, received: %v",
@@ -323,7 +324,7 @@ func testSes3ItTerminatWithoutInit(t *testing.T) {
},
}
var rply string
- if err := ses3RPC.Call(utils.SessionSv1TerminateSession,
+ if err := ses3RPC.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -354,7 +355,7 @@ func testSes3ItTerminatWithoutInit(t *testing.T) {
},
}
var rply1 sessions.V1InitSessionReply
- if err := ses3RPC.Call(utils.SessionSv1InitiateSession,
+ if err := ses3RPC.Call(context.Background(), utils.SessionSv1InitiateSession,
args1, &rply1); err != nil {
t.Error(err)
return
@@ -363,7 +364,7 @@ func testSes3ItTerminatWithoutInit(t *testing.T) {
}
time.Sleep(5 * time.Millisecond)
aSessions := make([]*sessions.ExternalSession, 0)
- if err := ses3RPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := ses3RPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -375,7 +376,7 @@ func testSes3ItBalance(t *testing.T) {
Tenant: "cgrates.org",
Account: "1002",
}
- if err := ses3RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := ses3RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(3*time.Second) {
t.Errorf("Expecting: %v, received: %v",
@@ -385,7 +386,7 @@ func testSes3ItBalance(t *testing.T) {
func testSes3ItCDRs(t *testing.T) {
var reply string
- if err := ses3RPC.Call(utils.SessionSv1ProcessCDR, &utils.CGREvent{
+ if err := ses3RPC.Call(context.Background(), utils.SessionSv1ProcessCDR, &utils.CGREvent{
Tenant: "cgrates.org",
ID: "TestSesItProccesCDR",
Event: map[string]any{
@@ -410,7 +411,7 @@ func testSes3ItCDRs(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"},
Accounts: []string{"1002"}}
- if err := ses3RPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := ses3RPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
diff --git a/general_tests/session4_it_test.go b/general_tests/session4_it_test.go
index 98f3539b2..f66e3dfde 100644
--- a/general_tests/session4_it_test.go
+++ b/general_tests/session4_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ var (
ses4CfgDir string
ses4CfgPath string
ses4Cfg *config.CGRConfig
- ses4RPC *rpc.Client
+ ses4RPC *birpc.Client
ses4Tests = []func(t *testing.T){
testSes4ItLoadConfig,
@@ -107,7 +108,7 @@ func testSes4ItRPCConn(t *testing.T) {
func testSes4ItLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := ses4RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := ses4RPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -116,7 +117,7 @@ func testSes4ItLoadFromFolder(t *testing.T) {
func testSes4SetAccount(t *testing.T) {
var reply string
attrs := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan7"}
- if err := ses4RPC.Call(utils.APIerSv1SetAccount, attrs, &reply); err != nil {
+ if err := ses4RPC.Call(context.Background(), utils.APIerSv1SetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
@@ -149,7 +150,7 @@ func testSes4CDRsProcessCDR(t *testing.T) {
// Process and store the given CDR.
var reply string
- if err := ses4RPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := ses4RPC.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -157,7 +158,7 @@ func testSes4CDRsProcessCDR(t *testing.T) {
// Process the CDR again, after adding the *rerate flag.
args.Flags = append(args.Flags, utils.MetaRerate)
- if err := ses4RPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+ if err := ses4RPC.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
diff --git a/general_tests/session_graceful_shutdown_it_test.go b/general_tests/session_graceful_shutdown_it_test.go
index 5339042d7..b9d3af41d 100644
--- a/general_tests/session_graceful_shutdown_it_test.go
+++ b/general_tests/session_graceful_shutdown_it_test.go
@@ -21,7 +21,6 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"os/exec"
"path"
"reflect"
@@ -29,6 +28,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/sessions"
@@ -43,7 +44,7 @@ var (
smgRplcCfgPath1, smgRplcCfgPath2 string
smgRplcCfgDIR1, smgRplcCfgDIR2 string
smgRplCfg1, smgRplCfg2 *config.CGRConfig
- smgRplcRPC1, smgRplcRPC2 *rpc.Client
+ smgRplcRPC1, smgRplcRPC2 *birpc.Client
testEngine1, testEngine2 *exec.Cmd
sTestsSession1 = []func(t *testing.T){
testSessionSRplcInitCfg,
@@ -129,11 +130,11 @@ func testSessionSRplcApierRpcConn(t *testing.T) {
func testSessionSRplcApierGetActiveSessionsNotFound(t *testing.T) {
aSessions1 := make([]*sessions.ExternalSession, 0)
expected := "NOT_FOUND"
- if err := smgRplcRPC1.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions1); err == nil || err.Error() != expected {
+ if err := smgRplcRPC1.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions1); err == nil || err.Error() != expected {
t.Error(err)
}
aSessions2 := make([]*sessions.ExternalSession, 0)
- if err := smgRplcRPC2.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions2); err == nil || err.Error() != expected {
+ if err := smgRplcRPC2.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions2); err == nil || err.Error() != expected {
t.Error(err)
}
}
@@ -149,7 +150,7 @@ func testSessionSRplcApierSetChargerS(t *testing.T) {
},
}
var result1 string
- if err := smgRplcRPC1.Call(utils.APIerSv1SetChargerProfile, chargerProfile1, &result1); err != nil {
+ if err := smgRplcRPC1.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile1, &result1); err != nil {
t.Error(err)
} else if result1 != utils.OK {
t.Error("Unexpected reply returned", result1)
@@ -165,7 +166,7 @@ func testSessionSRplcApierSetChargerS(t *testing.T) {
},
}
var result2 string
- if err := smgRplcRPC2.Call(utils.APIerSv1SetChargerProfile, chargerProfile2, &result2); err != nil {
+ if err := smgRplcRPC2.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile2, &result2); err != nil {
t.Error(err)
} else if result2 != utils.OK {
t.Error("Unexpected reply returned", result2)
@@ -187,7 +188,7 @@ func testSessionSRplcApierGetInitateSessions(t *testing.T) {
},
}
var rply sessions.V1InitSessionReply
- if err := smgRplcRPC2.Call(utils.SessionSv1InitiateSession,
+ if err := smgRplcRPC2.Call(context.Background(), utils.SessionSv1InitiateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -223,7 +224,7 @@ func testSessionSRplcApierGetActiveSessions(t *testing.T) {
},
}
aSessions2 := make([]*sessions.ExternalSession, 0)
- if err := smgRplcRPC2.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
+ if err := smgRplcRPC2.Call(context.Background(), utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
t.Error(err)
}
if !reflect.DeepEqual(&aSessions2, &expected) {
@@ -262,7 +263,7 @@ func testSessionSRplcApierGetPassiveSessions(t *testing.T) {
},
}
aSessions2 := make([]*sessions.ExternalSession, 0)
- if err := smgRplcRPC1.Call(utils.SessionSv1GetPassiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
+ if err := smgRplcRPC1.Call(context.Background(), utils.SessionSv1GetPassiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
t.Error(err)
}
if !reflect.DeepEqual(&aSessions2, &expected) {
@@ -312,7 +313,7 @@ func testSessionSRplcApierGetPassiveSessionsAfterStop(t *testing.T) {
},
}
aSessions2 := make([]*sessions.ExternalSession, 0)
- if err := smgRplcRPC1.Call(utils.SessionSv1GetPassiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
+ if err := smgRplcRPC1.Call(context.Background(), utils.SessionSv1GetPassiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
t.Error(err)
}
if !reflect.DeepEqual(&aSessions2, &expected) {
diff --git a/general_tests/session_it_test.go b/general_tests/session_it_test.go
index c3aadbe90..936e486a2 100644
--- a/general_tests/session_it_test.go
+++ b/general_tests/session_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -36,7 +37,7 @@ var (
sesCfgPath string
sesCfgDIR string
sesCfg *config.CGRConfig
- sesRPC *rpc.Client
+ sesRPC *birpc.Client
sesAccount = "refundAcc"
sesTenant = "cgrates.org"
@@ -109,7 +110,7 @@ func testSesItRPCConn(t *testing.T) {
func testSesItLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := sesRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -121,7 +122,7 @@ func testAccountBalance2(t *testing.T, sracc, srten, balType string, expected fl
Tenant: srten,
Account: sracc,
}
- if err := sesRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[balType].GetTotalValue(); rply != expected {
t.Errorf("Expecting: %v, received: %v",
@@ -141,7 +142,7 @@ func testSesItAddVoiceBalance(t *testing.T) {
},
}
var reply string
- if err := sesRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sesRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -171,7 +172,7 @@ func testSesItInitSession(t *testing.T) {
},
}
var rply1 sessions.V1InitSessionReply
- if err := sesRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sesRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
args1, &rply1); err != nil {
t.Error(err)
return
@@ -203,7 +204,7 @@ func testSesItTerminateSession(t *testing.T) {
},
}
var rply string
- if err := sesRPC.Call(utils.SessionSv1TerminateSession,
+ if err := sesRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -211,7 +212,7 @@ func testSesItTerminateSession(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sesRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := sesRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/general_tests/session_money_rating_subject_it_test.go b/general_tests/session_money_rating_subject_it_test.go
index 90268c1a2..79195a8d1 100644
--- a/general_tests/session_money_rating_subject_it_test.go
+++ b/general_tests/session_money_rating_subject_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -36,7 +37,7 @@ var (
sesMRSCfgPath string
sesMRSCfgDIR string
sesMRSCfg *config.CGRConfig
- sesMRSRPC *rpc.Client
+ sesMRSRPC *birpc.Client
sesMRSAccount = "refundAcc"
sesMRSTenant = "cgrates.org"
@@ -134,7 +135,7 @@ func testSesMRSItLoadFromFolder(t *testing.T) {
Weight: 20,
}
var result string
- if err := sesMRSRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := sesMRSRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -153,7 +154,7 @@ func testSesMRSItAddVoiceBalance(t *testing.T) {
},
}
var reply string
- if err := sesMRSRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sesMRSRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -170,14 +171,14 @@ func testSesMRSItAddVoiceBalance(t *testing.T) {
utils.Weight: 10,
},
}
- if err := sesMRSRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sesMRSRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
var acnt engine.Account
- if err := sesMRSRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesMRSRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: sesMRSTenant,
Account: sesMRSAccount,
@@ -197,7 +198,7 @@ func testSesMRSItAddVoiceBalance(t *testing.T) {
func testSesMRSItInitSession(t *testing.T) {
sesMRSCgrEv.Event[utils.Usage] = time.Second
var rply sessions.V1InitSessionReply
- if err := sesMRSRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sesMRSRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
&sessions.V1InitSessionArgs{
InitSession: true,
CGREvent: sesMRSCgrEv,
@@ -213,7 +214,7 @@ func testSesMRSItInitSession(t *testing.T) {
func testSesMRSItTerminateSession(t *testing.T) {
sesMRSCgrEv.Event[utils.Usage] = 10 * time.Second
var rply string
- if err := sesMRSRPC.Call(utils.SessionSv1TerminateSession,
+ if err := sesMRSRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
&sessions.V1TerminateSessionArgs{
TerminateSession: true,
CGREvent: sesMRSCgrEv,
@@ -224,13 +225,13 @@ func testSesMRSItTerminateSession(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sesMRSRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := sesMRSRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var acnt engine.Account
- if err := sesMRSRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesMRSRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: sesMRSTenant,
Account: sesMRSAccount,
diff --git a/general_tests/session_nonereq_it_test.go b/general_tests/session_nonereq_it_test.go
index e0a6b6dda..8be52e971 100644
--- a/general_tests/session_nonereq_it_test.go
+++ b/general_tests/session_nonereq_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -38,7 +39,7 @@ var (
sesNoneReqTypeCfgDir string
sesNoneReqTypeCfgPath string
sesNoneReqTypeCfg *config.CGRConfig
- sesNoneReqTypeRPC *rpc.Client
+ sesNoneReqTypeRPC *birpc.Client
sesNoneReqTypeTests = []func(t *testing.T){
testSesNoneReqTypeItLoadConfig,
@@ -117,7 +118,7 @@ func testSesNoneReqTypeItAddChargerS(t *testing.T) {
},
}
var result string
- if err := sesNoneReqTypeRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := sesNoneReqTypeRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -148,7 +149,7 @@ func testSesNoneReqTypeItInit(t *testing.T) {
},
}
var rply1 sessions.V1InitSessionReply
- if err := sesNoneReqTypeRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sesNoneReqTypeRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
args1, &rply1); err != nil {
t.Error(err)
return
diff --git a/general_tests/session_refund_expired_it_test.go b/general_tests/session_refund_expired_it_test.go
index 5912e27ed..2adfb7417 100644
--- a/general_tests/session_refund_expired_it_test.go
+++ b/general_tests/session_refund_expired_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -36,7 +37,7 @@ var (
sesExpCfgPath string
sesExpCfgDIR string
sesExpCfg *config.CGRConfig
- sesExpRPC *rpc.Client
+ sesExpRPC *birpc.Client
sesExpAccount = "refundAcc"
sesExpTenant = "cgrates.org"
@@ -137,7 +138,7 @@ func testSesExpItLoadFromFolder(t *testing.T) {
Weight: 20,
}
var result string
- if err := sesExpRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := sesExpRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -156,7 +157,7 @@ func testSesExpItAddVoiceBalance(t *testing.T) {
},
}
var reply string
- if err := sesExpRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sesExpRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -173,14 +174,14 @@ func testSesExpItAddVoiceBalance(t *testing.T) {
utils.Weight: 100,
},
}
- if err := sesExpRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sesExpRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
var acnt engine.Account
- if err := sesExpRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesExpRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: sesExpTenant,
Account: sesExpAccount,
@@ -196,7 +197,7 @@ func testSesExpItAddVoiceBalance(t *testing.T) {
func testSesExpItInitSession(t *testing.T) {
sesExpCgrEv.Event[utils.Usage] = time.Second
var rply sessions.V1InitSessionReply
- if err := sesExpRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sesExpRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
&sessions.V1InitSessionArgs{
InitSession: true,
CGREvent: sesExpCgrEv,
@@ -212,7 +213,7 @@ func testSesExpItInitSession(t *testing.T) {
func testSesExpItTerminateSession(t *testing.T) {
sesExpCgrEv.Event[utils.Usage] = 10 * time.Second
var rply string
- if err := sesExpRPC.Call(utils.SessionSv1TerminateSession,
+ if err := sesExpRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
&sessions.V1TerminateSessionArgs{
TerminateSession: true,
CGREvent: sesExpCgrEv,
@@ -223,13 +224,13 @@ func testSesExpItTerminateSession(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := sesExpRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := sesExpRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
var acnt engine.Account
- if err := sesExpRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesExpRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: sesExpTenant,
Account: sesExpAccount,
@@ -244,7 +245,7 @@ func testSesExpItTerminateSession(t *testing.T) {
func testSesExpItProcessCDR(t *testing.T) {
var reply string
- if err := sesExpRPC.Call(utils.SessionSv1ProcessCDR,
+ if err := sesExpRPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
sesExpCgrEv, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -253,7 +254,7 @@ func testSesExpItProcessCDR(t *testing.T) {
time.Sleep(20 * time.Millisecond)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Accounts: []string{sesExpAccount}}
- if err := sesExpRPC.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+ if err := sesExpRPC.Call(context.Background(), utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Fatal("Wrong number of CDRs")
@@ -267,7 +268,7 @@ func testSesExpItRerate(t *testing.T) {
var reply string
sesExpCgrEv.Event[utils.Usage] = time.Second
sesExpCgrEv.Event[utils.RequestType] = utils.MetaPostpaid // change the request type in order to not wait 12s to check the cost for a closed session
- if err := sesExpRPC.Call(utils.CDRsV1ProcessEvent,
+ if err := sesExpRPC.Call(context.Background(), utils.CDRsV1ProcessEvent,
&engine.ArgV1ProcessEvent{
Flags: []string{utils.MetaRerate},
CGREvent: *sesExpCgrEv,
@@ -277,7 +278,7 @@ func testSesExpItRerate(t *testing.T) {
t.Error("Unexpected reply received: ", reply)
}
var acnt engine.Account
- if err := sesExpRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesExpRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: sesExpTenant,
Account: sesExpAccount,
diff --git a/general_tests/session_replications_automaticdebit_it_test.go b/general_tests/session_replications_automaticdebit_it_test.go
index 2e5136439..70bb83d5d 100644
--- a/general_tests/session_replications_automaticdebit_it_test.go
+++ b/general_tests/session_replications_automaticdebit_it_test.go
@@ -22,12 +22,13 @@ package general_tests
import (
"fmt"
- "net/rpc"
"os/exec"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -38,7 +39,7 @@ var (
smgRplcMasterCfgPath, smgRplcSlaveCfgPath string
smgRplcMasterCfgDIR, smgRplcSlaveCfgDIR string
smgRplcMasterCfg, smgRplcSlaveCfg *config.CGRConfig
- smgRplcMstrRPC, smgRplcSlvRPC *rpc.Client
+ smgRplcMstrRPC, smgRplcSlvRPC *birpc.Client
masterEngine *exec.Cmd
sTestsSession = []func(t *testing.T){
testSessionSRplInitCfg,
@@ -89,7 +90,7 @@ func testSessionSRplAddVoiceBalance(t *testing.T) {
},
}
var reply string
- if err := smgRplcMstrRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -100,7 +101,7 @@ func testSessionSRplAddVoiceBalance(t *testing.T) {
Account: "1005",
}
//get balance
- if err := smgRplcMstrRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(5*time.Second) {
t.Errorf("Expecting: %v, received: %v",
@@ -155,7 +156,7 @@ func testSessionSRplApierRpcConn(t *testing.T) {
func testSessionSRplTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
var loadInst utils.LoadInstance
- if err := smgRplcMstrRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -164,11 +165,11 @@ func testSessionSRplTPFromFolder(t *testing.T) {
func testSessionSRplInitiate(t *testing.T) {
var aSessions []*sessions.ExternalSession
//make sure we don't have active sessions on master and passive on slave
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -196,7 +197,7 @@ func testSessionSRplInitiate(t *testing.T) {
}
var initRpl sessions.V1InitSessionReply
- if err := smgRplcMstrRPC.Call(utils.SessionSv1InitiateSession,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
argsInit, &initRpl); err != nil {
t.Error(err)
}
@@ -208,7 +209,7 @@ func testSessionSRplInitiate(t *testing.T) {
//check active session
time.Sleep(10 * time.Millisecond)
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -225,7 +226,7 @@ func testSessionSRplInitiate(t *testing.T) {
var autoDebit1, autoDebit2 time.Time
var pSessions []*sessions.ExternalSession
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -242,7 +243,7 @@ func testSessionSRplInitiate(t *testing.T) {
//check active session (II)
time.Sleep(12 * time.Millisecond)
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -257,7 +258,7 @@ func testSessionSRplInitiate(t *testing.T) {
}
//check passive session (II)
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -280,7 +281,7 @@ func testSessionSRplInitiate(t *testing.T) {
Tenant: "cgrates.org",
Account: "1005",
}
- if err := smgRplcMstrRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
// a tolerance of +/- 5ms is acceptable
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply < float64(5*time.Second-25*time.Millisecond) || rply > float64(5*time.Second-15*time.Millisecond) {
@@ -295,14 +296,14 @@ func testSessionSRplActivateSlave(t *testing.T) {
}
// activate sessions on slave
var rplActivate string
- if err := smgRplcSlvRPC.Call(utils.SessionSv1ActivateSessions, &utils.SessionIDsWithArgsDispatcher{}, &rplActivate); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1ActivateSessions, &utils.SessionIDsWithArgsDispatcher{}, &rplActivate); err != nil {
t.Error(err)
}
time.Sleep(7 * time.Millisecond)
//check if the active session is on slave now
var aSessions []*sessions.ExternalSession
var autoDebit1, autoDebit2 time.Time
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions))
@@ -318,7 +319,7 @@ func testSessionSRplActivateSlave(t *testing.T) {
t.Fatal(err)
}
time.Sleep(20 * time.Millisecond)
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions2); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions2); err != nil {
t.Error(err)
} else if len(aSessions2) != 1 {
t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions2))
@@ -342,7 +343,7 @@ func testSessionSRplCheckAccount(t *testing.T) {
}
expectedBal := 5*time.Second - 40*time.Millisecond
- if err := smgRplcSlvRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
// a tolerance of +/- 10ms is acceptable
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply < float64(expectedBal-10*time.Millisecond) ||
@@ -374,20 +375,20 @@ func testSessionSRplTerminate(t *testing.T) {
},
}
var reply string
- if err := smgRplcSlvRPC.Call(utils.SessionSv1TerminateSession, args, &reply); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1TerminateSession, args, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated
var aSessions []*sessions.ExternalSession
//check if the session was terminated on slave
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %v with len(aSessions)=%v , session : %+v", err, len(aSessions), utils.ToIJSON(aSessions))
}
// check to don't have passive session on slave
var pSessions []*sessions.ExternalSession
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
new(utils.SessionFilter), &pSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %v with len(pSessions)=%v , session : %+v", err, len(pSessions), utils.ToIJSON(pSessions))
}
@@ -398,7 +399,7 @@ func testSessionSRplTerminate(t *testing.T) {
Account: "1005",
}
- if err := smgRplcSlvRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
// a tolerance of +/- 5ms is acceptable
} else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(3*time.Second) {
diff --git a/general_tests/session_rounding_it_test.go b/general_tests/session_rounding_it_test.go
index 8f3489730..f52c353db 100644
--- a/general_tests/session_rounding_it_test.go
+++ b/general_tests/session_rounding_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +38,7 @@ var (
sesRndCfgPath string
sesRndCfgDIR string
sesRndCfg *config.CGRConfig
- sesRndRPC *rpc.Client
+ sesRndRPC *birpc.Client
sesRndAccount = "testAccount"
sesRndTenant = "cgrates.org"
@@ -185,7 +186,7 @@ func testSesRndItRPCConn(t *testing.T) {
func testSesRndItLoadRating(t *testing.T) {
var reply string
- if err := sesRndRPC.Call(utils.APIerSv1SetTPRate, &utils.TPRateRALs{
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1SetTPRate, &utils.TPRateRALs{
TPid: utils.TestSQL,
ID: "RT1",
RateSlots: []*utils.RateSlot{
@@ -204,14 +205,14 @@ func testSesRndItLoadRating(t *testing.T) {
{DestinationId: utils.MetaAny, RateId: "RT1", RoundingMethod: utils.MetaRoundingUp, RoundingDecimals: 1},
},
}
- if err := sesRndRPC.Call(utils.APIerSv1SetTPDestinationRate, dr, &reply); err != nil {
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1SetTPDestinationRate, dr, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPDestinationRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPDestinationRate: ", reply)
}
dr.ID = "DR_DOWN"
dr.DestinationRates[0].RoundingMethod = utils.MetaRoundingDown
- if err := sesRndRPC.Call(utils.APIerSv1SetTPDestinationRate, dr, &reply); err != nil {
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1SetTPDestinationRate, dr, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPDestinationRate: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPDestinationRate: ", reply)
@@ -224,14 +225,14 @@ func testSesRndItLoadRating(t *testing.T) {
{DestinationRatesId: "DR_UP", TimingId: utils.MetaAny, Weight: 10},
},
}
- if err := sesRndRPC.Call(utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingPlan: ", reply)
}
rp.ID = "RP_DOWN"
rp.RatingPlanBindings[0].DestinationRatesId = "DR_DOWN"
- if err := sesRndRPC.Call(utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1SetTPRatingPlan, rp, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingPlan: ", reply)
@@ -248,26 +249,26 @@ func testSesRndItLoadRating(t *testing.T) {
FallbackSubjects: utils.EmptyString,
}},
}
- if err := sesRndRPC.Call(utils.APIerSv1SetTPRatingProfile, rpf, &reply); err != nil {
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingProfile: ", reply)
}
rpf.Subject = "down"
rpf.RatingPlanActivations[0].RatingPlanId = "RP_DOWN"
- if err := sesRndRPC.Call(utils.APIerSv1SetTPRatingProfile, rpf, &reply); err != nil {
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1SetTPRatingProfile, rpf, &reply); err != nil {
t.Error("Got error on APIerSv1.SetTPRatingProfile: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received when calling APIerSv1.SetTPRatingProfile: ", reply)
}
- if err := sesRndRPC.Call(utils.APIerSv1LoadRatingPlan, &v1.AttrLoadRatingPlan{TPid: utils.TestSQL}, &reply); err != nil {
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1LoadRatingPlan, &v1.AttrLoadRatingPlan{TPid: utils.TestSQL}, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadRatingPlan: ", err.Error())
} else if reply != utils.OK {
t.Error("Calling APIerSv1.LoadRatingPlan got reply: ", reply)
}
- if err := sesRndRPC.Call(utils.APIerSv1LoadRatingProfile, &utils.TPRatingProfile{
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1LoadRatingProfile, &utils.TPRatingProfile{
TPid: utils.TestSQL, LoadId: utils.TestSQL,
Tenant: sesRndTenant, Category: utils.Call}, &reply); err != nil {
t.Error("Got error on APIerSv1.LoadRatingProfile: ", err.Error())
@@ -280,7 +281,7 @@ func testSesRndItLoadRating(t *testing.T) {
func testSesRndItAddCharger(t *testing.T) {
//add a default charger
var result string
- if err := sesRndRPC.Call(utils.APIerSv1SetChargerProfile, &engine.ChargerProfile{
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, &engine.ChargerProfile{
Tenant: sesRndTenant,
ID: "default",
RunID: utils.MetaDefault,
@@ -295,7 +296,7 @@ func testSesRndItAddCharger(t *testing.T) {
func testSesRndItAddVoiceBalance(t *testing.T) {
var reply string
- if err := sesRndRPC.Call(utils.APIerSv2SetBalance, utils.AttrSetBalance{
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv2SetBalance, utils.AttrSetBalance{
Tenant: sesRndTenant,
Account: sesRndAccount,
BalanceType: utils.MetaMonetary,
@@ -310,7 +311,7 @@ func testSesRndItAddVoiceBalance(t *testing.T) {
}
var acnt engine.Account
- if err := sesRndRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: sesRndTenant,
Account: sesRndAccount,
@@ -325,7 +326,7 @@ func testSesRndItAddVoiceBalance(t *testing.T) {
func testSesRndItPrepareCDRs(t *testing.T) {
var reply sessions.V1InitSessionReply
- if err := sesRndRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sesRndRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
&sessions.V1InitSessionArgs{
InitSession: true,
CGREvent: sesRndCgrEv,
@@ -338,7 +339,7 @@ func testSesRndItPrepareCDRs(t *testing.T) {
time.Sleep(50 * time.Millisecond)
var rply string
- if err := sesRndRPC.Call(utils.SessionSv1TerminateSession,
+ if err := sesRndRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
&sessions.V1TerminateSessionArgs{
TerminateSession: true,
CGREvent: sesRndCgrEv,
@@ -348,7 +349,7 @@ func testSesRndItPrepareCDRs(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
- if err := sesRndRPC.Call(utils.SessionSv1ProcessCDR,
+ if err := sesRndRPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
sesRndCgrEv, &rply); err != nil {
t.Error(err)
} else if rply != utils.OK {
@@ -360,7 +361,7 @@ func testSesRndItPrepareCDRs(t *testing.T) {
func testSesRndItCheckCdrs(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Accounts: []string{sesRndAccount}, OriginIDs: []string{utils.IfaceAsString(sesRndCgrEv.Event[utils.OriginID])}}
- if err := sesRndRPC.Call(utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv2GetCDRs, req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Fatal("Wrong number of CDRs")
@@ -378,7 +379,7 @@ func testSesRndItCheckCdrs(t *testing.T) {
t.Errorf("Unexpected AccountSummary: %v", utils.ToJSON(cd.AccountSummary))
}
var acnt engine.Account
- if err := sesRndRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesRndRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: sesRndTenant,
Account: sesRndAccount,
diff --git a/general_tests/session_rpl_prepaid_it_test.go b/general_tests/session_rpl_prepaid_it_test.go
index 86331338d..016097809 100644
--- a/general_tests/session_rpl_prepaid_it_test.go
+++ b/general_tests/session_rpl_prepaid_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -36,7 +37,7 @@ var (
sesRplPrePaidCfgPath string
sesRplPrePaidCfgDIR string
sesRplPrePaidCfg *config.CGRConfig
- sesRplPrePaidRPC *rpc.Client
+ sesRplPrePaidRPC *birpc.Client
sesRplPrePaidTests = []func(t *testing.T){
testSeSRplPrepaidInitCfg,
@@ -99,7 +100,7 @@ func testSeSRplPrepaidApierRpcConn(t *testing.T) {
// Load the tariff plan, creating accounts and their balances
func testSeSRplPrepaidTPFromFolder(t *testing.T) {
var result string
- if err := sesRplPrePaidRPC.Call(utils.APIerSv1SetChargerProfile, &engine.ChargerProfile{
+ if err := sesRplPrePaidRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, &engine.ChargerProfile{
Tenant: "cgrates.org",
ID: "Default",
RunID: utils.MetaRaw,
@@ -121,14 +122,14 @@ func testSeSRplPrepaidTPFromFolder(t *testing.T) {
},
}
var reply string
- if err := sesRplPrePaidRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sesRplPrePaidRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
var acnt *engine.Account
//get balance
- if err := sesRplPrePaidRPC.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{
+ if err := sesRplPrePaidRPC.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{
Tenant: "cgrates.org",
Account: "1005",
}, &acnt); err != nil {
@@ -141,7 +142,7 @@ func testSeSRplPrepaidTPFromFolder(t *testing.T) {
func testSeSRplPrepaidActivateSessions(t *testing.T) {
var reply string
- if err = sesRplPrePaidRPC.Call(utils.SessionSv1SetPassiveSession, sessions.Session{
+ if err = sesRplPrePaidRPC.Call(context.Background(), utils.SessionSv1SetPassiveSession, sessions.Session{
CGRID: "ede927f8e42318a8db02c0f74adc2d9e16770339",
Tenant: "cgrates.org",
ResourceID: "testSeSRplPrepaidActivateSessions",
@@ -244,19 +245,19 @@ func testSeSRplPrepaidActivateSessions(t *testing.T) {
}
var aSessions []*sessions.ExternalSession
// Activate first session (with ID: ede927f8e42318a8db02c0f74adc2d9e16770339)
- if err := sesRplPrePaidRPC.Call(utils.SessionSv1ActivateSessions, &utils.SessionIDsWithArgsDispatcher{}, &reply); err != nil {
+ if err := sesRplPrePaidRPC.Call(context.Background(), utils.SessionSv1ActivateSessions, &utils.SessionIDsWithArgsDispatcher{}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Unexpected reply %s", reply)
}
- if err := sesRplPrePaidRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sesRplPrePaidRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("Expecting: 1 session, received: %+v sessions", len(aSessions))
}
time.Sleep(10 * time.Millisecond)
var acnt *engine.Account
- if err := sesRplPrePaidRPC.Call(utils.APIerSv2GetAccount, &utils.AttrGetAccount{
+ if err := sesRplPrePaidRPC.Call(context.Background(), utils.APIerSv2GetAccount, &utils.AttrGetAccount{
Tenant: "cgrates.org",
Account: "1005",
}, &acnt); err != nil {
diff --git a/general_tests/sessionpause_it_test.go b/general_tests/sessionpause_it_test.go
index 3f2021e20..3c5ed6361 100644
--- a/general_tests/sessionpause_it_test.go
+++ b/general_tests/sessionpause_it_test.go
@@ -23,12 +23,13 @@ package general_tests
import (
"encoding/json"
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -39,7 +40,7 @@ var (
sesPauseCfgDir string
sesPauseCfgPath string
sesPauseCfg *config.CGRConfig
- sesPauseRPC *rpc.Client
+ sesPauseRPC *birpc.Client
sesPauseTests = []func(t *testing.T){
testSesPauseItLoadConfig,
@@ -112,7 +113,7 @@ func testSesPauseItRPCConn(t *testing.T) {
func testSesPauseItLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := sesPauseRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := sesPauseRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -143,7 +144,7 @@ func testSesPauseItInitSession(t *testing.T, cgrID string, chargeable bool, usag
},
}
var rply1 sessions.V1InitSessionReply
- if err := sesPauseRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sesPauseRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
args1, &rply1); err != nil {
t.Error(err)
return
@@ -177,7 +178,7 @@ func testSesPauseItUpdateSession(t *testing.T, cgrID string, chargeable bool, us
}
var updtRpl sessions.V1UpdateSessionReply
- if err := sesPauseRPC.Call(utils.SessionSv1UpdateSession, updtArgs, &updtRpl); err != nil {
+ if err := sesPauseRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updtArgs, &updtRpl); err != nil {
t.Error(err)
}
if updtRpl.MaxUsage == nil || *updtRpl.MaxUsage != usage {
@@ -209,14 +210,14 @@ func testSesPauseItTerminateSession(t *testing.T, cgrID string, chargeable bool,
},
}
var rply string
- if err := sesPauseRPC.Call(utils.SessionSv1TerminateSession,
+ if err := sesPauseRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
if rply != utils.OK {
t.Errorf("Unexpected reply: %s", rply)
}
- if err := sesPauseRPC.Call(utils.SessionSv1ProcessCDR, &utils.CGREvent{
+ if err := sesPauseRPC.Call(context.Background(), utils.SessionSv1ProcessCDR, &utils.CGREvent{
Tenant: "cgrates.org",
ID: "testSesPauseItProccesCDR",
Event: map[string]any{
@@ -247,7 +248,7 @@ func testSesPauseItAllPause(t *testing.T) {
time.Sleep(20 * time.Millisecond)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
- if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sesPauseRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
}
@@ -383,7 +384,7 @@ func testSesPauseItInitPause(t *testing.T) {
time.Sleep(20 * time.Millisecond)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
- if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sesPauseRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
}
@@ -569,7 +570,7 @@ func testSesPauseItInitUpdatePause(t *testing.T) {
time.Sleep(20 * time.Millisecond)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
- if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sesPauseRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
}
@@ -765,7 +766,7 @@ func testSesPauseItUpdatePause(t *testing.T) {
time.Sleep(20 * time.Millisecond)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
- if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sesPauseRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
}
diff --git a/general_tests/sessionrefund_it_test.go b/general_tests/sessionrefund_it_test.go
index be06059fc..ac6484dc7 100644
--- a/general_tests/sessionrefund_it_test.go
+++ b/general_tests/sessionrefund_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -36,7 +37,7 @@ var (
srCfgPath string
srCfgDIR string
srCfg *config.CGRConfig
- srrpc *rpc.Client
+ srrpc *birpc.Client
sraccount = "refundAcc"
srtenant = "cgrates.org"
@@ -111,7 +112,7 @@ func testSrItRPCConn(t *testing.T) {
func testSrItLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := srrpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := srrpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -123,7 +124,7 @@ func testAccountBalance(t *testing.T, sracc, srten, balType string, expected flo
Tenant: srten,
Account: sracc,
}
- if err := srrpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := srrpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if rply := acnt.BalanceMap[balType].GetTotalValue(); rply != expected {
t.Errorf("Expecting: %v, received: %v",
@@ -143,7 +144,7 @@ func testSrItAddVoiceBalance(t *testing.T) {
},
}
var reply string
- if err := srrpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := srrpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -176,7 +177,7 @@ func testSrItInitSession(t *testing.T) {
},
}
var rply1 sessions.V1InitSessionReply
- if err := srrpc.Call(utils.SessionSv1InitiateSession,
+ if err := srrpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args1, &rply1); err != nil {
t.Error(err)
return
@@ -210,7 +211,7 @@ func testSrItTerminateSession(t *testing.T) {
},
}
var rply string
- if err := srrpc.Call(utils.SessionSv1TerminateSession,
+ if err := srrpc.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -218,7 +219,7 @@ func testSrItTerminateSession(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := srrpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := srrpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -239,7 +240,7 @@ func testSrItAddMonetaryBalance(t *testing.T) {
},
}
var reply string
- if err := srrpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+ if err := srrpc.Call(context.Background(), utils.APIerSv2SetBalance, attrs, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -270,7 +271,7 @@ func testSrItInitSession2(t *testing.T) {
},
}
var rply1 sessions.V1InitSessionReply
- if err := srrpc.Call(utils.SessionSv1InitiateSession,
+ if err := srrpc.Call(context.Background(), utils.SessionSv1InitiateSession,
args1, &rply1); err != nil {
t.Error(err)
return
@@ -303,7 +304,7 @@ func testSrItTerminateSession2(t *testing.T) {
},
}
var rply string
- if err := srrpc.Call(utils.SessionSv1TerminateSession,
+ if err := srrpc.Call(context.Background(), utils.SessionSv1TerminateSession,
args, &rply); err != nil {
t.Error(err)
}
@@ -311,7 +312,7 @@ func testSrItTerminateSession2(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
- if err := srrpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := srrpc.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
diff --git a/general_tests/sessionroutes_it_test.go b/general_tests/sessionroutes_it_test.go
index 57ba3059d..518f19403 100644
--- a/general_tests/sessionroutes_it_test.go
+++ b/general_tests/sessionroutes_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -38,7 +39,7 @@ var (
sesRoutesCfgDir string
sesRoutesCfgPath string
sesRoutesCfg *config.CGRConfig
- sesRoutesRPC *rpc.Client
+ sesRoutesRPC *birpc.Client
sesRoutesTests = []func(t *testing.T){
testSesRoutesItLoadConfig,
@@ -110,7 +111,7 @@ func testSesRoutesItRPCConn(t *testing.T) {
func testSesRoutesItLoadFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := sesRoutesRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := sesRoutesRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -139,7 +140,7 @@ func testSesRoutesAuthorizeEvent(t *testing.T) {
true, false, false, cgrEv, utils.Paginator{}, false, "")
var rply sessions.V1AuthorizeReply
- if err := sesRoutesRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
t.Fatal(err)
}
expected := sessions.V1AuthorizeReply{
@@ -183,7 +184,7 @@ func testSesRoutesAuthorizeEvent(t *testing.T) {
true, false, false, cgrEv, utils.Paginator{}, false, "2")
rply = sessions.V1AuthorizeReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -223,7 +224,7 @@ func testSesRoutesAuthorizeEvent(t *testing.T) {
true, false, false, cgrEv, utils.Paginator{}, false, "1")
rply = sessions.V1AuthorizeReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -237,7 +238,7 @@ func testSesRoutesAuthorizeEvent(t *testing.T) {
true, false, true, cgrEv, utils.Paginator{}, false, "")
rply = sessions.V1AuthorizeReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -272,7 +273,7 @@ func testSesRoutesProcessMessage(t *testing.T) {
true, false, false, cgrEv, utils.Paginator{}, false, "")
var rply sessions.V1ProcessMessageReply
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -318,7 +319,7 @@ func testSesRoutesProcessMessage(t *testing.T) {
true, false, false, cgrEv, utils.Paginator{}, false, "2")
rply = sessions.V1ProcessMessageReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -358,7 +359,7 @@ func testSesRoutesProcessMessage(t *testing.T) {
true, false, false, cgrEv, utils.Paginator{}, false, "1")
rply = sessions.V1ProcessMessageReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -372,7 +373,7 @@ func testSesRoutesProcessMessage(t *testing.T) {
true, false, true, cgrEv, utils.Paginator{}, false, "")
rply = sessions.V1ProcessMessageReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -409,7 +410,7 @@ func testSesRoutesProcessEvent(t *testing.T) {
}
var rply sessions.V1ProcessEventReply
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent, args, &rply); err != nil {
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessEvent, args, &rply); err != nil {
t.Fatal(err)
}
expected := sessions.V1ProcessEventReply{
@@ -458,7 +459,7 @@ func testSesRoutesProcessEvent(t *testing.T) {
}
rply = sessions.V1ProcessEventReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -502,7 +503,7 @@ func testSesRoutesProcessEvent(t *testing.T) {
}
args.CGREvent.APIOpts[utils.OptsRoutesMaxCost] = "1"
rply = sessions.V1ProcessEventReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Fatal(err)
}
@@ -518,7 +519,7 @@ func testSesRoutesProcessEvent(t *testing.T) {
}
rply = sessions.V1ProcessEventReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
+ if err := sesRoutesRPC.Call(context.Background(), utils.SessionSv1ProcessEvent,
args, &rply); err != nil {
t.Fatal(err)
}
diff --git a/general_tests/sessions_benchmark_it_test.go b/general_tests/sessions_benchmark_it_test.go
index 1eb0ccb4b..ce7b41df0 100644
--- a/general_tests/sessions_benchmark_it_test.go
+++ b/general_tests/sessions_benchmark_it_test.go
@@ -23,12 +23,13 @@ package general_tests
import (
"fmt"
- "net/rpc"
"os/exec"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -40,7 +41,7 @@ var (
sesPCfgDir string
sesPCfgPath string
sesPCfg *config.CGRConfig
- sesPRPC *rpc.Client
+ sesPRPC *birpc.Client
sesPTests = []func(t *testing.T){
testSesPItLoadConfig,
@@ -130,7 +131,7 @@ func getAccounts(ids []string) (accounts *[]any, err error) {
Tenant: "cgrates.org",
AccountIDs: ids,
}
- err = sesPRPC.Call("APIerSv1.GetAccounts", attr, &reply)
+ err = sesPRPC.Call(context.Background(), "APIerSv1.GetAccounts", attr, &reply)
if err != nil {
return
}
@@ -151,7 +152,7 @@ func setAccBalance(acc string) (err error) {
}
var reply string
- err = sesPRPC.Call(utils.APIerSv1SetBalance, args, &reply)
+ err = sesPRPC.Call(context.Background(), utils.APIerSv1SetBalance, args, &reply)
return err
}
@@ -193,7 +194,7 @@ func initSes(n int) (err error) {
for i := 0; i < n; i++ {
initArgs.CGREvent.Event[utils.AccountField] = accIDs[i]
initArgs.CGREvent.Event[utils.OriginID] = utils.UUIDSha1Prefix()
- if err = sesPRPC.Call(utils.SessionSv1InitiateSession,
+ if err = sesPRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
return
}
@@ -214,7 +215,7 @@ func testSesPItBenchmark(t *testing.T) {
},
APIOpts: map[string]any{},
}
- if err := sesPRPC.Call(utils.APIerSv1SetChargerProfile, args, &reply); err != nil {
+ if err := sesPRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, args, &reply); err != nil {
t.Error(err)
} else if reply != "OK" {
t.Error("Expected OK")
@@ -230,7 +231,7 @@ func testSesPItBenchmark(t *testing.T) {
APIOpts: map[string]any{},
}
- if err := sesPRPC.Call(utils.APIerSv1SetChargerProfile, args2, &reply); err != nil {
+ if err := sesPRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, args2, &reply); err != nil {
t.Error(err)
} else if reply != "OK" {
t.Error("Expected OK")
@@ -247,7 +248,7 @@ func testSesPItBenchmark(t *testing.T) {
}
var statusRpl map[string]any
- if err := sesPRPC.Call(utils.CoreSv1Status, nil, &statusRpl); err != nil {
+ if err := sesPRPC.Call(context.Background(), utils.CoreSv1Status, nil, &statusRpl); err != nil {
t.Error(err)
}
fmt.Println(statusRpl)
diff --git a/general_tests/sessions_concur_test.go b/general_tests/sessions_concur_test.go
index 0db15741d..e9283d17a 100644
--- a/general_tests/sessions_concur_test.go
+++ b/general_tests/sessions_concur_test.go
@@ -20,337 +20,338 @@ along with this program. If not, see
*/
package general_tests
-import (
- "flag"
- "fmt"
- "net/rpc"
- "path"
- "sync"
- "testing"
- "time"
+// import (
+// "flag"
+// "fmt"
+// "path"
+// "sync"
+// "testing"
+// "time"
- v1 "github.com/cgrates/cgrates/apier/v1"
- v2 "github.com/cgrates/cgrates/apier/v2"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/birpc"
+// "github.com/cgrates/birpc/context"
+// v1 "github.com/cgrates/cgrates/apier/v1"
+// v2 "github.com/cgrates/cgrates/apier/v2"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- sCncrCfgDIR, sCncrCfgPath string
- sCncrCfg *config.CGRConfig
- sCncrRPC *rpc.Client
+// var (
+// sCncrCfgDIR, sCncrCfgPath string
+// sCncrCfg *config.CGRConfig
+// sCncrRPC *birpc.Client
- sCncrSessions = flag.Int("sessions", 100000, "maximum concurrent sessions created")
- sCncrCps = flag.Int("cps", 50000, "maximum requests per second sent out")
+// sCncrSessions = flag.Int("sessions", 100000, "maximum concurrent sessions created")
+// sCncrCps = flag.Int("cps", 50000, "maximum requests per second sent out")
- cpsPool = make(chan struct{}, *sCncrCps)
- acntIDs = make(chan string, 1)
- wg sync.WaitGroup
-)
+// cpsPool = make(chan struct{}, *sCncrCps)
+// acntIDs = make(chan string, 1)
+// wg sync.WaitGroup
+// )
-// Tests starting here
-func TestSCncrInternal(t *testing.T) {
- sCncrCfgDIR = "sessinternal"
- for _, tst := range sTestsSCncrIT {
- t.Run("InternalConn", tst)
- }
-}
+// // Tests starting here
+// func TestSCncrInternal(t *testing.T) {
+// sCncrCfgDIR = "sessinternal"
+// for _, tst := range sTestsSCncrIT {
+// t.Run("InternalConn", tst)
+// }
+// }
-// Tests starting here
-func TestSCncrJSON(t *testing.T) {
- sCncrCfgDIR = "sessintjson"
- for _, tst := range sTestsSCncrIT {
- t.Run("JSONConn", tst)
- }
-}
+// // Tests starting here
+// func TestSCncrJSON(t *testing.T) {
+// sCncrCfgDIR = "sessintjson"
+// for _, tst := range sTestsSCncrIT {
+// t.Run("JSONConn", tst)
+// }
+// }
-// subtests to be executed
-var sTestsSCncrIT = []func(t *testing.T){
- testSCncrInitConfig,
- testSCncrInitDataDB,
- testSCncrInitStorDB,
- testSCncrStartEngine,
- testSCncrRPCConn,
- testSCncrLoadTP,
- testSCncrRunSessions,
- testSCncrKillEngine,
-}
+// // subtests to be executed
+// var sTestsSCncrIT = []func(t *testing.T){
+// testSCncrInitConfig,
+// testSCncrInitDataDB,
+// testSCncrInitStorDB,
+// testSCncrStartEngine,
+// testSCncrRPCConn,
+// testSCncrLoadTP,
+// testSCncrRunSessions,
+// testSCncrKillEngine,
+// }
-func testSCncrInitConfig(t *testing.T) {
- sCncrCfgPath = path.Join(*dataDir, "conf", "samples", sCncrCfgDIR)
- if sCncrCfg, err = config.NewCGRConfigFromPath(sCncrCfgPath); err != nil {
- t.Fatal(err)
- }
-}
+// func testSCncrInitConfig(t *testing.T) {
+// sCncrCfgPath = path.Join(*dataDir, "conf", "samples", sCncrCfgDIR)
+// if sCncrCfg, err = config.NewCGRConfigFromPath(sCncrCfgPath); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSCncrInitDataDB(t *testing.T) {
- if err := engine.InitDataDb(sCncrCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSCncrInitDataDB(t *testing.T) {
+// if err := engine.InitDataDb(sCncrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// InitDb so we can rely on count
-func testSCncrInitStorDB(t *testing.T) {
- if err := engine.InitStorDb(sCncrCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // InitDb so we can rely on count
+// func testSCncrInitStorDB(t *testing.T) {
+// if err := engine.InitStorDb(sCncrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSCncrStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(sCncrCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSCncrStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(sCncrCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testSCncrRPCConn(t *testing.T) {
- var err error
- sCncrRPC, err = newRPCClient(sCncrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// // Connect rpc client to rater
+// func testSCncrRPCConn(t *testing.T) {
+// var err error
+// sCncrRPC, err = newRPCClient(sCncrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testSCncrKillEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testSCncrKillEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
-func testSCncrLoadTP(t *testing.T) {
- var loadInst string
- if err := sCncrRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder,
- &utils.AttrLoadTpFromFolder{FolderPath: path.Join(
- *dataDir, "tariffplans", "tp1cnt")}, &loadInst); err != nil {
- t.Error(err)
- }
- attrPrfl := &v2.AttributeWithAPIOpts{
- ExternalAttributeProfile: &engine.ExternalAttributeProfile{
- Tenant: "cgrates.org",
- ID: "AttrConcurrentSessions",
- Contexts: []string{utils.MetaAny},
- Attributes: []*engine.ExternalAttribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "TestType",
- Value: "ConcurrentSessions",
- },
- },
- Weight: 20,
- },
- }
- var resAttrSet string
- if err := sCncrRPC.Call(utils.APIerSv2SetAttributeProfile, attrPrfl, &resAttrSet); err != nil {
- t.Error(err)
- } else if resAttrSet != utils.OK {
- t.Errorf("unexpected reply returned: <%s>", resAttrSet)
- }
-}
+// func testSCncrLoadTP(t *testing.T) {
+// var loadInst string
+// if err := sCncrRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder,
+// &utils.AttrLoadTpFromFolder{FolderPath: path.Join(
+// *dataDir, "tariffplans", "tp1cnt")}, &loadInst); err != nil {
+// t.Error(err)
+// }
+// attrPrfl := &v2.AttributeWithAPIOpts{
+// ExternalAttributeProfile: &engine.ExternalAttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "AttrConcurrentSessions",
+// Contexts: []string{utils.MetaAny},
+// Attributes: []*engine.ExternalAttribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "TestType",
+// Value: "ConcurrentSessions",
+// },
+// },
+// Weight: 20,
+// },
+// }
+// var resAttrSet string
+// if err := sCncrRPC.Call(context.Background(), utils.APIerSv2SetAttributeProfile, attrPrfl, &resAttrSet); err != nil {
+// t.Error(err)
+// } else if resAttrSet != utils.OK {
+// t.Errorf("unexpected reply returned: <%s>", resAttrSet)
+// }
+// }
-func testSCncrRunSessions(t *testing.T) {
- acntIDsSet := utils.NewStringSet(nil)
- bufferTopup := 8760 * time.Hour
- for i := 0; i < *sCncrSessions; i++ {
- acntID := fmt.Sprintf("100%d", utils.RandomInteger(100, 200))
- if !acntIDsSet.Has(acntID) {
- // Special balance BUFFER to cover concurrency on MAIN one
- argsAddBalance := &v1.AttrAddBalance{
- Tenant: "cgrates.org",
- Account: acntID,
- BalanceType: utils.MetaVoice,
- Value: float64(bufferTopup.Nanoseconds()),
- Balance: map[string]any{
- utils.ID: "BUFFER",
- },
- }
- var addBlcRply string
- if err = sCncrRPC.Call(utils.APIerSv1AddBalance, argsAddBalance, &addBlcRply); err != nil {
- t.Error(err)
- } else if addBlcRply != utils.OK {
- t.Errorf("received: <%s>", addBlcRply)
- }
- acntIDsSet.Add(acntID)
- }
- acntIDs <- acntID
- wg.Add(1)
- go t.Run(fmt.Sprintf("RunSession#%d", i), testRunSession)
- }
- wg.Wait()
- for acntID := range acntIDsSet.Data() {
- // make sure the account was properly refunded
- var acnt *engine.Account
- acntAttrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: acntID}
- if err = sCncrRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
- return
- } else if vcBlnc := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); float64(bufferTopup.Nanoseconds())-vcBlnc > 1000000.0 { // eliminate rounding errors
- t.Errorf("unexpected voice balance received: %+v", utils.ToIJSON(acnt))
- } else if mnBlnc := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); mnBlnc != 0 {
- t.Errorf("unexpected monetary balance received: %+v", utils.ToIJSON(acnt))
- }
- }
-}
+// func testSCncrRunSessions(t *testing.T) {
+// acntIDsSet := utils.NewStringSet(nil)
+// bufferTopup := 8760 * time.Hour
+// for i := 0; i < *sCncrSessions; i++ {
+// acntID := fmt.Sprintf("100%d", utils.RandomInteger(100, 200))
+// if !acntIDsSet.Has(acntID) {
+// // Special balance BUFFER to cover concurrency on MAIN one
+// argsAddBalance := &v1.AttrAddBalance{
+// Tenant: "cgrates.org",
+// Account: acntID,
+// BalanceType: utils.MetaVoice,
+// Value: float64(bufferTopup.Nanoseconds()),
+// Balance: map[string]any{
+// utils.ID: "BUFFER",
+// },
+// }
+// var addBlcRply string
+// if err = sCncrRPC.Call(context.Background(), utils.APIerSv1AddBalance, argsAddBalance, &addBlcRply); err != nil {
+// t.Error(err)
+// } else if addBlcRply != utils.OK {
+// t.Errorf("received: <%s>", addBlcRply)
+// }
+// acntIDsSet.Add(acntID)
+// }
+// acntIDs <- acntID
+// wg.Add(1)
+// go t.Run(fmt.Sprintf("RunSession#%d", i), testRunSession)
+// }
+// wg.Wait()
+// for acntID := range acntIDsSet.Data() {
+// // make sure the account was properly refunded
+// var acnt *engine.Account
+// acntAttrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: acntID}
+// if err = sCncrRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+// return
+// } else if vcBlnc := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); float64(bufferTopup.Nanoseconds())-vcBlnc > 1000000.0 { // eliminate rounding errors
+// t.Errorf("unexpected voice balance received: %+v", utils.ToIJSON(acnt))
+// } else if mnBlnc := acnt.BalanceMap[utils.MetaMonetary].GetTotalValue(); mnBlnc != 0 {
+// t.Errorf("unexpected monetary balance received: %+v", utils.ToIJSON(acnt))
+// }
+// }
+// }
-// runSession runs one session
-func testRunSession(t *testing.T) {
- defer wg.Done() // decrease group counter one out from test
- cpsPool <- struct{}{} // push here up to cps
- go func() { // allow more requests after a second
- time.Sleep(time.Second)
- <-cpsPool
- }()
- acntID := <-acntIDs
- originID := utils.GenUUID() // each test with it's own OriginID
- // topup as much as we know we need for one session
- mainTopup := 90 * time.Second
- var addBlcRply string
- argsAddBalance := &v1.AttrAddBalance{
- Tenant: "cgrates.org",
- Account: acntID,
- BalanceType: utils.MetaVoice,
- Value: float64(mainTopup.Nanoseconds()),
- Balance: map[string]any{
- utils.ID: "MAIN",
- utils.Weight: 10,
- },
- }
- if err = sCncrRPC.Call(utils.APIerSv1AddBalance, argsAddBalance, &addBlcRply); err != nil {
- t.Error(err)
- } else if addBlcRply != utils.OK {
- t.Errorf("received: <%s> to APIerSv1.AddBalance", addBlcRply)
- }
- time.Sleep(time.Duration(
- utils.RandomInteger(0, 100)) * time.Millisecond) // randomize between tests
+// // runSession runs one session
+// func testRunSession(t *testing.T) {
+// defer wg.Done() // decrease group counter one out from test
+// cpsPool <- struct{}{} // push here up to cps
+// go func() { // allow more requests after a second
+// time.Sleep(time.Second)
+// <-cpsPool
+// }()
+// acntID := <-acntIDs
+// originID := utils.GenUUID() // each test with it's own OriginID
+// // topup as much as we know we need for one session
+// mainTopup := 90 * time.Second
+// var addBlcRply string
+// argsAddBalance := &v1.AttrAddBalance{
+// Tenant: "cgrates.org",
+// Account: acntID,
+// BalanceType: utils.MetaVoice,
+// Value: float64(mainTopup.Nanoseconds()),
+// Balance: map[string]any{
+// utils.ID: "MAIN",
+// utils.Weight: 10,
+// },
+// }
+// if err = sCncrRPC.Call(context.Background(), utils.APIerSv1AddBalance, argsAddBalance, &addBlcRply); err != nil {
+// t.Error(err)
+// } else if addBlcRply != utils.OK {
+// t.Errorf("received: <%s> to APIerSv1.AddBalance", addBlcRply)
+// }
+// time.Sleep(time.Duration(
+// utils.RandomInteger(0, 100)) * time.Millisecond) // randomize between tests
- // Auth the session
- authDur := 5 * time.Minute
- authArgs := &sessions.V1AuthorizeArgs{
- GetMaxUsage: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: fmt.Sprintf("TestSCncrAuth%s", originID),
- Event: map[string]any{
- utils.Tenant: "cgrates.org",
- utils.OriginID: originID,
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: acntID,
- utils.Destination: fmt.Sprintf("%s%s", acntID, acntID),
- utils.SetupTime: time.Now(),
- utils.Usage: authDur,
- },
- },
- }
- var rplyAuth sessions.V1AuthorizeReply
- if err := sCncrRPC.Call(utils.SessionSv1AuthorizeEvent, authArgs, &rplyAuth); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(
- utils.RandomInteger(0, 100)) * time.Millisecond)
+// // Auth the session
+// authDur := 5 * time.Minute
+// authArgs := &sessions.V1AuthorizeArgs{
+// GetMaxUsage: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: fmt.Sprintf("TestSCncrAuth%s", originID),
+// Event: map[string]any{
+// utils.Tenant: "cgrates.org",
+// utils.OriginID: originID,
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: acntID,
+// utils.Destination: fmt.Sprintf("%s%s", acntID, acntID),
+// utils.SetupTime: time.Now(),
+// utils.Usage: authDur,
+// },
+// },
+// }
+// var rplyAuth sessions.V1AuthorizeReply
+// if err := sCncrRPC.Call(context.Background(), utils.SessionSv1AuthorizeEvent, authArgs, &rplyAuth); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(
+// utils.RandomInteger(0, 100)) * time.Millisecond)
- // Init the session
- initUsage := time.Minute
- initArgs := &sessions.V1InitSessionArgs{
- InitSession: true,
- GetAttributes: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: fmt.Sprintf("TestSCncrInit%s", originID),
- Event: map[string]any{
- utils.OriginID: originID,
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: acntID,
- utils.Destination: fmt.Sprintf("%s%s", acntID, acntID),
- utils.AnswerTime: time.Now(),
- utils.Usage: initUsage,
- },
- },
- }
- var rplyInit sessions.V1InitSessionReply
- if err := sCncrRPC.Call(utils.SessionSv1InitiateSession,
- initArgs, &rplyInit); err != nil {
- t.Error(err)
- } else if rplyInit.MaxUsage == 0 {
- t.Errorf("unexpected MaxUsage at init: %v", rplyInit.MaxUsage)
- }
- time.Sleep(time.Duration(
- utils.RandomInteger(0, 100)) * time.Millisecond)
+// // Init the session
+// initUsage := time.Minute
+// initArgs := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// GetAttributes: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: fmt.Sprintf("TestSCncrInit%s", originID),
+// Event: map[string]any{
+// utils.OriginID: originID,
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: acntID,
+// utils.Destination: fmt.Sprintf("%s%s", acntID, acntID),
+// utils.AnswerTime: time.Now(),
+// utils.Usage: initUsage,
+// },
+// },
+// }
+// var rplyInit sessions.V1InitSessionReply
+// if err := sCncrRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
+// initArgs, &rplyInit); err != nil {
+// t.Error(err)
+// } else if rplyInit.MaxUsage == 0 {
+// t.Errorf("unexpected MaxUsage at init: %v", rplyInit.MaxUsage)
+// }
+// time.Sleep(time.Duration(
+// utils.RandomInteger(0, 100)) * time.Millisecond)
- // Update the session with relocate
- initOriginID := originID
- originID = utils.GenUUID()
- updtUsage := time.Minute
- updtArgs := &sessions.V1UpdateSessionArgs{
- GetAttributes: true,
- UpdateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: fmt.Sprintf("TestSCncrUpdate%s", originID),
- Event: map[string]any{
- utils.OriginID: originID,
- utils.InitialOriginID: initOriginID,
- utils.Usage: updtUsage,
- },
- },
- }
- var rplyUpdt sessions.V1UpdateSessionReply
- if err := sCncrRPC.Call(utils.SessionSv1UpdateSession,
- updtArgs, &rplyUpdt); err != nil {
- t.Error(err)
- } else if rplyUpdt.MaxUsage == 0 {
- t.Errorf("unexpected MaxUsage at update: %v", rplyUpdt.MaxUsage)
- }
- time.Sleep(time.Duration(
- utils.RandomInteger(0, 100)) * time.Millisecond)
+// // Update the session with relocate
+// initOriginID := originID
+// originID = utils.GenUUID()
+// updtUsage := time.Minute
+// updtArgs := &sessions.V1UpdateSessionArgs{
+// GetAttributes: true,
+// UpdateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: fmt.Sprintf("TestSCncrUpdate%s", originID),
+// Event: map[string]any{
+// utils.OriginID: originID,
+// utils.InitialOriginID: initOriginID,
+// utils.Usage: updtUsage,
+// },
+// },
+// }
+// var rplyUpdt sessions.V1UpdateSessionReply
+// if err := sCncrRPC.Call(context.Background(), utils.SessionSv1UpdateSession,
+// updtArgs, &rplyUpdt); err != nil {
+// t.Error(err)
+// } else if rplyUpdt.MaxUsage == 0 {
+// t.Errorf("unexpected MaxUsage at update: %v", rplyUpdt.MaxUsage)
+// }
+// time.Sleep(time.Duration(
+// utils.RandomInteger(0, 100)) * time.Millisecond)
- // Terminate the session
- trmntArgs := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: fmt.Sprintf("TestSCncrTerminate%s", originID),
- Event: map[string]any{
- utils.OriginID: originID,
- utils.Usage: 90 * time.Second,
- },
- },
- }
- var rplyTrmnt string
- if err := sCncrRPC.Call(utils.SessionSv1TerminateSession,
- trmntArgs, &rplyTrmnt); err != nil {
- t.Error(err)
- } else if rplyTrmnt != utils.OK {
- t.Errorf("received: <%s> to SessionSv1.Terminate", rplyTrmnt)
- }
- time.Sleep(time.Duration(
- utils.RandomInteger(0, 100)) * time.Millisecond)
+// // Terminate the session
+// trmntArgs := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: fmt.Sprintf("TestSCncrTerminate%s", originID),
+// Event: map[string]any{
+// utils.OriginID: originID,
+// utils.Usage: 90 * time.Second,
+// },
+// },
+// }
+// var rplyTrmnt string
+// if err := sCncrRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
+// trmntArgs, &rplyTrmnt); err != nil {
+// t.Error(err)
+// } else if rplyTrmnt != utils.OK {
+// t.Errorf("received: <%s> to SessionSv1.Terminate", rplyTrmnt)
+// }
+// time.Sleep(time.Duration(
+// utils.RandomInteger(0, 100)) * time.Millisecond)
- // processCDR
- argsCDR := &utils.CGREventWithOpts{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: fmt.Sprintf("TestSCncrCDR%s", originID),
- Event: map[string]any{
- utils.OriginID: originID,
- },
- },
- }
- var rplyCDR string
- if err := sCncrRPC.Call(utils.SessionSv1ProcessCDR,
- argsCDR, &rplyCDR); err != nil {
- t.Error(err)
- } else if rplyCDR != utils.OK {
- t.Errorf("received: <%s> to ProcessCDR", rplyCDR)
- }
- time.Sleep(20 * time.Millisecond)
- var cdrs []*engine.ExternalCDR
- argCDRs := utils.RPCCDRsFilter{OriginIDs: []string{originID}}
- if err := sCncrRPC.Call(utils.APIerSv2GetCDRs, &argCDRs, &cdrs); err != nil {
- t.Error(err)
- } else if len(cdrs) != 1 {
- t.Errorf("unexpected number of CDRs returned: %d", len(cdrs))
- } else if cdrs[0].Usage != "1m30s" {
- t.Errorf("unexpected usage of CDR: %+v", cdrs[0])
- }
-}
+// // processCDR
+// argsCDR := &utils.CGREventWithOpts{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: fmt.Sprintf("TestSCncrCDR%s", originID),
+// Event: map[string]any{
+// utils.OriginID: originID,
+// },
+// },
+// }
+// var rplyCDR string
+// if err := sCncrRPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
+// argsCDR, &rplyCDR); err != nil {
+// t.Error(err)
+// } else if rplyCDR != utils.OK {
+// t.Errorf("received: <%s> to ProcessCDR", rplyCDR)
+// }
+// time.Sleep(20 * time.Millisecond)
+// var cdrs []*engine.ExternalCDR
+// argCDRs := utils.RPCCDRsFilter{OriginIDs: []string{originID}}
+// if err := sCncrRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &argCDRs, &cdrs); err != nil {
+// t.Error(err)
+// } else if len(cdrs) != 1 {
+// t.Errorf("unexpected number of CDRs returned: %d", len(cdrs))
+// } else if cdrs[0].Usage != "1m30s" {
+// t.Errorf("unexpected usage of CDR: %+v", cdrs[0])
+// }
+// }
diff --git a/general_tests/sessions_message_it_test.go b/general_tests/sessions_message_it_test.go
index 52d02de15..e7eaaf815 100644
--- a/general_tests/sessions_message_it_test.go
+++ b/general_tests/sessions_message_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -37,7 +38,7 @@ var (
sesMFDCfgDir string
sesMFDCfgPath string
sesMFDCfg *config.CGRConfig
- sesMFDRPC *rpc.Client
+ sesMFDRPC *birpc.Client
sesMFDTests = []func(t *testing.T){
testSesMFDItLoadConfig,
@@ -107,7 +108,7 @@ func testSesMFDItRPCConn(t *testing.T) {
func testSesMFDItSetChargers(t *testing.T) {
//add a default charger
var result string
- if err := sesMFDRPC.Call(utils.APIerSv1SetChargerProfile, &engine.ChargerProfile{
+ if err := sesMFDRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, &engine.ChargerProfile{
Tenant: "cgrates.org",
ID: "default",
RunID: utils.MetaDefault,
@@ -118,7 +119,7 @@ func testSesMFDItSetChargers(t *testing.T) {
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := sesMFDRPC.Call(utils.APIerSv1SetChargerProfile, &engine.ChargerProfile{
+ if err := sesMFDRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, &engine.ChargerProfile{
Tenant: "cgrates.org",
ID: "default2",
RunID: "default2",
@@ -133,7 +134,7 @@ func testSesMFDItSetChargers(t *testing.T) {
func testSesMFDItAddVoiceBalance(t *testing.T) {
var reply string
- if err := sesMFDRPC.Call(utils.APIerSv2SetBalance, utils.AttrSetBalance{
+ if err := sesMFDRPC.Call(context.Background(), utils.APIerSv2SetBalance, utils.AttrSetBalance{
Tenant: "cgrates.org",
Account: "1001",
BalanceType: utils.MetaSMS,
@@ -149,7 +150,7 @@ func testSesMFDItAddVoiceBalance(t *testing.T) {
}
var acnt engine.Account
- if err := sesMFDRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesMFDRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: "cgrates.org",
Account: "1001",
@@ -163,7 +164,7 @@ func testSesMFDItAddVoiceBalance(t *testing.T) {
}
func testSesMFDItProcessMessage(t *testing.T) {
var initRpl *sessions.V1ProcessMessageReply
- if err := sesMFDRPC.Call(utils.SessionSv1ProcessMessage,
+ if err := sesMFDRPC.Call(context.Background(), utils.SessionSv1ProcessMessage,
&sessions.V1ProcessMessageArgs{
Debit: true,
ForceDuration: true,
@@ -191,7 +192,7 @@ func testSesMFDItProcessMessage(t *testing.T) {
func testSesMFDItGetAccountAfter(t *testing.T) {
var acnt engine.Account
- if err := sesMFDRPC.Call(utils.APIerSv2GetAccount,
+ if err := sesMFDRPC.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{
Tenant: "cgrates.org",
Account: "1001",
diff --git a/general_tests/sessions_race_test.go b/general_tests/sessions_race_test.go
index 04904f14e..94f84d312 100644
--- a/general_tests/sessions_race_test.go
+++ b/general_tests/sessions_race_test.go
@@ -26,12 +26,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
var (
@@ -44,11 +45,11 @@ var (
resp *engine.Responder
)
-// this structure will iplement rpcclient.ClientConnector
+// this structure will iplement birpc.ClientConnector
// and will read forever the Event map
type raceConn struct{}
-func (_ raceConn) Call(serviceMethod string, args any, reply any) (err error) {
+func (_ raceConn) Call(_ *context.Context, serviceMethod string, args any, reply any) (err error) {
cgrev := args.(*utils.CGREvent)
for {
for k := range cgrev.Event {
@@ -77,11 +78,11 @@ func TestSessionSRace(t *testing.T) {
utils.Logger.SetLogLevel(7)
// connManager
- raceChan := make(chan rpcclient.ClientConnector, 1)
- chargerSChan := make(chan rpcclient.ClientConnector, 1)
- respChan := make(chan rpcclient.ClientConnector, 1)
+ raceChan := make(chan birpc.ClientConnector, 1)
+ chargerSChan := make(chan birpc.ClientConnector, 1)
+ respChan := make(chan birpc.ClientConnector, 1)
raceChan <- new(raceConn)
- connMgr = engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): raceChan,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chargerSChan,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder): respChan,
@@ -131,52 +132,54 @@ func TestSessionSRace(t *testing.T) {
// the race2
rply := new(sessions.V1InitSessionReply)
- if err = sS.BiRPCv1InitiateSession(nil, &sessions.V1InitSessionArgs{
- InitSession: true,
- ProcessThresholds: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testSSv1ItProcessEventInitiateSession",
- Event: map[string]any{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testSSv1ItProcessEvent",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- // utils.RatingSubject: "*zero1ms",
- // utils.CGRDebitInterval: 10,
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 0,
+ if err = sS.BiRPCv1InitiateSession(context.Background(),
+ &sessions.V1InitSessionArgs{
+ InitSession: true,
+ ProcessThresholds: true,
+ CGREvent: &utils.CGREvent{
+ Tenant: "cgrates.org",
+ ID: "testSSv1ItProcessEventInitiateSession",
+ Event: map[string]any{
+ utils.Tenant: "cgrates.org",
+ utils.ToR: utils.MetaVoice,
+ utils.OriginID: "testSSv1ItProcessEvent",
+ utils.RequestType: utils.MetaPrepaid,
+ utils.AccountField: "1001",
+ // utils.RatingSubject: "*zero1ms",
+ // utils.CGRDebitInterval: 10,
+ utils.Destination: "1002",
+ utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+ utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+ utils.Usage: 0,
+ },
},
- },
- }, rply); err != utils.ErrPartiallyExecuted {
+ }, rply); err != utils.ErrPartiallyExecuted {
t.Fatal(err)
}
// the race1
rply2 := new(sessions.V1ProcessEventReply)
- if err = sS.BiRPCv1ProcessEvent(nil, &sessions.V1ProcessEventArgs{
- Flags: []string{utils.ConcatenatedKey(utils.MetaRALs, utils.MetaInitiate),
- utils.MetaThresholds},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testSSv1ItProcessEventInitiateSession",
- Event: map[string]any{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testSSv1ItProcessEvent",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- // utils.RatingSubject: "*zero1ms",
- // utils.CGRDebitInterval: 10,
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 0,
+ if err = sS.BiRPCv1ProcessEvent(context.Background(),
+ &sessions.V1ProcessEventArgs{
+ Flags: []string{utils.ConcatenatedKey(utils.MetaRALs, utils.MetaInitiate),
+ utils.MetaThresholds},
+ CGREvent: &utils.CGREvent{
+ Tenant: "cgrates.org",
+ ID: "testSSv1ItProcessEventInitiateSession",
+ Event: map[string]any{
+ utils.Tenant: "cgrates.org",
+ utils.ToR: utils.MetaVoice,
+ utils.OriginID: "testSSv1ItProcessEvent",
+ utils.RequestType: utils.MetaPrepaid,
+ utils.AccountField: "1001",
+ // utils.RatingSubject: "*zero1ms",
+ // utils.CGRDebitInterval: 10,
+ utils.Destination: "1002",
+ utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+ utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+ utils.Usage: 0,
+ },
},
- },
- }, rply2); err != utils.ErrPartiallyExecuted {
+ }, rply2); err != utils.ErrPartiallyExecuted {
t.Fatal(err)
}
}
diff --git a/general_tests/sessions_tnt_change_cdr_it_test.go b/general_tests/sessions_tnt_change_cdr_it_test.go
index f731d2919..50c810cf5 100644
--- a/general_tests/sessions_tnt_change_cdr_it_test.go
+++ b/general_tests/sessions_tnt_change_cdr_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -39,7 +40,7 @@ var (
sesTntChngCdrsCfgDir string
sesTntChngCdrsCfgPath string
sesTntChngCdrsCfg *config.CGRConfig
- sesTntChngCdrsRPC *rpc.Client
+ sesTntChngCdrsRPC *birpc.Client
sesTntChngCdrsTests = []func(t *testing.T){
testSesTntChngCdrsLoadConfig,
@@ -107,7 +108,7 @@ func testSesTntChngCdrsRPCConn(t *testing.T) {
func testSesTntChngCdrsSetChargerProfile1(t *testing.T) {
var reply *engine.ChargerProfile
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -122,13 +123,13 @@ func testSesTntChngCdrsSetChargerProfile1(t *testing.T) {
}
var result string
- if err := sesTntChngRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
@@ -138,7 +139,7 @@ func testSesTntChngCdrsSetChargerProfile1(t *testing.T) {
func testSesTntChngCdrsSetChargerProfile2(t *testing.T) {
var reply *engine.ChargerProfile
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -153,13 +154,13 @@ func testSesTntChngCdrsSetChargerProfile2(t *testing.T) {
}
var result string
- if err := sesTntChngRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
@@ -179,7 +180,7 @@ func testChargerSCdrsAuthProcessEventAuth(t *testing.T) {
},
}
var reply string
- if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -196,7 +197,7 @@ func testChargerSCdrsAuthProcessEventAuth(t *testing.T) {
},
}
var reply2 string
- if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance2, &reply2); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance2, &reply2); err != nil {
t.Error(err)
} else if reply2 != utils.OK {
t.Errorf("Received: %s", reply2)
@@ -218,7 +219,7 @@ func testChargerSCdrsAuthProcessEventAuth(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReply
- if err := sesTntChngRPC.Call(utils.CDRsV1ProcessEvent, ev, &rply); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.CDRsV1ProcessEvent, ev, &rply); err != nil {
t.Fatal(err)
}
expected := &sessions.V1AuthorizeReply{
diff --git a/general_tests/sessions_tnt_change_it_test.go b/general_tests/sessions_tnt_change_it_test.go
index e0295a656..34a81c909 100644
--- a/general_tests/sessions_tnt_change_it_test.go
+++ b/general_tests/sessions_tnt_change_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -39,7 +40,7 @@ var (
sesTntChngCfgDir string
sesTntChngCfgPath string
sesTntChngCfg *config.CGRConfig
- sesTntChngRPC *rpc.Client
+ sesTntChngRPC *birpc.Client
sesTntChngTests = []func(t *testing.T){
testSesTntChngLoadConfig,
@@ -107,7 +108,7 @@ func testSesTntChngRPCConn(t *testing.T) {
func testSesTntChngSetChargerProfile1(t *testing.T) {
var reply *engine.ChargerProfile
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -122,13 +123,13 @@ func testSesTntChngSetChargerProfile1(t *testing.T) {
}
var result string
- if err := sesTntChngRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
@@ -138,7 +139,7 @@ func testSesTntChngSetChargerProfile1(t *testing.T) {
func testSesTntChngSetChargerProfile2(t *testing.T) {
var reply *engine.ChargerProfile
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatal(err)
@@ -153,13 +154,13 @@ func testSesTntChngSetChargerProfile2(t *testing.T) {
}
var result string
- if err := sesTntChngRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
@@ -179,7 +180,7 @@ func testChargerSAuthProcessEventAuth(t *testing.T) {
},
}
var reply string
- if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -196,7 +197,7 @@ func testChargerSAuthProcessEventAuth(t *testing.T) {
},
}
var reply2 string
- if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance2, &reply2); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance2, &reply2); err != nil {
t.Error(err)
} else if reply2 != utils.OK {
t.Errorf("Received: %s", reply2)
@@ -219,7 +220,7 @@ func testChargerSAuthProcessEventAuth(t *testing.T) {
},
}
var rply sessions.V1AuthorizeReply
- if err := sesTntChngRPC.Call(utils.SessionSv1AuthorizeEvent, ev, &rply); err != nil {
+ if err := sesTntChngRPC.Call(context.Background(), utils.SessionSv1AuthorizeEvent, ev, &rply); err != nil {
t.Fatal(err)
}
expected := &sessions.V1AuthorizeReply{
diff --git a/general_tests/shared_client_lock_it_test.go b/general_tests/shared_client_lock_it_test.go
index 815047396..44d49373f 100644
--- a/general_tests/shared_client_lock_it_test.go
+++ b/general_tests/shared_client_lock_it_test.go
@@ -25,11 +25,12 @@ import (
"crypto/rand"
"fmt"
"math/big"
- "net/rpc"
"os"
"path/filepath"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -39,7 +40,7 @@ import (
var (
clntLockCfgPath string
clntLockCfg *config.CGRConfig
- clntLockRPC *rpc.Client
+ clntLockRPC *birpc.Client
clntLockDelay int
sTestsClntLock = []func(t *testing.T){
@@ -148,7 +149,7 @@ func testSharedClientLockRpcConn(t *testing.T) {
func testSharedClientLockSetProfiles(t *testing.T) {
var reply string
- err := clntLockRPC.Call(utils.APIerSv1SetChargerProfile,
+ err := clntLockRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile,
&v1.ChargerWithAPIOpts{
ChargerProfile: &engine.ChargerProfile{
Tenant: "cgrates.org",
@@ -163,7 +164,7 @@ func testSharedClientLockSetProfiles(t *testing.T) {
t.Error("Unexpected reply returned", reply)
}
- err = clntLockRPC.Call(utils.APIerSv1SetAttributeProfile,
+ err = clntLockRPC.Call(context.Background(), utils.APIerSv1SetAttributeProfile,
&engine.AttributeProfileWithAPIOpts{
AttributeProfile: &engine.AttributeProfile{
Tenant: "cgrates.org",
@@ -197,7 +198,7 @@ func testSharedClientLockCDRsProcessEvent(t *testing.T) {
},
}
var reply string
- err = clntLockRPC.Call(utils.CDRsV1ProcessEvent, argsEv, &reply)
+ err = clntLockRPC.Call(context.Background(), utils.CDRsV1ProcessEvent, argsEv, &reply)
if err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
t.Errorf("expected: <%v>,\nreceived: <%v>",
utils.ErrPartiallyExecuted, err)
diff --git a/general_tests/suretax_it_test.go b/general_tests/suretax_it_test.go
index b8ea670e5..b810e0632 100644
--- a/general_tests/suretax_it_test.go
+++ b/general_tests/suretax_it_test.go
@@ -23,11 +23,12 @@ package general_tests
import (
"flag"
- "net/rpc"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -43,7 +44,7 @@ var (
tpDir = flag.String("tp_dir", "", "CGR config dir path here")
stiCfg *config.CGRConfig
- stiRpc *rpc.Client
+ stiRpc *birpc.Client
stiLoadInst utils.LoadInstance
sTestSTI = []func(t *testing.T){
@@ -108,7 +109,7 @@ func testSTIRpcConn(t *testing.T) {
// Load the tariff plan, creating accounts and their balances
func testSTILoadTariffPlanFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: *tpDir}
- if err := stiRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &stiLoadInst); err != nil {
+ if err := stiRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &stiLoadInst); err != nil {
t.Error(err)
} else if stiLoadInst.RatingLoadID == "" || stiLoadInst.AccountingLoadID == "" {
t.Error("Empty loadId received, loadInstance: ", stiLoadInst)
@@ -121,7 +122,7 @@ func testSTICacheStats(t *testing.T) {
var rcvStats *utils.CacheStats
expectedStats := &utils.CacheStats{Destinations: 1, RatingPlans: 1, RatingProfiles: 1}
var args utils.AttrCacheStats
- if err := stiRpc.Call(utils.APIerSv2GetCacheStats, args, &rcvStats); err != nil {
+ if err := stiRpc.Call(context.Background(), utils.APIerSv2GetCacheStats, args, &rcvStats); err != nil {
t.Error("Got error on APIerSv2.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling APIerSv2.GetCacheStats expected: %+v, received: %+v", expectedStats, rcvStats)
@@ -137,7 +138,7 @@ func testSTIProcessExternalCdr(t *testing.T) {
Usage: "15s", PDD: "7.0", ExtraFields: map[string]string{"CustomerNumber": "000000534", "ZipCode": ""},
}
var reply string
- if err := stiRpc.Call(utils.CDRsV1ProcessExternalCDR, cdr, &reply); err != nil {
+ if err := stiRpc.Call(context.Background(), utils.CDRsV1ProcessExternalCDR, cdr, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -148,7 +149,7 @@ func testSTIProcessExternalCdr(t *testing.T) {
func testSTIGetCdrs(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, Accounts: []string{"1001"}}
- if err := stiRpc.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := stiRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -158,7 +159,7 @@ func testSTIGetCdrs(t *testing.T) {
}
}
req = utils.RPCCDRsFilter{RunIDs: []string{utils.MetaSureTax}, Accounts: []string{"1001"}}
- if err := stiRpc.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := stiRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
diff --git a/general_tests/tls_it_test.go b/general_tests/tls_it_test.go
index 0c84da9c2..645b7c115 100644
--- a/general_tests/tls_it_test.go
+++ b/general_tests/tls_it_test.go
@@ -25,6 +25,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -85,22 +86,22 @@ func testTLSStartEngine(t *testing.T) {
func testTLSRpcConn(t *testing.T) {
var err error
- tlsRpcClientJson, err = rpcclient.NewRPCClient(utils.TCP, "localhost:2022", true, tlsCfg.TLSCfg().ClientKey,
- tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
+ tlsRpcClientJson, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, "localhost:2022", true, tlsCfg.TLSCfg().ClientKey,
+ tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3, 0, utils.FibDuration,
time.Second, 5*time.Minute, rpcclient.JSONrpc, nil, false, nil)
if err != nil {
t.Errorf("Error: %s when dialing", err)
}
- tlsRpcClientGob, err = rpcclient.NewRPCClient(utils.TCP, "localhost:2023", true, tlsCfg.TLSCfg().ClientKey,
- tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
+ tlsRpcClientGob, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, "localhost:2023", true, tlsCfg.TLSCfg().ClientKey,
+ tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3, 0, utils.FibDuration,
time.Second, 5*time.Minute, rpcclient.GOBrpc, nil, false, nil)
if err != nil {
t.Errorf("Error: %s when dialing", err)
}
- tlsHTTPJson, err = rpcclient.NewRPCClient(utils.TCP, "https://localhost:2280/jsonrpc", true, tlsCfg.TLSCfg().ClientKey,
- tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
+ tlsHTTPJson, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, "https://localhost:2280/jsonrpc", true, tlsCfg.TLSCfg().ClientKey,
+ tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3, 0, utils.FibDuration,
time.Second, 5*time.Minute, rpcclient.HTTPjson, nil, false, nil)
if err != nil {
t.Errorf("Error: %s when dialing", err)
@@ -110,28 +111,28 @@ func testTLSRpcConn(t *testing.T) {
func testTLSPing(t *testing.T) {
var reply string
- if err := tlsRpcClientJson.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := tlsRpcClientJson.Call(context.Background(), utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := tlsRpcClientGob.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := tlsRpcClientGob.Call(context.Background(), utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := tlsHTTPJson.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
+ if err := tlsHTTPJson.Call(context.Background(), utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
t.Error(err)
} else if reply != utils.Pong {
t.Errorf("Received: %s", reply)
}
- if err := tlsRpcClientJson.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
+ if err := tlsRpcClientJson.Call(context.Background(), utils.DispatcherSv1Ping, "", &reply); err == nil {
t.Error(err)
}
- if err := tlsRpcClientGob.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
+ if err := tlsRpcClientGob.Call(context.Background(), utils.DispatcherSv1Ping, "", &reply); err == nil {
t.Error(err)
}
- if err := tlsHTTPJson.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
+ if err := tlsHTTPJson.Call(context.Background(), utils.DispatcherSv1Ping, "", &reply); err == nil {
t.Error(err)
}
@@ -160,7 +161,7 @@ func testTLSPing(t *testing.T) {
},
}
var rply sessions.V1InitReplyWithDigest
- if err := tlsHTTPJson.Call(utils.SessionSv1InitiateSessionWithDigest,
+ if err := tlsHTTPJson.Call(context.Background(), utils.SessionSv1InitiateSessionWithDigest,
args, &rply); err == nil {
t.Error(err)
}
diff --git a/general_tests/tp_it_test.go b/general_tests/tp_it_test.go
index 47370713e..af9d76be3 100644
--- a/general_tests/tp_it_test.go
+++ b/general_tests/tp_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
@@ -38,7 +39,7 @@ var (
tpCfgPath string
tpCfgDIR string
tpCfg *config.CGRConfig
- tpRPC *rpc.Client
+ tpRPC *birpc.Client
tpLoadInst utils.LoadInstance // Share load information between tests
sTestTp = []func(t *testing.T){
@@ -123,7 +124,7 @@ func testTpRpcConn(t *testing.T) {
// Load the tariff plan, creating accounts and their balances
func testTpLoadTariffPlanFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")}
- if err := tpRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -143,14 +144,14 @@ func testTpBalanceCounter(t *testing.T) {
},
}
var cc engine.CallCost
- if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.ResponderDebit, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.GetDuration() != 20*time.Second {
t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
}
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
} else if acnt.UnitCounters[utils.MetaMonetary][1].Counters[0].Value != 20.0 {
t.Errorf("Calling APIerSv2.GetBalance received: %s", utils.ToIJSON(acnt))
@@ -159,13 +160,13 @@ func testTpBalanceCounter(t *testing.T) {
func testTpActionTriggers(t *testing.T) {
var atrs engine.ActionTriggers
- if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{}}, &atrs); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{}}, &atrs); err != nil {
t.Error("Got error on APIerSv1.GetActionTriggers: ", err.Error())
} else if len(atrs) != 4 {
t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
}
var reply string
- if err := tpRPC.Call(utils.APIerSv1SetActionTrigger, v1.AttrSetActionTrigger{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1SetActionTrigger, v1.AttrSetActionTrigger{
GroupID: "TestATR",
UniqueID: "Unique atr id",
ActionTrigger: map[string]any{
@@ -176,12 +177,12 @@ func testTpActionTriggers(t *testing.T) {
} else if reply != utils.OK {
t.Errorf("Calling v1.SetActionTrigger got: %v", reply)
}
- if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{}}, &atrs); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{}}, &atrs); err != nil {
t.Error(err)
} else if len(atrs) != 5 {
t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
}
- if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err != nil {
t.Error("Got error on APIerSv1.GetActionTriggers: ", err.Error())
} else if len(atrs) != 1 {
t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
@@ -203,7 +204,7 @@ func testTpActionTriggers(t *testing.T) {
func testTpZeroCost(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1012"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
}
if acnt == nil {
@@ -228,12 +229,12 @@ func testTpZeroCost(t *testing.T) {
},
}
var cc engine.CallCost
- if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.ResponderDebit, cd, &cc); err != nil {
t.Error("Got error on Responder.Debit: ", err.Error())
} else if cc.GetDuration() != 20*time.Second {
t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
} else if acnt.BalanceMap[utils.MetaMonetary][0].Value != balanceValueBefore {
t.Errorf("Calling APIerSv2.GetAccount received: %s", utils.ToIJSON(acnt))
@@ -255,14 +256,14 @@ func testTpZeroNegativeCost(t *testing.T) {
},
}
var cc engine.CallCost
- if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.ResponderDebit, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.GetDuration() != 20*time.Second {
t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1013"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
} else if acnt.BalanceMap[utils.MetaVoice][0].Value != 100.0 {
t.Errorf("Calling APIerSv2.GetAccount received: %s", utils.ToIJSON(acnt))
@@ -271,39 +272,39 @@ func testTpZeroNegativeCost(t *testing.T) {
func testTpExecuteActionCgrRpc(t *testing.T) {
var reply string
- if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{ActionsId: "RPC"}, &reply); err != nil {
- t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, utils.AttrExecuteAction{ActionsId: "RPC"}, &reply); err != nil {
+ t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling ExecuteAction got reply: %s", reply)
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1013"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
}
}
func testTpExecuteActionCgrRpcAcc(t *testing.T) {
var reply string
- if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, utils.AttrExecuteAction{
Tenant: "cgrates.org",
Account: "1016",
ActionsId: "RPC_DEST",
}, &reply); err != nil {
- t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
+ t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling ExecuteAction got reply: %s", reply)
}
var dests []*engine.Destination
attrs := &v2.AttrGetDestinations{DestinationIDs: []string{}}
- if err := tpRPC.Call(utils.APIerSv2GetDestinations, attrs, &dests); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetDestinations, attrs, &dests); err != nil {
t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
}
}
func testTpCreateExecuteActionMatch(t *testing.T) {
var reply string
- if err := tpRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
Actions: []*utils.TPAction{
{
@@ -319,27 +320,27 @@ func testTpCreateExecuteActionMatch(t *testing.T) {
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.SetActions got reply: %s", reply)
}
- if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, utils.AttrExecuteAction{
Tenant: "cgrates.org",
Account: "1015",
ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
}, &reply); err != nil {
- t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
+ t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling ExecuteAction got reply: %s", reply)
}
- if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv1ExecuteAction, utils.AttrExecuteAction{
Tenant: "cgrates.org",
Account: "1015",
ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
}, &reply); err != nil {
- t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
+ t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling ExecuteAction got reply: %s", reply)
}
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1015"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
}
if len(acnt.BalanceMap) != 1 ||
@@ -351,7 +352,7 @@ func testTpCreateExecuteActionMatch(t *testing.T) {
func testTpSetRemoveActions(t *testing.T) {
var reply string
- if err := tpRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2SetActions, &utils.AttrSetActions{
ActionsId: "TO_BE_DELETED",
Actions: []*utils.TPAction{
{
@@ -368,21 +369,21 @@ func testTpSetRemoveActions(t *testing.T) {
t.Errorf("Calling APIerSv2.SetActions got reply: %s", reply)
}
actionsMap := make(map[string]engine.Actions)
- if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetActions, &v2.AttrGetActions{
ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
}, &actionsMap); err != nil {
t.Error("Got error on APIerSv2.GetActions: ", err.Error())
} else if len(actionsMap) != 1 {
t.Errorf("Calling APIerSv2.GetActions got reply: %s", utils.ToIJSON(actionsMap))
}
- if err := tpRPC.Call(utils.APIerSv2RemoveActions, v1.AttrRemoveActions{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2RemoveActions, v1.AttrRemoveActions{
ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
}, &reply); err != nil {
t.Error("Got error on APIerSv2.RemoveActions: ", err.Error())
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.RemoveActions got reply: %s", reply)
}
- if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetActions, &v2.AttrGetActions{
ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
}, &actionsMap); err == nil {
t.Error("no error on APIerSv2.GetActions: ", err)
@@ -391,7 +392,7 @@ func testTpSetRemoveActions(t *testing.T) {
func testTpRemoveActionsRefenced(t *testing.T) {
actionsMap := make(map[string]engine.Actions)
- if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetActions, &v2.AttrGetActions{
ActionIDs: []string{"TOPUP_VOICE"},
}, &actionsMap); err != nil {
t.Error("Got error on APIerSv2.GetActions: ", err.Error())
@@ -399,7 +400,7 @@ func testTpRemoveActionsRefenced(t *testing.T) {
t.Errorf("Calling APIerSv2.GetActions got reply: %s", utils.ToIJSON(actionsMap))
}
var reply string
- if err := tpRPC.Call(utils.APIerSv2RemoveActions, v1.AttrRemoveActions{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2RemoveActions, v1.AttrRemoveActions{
ActionIDs: []string{"TOPUP_VOICE"},
}, &reply); err != nil {
t.Error("Error on APIerSv2.RemoveActions: ", err.Error())
@@ -407,7 +408,7 @@ func testTpRemoveActionsRefenced(t *testing.T) {
t.Errorf("Calling APIerSv2.RemoveActions got reply: %s", reply)
}
/*
- if err := tpRPC.Call(utils.APIerSv2GetActions, v2.AttrGetActions{
+ if err := tpRPC.Call(context.Background(),utils.APIerSv2GetActions, v2.AttrGetActions{
ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
}, &actionsMap); err == nil {
t.Error("no error on APIerSv2.GetActions: ", err)
@@ -418,13 +419,13 @@ func testTpRemoveActionsRefenced(t *testing.T) {
func testTpApierResetAccountActionTriggers(t *testing.T) {
var acnt engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1005"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.ActionTriggers[0].Executed != true {
t.Skip("Skipping test since Executed is not yet true")
}
var reply string
- if err := tpRPC.Call(utils.APIerSv2ResetAccountActionTriggers, v1.AttrResetAccountActionTriggers{
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2ResetAccountActionTriggers, v1.AttrResetAccountActionTriggers{
Tenant: "cgrates.org",
Account: "1005",
GroupID: "STANDARD_TRIGGERS",
@@ -434,7 +435,7 @@ func testTpApierResetAccountActionTriggers(t *testing.T) {
} else if reply != utils.OK {
t.Errorf("Calling APIerSv2.ResetAccountActionTriggers got reply: %s", reply)
}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := tpRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.ActionTriggers[0].Executed == false {
t.Errorf("wrong action trigger executed flag: %s", utils.ToIJSON(acnt.ActionTriggers))
diff --git a/general_tests/tut_smgeneric_it_test.go b/general_tests/tut_smgeneric_it_test.go
index 646f8a54d..7bfe05130 100644
--- a/general_tests/tut_smgeneric_it_test.go
+++ b/general_tests/tut_smgeneric_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -38,7 +39,7 @@ var (
tutSMGCfgPath string
tutSMGCfgDIR string
tutSMGCfg *config.CGRConfig
- tutSMGRpc *rpc.Client
+ tutSMGRpc *birpc.Client
smgLoadInst utils.LoadInstance // Share load information between tests
sTestTutSMG = []func(t *testing.T){
@@ -115,7 +116,7 @@ func testTutSMGRpcConn(t *testing.T) {
// Load the tariff plan, creating accounts and their balances
func testTutSMGLoadTariffPlanFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := tutSMGRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &smgLoadInst); err != nil {
+ if err := tutSMGRpc.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &smgLoadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -124,7 +125,7 @@ func testTutSMGLoadTariffPlanFromFolder(t *testing.T) {
// Check loaded stats
func testTutSMGCacheStats(t *testing.T) {
var reply string
- if err := tutSMGRpc.Call(utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
+ if err := tutSMGRpc.Call(context.Background(), utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Error(reply)
@@ -171,7 +172,7 @@ func testTutSMGCacheStats(t *testing.T) {
expectedStats[utils.CacheAttributeFilterIndexes].Groups = 2
expectedStats[utils.CacheReverseFilterIndexes].Items = 15
expectedStats[utils.CacheReverseFilterIndexes].Groups = 13
- if err := tutSMGRpc.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+ if err := tutSMGRpc.Call(context.Background(), utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling APIerSv2.CacheSv1 expected: %+v,\n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
diff --git a/general_tests/tutorial2_calls_test.go b/general_tests/tutorial2_calls_test.go
index fffd40a19..2d092c582 100644
--- a/general_tests/tutorial2_calls_test.go
+++ b/general_tests/tutorial2_calls_test.go
@@ -40,7 +40,7 @@ package general_tests
// )
// var tutorial2CallsCfg *config.CGRConfig
-// var tutorial2CallsRpc *rpc.Client
+// var tutorial2CallsRpc *birpc.Client
// var tutorial2CallsPjSuaListener *os.File
// var tutorial2FSConfig = flag.String("tutorial2FSConfig", "/usr/share/cgrates/tutorial_tests/fs_evsock", "FreeSwitch tutorial folder")
// var tutorial2OptConf string
@@ -166,7 +166,7 @@ package general_tests
// func testTutorial2CallLoadTariffPlanFromFolder(t *testing.T) {
// var reply string
// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
-// if err := tutorial2CallsRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
// t.Error(err)
// }
// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -176,14 +176,14 @@ package general_tests
// func testTutorial2CallAccountsBefore(t *testing.T) {
// var reply *engine.Account
// attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
-// if err := tutorial2CallsRpc.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.APIerSv2GetAccount, attrs, &reply); err != nil {
// t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
// } else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() != 10.0 {
// t.Errorf("Calling APIerSv1.GetBalance received: %f", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
// }
// var reply2 *engine.Account
// attrs2 := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1002"}
-// if err := tutorial2CallsRpc.Call(utils.APIerSv2GetAccount, attrs2, &reply2); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.APIerSv2GetAccount, attrs2, &reply2); err != nil {
// t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
// } else if reply2.BalanceMap[utils.MetaMonetary].GetTotalValue() != 10.0 {
// t.Errorf("Calling APIerSv1.GetBalance received: %f", reply2.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -196,13 +196,13 @@ package general_tests
// utils.MetaTCC: utils.NotAvailable,
// utils.MetaTCD: utils.NotAvailable,
// }
-// if err := tutorial2CallsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.StatSv1GetQueueStringMetrics,
// &utils.TenantID{Tenant: "cgrates.org", ID: "Stats2"}, &metrics); err != nil {
// t.Error(err)
// } else if !reflect.DeepEqual(expectedMetrics, metrics) {
// t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
// }
-// if err := tutorial2CallsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.StatSv1GetQueueStringMetrics,
// &utils.TenantID{Tenant: "cgrates.org", ID: "Stats2_1"}, &metrics); err != nil {
// t.Error(err)
// } else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -224,7 +224,7 @@ package general_tests
// },
// },
// }
-// if err := tutorial2CallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
// t.Fatal(err)
// } else if len(*rs) != 1 {
// t.Fatalf("Resources: %+v", utils.ToJSON(rs))
@@ -240,7 +240,7 @@ package general_tests
// func testTutorial2CallCheckThreshold1001Before(t *testing.T) {
// var td engine.Threshold
// eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001", Hits: 0}
-// if err := tutorial2CallsRpc.Call(utils.ThresholdSv1GetThreshold,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ThresholdSv1GetThreshold,
// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &td); err != nil {
// t.Error(err)
// } else if !reflect.DeepEqual(eTd, td) {
@@ -251,7 +251,7 @@ package general_tests
// func testTutorial2CallCheckThreshold1002Before(t *testing.T) {
// var td engine.Threshold
// eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1002", Hits: 0}
-// if err := tutorial2CallsRpc.Call(utils.ThresholdSv1GetThreshold,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ThresholdSv1GetThreshold,
// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1002"}, &td); err != nil {
// t.Error(err)
// } else if !reflect.DeepEqual(eTd, td) {
@@ -299,7 +299,7 @@ package general_tests
// Destination: "1002",
// },
// }
-// if err := tutorial2CallsRpc.Call(utils.SessionSv1GetActiveSessions,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.SessionSv1GetActiveSessions,
// nil, &reply); err != nil {
// t.Error("Got error on SessionSv1.GetActiveSessions: ", err.Error())
// } else {
@@ -334,7 +334,7 @@ package general_tests
// },
// },
// }
-// if err := tutorial2CallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
// t.Fatal(err)
// } else if len(*rs) != 1 {
// t.Fatalf("Resources: %+v", utils.ToJSON(rs))
@@ -352,7 +352,7 @@ package general_tests
// func testTutorial2CallAccount1001(t *testing.T) {
// var reply *engine.Account
// attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
-// if err := tutorial2CallsRpc.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.APIerSv2GetAccount, attrs, &reply); err != nil {
// t.Error(err.Error())
// } else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() == 10.0 { // Make sure we debitted
// t.Errorf("Expected: 10, received: %+v", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -365,7 +365,7 @@ package general_tests
// func testTutorial2Call1001Cdrs(t *testing.T) {
// var reply []*engine.ExternalCDR
// req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, Accounts: []string{"1001"}}
-// if err := tutorial2CallsRpc.Call(utils.APIerSv2GetCDRs, &req, &reply); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.APIerSv2GetCDRs, &req, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(reply) != 2 {
// t.Error("Unexpected number of CDRs returned: ", len(reply))
@@ -413,7 +413,7 @@ package general_tests
// utils.MetaTCD: "37s",
// }
-// if err := tutorial2CallsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.StatSv1GetQueueStringMetrics,
// &utils.TenantID{Tenant: "cgrates.org", ID: "Stats"}, &metrics); err != nil {
// t.Fatal(err)
// }
@@ -439,7 +439,7 @@ package general_tests
// },
// },
// }
-// if err := tutorial2CallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
// t.Fatal(err)
// } else if len(*rs) != 1 {
// t.Fatalf("Resources: %+v", rs)
@@ -453,7 +453,7 @@ package general_tests
// func testTutorial2CallCheckThreshold1001After(t *testing.T) {
// var td engine.Threshold
-// if err := tutorial2CallsRpc.Call(utils.ThresholdSv1GetThreshold,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ThresholdSv1GetThreshold,
// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &td); err != nil &&
// err.Error() != utils.ErrNotFound.Error() {
// t.Error(err)
@@ -463,7 +463,7 @@ package general_tests
// func testTutorial2CallCheckThreshold1002After(t *testing.T) {
// var td engine.Threshold
// eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1002", Hits: 4}
-// if err := tutorial2CallsRpc.Call(utils.ThresholdSv1GetThreshold,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ThresholdSv1GetThreshold,
// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1002"}, &td); err != nil {
// t.Error(err)
// } else if !reflect.DeepEqual(eTd.Tenant, td.Tenant) {
@@ -478,7 +478,7 @@ package general_tests
// func testTutorial2CallSyncSessions(t *testing.T) {
// var reply *[]*sessions.ExternalSession
// // activeSessions shouldn't be active
-// if err := tutorial2CallsRpc.Call(utils.SessionSv1GetActiveSessions,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.SessionSv1GetActiveSessions,
// nil, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
// t.Error("Got error on SessionSv1.GetActiveSessions: ", err)
// }
@@ -496,7 +496,7 @@ package general_tests
// }
// time.Sleep(time.Second)
// // get active sessions
-// if err := tutorial2CallsRpc.Call(utils.SessionSv1GetActiveSessions,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.SessionSv1GetActiveSessions,
// nil, &reply); err != nil {
// t.Error("Got error on SessionSv1.GetActiveSessions: ", err.Error())
// } else if len(*reply) != 4 { // expect to have 4 sessions ( two for 1001 to 1003 *raw and *default and two from 1001 to 1002 *raw and *default)
@@ -516,7 +516,7 @@ package general_tests
// },
// },
// }
-// if err := tutorial2CallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
// t.Fatal(err)
// } else if len(*rs) != 1 {
// t.Fatalf("Resources: %+v", utils.ToJSON(rs))
@@ -540,7 +540,7 @@ package general_tests
// time.Sleep(2 * time.Second)
// // activeSessions shouldn't be active
-// if err := tutorial2CallsRpc.Call(utils.SessionSv1GetActiveSessions,
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.SessionSv1GetActiveSessions,
// nil, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
// t.Errorf("Got error on SessionSv1.GetActiveSessions: %v and reply: %s", err, utils.ToJSON(reply))
// }
@@ -559,7 +559,7 @@ package general_tests
// RunIDs: []string{utils.MetaDefault},
// Accounts: []string{"1001"},
// }
-// if err := tutorial2CallsRpc.Call(utils.APIerSv2GetCDRs, &req, &rplCdrs); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.APIerSv2GetCDRs, &req, &rplCdrs); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if len(rplCdrs) != numberOfCDR { // cdr from sync session + cdr from before
// t.Fatal("Unexpected number of CDRs returned: ", len(rplCdrs), utils.ToJSON(rplCdrs))
@@ -581,7 +581,7 @@ package general_tests
// //check if resource was released
// var rsAfter *engine.Resources
-// if err := tutorial2CallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rsAfter); err != nil {
+// if err := tutorial2CallsRpc.Call(context.Background(),utils.ResourceSv1GetResourcesForEvent, args, &rsAfter); err != nil {
// t.Fatal(err)
// } else if len(*rsAfter) != 1 {
// t.Fatalf("Resources: %+v", rsAfter)
diff --git a/general_tests/tutorial2_it_test.go b/general_tests/tutorial2_it_test.go
index 0a113e3ed..48959c9b6 100644
--- a/general_tests/tutorial2_it_test.go
+++ b/general_tests/tutorial2_it_test.go
@@ -22,11 +22,12 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
@@ -37,7 +38,7 @@ import (
var (
tutCfgPath string
tutCfg *config.CGRConfig
- tutRpc *rpc.Client
+ tutRpc *birpc.Client
tutCfgDir string //run tests for specific configuration
tutDelay int
)
@@ -117,7 +118,7 @@ func testTutFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{
FolderPath: path.Join(*dataDir, "tariffplans", "tutorial2")}
- if err := tutRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder,
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder,
attrs, &reply); err != nil {
t.Error(err)
}
@@ -133,7 +134,7 @@ func testTutGetCost(t *testing.T) {
Usage: "45s",
}
var rply *engine.EventCost
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.550000 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -145,7 +146,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "2019-03-11T09:00:00Z",
Usage: "45s",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 1.4 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -164,7 +165,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "*now",
Usage: "45s",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 1.4 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -176,7 +177,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "2020-01-01T21:00:00Z",
Usage: "45s",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.55 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -188,7 +189,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "2019-03-11T21:00:00Z",
Usage: "45s",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.55 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -200,7 +201,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "2019-03-11T09:00:00Z",
Usage: "1m",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err == nil ||
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err == nil ||
err.Error() != "SERVER_ERROR: UNAUTHORIZED_DESTINATION" {
t.Error("Unexpected nil error received: ", err)
}
@@ -211,7 +212,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "*now",
Usage: "2048",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 2.0 { // FixMe: missing ConnectFee out of Cost
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -224,7 +225,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "*now",
Usage: "1",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.1 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -237,7 +238,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "*now",
Usage: "1",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.2 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -250,7 +251,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "*now",
Usage: "1",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err == nil ||
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err == nil ||
err.Error() != "SERVER_ERROR: UNAUTHORIZED_DESTINATION" {
t.Error("Unexpected nil error received: ", err)
}
@@ -262,7 +263,7 @@ func testTutGetCost(t *testing.T) {
AnswerTime: "*now",
Usage: "5m",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.1 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -275,7 +276,7 @@ func testTutGetCost(t *testing.T) {
Usage: "45s",
Category: "reseller1",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.1 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -288,7 +289,7 @@ func testTutGetCost(t *testing.T) {
Usage: "10m45s",
Category: "reseller1",
}
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.1 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
@@ -298,7 +299,7 @@ func testTutGetCost(t *testing.T) {
func testTutAccounts(t *testing.T) {
// make sure Account was created
var acnt *engine.Account
- if err := tutRpc.Call(utils.APIerSv2GetAccount,
+ if err := tutRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
&acnt); err != nil {
t.Fatal(err)
@@ -327,10 +328,10 @@ func testTutAccounts(t *testing.T) {
},
}
var rplySetBlc string
- if err := tutRpc.Call(utils.APIerSv1SetBalance, attrBlc, &rplySetBlc); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1SetBalance, attrBlc, &rplySetBlc); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
}
- if err := tutRpc.Call(utils.APIerSv2GetAccount,
+ if err := tutRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
&acnt); err != nil {
t.Error(err)
@@ -347,10 +348,10 @@ func testTutAccounts(t *testing.T) {
utils.ID: utils.MetaDefault,
},
}
- if err := tutRpc.Call(utils.APIerSv1SetBalance, attrBlc, &rplySetBlc); err != nil {
+ if err := tutRpc.Call(context.Background(), utils.APIerSv1SetBalance, attrBlc, &rplySetBlc); err != nil {
t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
}
- if err := tutRpc.Call(utils.APIerSv2GetAccount,
+ if err := tutRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
&acnt); err != nil {
t.Error(err)
@@ -359,7 +360,7 @@ func testTutAccounts(t *testing.T) {
}
// enable the account again
var rplySetAcnt string
- if err := tutRpc.Call(utils.APIerSv2SetAccount,
+ if err := tutRpc.Call(context.Background(), utils.APIerSv2SetAccount,
&v2.AttrSetAccount{
Tenant: "cgrates.org",
Account: "1001",
@@ -370,7 +371,7 @@ func testTutAccounts(t *testing.T) {
t.Error(err)
}
acnt = new(engine.Account)
- if err := tutRpc.Call(utils.APIerSv2GetAccount,
+ if err := tutRpc.Call(context.Background(), utils.APIerSv2GetAccount,
&utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
&acnt); err != nil {
t.Error(err)
diff --git a/general_tests/tutorial_calls_test.go b/general_tests/tutorial_calls_test.go
index 7baf4d526..4297440e0 100644
--- a/general_tests/tutorial_calls_test.go
+++ b/general_tests/tutorial_calls_test.go
@@ -23,8 +23,6 @@ package general_tests
import (
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
"os"
"path"
"reflect"
@@ -33,6 +31,9 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
@@ -40,7 +41,7 @@ import (
)
var tutorialCallsCfg *config.CGRConfig
-var tutorialCallsRpc *rpc.Client
+var tutorialCallsRpc *birpc.Client
var tutorialCallsPjSuaListener *os.File
var fsConfig = flag.String("fsConfig", "/usr/share/cgrates/tutorial_tests/fs_evsock", "FreeSwitch tutorial folder")
var kamConfig = flag.String("kamConfig", "/usr/share/cgrates/tutorial_tests/kamevapi", "Kamailio tutorial folder")
@@ -253,7 +254,7 @@ func testCallRpcConn(t *testing.T) {
func testCallLoadTariffPlanFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := tutorialCallsRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -263,21 +264,21 @@ func testCallLoadTariffPlanFromFolder(t *testing.T) {
func testCallAccountsBefore(t *testing.T) {
var reply *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := tutorialCallsRpc.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &reply); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
} else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() != 10.0 {
t.Errorf("Calling APIerSv1.GetBalance received: %f", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
var reply2 *engine.Account
attrs2 := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1002"}
- if err := tutorialCallsRpc.Call(utils.APIerSv2GetAccount, attrs2, &reply2); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs2, &reply2); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
} else if reply2.BalanceMap[utils.MetaMonetary].GetTotalValue() != 10.0 {
t.Errorf("Calling APIerSv1.GetBalance received: %f", reply2.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
var reply3 *engine.Account
attrs3 := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1003"}
- if err := tutorialCallsRpc.Call(utils.APIerSv2GetAccount, attrs3, &reply3); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs3, &reply3); err != nil {
t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
} else if reply3.BalanceMap[utils.MetaMonetary].GetTotalValue() != 10.0 {
t.Errorf("Calling APIerSv1.GetBalance received: %f", reply3.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -290,13 +291,13 @@ func testCallStatMetricsBefore(t *testing.T) {
utils.MetaTCC: utils.NotAvailable,
utils.MetaTCD: utils.NotAvailable,
}
- if err := tutorialCallsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stats2"}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
}
- if err := tutorialCallsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stats2_1"}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -318,7 +319,7 @@ func testCallCheckResourceBeforeAllocation(t *testing.T) {
utils.OptsResourcesUsageID: "OriginID",
},
}
- if err := tutorialCallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
t.Fatal(err)
} else if len(*rs) != 1 {
t.Fatalf("Resources: %+v", utils.ToJSON(rs))
@@ -334,7 +335,7 @@ func testCallCheckResourceBeforeAllocation(t *testing.T) {
func testCallCheckThreshold1001Before(t *testing.T) {
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001", Hits: 0}
- if err := tutorialCallsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd, td) {
@@ -345,7 +346,7 @@ func testCallCheckThreshold1001Before(t *testing.T) {
func testCallCheckThreshold1002Before(t *testing.T) {
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1002", Hits: 0}
- if err := tutorialCallsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1002"}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd, td) {
@@ -395,7 +396,7 @@ func testCallGetActiveSessions(t *testing.T) {
Destination: "1002",
},
}
- if err := tutorialCallsRpc.Call(utils.SessionSv1GetActiveSessions,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions,
nil, &reply); err != nil {
t.Error("Got error on SessionSv1.GetActiveSessions: ", err.Error())
} else {
@@ -469,7 +470,7 @@ func testCallCheckResourceAllocation(t *testing.T) {
utils.OptsResourcesUsageID: "OriginID1",
},
}
- if err := tutorialCallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
t.Fatal(err)
} else if len(*rs) != 1 {
t.Fatalf("Resources: %+v", utils.ToJSON(rs))
@@ -487,7 +488,7 @@ func testCallCheckResourceAllocation(t *testing.T) {
func testCallAccount1001(t *testing.T) {
var reply *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := tutorialCallsRpc.Call(utils.APIerSv2GetAccount, attrs, &reply); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &reply); err != nil {
t.Error(err.Error())
} else if reply.BalanceMap[utils.MetaMonetary].GetTotalValue() == 10.0 { // Make sure we debitted
t.Errorf("Expected: 10, received: %+v", reply.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -500,7 +501,7 @@ func testCallAccount1001(t *testing.T) {
func testCall1001Cdrs(t *testing.T) {
var reply []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, Accounts: []string{"1001"}}
- if err := tutorialCallsRpc.Call(utils.APIerSv2GetCDRs, &req, &reply); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
@@ -541,7 +542,7 @@ func testCall1002Cdrs(t *testing.T) {
var reply []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault},
Accounts: []string{"1002"}, DestinationPrefixes: []string{"1001"}}
- if err := tutorialCallsRpc.Call(utils.APIerSv2GetCDRs, &req, &reply); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
@@ -567,7 +568,7 @@ func testCall1003Cdrs(t *testing.T) {
var reply []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault},
Accounts: []string{"1003"}, DestinationPrefixes: []string{"1001"}}
- if err := tutorialCallsRpc.Call(utils.APIerSv2GetCDRs, &req, &reply); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
@@ -619,7 +620,7 @@ func testCallStatMetrics(t *testing.T) {
utils.MetaTCD: "37s",
}
- if err := tutorialCallsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stats2"}, &metrics); err != nil {
t.Fatal(err)
}
@@ -632,7 +633,7 @@ func testCallStatMetrics(t *testing.T) {
!reflect.DeepEqual(firstStatMetrics4, metrics) {
t.Errorf("expecting: %+v, received reply: %s", firstStatMetrics1, metrics)
}
- if err := tutorialCallsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.StatSv1GetQueueStringMetrics,
&utils.TenantID{Tenant: "cgrates.org", ID: "Stats2_1"}, &metrics); err != nil {
t.Error(err)
}
@@ -659,7 +660,7 @@ func testCallCheckResourceRelease(t *testing.T) {
utils.OptsResourcesUsageID: "OriginID2",
},
}
- if err := tutorialCallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
t.Fatal(err)
} else if len(*rs) != 1 {
t.Fatalf("Resources: %+v", rs)
@@ -673,7 +674,7 @@ func testCallCheckResourceRelease(t *testing.T) {
func testCallCheckThreshold1001After(t *testing.T) {
var td engine.Threshold
- if err := tutorialCallsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &td); err != nil &&
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -683,7 +684,7 @@ func testCallCheckThreshold1001After(t *testing.T) {
func testCallCheckThreshold1002After(t *testing.T) {
var td engine.Threshold
eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1002", Hits: 4}
- if err := tutorialCallsRpc.Call(utils.ThresholdSv1GetThreshold,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ThresholdSv1GetThreshold,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1002"}, &td); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eTd.Tenant, td.Tenant) {
@@ -698,7 +699,7 @@ func testCallCheckThreshold1002After(t *testing.T) {
func testCallSyncSessions(t *testing.T) {
var reply *[]*sessions.ExternalSession
// activeSessions shouldn't be active
- if err := tutorialCallsRpc.Call(utils.SessionSv1GetActiveSessions,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions,
nil, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error("Got error on SessionSv1.GetActiveSessions: ", err)
}
@@ -716,7 +717,7 @@ func testCallSyncSessions(t *testing.T) {
}
time.Sleep(time.Second)
// get active sessions
- if err := tutorialCallsRpc.Call(utils.SessionSv1GetActiveSessions,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions,
nil, &reply); err != nil {
t.Error("Got error on SessionSv1.GetActiveSessions: ", err.Error())
} else if len(*reply) != 4 { // expect to have 4 sessions ( two for 1001 to 1003 *raw and *default and two from 1001 to 1002 *raw and *default)
@@ -736,7 +737,7 @@ func testCallSyncSessions(t *testing.T) {
utils.OptsResourcesUsageID: "OriginID3",
},
}
- if err := tutorialCallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rs); err != nil {
t.Fatal(err)
} else if len(*rs) != 1 {
t.Fatalf("Resources: %+v", utils.ToJSON(rs))
@@ -769,7 +770,7 @@ func testCallSyncSessions(t *testing.T) {
time.Sleep(2 * time.Second)
// activeSessions shouldn't be active
- if err := tutorialCallsRpc.Call(utils.SessionSv1GetActiveSessions,
+ if err := tutorialCallsRpc.Call(context.Background(), utils.SessionSv1GetActiveSessions,
nil, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Got error on SessionSv1.GetActiveSessions: %v and reply: %s", err, utils.ToJSON(reply))
}
@@ -794,7 +795,7 @@ func testCallSyncSessions(t *testing.T) {
RunIDs: []string{utils.MetaDefault},
Accounts: []string{"1001"},
}
- if err := tutorialCallsRpc.Call(utils.APIerSv2GetCDRs, &req, &rplCdrs); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &rplCdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(rplCdrs) != numberOfCDR { // cdr from sync session + cdr from before
t.Fatal("Unexpected number of CDRs returned: ", len(rplCdrs), utils.ToJSON(rplCdrs))
@@ -816,7 +817,7 @@ func testCallSyncSessions(t *testing.T) {
//check if resource was released
var rsAfter *engine.Resources
- if err := tutorialCallsRpc.Call(utils.ResourceSv1GetResourcesForEvent, args, &rsAfter); err != nil {
+ if err := tutorialCallsRpc.Call(context.Background(), utils.ResourceSv1GetResourcesForEvent, args, &rsAfter); err != nil {
t.Fatal(err)
} else if len(*rsAfter) != 1 {
t.Fatalf("Resources: %+v", rsAfter)
diff --git a/general_tests/tutorial_it_test.go b/general_tests/tutorial_it_test.go
index 12376570d..55b9eb8b5 100644
--- a/general_tests/tutorial_it_test.go
+++ b/general_tests/tutorial_it_test.go
@@ -23,11 +23,12 @@ package general_tests
import (
"flag"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -38,7 +39,7 @@ var (
itTestMongoAtalas = flag.Bool("mongo_atlas", false, "Run the test with mongo atalas connection")
tutorialCfgPath string
tutorialCfg *config.CGRConfig
- tutorialRpc *rpc.Client
+ tutorialRpc *birpc.Client
tutorialConfDIR string //run tests for specific configuration
tutorialDelay int
@@ -122,7 +123,7 @@ func testTutorialRpcConn(t *testing.T) {
func testTutorialFromFolder(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := tutorialRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := tutorialRpc.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -138,7 +139,7 @@ func testTutorialGetCost(t *testing.T) {
Usage: "2m10s",
}
var rply *engine.EventCost
- if err := tutorialRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+ if err := tutorialRpc.Call(context.Background(), utils.APIerSv1GetCost, &attrs, &rply); err != nil {
t.Error("Unexpected nil error received: ", err.Error())
} else if *rply.Cost != 0.716900 {
t.Errorf("Unexpected cost received: %f", *rply.Cost)
diff --git a/general_tests/twoengines_it_test.go b/general_tests/twoengines_it_test.go
index 5aeaadfd3..6d55fe5f7 100644
--- a/general_tests/twoengines_it_test.go
+++ b/general_tests/twoengines_it_test.go
@@ -22,12 +22,13 @@ along with this program. If not, see
package general_tests
import (
- "net/rpc"
"path"
"reflect"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/cgrates/engine"
@@ -38,11 +39,11 @@ import (
var (
engineOneCfgPath string
engineOneCfg *config.CGRConfig
- engineOneRpc *rpc.Client
+ engineOneRpc *birpc.Client
engineTwoCfgPath string
engineTwoCfg *config.CGRConfig
- engineTwoRpc *rpc.Client
+ engineTwoRpc *birpc.Client
)
var sTestsTwoEnginesIT = []func(t *testing.T){
@@ -112,7 +113,7 @@ func testTwoEnginesCheckCacheBeforeSet(t *testing.T) {
CacheID: utils.CacheThresholdProfiles,
ItemID: "cgrates.org:THD_TwoEnginesTest",
}
- if err := engineOneRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
+ if err := engineOneRpc.Call(context.Background(), utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false , received: %v ", reply)
@@ -121,17 +122,17 @@ func testTwoEnginesCheckCacheBeforeSet(t *testing.T) {
argGetItemIDs := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheThresholdProfiles,
}
- if err := engineOneRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err == nil ||
+ if err := engineOneRpc.Call(context.Background(), utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ", utils.ErrNotFound, err.Error(), rcvKeys)
}
- if err := engineTwoRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
+ if err := engineTwoRpc.Call(context.Background(), utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
t.Error(err)
} else if reply {
t.Errorf("Expected: false , received: %v ", reply)
}
- if err := engineTwoRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err == nil ||
+ if err := engineTwoRpc.Call(context.Background(), utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Fatalf("Expected error: %s received error: %s and reply: %v ", utils.ErrNotFound, err.Error(), rcvKeys)
}
@@ -140,7 +141,7 @@ func testTwoEnginesCheckCacheBeforeSet(t *testing.T) {
func testTwoEnginesSetThreshold(t *testing.T) {
var reply *engine.ThresholdProfile
// enforce caching with nil on engine2 so CacheSv1.ReloadCache load correctly the threshold
- if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineTwoRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &reply); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
@@ -159,12 +160,12 @@ func testTwoEnginesSetThreshold(t *testing.T) {
Async: true,
},
}
- if err := engineOneRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := engineOneRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := engineOneRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineOneRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
@@ -179,7 +180,7 @@ func testTwoEnginesCheckCacheAfterSet(t *testing.T) {
CacheID: utils.CacheThresholdProfiles,
ItemID: "cgrates.org:THD_TwoEnginesTest",
}
- if err := engineOneRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
+ if err := engineOneRpc.Call(context.Background(), utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: %v , received:%v", expected, reply)
@@ -189,18 +190,18 @@ func testTwoEnginesCheckCacheAfterSet(t *testing.T) {
argGetItemIDs := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheThresholdProfiles,
}
- if err := engineOneRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err != nil {
+ if err := engineOneRpc.Call(context.Background(), utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err != nil {
t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
} else if !reflect.DeepEqual(expKeys, rcvKeys) {
t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
}
- if err := engineTwoRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
+ if err := engineTwoRpc.Call(context.Background(), utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
t.Error(err)
} else if !reply {
t.Errorf("Expected: %v , received:%v", expected, reply)
}
- if err := engineTwoRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err != nil {
+ if err := engineTwoRpc.Call(context.Background(), utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err != nil {
t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
} else if !reflect.DeepEqual(expKeys, rcvKeys) {
t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
@@ -220,7 +221,7 @@ func testTwoEnginesCheckCacheAfterSet(t *testing.T) {
},
}
var rplTh *engine.ThresholdProfile
- if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineTwoRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
@@ -247,18 +248,18 @@ func testTwoEnginesUpdateThreshold(t *testing.T) {
utils.CacheOpt: utils.MetaReload,
},
}
- if err := engineOneRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+ if err := engineOneRpc.Call(context.Background(), utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- if err := engineOneRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineOneRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rplTh)
}
- if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
+ if err := engineTwoRpc.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
diff --git a/go.mod b/go.mod
index 324a83e07..82cce8d94 100644
--- a/go.mod
+++ b/go.mod
@@ -17,14 +17,14 @@ require (
github.com/antchfx/xmlquery v1.3.3
github.com/aws/aws-sdk-go v1.36.24
github.com/blevesearch/bleve v1.0.14
- github.com/cenkalti/rpc2 v0.0.0-20210604223624-c1acbc6ec984
github.com/cgrates/aringo v0.0.0-20220525160735-b5990313d99e
github.com/cgrates/baningo v0.0.0-20210413080722-004ffd5e429f
+ github.com/cgrates/birpc v1.3.1-0.20211117095917-5b0ff29f3084
github.com/cgrates/fsock v0.0.0-20230123160954-12cae14030cc
github.com/cgrates/kamevapi v0.0.0-20220525160402-5b8036487a6c
github.com/cgrates/ltcache v0.0.0-20210405185848-da943e80c1ab
github.com/cgrates/radigo v0.0.0-20210902121842-ea2f9a730627
- github.com/cgrates/rpcclient v0.0.0-20210218104959-cc39fa26221e
+ github.com/cgrates/rpcclient v0.0.0-20230605090759-8bb5188b73e5
github.com/cgrates/sipingo v1.0.1-0.20200514112313-699ebc1cdb8e
github.com/cgrates/ugocodec v0.0.0-20201023092048-df93d0123f60
github.com/creack/pty v1.1.11
diff --git a/go.sum b/go.sum
index 9987834f7..bb9515ebd 100644
--- a/go.sum
+++ b/go.sum
@@ -77,14 +77,13 @@ github.com/cenk/hub v1.0.1 h1:RBwXNOF4a8KjD8BJ08XqN8KbrqaGiQLDrgvUGJSHuPA=
github.com/cenk/hub v1.0.1/go.mod h1:rJM1LNAW0ppT8FMMuPK6c2NP/R2nH/UthtuRySSaf6Y=
github.com/cenkalti/hub v1.0.1 h1:UMtjc6dHSaOQTO15SVA50MBIR9zQwvsukQupDrkIRtg=
github.com/cenkalti/hub v1.0.1/go.mod h1:tcYwtS3a2d9NO/0xDXVJWx3IedurUjYCqFCmpi0lpHs=
-github.com/cenkalti/rpc2 v0.0.0-20210117202628-1bea588996c7/go.mod h1:v2npkhrXyk5BCnkNIiPdRI23Uq6uWPUQGL2hnRcRr/M=
-github.com/cenkalti/rpc2 v0.0.0-20210604223624-c1acbc6ec984 h1:CNwZyGS6KpfaOWbh2yLkSy3rSTUh3jub9CzpFpP6PVQ=
-github.com/cenkalti/rpc2 v0.0.0-20210604223624-c1acbc6ec984/go.mod h1:v2npkhrXyk5BCnkNIiPdRI23Uq6uWPUQGL2hnRcRr/M=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cgrates/aringo v0.0.0-20220525160735-b5990313d99e h1:jbScwE0ebeCBD9CsuCfqMv2oC2KUf+FxEePBxAaF1cQ=
github.com/cgrates/aringo v0.0.0-20220525160735-b5990313d99e/go.mod h1:v+wPvWvfle06wQ7WBJZGXvrF+CWA0CrReh+c3PuXaAU=
github.com/cgrates/baningo v0.0.0-20210413080722-004ffd5e429f h1:dCp5BflGB8I8wlhWn4R5g0o4ok2pZRmcYHyzIks9Pbc=
github.com/cgrates/baningo v0.0.0-20210413080722-004ffd5e429f/go.mod h1:3SwVROaS1Iml5lqEhj0gRhDRtmbBgypZpKcEkVTSleU=
+github.com/cgrates/birpc v1.3.1-0.20211117095917-5b0ff29f3084 h1:YIEepjEOjeHaFrewWaar/JkXYiDgO7gRw/R1zWITxEw=
+github.com/cgrates/birpc v1.3.1-0.20211117095917-5b0ff29f3084/go.mod h1:z/PmNnDPqSQALedKJv5T8+eXIq6XHa9J0St1YsvAVns=
github.com/cgrates/fsock v0.0.0-20230123160954-12cae14030cc h1:qKfOK61ZLktbywOLTMNWwobJsxkxszlMbuduwNgAO/c=
github.com/cgrates/fsock v0.0.0-20230123160954-12cae14030cc/go.mod h1:5A9wag324AzIlaDd7tpPDAg26ouUO1orarAq7Vxr4As=
github.com/cgrates/kamevapi v0.0.0-20220525160402-5b8036487a6c h1:ILTMiCcBw80hSe1L0LE3u2U7sFQB/vcFc2JZpvTD4/E=
@@ -93,8 +92,8 @@ github.com/cgrates/ltcache v0.0.0-20210405185848-da943e80c1ab h1:dKdAUwrij6vYwew
github.com/cgrates/ltcache v0.0.0-20210405185848-da943e80c1ab/go.mod h1:9oSG/6gUoab/vKm/eQ3QcX6KeTR0wRw88N33iCnC/k4=
github.com/cgrates/radigo v0.0.0-20210902121842-ea2f9a730627 h1:foxHlpQxYj15khhlpbj+EiIM/W9Gk0HP800NQ/DVPpU=
github.com/cgrates/radigo v0.0.0-20210902121842-ea2f9a730627/go.mod h1:PizDxlLTjVQpyPU0ksWYfmM9UbYGu7q6at0nzuiZprI=
-github.com/cgrates/rpcclient v0.0.0-20210218104959-cc39fa26221e h1:OhIDLqNfNx9n64DAZhqIsJsWh8KXrZmvpwUg3WDmPww=
-github.com/cgrates/rpcclient v0.0.0-20210218104959-cc39fa26221e/go.mod h1:1lZpAp/cwSuf9Kt+ZSd3hgCt/7E1z3dx5GwkdlgKBTI=
+github.com/cgrates/rpcclient v0.0.0-20230605090759-8bb5188b73e5 h1:GhA5qBUK7o0j+7fi1GACKnT454pv/LfCjoI52vFIz3E=
+github.com/cgrates/rpcclient v0.0.0-20230605090759-8bb5188b73e5/go.mod h1:tDqS6BieViKYpz696//gxseUN1b92hPHqk+w0CzY8AE=
github.com/cgrates/sipingo v1.0.1-0.20200514112313-699ebc1cdb8e h1:izFjZB83/XRXInc+gMIssUxdbleGsGIuGCPj2u7RQo0=
github.com/cgrates/sipingo v1.0.1-0.20200514112313-699ebc1cdb8e/go.mod h1:0f2+3dq5Iiv3VlcuY83VPJ0QzqRlzDG1Cr8okogQE3g=
github.com/cgrates/ugocodec v0.0.0-20201023092048-df93d0123f60 h1:TQDg+HGB17LU8FitLiLvYazYSy62GQ1lO3lGKI3xUrU=
diff --git a/loaders/lib_test.go b/loaders/lib_test.go
index 571182537..f8c757d81 100644
--- a/loaders/lib_test.go
+++ b/loaders/lib_test.go
@@ -23,11 +23,12 @@ import (
"errors"
"flag"
"io"
- "net/rpc"
- "net/rpc/jsonrpc"
"strings"
"testing"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/rpcclient"
"github.com/cgrates/cgrates/config"
@@ -46,12 +47,12 @@ var loaderPaths = []string{"/tmp/In", "/tmp/Out", "/tmp/LoaderIn", "/tmp/Subpath
"/tmp/SubpathLoaderWithMove", "/tmp/SubpathOut", "/tmp/templateLoaderIn", "/tmp/templateLoaderOut",
"/tmp/customSepLoaderIn", "/tmp/customSepLoaderOut"}
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
@@ -61,7 +62,7 @@ type testMockCacheConn struct {
calls map[string]func(arg any, rply any) error
}
-func (s *testMockCacheConn) Call(method string, arg any, rply any) error {
+func (s *testMockCacheConn) Call(ctx *context.Context, method string, arg any, rply any) error {
if call, has := s.calls[method]; !has {
return rpcclient.ErrUnsupporteServiceMethod
} else {
@@ -97,12 +98,12 @@ func TestProcessContentCallsRemoveItems(t *testing.T) {
}
data := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
- internalCacheSChan := make(chan rpcclient.ClientConnector, 1)
+ internalCacheSChan := make(chan birpc.ClientConnector, 1)
internalCacheSChan <- sMock
ldr := &Loader{
ldrID: "TestProcessContentCallsRemoveItems",
bufLoaderData: make(map[string][]LoaderData),
- connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): internalCacheSChan,
}),
dm: engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil),
@@ -201,12 +202,12 @@ func TestProcessContentCallsClear(t *testing.T) {
}
data := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
- internalCacheSChan := make(chan rpcclient.ClientConnector, 1)
+ internalCacheSChan := make(chan birpc.ClientConnector, 1)
internalCacheSChan <- sMock
ldr := &Loader{
ldrID: "TestProcessContentCallsClear",
bufLoaderData: make(map[string][]LoaderData),
- connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): internalCacheSChan,
}),
dm: engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil),
@@ -312,12 +313,12 @@ func TestRemoveContentCallsReload(t *testing.T) {
}
data := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
- internalCacheSChan := make(chan rpcclient.ClientConnector, 1)
+ internalCacheSChan := make(chan birpc.ClientConnector, 1)
internalCacheSChan <- sMock
ldr := &Loader{
ldrID: "TestRemoveContentCallsReload",
bufLoaderData: make(map[string][]LoaderData),
- connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): internalCacheSChan,
}),
cacheConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)},
@@ -418,12 +419,12 @@ func TestRemoveContentCallsLoad(t *testing.T) {
}
data := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
- internalCacheSChan := make(chan rpcclient.ClientConnector, 1)
+ internalCacheSChan := make(chan birpc.ClientConnector, 1)
internalCacheSChan <- sMock
ldr := &Loader{
ldrID: "TestRemoveContentCallsReload",
bufLoaderData: make(map[string][]LoaderData),
- connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): internalCacheSChan,
}),
cacheConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)},
@@ -524,12 +525,12 @@ func TestRemoveContentCallsRemove(t *testing.T) {
}
data := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
- internalCacheSChan := make(chan rpcclient.ClientConnector, 1)
+ internalCacheSChan := make(chan birpc.ClientConnector, 1)
internalCacheSChan <- sMock
ldr := &Loader{
ldrID: "TestRemoveContentCallsReload",
bufLoaderData: make(map[string][]LoaderData),
- connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): internalCacheSChan,
}),
cacheConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)},
@@ -641,12 +642,12 @@ func TestRemoveContentCallsClear(t *testing.T) {
}
data := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items)
- internalCacheSChan := make(chan rpcclient.ClientConnector, 1)
+ internalCacheSChan := make(chan birpc.ClientConnector, 1)
internalCacheSChan <- sMock
ldr := &Loader{
ldrID: "TestRemoveContentCallsReload",
bufLoaderData: make(map[string][]LoaderData),
- connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan rpcclient.ClientConnector{
+ connMgr: engine.NewConnManager(config.CgrConfig(), map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): internalCacheSChan,
}),
cacheConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)},
diff --git a/loaders/loader_it_test.go b/loaders/loader_it_test.go
index 0a5d99928..be43ac48e 100644
--- a/loaders/loader_it_test.go
+++ b/loaders/loader_it_test.go
@@ -23,7 +23,6 @@ package loaders
import (
"encoding/csv"
"io"
- "net/rpc"
"os"
"path"
"reflect"
@@ -32,6 +31,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -41,7 +42,7 @@ var (
loaderCfgPath string
loaderCfgDIR string //run tests for specific configuration
loaderCfg *config.CGRConfig
- loaderRPC *rpc.Client
+ loaderRPC *birpc.Client
customAttributes = "12012000001\t12018209998\n12012000002\t15512580598\n12012000007\t19085199998\n12012000008\t18622784999\n12012000010\t17329440866\n12012000011\t18623689800\n12012000012\t19082050951\n12012000014\t17329440866\n12012000015\t12018209999\n12012000031\t12018209999\n12012000032\t19082050951\n12012000033\t12018209998\n12012000034\t12018209998\n"
sTestsLoader = []func(t *testing.T){
@@ -169,7 +170,7 @@ func testLoaderPopulateData(t *testing.T) {
func testLoaderLoadAttributes(t *testing.T) {
var reply string
- if err := loaderRPC.Call(utils.LoaderSv1Load,
+ if err := loaderRPC.Call(context.Background(), utils.LoaderSv1Load,
&ArgsProcessFolder{LoaderID: "CustomLoader"}, &reply); err != nil {
t.Error(err)
}
@@ -212,7 +213,7 @@ func testLoaderCheckAttributes(t *testing.T) {
eAttrPrf.Attributes[1].FilterIDs = nil
}
var reply *engine.AttributeProfile
- if err := loaderRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := loaderRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ALS1"},
}, &reply); err != nil {
@@ -240,7 +241,7 @@ func testLoaderPopulateDataWithoutMoving(t *testing.T) {
func testLoaderLoadAttributesWithoutMoving(t *testing.T) {
var reply string
- if err := loaderRPC.Call(utils.LoaderSv1Load,
+ if err := loaderRPC.Call(context.Background(), utils.LoaderSv1Load,
&ArgsProcessFolder{LoaderID: "WithoutMoveToOut"}, &reply); err != nil {
t.Error(err)
}
@@ -272,7 +273,7 @@ func testLoaderPopulateDataWithSubpath(t *testing.T) {
func testLoaderLoadAttributesWithSubpath(t *testing.T) {
var reply string
- if err := loaderRPC.Call(utils.LoaderSv1Load,
+ if err := loaderRPC.Call(context.Background(), utils.LoaderSv1Load,
&ArgsProcessFolder{LoaderID: "SubpathLoaderWithoutMove"}, &reply); err != nil {
t.Error(err)
}
@@ -304,7 +305,7 @@ func testLoaderPopulateDataWithSubpathWithMove(t *testing.T) {
func testLoaderLoadAttributesWithoutSubpathWithMove(t *testing.T) {
var reply string
- if err := loaderRPC.Call(utils.LoaderSv1Load,
+ if err := loaderRPC.Call(context.Background(), utils.LoaderSv1Load,
&ArgsProcessFolder{LoaderID: "SubpathLoaderWithMove"}, &reply); err != nil {
t.Error(err)
}
@@ -335,7 +336,7 @@ func testLoaderPopulateDataForTemplateLoader(t *testing.T) {
func testLoaderLoadAttributesForTemplateLoader(t *testing.T) {
var reply string
- if err := loaderRPC.Call(utils.LoaderSv1Load,
+ if err := loaderRPC.Call(context.Background(), utils.LoaderSv1Load,
&ArgsProcessFolder{LoaderID: "LoaderWithTemplate"}, &reply); err != nil {
t.Error(err)
}
@@ -390,7 +391,7 @@ func testLoaderCheckForCustomSep(t *testing.T) {
eAttrPrf.Attributes[0].FilterIDs = nil
}
var reply *engine.AttributeProfile
- if err := loaderRPC.Call(utils.APIerSv1GetAttributeProfile,
+ if err := loaderRPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
&utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_12012000001"},
}, &reply); err != nil {
diff --git a/loaders/loader_test.go b/loaders/loader_test.go
index 821bd9d4c..4e9e581a9 100644
--- a/loaders/loader_test.go
+++ b/loaders/loader_test.go
@@ -27,6 +27,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/rpcclient"
@@ -3042,7 +3044,7 @@ type ccMock struct {
calls map[string]func(args any, reply any) error
}
-func (ccM *ccMock) Call(serviceMethod string, args any, reply any) (err error) {
+func (ccM *ccMock) Call(_ *context.Context, serviceMethod string, args any, reply any) (err error) {
if call, has := ccM.calls[serviceMethod]; !has {
return rpcclient.ErrUnsupporteServiceMethod
} else {
@@ -3073,9 +3075,9 @@ func TestStoreLoadedDataAttributes(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
@@ -3122,9 +3124,9 @@ func TestStoreLoadedDataResources(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
@@ -3170,9 +3172,9 @@ func TestStoreLoadedDataFilters(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
@@ -3219,9 +3221,9 @@ func TestStoreLoadedDataStats(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
@@ -3268,9 +3270,9 @@ func TestStoreLoadedDataThresholds(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
@@ -3316,9 +3318,9 @@ func TestStoreLoadedDataRoutes(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
@@ -3364,9 +3366,9 @@ func TestStoreLoadedDataChargers(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
@@ -3412,9 +3414,9 @@ func TestStoreLoadedDataDispatchers(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
@@ -3460,9 +3462,9 @@ func TestStoreLoadedDataDispatcherHosts(t *testing.T) {
},
}
- rpcInternal := make(chan rpcclient.ClientConnector, 1)
+ rpcInternal := make(chan birpc.ClientConnector, 1)
rpcInternal <- cM
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): rpcInternal,
})
dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), connMgr)
diff --git a/loaders/loaders.go b/loaders/loaders.go
index 47b024ebd..c1c8b0654 100644
--- a/loaders/loaders.go
+++ b/loaders/loaders.go
@@ -23,6 +23,7 @@ import (
"fmt"
"sync"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -68,7 +69,7 @@ type ArgsProcessFolder struct {
StopOnError bool
}
-func (ldrS *LoaderService) V1Load(args *ArgsProcessFolder,
+func (ldrS *LoaderService) V1Load(ctx *context.Context, args *ArgsProcessFolder,
rply *string) (err error) {
ldrS.RLock()
defer ldrS.RUnlock()
@@ -101,7 +102,7 @@ func (ldrS *LoaderService) V1Load(args *ArgsProcessFolder,
return
}
-func (ldrS *LoaderService) V1Remove(args *ArgsProcessFolder,
+func (ldrS *LoaderService) V1Remove(ctx *context.Context, args *ArgsProcessFolder,
rply *string) (err error) {
ldrS.RLock()
defer ldrS.RUnlock()
diff --git a/loaders/loaders_it_test.go b/loaders/loaders_it_test.go
index c5750f688..6503e445d 100644
--- a/loaders/loaders_it_test.go
+++ b/loaders/loaders_it_test.go
@@ -31,6 +31,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -124,12 +125,12 @@ cgrates.org,NewRes1`)); err != nil {
var reply string
expected := "ANOTHER_LOADER_RUNNING"
//cannot load when there is another loader running
- if err := ldrs.V1Load(&ArgsProcessFolder{LoaderID: "testV1LoadResource"},
+ if err := ldrs.V1Load(context.Background(), &ArgsProcessFolder{LoaderID: "testV1LoadResource"},
&reply); err == nil || reply != utils.EmptyString || err.Error() != expected {
t.Errorf("Expected %+v and %+v \n, received %+v and %+v", expected, utils.EmptyString, err, reply)
}
- if err := ldrs.V1Load(&ArgsProcessFolder{LoaderID: "testV1LoadResource", ForceLock: true},
+ if err := ldrs.V1Load(context.Background(), &ArgsProcessFolder{LoaderID: "testV1LoadResource", ForceLock: true},
&reply); err != nil && reply != utils.OK {
t.Error(err)
}
@@ -183,7 +184,7 @@ cgrates.org,NewRes1
var reply string
ldrs := NewLoaderService(dm, cfgLdr, "UTC", nil, nil)
- if err := ldrs.V1Load(&ArgsProcessFolder{
+ if err := ldrs.V1Load(context.Background(), &ArgsProcessFolder{
LoaderID: utils.EmptyString}, &reply); err == nil && reply != utils.EmptyString && err.Error() != utils.EmptyString {
t.Errorf("Expected %+v and %+v \n, received %+v and %+v", utils.EmptyString, utils.EmptyString, err, reply)
}
@@ -220,9 +221,10 @@ func testV1LoadUnableToDeleteFile(t *testing.T) {
var reply string
ldrs := NewLoaderService(dm, cfgLdr, "UTC", nil, nil)
expected := "SERVER_ERROR: stat /\x00/Resources.csv: invalid argument"
- if err := ldrs.V1Load(&ArgsProcessFolder{
- LoaderID: "testV1LoadUnableToDeleteFile",
- ForceLock: true}, &reply); err == nil || err.Error() != expected {
+ if err := ldrs.V1Load(context.Background(),
+ &ArgsProcessFolder{
+ LoaderID: "testV1LoadUnableToDeleteFile",
+ ForceLock: true}, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v and %+v \n, received %+v and %+v", utils.EmptyString, utils.EmptyString, err, reply)
}
@@ -289,11 +291,12 @@ NOT_UINT
var reply string
expected := "SERVER_ERROR: open testV1LoadProcessFolderError/not_a_file: no such file or directory"
//try to load by changing the caching method
- if err := ldrs.V1Load(&ArgsProcessFolder{
- LoaderID: "testV1LoadResource",
- ForceLock: true,
- Caching: utils.StringPointer("not_a_chaching_method"),
- StopOnError: true}, &reply); err == nil || err.Error() != expected || reply != utils.EmptyString {
+ if err := ldrs.V1Load(context.Background(),
+ &ArgsProcessFolder{
+ LoaderID: "testV1LoadResource",
+ ForceLock: true,
+ Caching: utils.StringPointer("not_a_chaching_method"),
+ StopOnError: true}, &reply); err == nil || err.Error() != expected || reply != utils.EmptyString {
t.Errorf("Expected %+q and %+q \n, received %+q and %+q", expected, utils.EmptyString, err, reply)
}
@@ -368,15 +371,16 @@ cgrates.org,NewRes1`))
var reply string
expected := "ANOTHER_LOADER_RUNNING"
//cannot load when there is another loader running
- if err := ldrs.V1Remove(&ArgsProcessFolder{LoaderID: "testV1RemoveResource"},
+ if err := ldrs.V1Remove(context.Background(), &ArgsProcessFolder{LoaderID: "testV1RemoveResource"},
&reply); err == nil || reply != utils.EmptyString || err.Error() != expected {
t.Errorf("Expected %+v and %+v \n, received %+v and %+v", expected, utils.EmptyString, err, reply)
}
os.Remove(path.Join(flPath, "lock.cgr"))
- if err := ldrs.V1Remove(&ArgsProcessFolder{
- LoaderID: "testV1RemoveResource",
- ForceLock: true}, &reply); err != nil && reply != utils.OK {
+ if err := ldrs.V1Remove(context.Background(),
+ &ArgsProcessFolder{
+ LoaderID: "testV1RemoveResource",
+ ForceLock: true}, &reply); err != nil && reply != utils.OK {
t.Error(err)
}
@@ -421,7 +425,7 @@ cgrates.org,NewRes1
var reply string
ldrs := NewLoaderService(dm, cfgLdr, "UTC", nil, nil)
expected := "UNKNOWN_LOADER: *default"
- if err := ldrs.V1Remove(&ArgsProcessFolder{
+ if err := ldrs.V1Remove(context.Background(), &ArgsProcessFolder{
LoaderID: utils.EmptyString}, &reply); err == nil || reply != utils.EmptyString || err.Error() != expected {
t.Errorf("Expected %+v and %+v \n, received %+v and %+v", expected, utils.EmptyString, err, reply)
}
@@ -458,9 +462,10 @@ func testV1RemoveUnableToDeleteFile(t *testing.T) {
var reply string
ldrs := NewLoaderService(dm, cfgLdr, "UTC", nil, nil)
expected := "SERVER_ERROR: stat /\x00/Resources.csv: invalid argument"
- if err := ldrs.V1Remove(&ArgsProcessFolder{
- LoaderID: "testV1RemoveUnableToDeleteFile",
- ForceLock: true}, &reply); err == nil || err.Error() != expected {
+ if err := ldrs.V1Remove(context.Background(),
+ &ArgsProcessFolder{
+ LoaderID: "testV1RemoveUnableToDeleteFile",
+ ForceLock: true}, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v and %+v \n, received %+v and %+v", utils.EmptyString, utils.EmptyString, err, reply)
}
@@ -505,20 +510,22 @@ func testV1LoadAndRemoveProcessRemoveFolderError(t *testing.T) {
var reply string
expected := "SERVER_ERROR: remove /tmp/testV1RemoveProcessFolderError: directory not empty"
//try to load by changing the caching method, but there is not a lockFileName
- if err := ldrs.V1Load(&ArgsProcessFolder{
- LoaderID: "testV1RemoveProcessFolderError",
- ForceLock: true,
- Caching: utils.StringPointer("not_a_chaching_method"),
- StopOnError: true}, &reply); err == nil || err.Error() != expected || reply != utils.EmptyString {
+ if err := ldrs.V1Load(context.Background(),
+ &ArgsProcessFolder{
+ LoaderID: "testV1RemoveProcessFolderError",
+ ForceLock: true,
+ Caching: utils.StringPointer("not_a_chaching_method"),
+ StopOnError: true}, &reply); err == nil || err.Error() != expected || reply != utils.EmptyString {
t.Errorf("Expected %+q and %+q \n, received %+q and %+q", expected, utils.EmptyString, err, reply)
}
//try to remove by changing the caching method
- if err := ldrs.V1Remove(&ArgsProcessFolder{
- LoaderID: "testV1RemoveProcessFolderError",
- ForceLock: true,
- Caching: utils.StringPointer("not_a_chaching_method"),
- StopOnError: true}, &reply); err == nil || err.Error() != expected || reply != utils.EmptyString {
+ if err := ldrs.V1Remove(context.Background(),
+ &ArgsProcessFolder{
+ LoaderID: "testV1RemoveProcessFolderError",
+ ForceLock: true,
+ Caching: utils.StringPointer("not_a_chaching_method"),
+ StopOnError: true}, &reply); err == nil || err.Error() != expected || reply != utils.EmptyString {
t.Errorf("Expected %+q and %+q \n, received %+q and %+q", expected, utils.EmptyString, err, reply)
}
@@ -563,11 +570,12 @@ func testV1RemoveProcessFolderError(t *testing.T) {
var reply string
expected := "SERVER_ERROR: open testV1RemoveProcessFolderError/not_a_file2: no such file or directory"
//try to load by changing the caching method
- if err := ldrs.V1Remove(&ArgsProcessFolder{
- LoaderID: "testV1RemoveProcessFolderError",
- ForceLock: true,
- Caching: utils.StringPointer("not_a_chaching_method"),
- StopOnError: true}, &reply); err == nil || err.Error() != expected || reply != utils.EmptyString {
+ if err := ldrs.V1Remove(context.Background(),
+ &ArgsProcessFolder{
+ LoaderID: "testV1RemoveProcessFolderError",
+ ForceLock: true,
+ Caching: utils.StringPointer("not_a_chaching_method"),
+ StopOnError: true}, &reply); err == nil || err.Error() != expected || reply != utils.EmptyString {
t.Errorf("Expected %+q and %+q \n, received %+q and %+q", expected, utils.EmptyString, err, reply)
}
diff --git a/registrarc/lib_test.go b/registrarc/lib_test.go
index f60a86188..c99378ff5 100644
--- a/registrarc/lib_test.go
+++ b/registrarc/lib_test.go
@@ -20,9 +20,9 @@ package registrarc
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -34,12 +34,12 @@ var (
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/registrarc/libregistrarc_test.go b/registrarc/libregistrarc_test.go
index 819e6e1c0..5b7889e26 100644
--- a/registrarc/libregistrarc_test.go
+++ b/registrarc/libregistrarc_test.go
@@ -27,6 +27,7 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -232,7 +233,7 @@ func TestRegister(t *testing.T) {
}
errCfg := config.NewDefaultCGRConfig()
- engine.NewConnManager(errCfg, map[string]chan rpcclient.ClientConnector{})
+ engine.NewConnManager(errCfg, map[string]chan birpc.ClientConnector{})
errCfg.CacheCfg().Partitions[utils.CacheDispatcherHosts].Replicate = true
errCfg.RPCConns()["errCon"] = &config.RPCConn{
Strategy: utils.MetaFirst,
@@ -514,7 +515,7 @@ func TestRegisterRegistrarSv1UnregisterRPCHostsError(t *testing.T) {
},
},
}
- engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{})
+ engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{})
cfg.RPCConns()["errCon"] = config.CgrConfig().RPCConns()["errCon"]
cfg.CacheCfg().ReplicationConns = []string{"errCon"}
cfg.CacheCfg().Partitions[utils.CacheRPCConnections].Replicate = true
@@ -615,7 +616,7 @@ func TestRegisterRegistrarSv1RegisterRPCHostsError(t *testing.T) {
},
},
}
- engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{})
+ engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{})
cfg.RPCConns()["errCon1"] = config.CgrConfig().RPCConns()["errCon1"]
cfg.CacheCfg().ReplicationConns = []string{"errCon1"}
cfg.CacheCfg().Partitions[utils.CacheRPCConnections].Replicate = true
diff --git a/registrarc/registrarc.go b/registrarc/registrarc.go
index f76ba936c..de13941c0 100644
--- a/registrarc/registrarc.go
+++ b/registrarc/registrarc.go
@@ -22,6 +22,7 @@ import (
"fmt"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -115,7 +116,7 @@ func (dhS *RegistrarCService) registerDispHosts() {
continue
}
var rply string
- if err := dhS.connMgr.Call([]string{connID}, nil, utils.RegistrarSv1RegisterDispatcherHosts, args, &rply); err != nil {
+ if err := dhS.connMgr.Call(context.TODO(), []string{connID}, utils.RegistrarSv1RegisterDispatcherHosts, args, &rply); err != nil {
utils.Logger.Warning(fmt.Sprintf("<%s> Unable to set the hosts to the conn with ID <%s> because : %s",
utils.RegistrarC, connID, err))
continue
@@ -135,7 +136,7 @@ func (dhS *RegistrarCService) registerRPCHosts() {
continue
}
var rply string
- if err := dhS.connMgr.Call([]string{connID}, nil, utils.RegistrarSv1RegisterRPCHosts, args, &rply); err != nil {
+ if err := dhS.connMgr.Call(context.TODO(), []string{connID}, utils.RegistrarSv1RegisterRPCHosts, args, &rply); err != nil {
utils.Logger.Warning(fmt.Sprintf("<%s> Unable to set the hosts to the conn with ID <%s> because : %s",
utils.RegistrarC, connID, err))
continue
@@ -151,7 +152,7 @@ func unregisterHosts(connMgr *engine.ConnManager, regCfg *config.RegistrarCCfg,
if tnt == utils.MetaDefault {
tnt = dTnt
}
- if err := connMgr.Call([]string{connID}, nil, method, NewUnregisterArgs(tnt, hostCfgs), &rply); err != nil {
+ if err := connMgr.Call(context.TODO(), []string{connID}, method, NewUnregisterArgs(tnt, hostCfgs), &rply); err != nil {
utils.Logger.Warning(fmt.Sprintf("<%s> Unable to unregister the hosts with tenant<%s> to the conn with ID <%s> because : %s",
utils.RegistrarC, tnt, connID, err))
}
diff --git a/registrarc/registrarc_it_test.go b/registrarc/registrarc_it_test.go
index 4249ba3ef..c39191414 100644
--- a/registrarc/registrarc_it_test.go
+++ b/registrarc/registrarc_it_test.go
@@ -23,12 +23,14 @@ package registrarc
import (
"bytes"
- "net/rpc"
"os/exec"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -39,7 +41,7 @@ var (
dspCfgPath string
dspCfg *config.CGRConfig
dspCmd *exec.Cmd
- dspRPC *rpc.Client
+ dspRPC *birpc.Client
allDir string
allCfgPath string
@@ -128,7 +130,7 @@ func testDsphLoadData(t *testing.T) {
func testDsphGetNodeID() (id string, err error) {
var status map[string]any
- if err = dspRPC.Call(utils.DispatcherSv1RemoteStatus, utils.TenantWithAPIOpts{
+ if err = dspRPC.Call(context.Background(), utils.DispatcherSv1RemoteStatus, utils.TenantWithAPIOpts{
Tenant: "cgrates.org",
APIOpts: map[string]any{},
}, &status); err != nil {
diff --git a/registrarc/registrarc_test.go b/registrarc/registrarc_test.go
index 6b953eedf..6b70cf9b0 100644
--- a/registrarc/registrarc_test.go
+++ b/registrarc/registrarc_test.go
@@ -25,6 +25,7 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -55,7 +56,7 @@ func TestDispatcherHostsService(t *testing.T) {
cfg.RegistrarCCfg().Dispatchers.RefreshInterval = 100 * time.Millisecond
cfg.RegistrarCCfg().Dispatchers.RegistrarSConns = []string{"conn1"}
- ds := NewRegistrarCService(cfg, engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{}))
+ ds := NewRegistrarCService(cfg, engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{}))
ds.registerDispHosts()
@@ -115,7 +116,7 @@ func TestDispatcherHostsService(t *testing.T) {
cfg.ListenCfg().RPCJSONListen = "2012"
ds.registerDispHosts()
- ds = NewRegistrarCService(cfg, engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{}))
+ ds = NewRegistrarCService(cfg, engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{}))
ds.Shutdown()
stopChan := make(chan struct{})
close(stopChan)
@@ -173,11 +174,11 @@ func TestRegisterRPCHosts(t *testing.T) {
}
regist := &RegistrarCService{
cfg: cfg,
- connMgr: engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{}),
+ connMgr: engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{}),
}
registCmp := &RegistrarCService{
cfg: cfg,
- connMgr: engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{}),
+ connMgr: engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{}),
}
regist.registerRPCHosts()
if !reflect.DeepEqual(regist, registCmp) {
diff --git a/registrarc/registrarcrpc_it_test.go b/registrarc/registrarcrpc_it_test.go
index ea0a88c48..7b38cc6c0 100644
--- a/registrarc/registrarcrpc_it_test.go
+++ b/registrarc/registrarcrpc_it_test.go
@@ -22,7 +22,6 @@ along with this program. If not, see
package registrarc
import (
- "net/rpc"
"os/exec"
"path"
"reflect"
@@ -31,6 +30,9 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc/context"
+
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -45,7 +47,7 @@ var (
rpcsDir string
rpcsCfgPath string
rpcsCfg *config.CGRConfig
- rpcsRPC *rpc.Client
+ rpcsRPC *birpc.Client
rpchTest = []func(t *testing.T){
testRPCInitCfg,
@@ -111,7 +113,7 @@ func testRPCStartEngine(t *testing.T) {
func testRPCLoadData(t *testing.T) {
var reply string
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := rpcsRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+ if err := rpcsRPC.Call(context.Background(), utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
@@ -127,7 +129,7 @@ func testRPCChargerSNoAttr(t *testing.T) {
}
expErr := utils.NewErrServerError(rpcclient.ErrDisconnected).Error()
var rply []*engine.ChrgSProcessEventReply
- if err := rpcsRPC.Call(utils.ChargerSv1ProcessEvent, cgrEv, &rply); err == nil || err.Error() != expErr {
+ if err := rpcsRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, cgrEv, &rply); err == nil || err.Error() != expErr {
t.Errorf("Expected error: %s,received: %v", expErr, err)
}
}
@@ -201,7 +203,7 @@ func testRPCChargerSWithAttr(t *testing.T) {
},
}
var rply []*engine.ChrgSProcessEventReply
- if err := rpcsRPC.Call(utils.ChargerSv1ProcessEvent, cgrEv, &rply); err != nil {
+ if err := rpcsRPC.Call(context.Background(), utils.ChargerSv1ProcessEvent, cgrEv, &rply); err != nil {
t.Fatal(err)
}
sort.Slice(rply, func(i, j int) bool {
diff --git a/services/analyzers.go b/services/analyzers.go
index 69be102e0..3755b0568 100644
--- a/services/analyzers.go
+++ b/services/analyzers.go
@@ -22,19 +22,18 @@ import (
"fmt"
"sync"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/analyzers"
- v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewAnalyzerService returns the Analyzer Service
func NewAnalyzerService(cfg *config.CGRConfig, server *cores.Server,
filterSChan chan *engine.FilterS, shdChan *utils.SyncedChan,
- internalAnalyzerSChan chan rpcclient.ClientConnector,
+ internalAnalyzerSChan chan birpc.ClientConnector,
srvDep map[string]*sync.WaitGroup) *AnalyzerService {
return &AnalyzerService{
connChan: internalAnalyzerSChan,
@@ -56,8 +55,7 @@ type AnalyzerService struct {
shdChan *utils.SyncedChan
anz *analyzers.AnalyzerService
- rpc *v1.AnalyzerSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
srvDep map[string]*sync.WaitGroup
}
@@ -79,10 +77,8 @@ func (anz *AnalyzerService) Start() (err error) {
utils.Logger.Crit(fmt.Sprintf("<%s> Error: %s listening for packets", utils.AnalyzerS, err.Error()))
anz.shdChan.CloseOnce()
}
- return
}(anz.anz)
anz.server.SetAnalyzer(anz.anz)
- anz.rpc = v1.NewAnalyzerSv1(anz.anz)
go anz.start()
return
}
@@ -101,10 +97,18 @@ func (anz *AnalyzerService) start() {
anz.filterSChan <- fS
anz.anz.SetFilterS(fS)
}
- if !anz.cfg.DispatcherSCfg().Enabled {
- anz.server.RpcRegister(anz.rpc)
+ srv, err := engine.NewServiceWithName(anz.anz, utils.AnalyzerS, true)
+ if err != nil {
+ utils.Logger.Err(fmt.Sprintf("<%s> failed to initialize service, error: <%s>",
+ utils.AnalyzerS, err.Error()))
+ return
}
- anz.connChan <- anz.rpc
+ if !anz.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ anz.server.RpcRegister(s)
+ }
+ }
+ anz.connChan <- srv
}
// Reload handles the change of config
@@ -119,7 +123,6 @@ func (anz *AnalyzerService) Shutdown() (err error) {
anz.server.SetAnalyzer(nil)
anz.anz.Shutdown()
anz.anz = nil
- anz.rpc = nil
<-anz.connChan
anz.Unlock()
return
@@ -148,17 +151,9 @@ func (anz *AnalyzerService) GetAnalyzerS() *analyzers.AnalyzerService {
}
// GetInternalCodec returns the connection wrapped in analyzer connector
-func (anz *AnalyzerService) GetInternalCodec(c rpcclient.ClientConnector, to string) rpcclient.ClientConnector {
+func (anz *AnalyzerService) GetInternalCodec(c birpc.ClientConnector, to string) birpc.ClientConnector {
if !anz.IsRunning() {
return c
}
return anz.anz.NewAnalyzerConnector(c, utils.MetaInternal, utils.EmptyString, to)
}
-
-// GetInternalCodec returns the connection wrapped in analyzer connector
-func (anz *AnalyzerService) GetInternalBiRPCCodec(c rpcclient.BiRPCConector, to string) rpcclient.BiRPCConector {
- if !anz.IsRunning() {
- return c
- }
- return anz.anz.NewAnalyzerBiRPCConnector(c, rpcclient.BiRPCInternal, utils.EmptyString, to)
-}
diff --git a/services/analyzers_it_test.go b/services/analyzers_it_test.go
index 3158bb268..db4a74224 100644
--- a/services/analyzers_it_test.go
+++ b/services/analyzers_it_test.go
@@ -28,12 +28,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestAnalyzerSReload(t *testing.T) {
@@ -52,11 +53,11 @@ func TestAnalyzerSReload(t *testing.T) {
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anzRPC := make(chan rpcclient.ClientConnector, 1)
+ anzRPC := make(chan birpc.ClientConnector, 1)
anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, anzRPC, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(anz,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -65,10 +66,11 @@ func TestAnalyzerSReload(t *testing.T) {
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "analyzers"),
- Section: config.AnalyzerCfgJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "analyzers"),
+ Section: config.AnalyzerCfgJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
@@ -117,7 +119,7 @@ func TestAnalyzerSReload2(t *testing.T) {
filterSChan <- nil
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anzRPC := make(chan rpcclient.ClientConnector, 1)
+ anzRPC := make(chan birpc.ClientConnector, 1)
anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, anzRPC, srvDep)
anz.stopChan = make(chan struct{})
anz.start()
@@ -147,7 +149,7 @@ func TestAnalyzerSReload3(t *testing.T) {
filterSChan <- nil
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anzRPC := make(chan rpcclient.ClientConnector, 1)
+ anzRPC := make(chan birpc.ClientConnector, 1)
anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, anzRPC, srvDep)
anz.stopChan = make(chan struct{})
anz.Start()
diff --git a/services/analyzers_test.go b/services/analyzers_test.go
index 16c79800c..73b2287b8 100644
--- a/services/analyzers_test.go
+++ b/services/analyzers_test.go
@@ -22,13 +22,13 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/analyzers"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestAnalyzerCoverage for cover testing
@@ -39,7 +39,7 @@ func TestAnalyzerCoverage(t *testing.T) {
filterSChan <- nil
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- connChan := make(chan rpcclient.ClientConnector, 1)
+ connChan := make(chan birpc.ClientConnector, 1)
anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, connChan, srvDep)
if anz == nil {
t.Errorf("\nExpecting ,\n Received <%+v>", utils.ToJSON(anz))
@@ -57,7 +57,7 @@ func TestAnalyzerCoverage(t *testing.T) {
if anz2.IsRunning() {
t.Errorf("Expected service to be down")
}
- var rpcClientCnctr rpcclient.ClientConnector
+ var rpcClientCnctr birpc.ClientConnector
getIntrnCdc := anz2.GetInternalCodec(rpcClientCnctr, utils.EmptyString)
if !reflect.DeepEqual(getIntrnCdc, rpcClientCnctr) {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", utils.ToJSON(rpcClientCnctr), utils.ToJSON(getIntrnCdc))
@@ -79,7 +79,7 @@ func TestAnalyzerCoverage(t *testing.T) {
if !reflect.DeepEqual(anz2.anz, getAnalyzerS) {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", utils.ToJSON(anz2.anz), utils.ToJSON(getAnalyzerS))
}
- var rpcClientCnctr2 rpcclient.ClientConnector
+ var rpcClientCnctr2 birpc.ClientConnector
getIntrnCdc2 := anz2.GetInternalCodec(rpcClientCnctr2, utils.EmptyString)
expected2 := anz2.anz.NewAnalyzerConnector(nil, utils.MetaInternal, utils.EmptyString, utils.EmptyString)
if !reflect.DeepEqual(getIntrnCdc2, expected2) {
diff --git a/services/apiers_it_test.go b/services/apiers_it_test.go
index ef195599b..20091e2d3 100644
--- a/services/apiers_it_test.go
+++ b/services/apiers_it_test.go
@@ -27,6 +27,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
@@ -34,7 +36,6 @@ import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestApiersReload(t *testing.T) {
@@ -60,16 +61,16 @@ func TestApiersReload(t *testing.T) {
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Type = utils.MetaInternal
stordb := NewStorDBService(cfg, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
- tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
- rspd := NewResponderService(cfg, server, make(chan rpcclient.ClientConnector, 1), shdChan, anz, srvDep, filterSChan)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
+ tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
+ rspd := NewResponderService(cfg, server, make(chan birpc.ClientConnector, 1), shdChan, anz, srvDep, filterSChan)
apiSv1 := NewAPIerSv1Service(cfg, db, stordb, filterSChan, server, schS, rspd,
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
- apiSv2 := NewAPIerSv2Service(apiSv1, cfg, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
+ apiSv2 := NewAPIerSv2Service(apiSv1, cfg, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
srvMngr.AddServices(apiSv1, apiSv2, schS, tS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db, stordb)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db, stordb)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -86,10 +87,11 @@ func TestApiersReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.ApierS,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.ApierS,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/apiers_test.go b/services/apiers_test.go
index 694712af2..829a69fba 100644
--- a/services/apiers_test.go
+++ b/services/apiers_test.go
@@ -22,6 +22,7 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
v2 "github.com/cgrates/cgrates/apier/v2"
v1 "github.com/cgrates/cgrates/apier/v1"
@@ -30,7 +31,6 @@ import (
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestApiersCoverage for cover testing
@@ -47,11 +47,11 @@ func TestApiersCoverage(t *testing.T) {
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Type = utils.MetaInternal
stordb := NewStorDBService(cfg, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
apiSv1 := NewAPIerSv1Service(cfg, db, stordb, filterSChan, server, schS, new(ResponderService),
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
- apiSv2 := NewAPIerSv2Service(apiSv1, cfg, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
+ apiSv2 := NewAPIerSv2Service(apiSv1, cfg, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
if apiSv1.IsRunning() {
t.Errorf("Expected service to be down")
}
@@ -94,14 +94,18 @@ func TestApiersCoverage(t *testing.T) {
//populates apiSv1 and apiSv2 with something in order to call the close function
apiSv1.stopChan = make(chan struct{}, 1)
apiSv1.stopChan <- struct{}{}
- apiSv1.connChan = make(chan rpcclient.ClientConnector, 1)
- apiSv1.connChan <- chS
+ srv, err := engine.NewService(chS)
+ if err != nil {
+ t.Error(err)
+ }
+ apiSv1.connChan = make(chan birpc.ClientConnector, 1)
+ apiSv1.connChan <- srv
shutdownApi1 := apiSv1.Shutdown()
if shutdownApi1 != nil {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", nil, shutdownApi1)
}
- apiSv2.connChan = make(chan rpcclient.ClientConnector, 1)
- apiSv2.connChan <- chS
+ apiSv2.connChan = make(chan birpc.ClientConnector, 1)
+ apiSv2.connChan <- srv
shutdownApi2 := apiSv2.Shutdown()
if shutdownApi2 != nil {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", nil, shutdownApi2)
diff --git a/services/apierv1.go b/services/apierv1.go
index 0ce3f03d5..37308f2c0 100644
--- a/services/apierv1.go
+++ b/services/apierv1.go
@@ -22,12 +22,12 @@ import (
"runtime"
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewAPIerSv1Service returns the APIerSv1 Service
@@ -36,7 +36,7 @@ func NewAPIerSv1Service(cfg *config.CGRConfig, dm *DataDBService,
server *cores.Server,
schedService *SchedulerService,
responderService *ResponderService,
- internalAPIerSv1Chan chan rpcclient.ClientConnector,
+ internalAPIerSv1Chan chan birpc.ClientConnector,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) *APIerSv1Service {
return &APIerSv1Service{
@@ -68,7 +68,7 @@ type APIerSv1Service struct {
connMgr *engine.ConnManager
api *v1.APIerSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
stopChan chan struct{}
@@ -79,7 +79,7 @@ type APIerSv1Service struct {
// Start should handle the sercive start
// For this service the start should be called from RAL Service
-func (apiService *APIerSv1Service) Start() (err error) {
+func (apiService *APIerSv1Service) Start() error {
if apiService.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -117,17 +117,37 @@ func (apiService *APIerSv1Service) Start() (err error) {
go apiService.api.ListenAndServe(apiService.stopChan)
runtime.Gosched()
+ srv, err := engine.NewService(apiService.api)
+ if err != nil {
+ return err
+ }
if !apiService.cfg.DispatcherSCfg().Enabled {
- apiService.server.RpcRegister(apiService.api)
- apiService.server.RpcRegisterName(utils.ApierV1, apiService.api)
- apiService.server.RpcRegister(v1.NewReplicatorSv1(datadb, apiService.api))
+ for _, s := range srv {
+ apiService.server.RpcRegister(s)
+ }
+ var legacySrv engine.IntService
+ legacySrv, err = engine.NewServiceWithName(apiService.api, utils.ApierV1, true)
+ if err != nil {
+ return err
+ }
+ //backwards compatible
+ for _, s := range legacySrv {
+ apiService.server.RpcRegister(s)
+ }
+ var rplSrv engine.IntService
+ rplSrv, err = engine.NewService(v1.NewReplicatorSv1(datadb, apiService.api))
+ if err != nil {
+ return err
+ }
+ for _, s := range rplSrv {
+ apiService.server.RpcRegister(s)
+ }
}
- //backwards compatible
- apiService.connChan <- apiService.anz.GetInternalCodec(apiService.api, utils.APIerSv1)
+ apiService.connChan <- apiService.anz.GetInternalCodec(srv, utils.APIerSv1)
apiService.APIerSv1Chan <- apiService.api
- return
+ return nil
}
// Reload handles the change of config
diff --git a/services/apierv2.go b/services/apierv2.go
index da2921ff9..6272490db 100644
--- a/services/apierv2.go
+++ b/services/apierv2.go
@@ -21,16 +21,17 @@ package services
import (
"sync"
+ "github.com/cgrates/birpc"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
+ "github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewAPIerSv2Service returns the APIerSv2 Service
func NewAPIerSv2Service(apiv1 *APIerSv1Service, cfg *config.CGRConfig,
- server *cores.Server, internalAPIerSv2Chan chan rpcclient.ClientConnector,
+ server *cores.Server, internalAPIerSv2Chan chan birpc.ClientConnector,
anz *AnalyzerService, srvDep map[string]*sync.WaitGroup) *APIerSv2Service {
return &APIerSv2Service{
apiv1: apiv1,
@@ -50,14 +51,14 @@ type APIerSv2Service struct {
apiv1 *APIerSv1Service
api *v2.APIerSv2
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
// For this service the start should be called from RAL Service
-func (api *APIerSv2Service) Start() (err error) {
+func (api *APIerSv2Service) Start() error {
if api.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -72,14 +73,34 @@ func (api *APIerSv2Service) Start() (err error) {
api.api = &v2.APIerSv2{
APIerSv1: *apiV1,
}
-
+ srv, err := engine.NewService(api.api)
+ if err != nil {
+ return err
+ }
+ var apierV1Srv *birpc.Service
+ apierV1Srv, err = birpc.NewService(apiV1, "", false)
+ if err != nil {
+ return err
+ }
+ engine.RegisterPingMethod(apierV1Srv.Methods)
+ srv[utils.APIerSv1] = apierV1Srv
if !api.cfg.DispatcherSCfg().Enabled {
- api.server.RpcRegister(api.api)
- api.server.RpcRegisterName(utils.ApierV2, api.api)
+ for _, s := range srv {
+ api.server.RpcRegister(s)
+ }
+ var legacySrv engine.IntService
+ legacySrv, err = engine.NewServiceWithName(api.api, utils.ApierV2, true)
+ if err != nil {
+ return err
+ }
+ //backwards compatible
+ for _, s := range legacySrv {
+ api.server.RpcRegister(s)
+ }
}
- api.connChan <- api.anz.GetInternalCodec(api.api, utils.APIerSv2)
- return
+ api.connChan <- api.anz.GetInternalCodec(srv, utils.APIerSv2)
+ return nil
}
// Reload handles the change of config
diff --git a/services/asteriskagent.go b/services/asteriskagent.go
index 7ae03feca..9fd95b600 100644
--- a/services/asteriskagent.go
+++ b/services/asteriskagent.go
@@ -64,18 +64,22 @@ func (ast *AsteriskAgent) Start() (err error) {
defer ast.Unlock()
listenAndServe := func(sma *agents.AsteriskAgent, stopChan chan struct{}, shdChan *utils.SyncedChan) {
- if err := sma.ListenAndServe(stopChan); err != nil {
- utils.Logger.Err(fmt.Sprintf("<%s> runtime error: %s!", utils.AsteriskAgent, err))
+ if lnsErr := sma.ListenAndServe(stopChan); lnsErr != nil {
+ utils.Logger.Err(fmt.Sprintf("<%s> runtime error: %s!", utils.AsteriskAgent, lnsErr))
shdChan.CloseOnce()
}
}
ast.stopChan = make(chan struct{})
ast.smas = make([]*agents.AsteriskAgent, len(ast.cfg.AsteriskAgentCfg().AsteriskConns))
for connIdx := range ast.cfg.AsteriskAgentCfg().AsteriskConns { // Instantiate connections towards asterisk servers
- ast.smas[connIdx] = agents.NewAsteriskAgent(ast.cfg, connIdx, ast.connMgr)
+ ast.smas[connIdx], err = agents.NewAsteriskAgent(ast.cfg, connIdx, ast.connMgr)
+ if err != nil {
+ utils.Logger.Err(fmt.Sprintf("<%s> failed to initialize agent for connection %d, error: %s!", utils.AsteriskAgent, connIdx, err))
+ return err
+ }
go listenAndServe(ast.smas[connIdx], ast.stopChan, ast.shdChan)
}
- return
+ return nil
}
// Reload handles the change of config
diff --git a/services/asteriskagent_it_test.go b/services/asteriskagent_it_test.go
index 6d6b6e50e..50d6724e0 100644
--- a/services/asteriskagent_it_test.go
+++ b/services/asteriskagent_it_test.go
@@ -26,12 +26,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestAsteriskAgentReload(t *testing.T) {
@@ -49,52 +50,57 @@ func TestAsteriskAgentReload(t *testing.T) {
}()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Error(err)
+ }
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
- srv := NewAsteriskAgent(cfg, shdChan, nil, srvDep)
+ astService := NewAsteriskAgent(cfg, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
- srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ srvMngr.AddServices(astService, sS,
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
- if srv.IsRunning() {
+ if astService.IsRunning() {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "tutorial_tests", "asterisk_ari", "cgrates", "etc", "cgrates"),
- Section: config.AsteriskAgentJSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "tutorial_tests", "asterisk_ari", "cgrates", "etc", "cgrates"),
+ Section: config.AsteriskAgentJSN,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
}
time.Sleep(10 * time.Millisecond) //need to switch to gorutine
- if !srv.IsRunning() {
+ if !astService.IsRunning() {
t.Fatalf("Expected service to be running")
}
- srvReload := srv.Reload()
+ srvReload := astService.Reload()
if srvReload != nil {
t.Fatalf("\nExpecting ,\n Received <%+v>", srvReload)
}
- err := srv.Start()
+ err = astService.Start()
if err != utils.ErrServiceAlreadyRunning {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err)
}
cfg.AsteriskAgentCfg().Enabled = false
cfg.GetReloadChan(config.AsteriskAgentJSN) <- struct{}{}
time.Sleep(10 * time.Millisecond)
- if srv.IsRunning() {
+ if astService.IsRunning() {
t.Fatalf("Expected service to be down")
}
@@ -115,45 +121,49 @@ func TestAsteriskAgentReload2(t *testing.T) {
}()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
-
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Error(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
- srv := NewAsteriskAgent(cfg, shdChan, nil, srvDep)
+ astSrv := NewAsteriskAgent(cfg, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
- srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ srvMngr.AddServices(astSrv, sS,
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
- if srv.IsRunning() {
+ if astSrv.IsRunning() {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "tutorial_tests", "asterisk_ari", "cgrates", "etc", "cgrates"),
- Section: config.AsteriskAgentJSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "tutorial_tests", "asterisk_ari", "cgrates", "etc", "cgrates"),
+ Section: config.AsteriskAgentJSN,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
}
time.Sleep(10 * time.Millisecond) //need to switch to gorutine
- if !srv.IsRunning() {
+ if !astSrv.IsRunning() {
t.Fatalf("Expected service to be running")
}
- srvReload := srv.Reload()
+ srvReload := astSrv.Reload()
if srvReload != nil {
t.Fatalf("\nExpecting ,\n Received <%+v>", srvReload)
}
- err := srv.Start()
+ err = astSrv.Start()
if err != utils.ErrServiceAlreadyRunning {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err)
}
@@ -166,14 +176,14 @@ func TestAsteriskAgentReload2(t *testing.T) {
ConnectAttempts: 0,
Reconnects: 0,
}}
- srvReload = srv.Reload()
+ srvReload = astSrv.Reload()
if srvReload != nil {
t.Fatalf("\nExpecting ,\n Received <%+v>", srvReload)
}
cfg.AsteriskAgentCfg().Enabled = false
cfg.GetReloadChan(config.AsteriskAgentJSN) <- struct{}{}
time.Sleep(10 * time.Millisecond)
- if srv.IsRunning() {
+ if astSrv.IsRunning() {
t.Fatalf("Expected service to be down")
}
}
diff --git a/services/asteriskagent_test.go b/services/asteriskagent_test.go
index 5c47bce80..65d7f8904 100644
--- a/services/asteriskagent_test.go
+++ b/services/asteriskagent_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestAsteriskAgentCoverage for cover testing
@@ -38,12 +38,16 @@ func TestAsteriskAgentCoverage(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Error(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- srv := NewAsteriskAgent(cfg, shdChan, nil, srvDep)
- if srv == nil {
- t.Errorf("\nExpecting ,\n Received <%+v>", utils.ToJSON(srv))
+ astSrv := NewAsteriskAgent(cfg, shdChan, nil, srvDep)
+ if astSrv == nil {
+ t.Errorf("\nExpecting ,\n Received <%+v>", utils.ToJSON(astSrv))
}
srv2 := &AsteriskAgent{
RWMutex: sync.RWMutex{},
diff --git a/services/attributes.go b/services/attributes.go
index d88294f29..d3384b828 100644
--- a/services/attributes.go
+++ b/services/attributes.go
@@ -22,19 +22,19 @@ import (
"fmt"
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewAttributeService returns the Attribute Service
func NewAttributeService(cfg *config.CGRConfig, dm *DataDBService,
cacheS *engine.CacheS, filterSChan chan *engine.FilterS,
- server *cores.Server, internalChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalChan chan birpc.ClientConnector,
anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &AttributeService{
@@ -59,14 +59,14 @@ type AttributeService struct {
server *cores.Server
attrS *engine.AttributeService
- rpc *v1.AttributeSv1 // useful on restart
- connChan chan rpcclient.ClientConnector // publish the internal Subsystem when available
+ rpc *v1.AttributeSv1 // useful on restart
+ connChan chan birpc.ClientConnector // publish the internal Subsystem when available
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the service start
-func (attrS *AttributeService) Start() (err error) {
+func (attrS *AttributeService) Start() error {
if attrS.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -85,11 +85,17 @@ func (attrS *AttributeService) Start() (err error) {
attrS.attrS = engine.NewAttributeService(datadb, filterS, attrS.cfg)
utils.Logger.Info(fmt.Sprintf("<%s> starting <%s> subsystem", utils.CoreS, utils.AttributeS))
attrS.rpc = v1.NewAttributeSv1(attrS.attrS)
- if !attrS.cfg.DispatcherSCfg().Enabled {
- attrS.server.RpcRegister(attrS.rpc)
+ srv, err := engine.NewService(attrS.rpc)
+ if err != nil {
+ return err
}
- attrS.connChan <- attrS.anz.GetInternalCodec(attrS.rpc, utils.AttributeS)
- return
+ if !attrS.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ attrS.server.RpcRegister(s)
+ }
+ }
+ attrS.connChan <- attrS.anz.GetInternalCodec(srv, utils.AttributeS)
+ return nil
}
// Reload handles the change of config
diff --git a/services/attributes_it_test.go b/services/attributes_it_test.go
index 11ed0c165..d1e9bdfe2 100644
--- a/services/attributes_it_test.go
+++ b/services/attributes_it_test.go
@@ -26,8 +26,8 @@ import (
"testing"
"time"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -52,14 +52,14 @@ func TestAttributeSReload(t *testing.T) {
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- attrRPC := make(chan rpcclient.ClientConnector, 1)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ attrRPC := make(chan birpc.ClientConnector, 1)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
attrS := NewAttributeService(cfg, db,
chS, filterSChan, server, attrRPC,
anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(attrS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -71,10 +71,11 @@ func TestAttributeSReload(t *testing.T) {
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.ATTRIBUTE_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.ATTRIBUTE_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/attributes_test.go b/services/attributes_test.go
index 1b8536341..14576d773 100644
--- a/services/attributes_test.go
+++ b/services/attributes_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestAttributeSCoverage for cover testing
@@ -38,15 +38,15 @@ func TestAttributeSCoverage(t *testing.T) {
chS := engine.NewCacheS(cfg, nil, nil)
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- attrRPC := make(chan rpcclient.ClientConnector, 1)
+ attrRPC := make(chan birpc.ClientConnector, 1)
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
attrS := NewAttributeService(cfg, db, chS, filterSChan, server, attrRPC, anz, srvDep)
if attrS == nil {
t.Errorf("\nExpecting ,\n Received <%+v>", utils.ToJSON(attrS))
}
attrS2 := &AttributeService{
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
cfg: cfg,
dm: db,
cacheS: chS,
@@ -72,7 +72,11 @@ func TestAttributeSCoverage(t *testing.T) {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", utils.AttributeS, serviceName)
}
chS = engine.NewCacheS(cfg, nil, nil)
- attrS2.connChan <- chS
+ srv, err := engine.NewService(chS)
+ if err != nil {
+ t.Error(err)
+ }
+ attrS2.connChan <- srv
shutdownErr := attrS2.Shutdown()
if shutdownErr != nil {
t.Errorf("\nExpecting ,\n Received <%+v>", shutdownErr)
diff --git a/services/cdrs.go b/services/cdrs.go
index 0931ef566..6720f9946 100644
--- a/services/cdrs.go
+++ b/services/cdrs.go
@@ -23,6 +23,7 @@ import (
"runtime"
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
@@ -30,13 +31,12 @@ import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewCDRServer returns the CDR Server
func NewCDRServer(cfg *config.CGRConfig, dm *DataDBService,
storDB *StorDBService, filterSChan chan *engine.FilterS,
- server *cores.Server, internalCDRServerChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalCDRServerChan chan birpc.ClientConnector,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &CDRServer{
@@ -62,9 +62,7 @@ type CDRServer struct {
server *cores.Server
cdrS *engine.CDRServer
- rpcv1 *v1.CDRsV1
- rpcv2 *v2.CDRsV2
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
connMgr *engine.ConnManager
stopChan chan struct{}
@@ -73,7 +71,7 @@ type CDRServer struct {
}
// Start should handle the sercive start
-func (cdrService *CDRServer) Start() (err error) {
+func (cdrService *CDRServer) Start() error {
if cdrService.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -99,16 +97,26 @@ func (cdrService *CDRServer) Start() (err error) {
utils.Logger.Info("Registering CDRS HTTP Handlers.")
cdrService.cdrS.RegisterHandlersToServer(cdrService.server)
utils.Logger.Info("Registering CDRS RPC service.")
- cdrService.rpcv1 = v1.NewCDRsV1(cdrService.cdrS)
- cdrService.rpcv2 = &v2.CDRsV2{CDRsV1: *cdrService.rpcv1}
- if !cdrService.cfg.DispatcherSCfg().Enabled {
- cdrService.server.RpcRegister(cdrService.rpcv1)
- cdrService.server.RpcRegister(cdrService.rpcv2)
- // Make the cdr server available for internal communication
- cdrService.server.RpcRegister(cdrService.cdrS) // register CdrServer for internal usage (TODO: refactor this)
+
+ cdrsV1 := v1.NewCDRsV1(cdrService.cdrS)
+ cdrsV2 := &v2.CDRsV2{CDRsV1: *cdrsV1}
+ srv, err := engine.NewService(cdrsV1)
+ if err != nil {
+ return err
}
- cdrService.connChan <- cdrService.anz.GetInternalCodec(cdrService.cdrS, utils.CDRServer) // Signal that cdrS is operational
- return
+ cdrsV2Srv, err := birpc.NewService(cdrsV2, "", false)
+ if err != nil {
+ return err
+ }
+ engine.RegisterPingMethod(cdrsV2Srv.Methods)
+ srv[utils.CDRsV2] = cdrsV2Srv
+ if !cdrService.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ cdrService.server.RpcRegister(s)
+ }
+ }
+ cdrService.connChan <- cdrService.anz.GetInternalCodec(srv, utils.CDRServer) // Signal that cdrS is operational
+ return nil
}
// Reload handles the change of config
@@ -121,8 +129,6 @@ func (cdrService *CDRServer) Shutdown() (err error) {
cdrService.Lock()
close(cdrService.stopChan)
cdrService.cdrS = nil
- cdrService.rpcv1 = nil
- cdrService.rpcv2 = nil
<-cdrService.connChan
cdrService.Unlock()
return
diff --git a/services/cdrs_it_test.go b/services/cdrs_it_test.go
index d806ccc44..637d7a096 100644
--- a/services/cdrs_it_test.go
+++ b/services/cdrs_it_test.go
@@ -26,12 +26,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestCdrsReload(t *testing.T) {
@@ -66,19 +67,19 @@ func TestCdrsReload(t *testing.T) {
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Type = utils.MetaInternal
stordb := NewStorDBService(cfg, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- chrS := NewChargerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
- schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ chrS := NewChargerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
+ schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
ralS := NewRalService(cfg, chS, server,
- make(chan rpcclient.ClientConnector, 1),
- make(chan rpcclient.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep, filterSChan)
- cdrsRPC := make(chan rpcclient.ClientConnector, 1)
+ cdrsRPC := make(chan birpc.ClientConnector, 1)
cdrS := NewCDRServer(cfg, db, stordb, filterSChan, server,
cdrsRPC, nil, anz, srvDep)
srvMngr.AddServices(cdrS, ralS, schS, chrS,
NewLoaderService(cfg, db, filterSChan, server,
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db, stordb)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db, stordb)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -94,10 +95,11 @@ func TestCdrsReload(t *testing.T) {
cfg.RalsCfg().Enabled = true
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.CDRS_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.CDRS_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/cdrs_test.go b/services/cdrs_test.go
index b85314fc9..df709e1a4 100644
--- a/services/cdrs_test.go
+++ b/services/cdrs_test.go
@@ -21,11 +21,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestCdrsCoverage for cover testing
@@ -43,8 +43,8 @@ func TestCdrsCoverage(t *testing.T) {
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Type = utils.MetaInternal
stordb := NewStorDBService(cfg, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- cdrsRPC := make(chan rpcclient.ClientConnector, 1)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ cdrsRPC := make(chan birpc.ClientConnector, 1)
cdrS := NewCDRServer(cfg, db, stordb, filterSChan, server,
cdrsRPC, nil, anz, srvDep)
if cdrS.IsRunning() {
@@ -58,14 +58,18 @@ func TestCdrsCoverage(t *testing.T) {
storDB: stordb,
filterSChan: filterSChan,
server: server,
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
connMgr: nil,
stopChan: make(chan struct{}, 1),
anz: anz,
srvDep: srvDep,
cdrS: &engine.CDRServer{},
}
- cdrS2.connChan <- chS
+ srv, err := engine.NewService(chS)
+ if err != nil {
+ t.Error(err)
+ }
+ cdrS2.connChan <- srv
cdrS2.stopChan <- struct{}{}
if !cdrS2.IsRunning() {
t.Errorf("Expected service to be running")
diff --git a/services/chargers.go b/services/chargers.go
index 631f5b1ed..385587eae 100644
--- a/services/chargers.go
+++ b/services/chargers.go
@@ -22,19 +22,19 @@ import (
"fmt"
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewChargerService returns the Charger Service
func NewChargerService(cfg *config.CGRConfig, dm *DataDBService,
cacheS *engine.CacheS, filterSChan chan *engine.FilterS, server *cores.Server,
- internalChargerSChan chan rpcclient.ClientConnector, connMgr *engine.ConnManager,
+ internalChargerSChan chan birpc.ClientConnector, connMgr *engine.ConnManager,
anz *AnalyzerService, srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &ChargerService{
connChan: internalChargerSChan,
@@ -61,13 +61,13 @@ type ChargerService struct {
chrS *engine.ChargerService
rpc *v1.ChargerSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
-func (chrS *ChargerService) Start() (err error) {
+func (chrS *ChargerService) Start() error {
if chrS.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -85,12 +85,17 @@ func (chrS *ChargerService) Start() (err error) {
defer chrS.Unlock()
chrS.chrS = engine.NewChargerService(datadb, filterS, chrS.cfg, chrS.connMgr)
utils.Logger.Info(fmt.Sprintf("<%s> starting <%s> subsystem", utils.CoreS, utils.ChargerS))
- cSv1 := v1.NewChargerSv1(chrS.chrS)
- if !chrS.cfg.DispatcherSCfg().Enabled {
- chrS.server.RpcRegister(cSv1)
+ srv, err := engine.NewServiceWithName(chrS.chrS, utils.ChargerS, true)
+ if err != nil {
+ return err
}
- chrS.connChan <- chrS.anz.GetInternalCodec(cSv1, utils.ChargerS)
- return
+ if !chrS.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ chrS.server.RpcRegister(s)
+ }
+ }
+ chrS.connChan <- chrS.anz.GetInternalCodec(srv, utils.ChargerS)
+ return nil
}
// Reload handles the change of config
diff --git a/services/chargers_it_test.go b/services/chargers_it_test.go
index c1979af40..29f8caaca 100644
--- a/services/chargers_it_test.go
+++ b/services/chargers_it_test.go
@@ -26,8 +26,8 @@ import (
"testing"
"time"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -54,13 +54,13 @@ func TestChargerSReload(t *testing.T) {
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- attrS := NewAttributeService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
- chrS := NewChargerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ attrS := NewAttributeService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
+ chrS := NewChargerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(attrS, chrS,
NewLoaderService(cfg, db, filterSChan, server,
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -71,10 +71,11 @@ func TestChargerSReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.ChargerSCfgJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.ChargerSCfgJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/chargers_test.go b/services/chargers_test.go
index 547fd2647..46874ef6b 100644
--- a/services/chargers_test.go
+++ b/services/chargers_test.go
@@ -22,8 +22,7 @@ import (
"sync"
"testing"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -41,15 +40,15 @@ func TestChargerSCoverage(t *testing.T) {
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
server := cores.NewServer(nil)
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
chrS1 := NewChargerService(cfg, db, chS,
- filterSChan, server, make(chan rpcclient.ClientConnector, 1),
+ filterSChan, server, make(chan birpc.ClientConnector, 1),
nil, anz, srvDep)
if chrS1.IsRunning() {
t.Errorf("Expected service to be down")
}
chrS := &ChargerService{
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
cfg: cfg,
dm: db,
cacheS: chS,
@@ -75,8 +74,12 @@ func TestChargerSCoverage(t *testing.T) {
if !reflect.DeepEqual(shouldRun, false) {
t.Errorf("\nExpecting ,\n Received <%+v>", shouldRun)
}
- chrS.connChan = make(chan rpcclient.ClientConnector, 1)
- chrS.connChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Error(err)
+ }
+ chrS.connChan = make(chan birpc.ClientConnector, 1)
+ chrS.connChan <- cacheSrv
shutErr := chrS.Shutdown()
if shutErr != nil {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", nil, shutErr)
diff --git a/services/cores.go b/services/cores.go
index 7c27079b2..42d285d40 100644
--- a/services/cores.go
+++ b/services/cores.go
@@ -23,17 +23,16 @@ import (
"io"
"sync"
- v1 "github.com/cgrates/cgrates/apier/v1"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewCoreService returns the Core Service
func NewCoreService(cfg *config.CGRConfig, caps *engine.Caps, server *cores.Server,
- internalCoreSChan chan rpcclient.ClientConnector, anz *AnalyzerService,
+ internalCoreSChan chan birpc.ClientConnector, anz *AnalyzerService,
fileCpu io.Closer, fileMEM string, shdWg *sync.WaitGroup, stopMemPrf chan struct{},
shdChan *utils.SyncedChan, srvDep map[string]*sync.WaitGroup) *CoreService {
return &CoreService{
@@ -64,14 +63,13 @@ type CoreService struct {
fileCpu io.Closer
fileMem string
cS *cores.CoreService
- rpc *v1.CoreSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the service start
-func (cS *CoreService) Start() (err error) {
+func (cS *CoreService) Start() error {
if cS.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -81,12 +79,17 @@ func (cS *CoreService) Start() (err error) {
utils.Logger.Info(fmt.Sprintf("<%s> starting <%s> subsystem", utils.CoreS, utils.CoreS))
cS.stopChan = make(chan struct{})
cS.cS = cores.NewCoreService(cS.cfg, cS.caps, cS.fileCpu, cS.fileMem, cS.stopChan, cS.shdWg, cS.stopMemPrf, cS.shdChan)
- cS.rpc = v1.NewCoreSv1(cS.cS)
- if !cS.cfg.DispatcherSCfg().Enabled {
- cS.server.RpcRegister(cS.rpc)
+ srv, err := engine.NewServiceWithName(cS.cS, utils.CoreS, true)
+ if err != nil {
+ return err
}
- cS.connChan <- cS.anz.GetInternalCodec(cS.rpc, utils.CoreS)
- return
+ if !cS.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ cS.server.RpcRegister(s)
+ }
+ }
+ cS.connChan <- cS.anz.GetInternalCodec(srv, utils.CoreS)
+ return nil
}
// Reload handles the change of config
@@ -101,7 +104,6 @@ func (cS *CoreService) Shutdown() (err error) {
cS.cS.Shutdown()
close(cS.stopChan)
cS.cS = nil
- cS.rpc = nil
<-cS.connChan
return
}
diff --git a/services/cores_it_test.go b/services/cores_it_test.go
index 272783678..ffba0c198 100644
--- a/services/cores_it_test.go
+++ b/services/cores_it_test.go
@@ -26,8 +26,8 @@ import (
"testing"
"time"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -49,13 +49,13 @@ func TestCoreSReload(t *testing.T) {
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- coreRPC := make(chan rpcclient.ClientConnector, 1)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ coreRPC := make(chan birpc.ClientConnector, 1)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
caps := engine.NewCaps(1, "test_caps")
coreS := NewCoreService(cfg, caps, server, coreRPC, anz, nil, "", nil, nil, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(coreS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -64,10 +64,11 @@ func TestCoreSReload(t *testing.T) {
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "caps_queue"),
- Section: config.CoreSCfgJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "caps_queue"),
+ Section: config.CoreSCfgJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
diff --git a/services/cores_test.go b/services/cores_test.go
index f64ab207b..b31cb442a 100644
--- a/services/cores_test.go
+++ b/services/cores_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestCoreSCoverage for cover testing
@@ -34,12 +34,12 @@ func TestCoreSCoverage(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
caps := engine.NewCaps(1, "test_caps")
server := cores.NewServer(nil)
- internalCoreSChan := make(chan rpcclient.ClientConnector, 1)
+ internalCoreSChan := make(chan birpc.ClientConnector, 1)
filterSChan := make(chan *engine.FilterS, 1)
filterSChan <- nil
shdChan := utils.NewSyncedChan()
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
srv := NewCoreService(cfg, caps, server,
internalCoreSChan, anz, nil, "/tmp", nil, nil, nil, srvDep)
if srv == nil {
@@ -66,7 +66,11 @@ func TestCoreSCoverage(t *testing.T) {
}
//populates connChan with something in order to call the shutdown function
chS := engine.NewCacheS(cfg, nil, nil)
- srv.connChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Error(err)
+ }
+ srv.connChan <- cacheSrv
srv.stopChan = make(chan struct{})
getShut := srv.Shutdown()
if getShut != nil {
diff --git a/services/datadb_it_test.go b/services/datadb_it_test.go
index 8b6d73f7e..7b1f06ceb 100644
--- a/services/datadb_it_test.go
+++ b/services/datadb_it_test.go
@@ -27,8 +27,8 @@ import (
"testing"
"time"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -54,10 +54,10 @@ func TestDataDBReload(t *testing.T) {
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
cM := engine.NewConnManager(cfg, nil)
db := NewDataDBService(cfg, cM, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
srvMngr.AddServices(NewAttributeService(cfg, db,
- chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep),
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep),
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -66,10 +66,11 @@ func TestDataDBReload(t *testing.T) {
}
var reply string
cfg.AttributeSCfg().Enabled = true
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.DATADB_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.DATADB_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/diameteragent.go b/services/diameteragent.go
index 689bcaded..145e1ff44 100644
--- a/services/diameteragent.go
+++ b/services/diameteragent.go
@@ -73,24 +73,26 @@ func (da *DiameterAgent) Start() (err error) {
return da.start(filterS)
}
-func (da *DiameterAgent) start(filterS *engine.FilterS) (err error) {
+func (da *DiameterAgent) start(filterS *engine.FilterS) error {
+ var err error
da.da, err = agents.NewDiameterAgent(da.cfg, filterS, da.connMgr)
if err != nil {
- utils.Logger.Err(fmt.Sprintf("<%s> error: %s!",
+ utils.Logger.Err(fmt.Sprintf("<%s> failed to initialize agent, error: %s",
utils.DiameterAgent, err))
- return
+ return err
}
da.lnet = da.cfg.DiameterAgentCfg().ListenNet
da.laddr = da.cfg.DiameterAgentCfg().Listen
da.stopChan = make(chan struct{})
go func(d *agents.DiameterAgent) {
- if err = d.ListenAndServe(da.stopChan); err != nil {
- utils.Logger.Err(fmt.Sprintf("<%s> error: %s!",
- utils.DiameterAgent, err))
+ lnsErr := d.ListenAndServe(da.stopChan)
+ if lnsErr != nil {
+ utils.Logger.Err(fmt.Sprintf("<%s> error: %s",
+ utils.DiameterAgent, lnsErr))
da.shdChan.CloseOnce()
}
}(da.da)
- return
+ return nil
}
// Reload handles the change of config
diff --git a/services/diameteragent_it_test.go b/services/diameteragent_it_test.go
index f4a2c9693..83a4d6bd6 100644
--- a/services/diameteragent_it_test.go
+++ b/services/diameteragent_it_test.go
@@ -26,12 +26,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestDiameterAgentReload1(t *testing.T) {
@@ -45,56 +46,61 @@ func TestDiameterAgentReload1(t *testing.T) {
shdChan := utils.NewSyncedChan()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
- srv := NewDiameterAgent(cfg, filterSChan, shdChan, nil, srvDep)
+ diamSrv := NewDiameterAgent(cfg, filterSChan, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
- srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ srvMngr.AddServices(diamSrv, sS,
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
- if srv.IsRunning() {
+ if diamSrv.IsRunning() {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "diamagent_mysql"),
- Section: config.DA_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "diamagent_mysql"),
+ Section: config.DA_JSN,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
}
time.Sleep(10 * time.Millisecond) //need to switch to gorutine
- if !srv.IsRunning() {
+ if !diamSrv.IsRunning() {
t.Errorf("Expected service to be running")
}
- err := srv.Start()
+ err = diamSrv.Start()
if err == nil || err != utils.ErrServiceAlreadyRunning {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err)
}
- err = srv.Reload()
+ err = diamSrv.Reload()
if err != nil {
t.Errorf("\nExpecting ,\n Received <%+v>", err)
}
cfg.DiameterAgentCfg().Enabled = false
cfg.GetReloadChan(config.DA_JSN) <- struct{}{}
- srv.(*DiameterAgent).lnet = "bad_lnet_test"
- err2 := srv.Reload()
+ diamSrv.(*DiameterAgent).lnet = "bad_lnet_test"
+ err2 := diamSrv.Reload()
if err != nil {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, err2)
}
time.Sleep(10 * time.Millisecond)
- if srv.IsRunning() {
+ if diamSrv.IsRunning() {
t.Errorf("Expected service to be down")
}
shdChan.CloseOnce()
@@ -111,8 +117,12 @@ func TestDiameterAgentReload2(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewDiameterAgent(cfg, filterSChan, shdChan, nil, srvDep)
if srv.IsRunning() {
@@ -136,15 +146,19 @@ func TestDiameterAgentReload3(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewDiameterAgent(cfg, filterSChan, shdChan, nil, srvDep)
cfg.DiameterAgentCfg().ListenNet = "bad"
cfg.DiameterAgentCfg().DictionariesPath = ""
- err := srv.(*DiameterAgent).start(nil)
+ err = srv.(*DiameterAgent).start(nil)
if err != nil {
t.Fatal(err)
}
diff --git a/services/dispatchers.go b/services/dispatchers.go
index 4eb2e1ba7..f5eb6e953 100644
--- a/services/dispatchers.go
+++ b/services/dispatchers.go
@@ -21,6 +21,7 @@ package services
import (
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
@@ -29,13 +30,12 @@ import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewDispatcherService returns the Dispatcher Service
func NewDispatcherService(cfg *config.CGRConfig, dm *DataDBService,
cacheS *engine.CacheS, filterSChan chan *engine.FilterS,
- server *cores.Server, internalChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalChan chan birpc.ClientConnector,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &DispatcherService{
@@ -63,13 +63,13 @@ type DispatcherService struct {
dspS *dispatchers.DispatcherService
rpc *v1.DispatcherSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
-func (dspS *DispatcherService) Start() (err error) {
+func (dspS *DispatcherService) Start() error {
if dspS.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -88,69 +88,18 @@ func (dspS *DispatcherService) Start() (err error) {
dspS.dspS = dispatchers.NewDispatcherService(datadb, dspS.cfg, fltrS, dspS.connMgr)
- // for the moment we dispable Apier through dispatcher
- // until we figured out a better sollution in case of gob server
- // dspS.server.SetDispatched()
+ dspS.server.RpcUnregisterName(utils.AttributeSv1)
- dspS.server.RpcRegister(v1.NewDispatcherSv1(dspS.dspS))
+ srv, err := newDispatcherServiceMap(dspS.dspS)
+ if err != nil {
+ return err
+ }
+ for _, s := range srv {
+ dspS.server.RpcRegister(s)
+ }
+ dspS.connChan <- dspS.anz.GetInternalCodec(srv, utils.DispatcherS)
- dspS.server.RpcRegisterName(utils.ThresholdSv1,
- v1.NewDispatcherThresholdSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.StatSv1,
- v1.NewDispatcherStatSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.ResourceSv1,
- v1.NewDispatcherResourceSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.RouteSv1,
- v1.NewDispatcherRouteSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.AttributeSv1,
- v1.NewDispatcherAttributeSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.SessionSv1,
- v1.NewDispatcherSessionSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.ChargerSv1,
- v1.NewDispatcherChargerSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.CoreSv1,
- v1.NewDispatcherCoreSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.EeSv1,
- v1.NewDispatcherEeSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.Responder,
- v1.NewDispatcherResponder(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.CacheSv1,
- v1.NewDispatcherCacheSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.GuardianSv1,
- v1.NewDispatcherGuardianSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.SchedulerSv1,
- v1.NewDispatcherSchedulerSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.CDRsV1,
- v1.NewDispatcherSCDRsV1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.ConfigSv1,
- v1.NewDispatcherConfigSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.RALsV1,
- v1.NewDispatcherRALsV1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.ReplicatorSv1,
- v1.NewDispatcherReplicatorSv1(dspS.dspS))
-
- dspS.server.RpcRegisterName(utils.CDRsV2,
- v2.NewDispatcherSCDRsV2(dspS.dspS))
-
- dspS.connChan <- dspS.anz.GetInternalCodec(dspS.dspS, utils.DispatcherS)
-
- return
+ return nil
}
// Reload handles the change of config
@@ -185,3 +134,142 @@ func (dspS *DispatcherService) ServiceName() string {
func (dspS *DispatcherService) ShouldRun() bool {
return dspS.cfg.DispatcherSCfg().Enabled
}
+
+func newDispatcherServiceMap(val *dispatchers.DispatcherService) (engine.IntService, error) {
+ srvMap := make(engine.IntService)
+
+ srv, err := birpc.NewService(v1.NewDispatcherAttributeSv1(val),
+ utils.AttributeSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherCacheSv1(val),
+ utils.CacheSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherSCDRsV1(val),
+ utils.CDRsV1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v2.NewDispatcherSCDRsV2(val),
+ utils.CDRsV2, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherChargerSv1(val),
+ utils.ChargerSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherConfigSv1(val),
+ utils.ConfigSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherCoreSv1(val),
+ utils.CoreSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherSv1(val),
+ utils.DispatcherSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherEeSv1(val),
+ utils.EeSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherGuardianSv1(val),
+ utils.GuardianSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherRALsV1(val),
+ utils.RALsV1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherReplicatorSv1(val),
+ utils.ReplicatorSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherResourceSv1(val),
+ utils.ResourceSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherThresholdSv1(val),
+ utils.ThresholdSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherResponder(val),
+ utils.Responder, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherRouteSv1(val),
+ utils.RouteSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherSchedulerSv1(val),
+ utils.SchedulerSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherSessionSv1(val),
+ utils.SessionSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ srv, err = birpc.NewService(v1.NewDispatcherStatSv1(val),
+ utils.StatSv1, true)
+ if err != nil {
+ return nil, err
+ }
+ srvMap[srv.Name] = srv
+
+ return srvMap, nil
+}
diff --git a/services/dispatchers_it_test.go b/services/dispatchers_it_test.go
index 77a8b025a..0f4a117f6 100644
--- a/services/dispatchers_it_test.go
+++ b/services/dispatchers_it_test.go
@@ -26,8 +26,8 @@ import (
"testing"
"time"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -55,14 +55,14 @@ func TestDispatcherSReload(t *testing.T) {
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- attrS := NewAttributeService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ attrS := NewAttributeService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
srv := NewDispatcherService(cfg, db, chS, filterSChan, server,
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(attrS, srv,
NewLoaderService(cfg, db, filterSChan, server,
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -73,11 +73,12 @@ func TestDispatcherSReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dispatchers", "dispatchers_mysql"),
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dispatchers", "dispatchers_mysql"),
- Section: config.DispatcherSJson,
- }, &reply); err != nil {
+ Section: config.DispatcherSJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/dispatchers_test.go b/services/dispatchers_test.go
index 53f0a557b..101934c01 100644
--- a/services/dispatchers_test.go
+++ b/services/dispatchers_test.go
@@ -21,13 +21,13 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestDispatcherSCoverage for cover testing
@@ -41,9 +41,9 @@ func TestDispatcherSCoverage(t *testing.T) {
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
srv := NewDispatcherService(cfg, db, chS, filterSChan, server,
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
if srv.IsRunning() {
t.Errorf("Expected service to be down")
}
@@ -55,7 +55,7 @@ func TestDispatcherSCoverage(t *testing.T) {
filterSChan: filterSChan,
server: server,
connMgr: nil,
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
anz: anz,
srvDep: srvDep,
}
@@ -72,8 +72,11 @@ func TestDispatcherSCoverage(t *testing.T) {
if shouldRun != false {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", false, shouldRun)
}
-
- srv2.connChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ srv2.connChan <- cacheSrv
shutErr := srv2.Shutdown()
if shutErr != nil {
t.Errorf("\nExpecting ,\n Received <%+v>", shutErr)
diff --git a/services/dnsagent.go b/services/dnsagent.go
index 9af38f9de..7406e79c5 100644
--- a/services/dnsagent.go
+++ b/services/dnsagent.go
@@ -69,7 +69,7 @@ func (dns *DNSAgent) Start() (err error) {
defer dns.Unlock()
dns.dns, err = agents.NewDNSAgent(dns.cfg, filterS, dns.connMgr)
if err != nil {
- utils.Logger.Err(fmt.Sprintf("<%s> error: <%s>", utils.DNSAgent, err.Error()))
+ utils.Logger.Err(fmt.Sprintf("<%s> failed to initialize agent, error: <%s>", utils.DNSAgent, err.Error()))
dns.dns = nil
return
}
diff --git a/services/dnsagent_it_test.go b/services/dnsagent_it_test.go
index 6b3d93786..9cb3f4845 100644
--- a/services/dnsagent_it_test.go
+++ b/services/dnsagent_it_test.go
@@ -27,13 +27,14 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestDNSAgentStartReloadShut(t *testing.T) {
@@ -63,11 +64,11 @@ func TestDNSAgentStartReloadShut(t *testing.T) {
engine.NewConnManager(cfg, nil)
db := NewDataDBService(cfg, nil, srvDep)
server := cores.NewServer(nil)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
runtime.Gosched()
time.Sleep(10 * time.Millisecond) //need to switch to gorutine
if err := srv.Shutdown(); err != nil {
@@ -107,21 +108,24 @@ func TestDNSAgentReloadFirst(t *testing.T) {
}()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
-
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
srv := NewDNSAgent(cfg, filterSChan, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -130,10 +134,11 @@ func TestDNSAgentReloadFirst(t *testing.T) {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_reload"),
- Section: config.DNSAgentJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_reload"),
+ Section: config.DNSAgentJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
@@ -143,22 +148,24 @@ func TestDNSAgentReloadFirst(t *testing.T) {
if !srv.IsRunning() {
t.Fatalf("Expected service to be running")
}
- err := srv.Start()
+ err = srv.Start()
if err == nil || err != utils.ErrServiceAlreadyRunning {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err)
}
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_reload"),
- Section: config.DNSAgentJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_reload"),
+ Section: config.DNSAgentJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
}
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_reload"),
- Section: config.DNSAgentJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_reload"),
+ Section: config.DNSAgentJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
diff --git a/services/dnsagent_test.go b/services/dnsagent_test.go
index 531c103b3..85584105c 100644
--- a/services/dnsagent_test.go
+++ b/services/dnsagent_test.go
@@ -21,11 +21,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestDNSAgentCoverage for cover testing
@@ -37,8 +37,12 @@ func TestDNSAgentCoverage(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewDNSAgent(cfg, filterSChan, shdChan, nil, srvDep)
if srv.IsRunning() {
diff --git a/services/ees.go b/services/ees.go
index 20ffbd8af..699ff4964 100644
--- a/services/ees.go
+++ b/services/ees.go
@@ -22,20 +22,19 @@ import (
"fmt"
"sync"
- v1 "github.com/cgrates/cgrates/apier/v1"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/ees"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewEventExporterService constructs EventExporterService
func NewEventExporterService(cfg *config.CGRConfig, filterSChan chan *engine.FilterS,
connMgr *engine.ConnManager, server *cores.Server,
- intConnChan chan rpcclient.ClientConnector, anz *AnalyzerService,
+ intConnChan chan birpc.ClientConnector, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &EventExporterService{
cfg: cfg,
@@ -57,12 +56,11 @@ type EventExporterService struct {
filterSChan chan *engine.FilterS
connMgr *engine.ConnManager
server *cores.Server
- intConnChan chan rpcclient.ClientConnector
+ intConnChan chan birpc.ClientConnector
rldChan chan struct{}
stopChan chan struct{}
eeS *ees.EventExporterS
- rpc *v1.EeSv1
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
@@ -102,7 +100,7 @@ func (es *EventExporterService) Shutdown() (err error) {
}
// Start should handle the service start
-func (es *EventExporterService) Start() (err error) {
+func (es *EventExporterService) Start() error {
if es.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -119,10 +117,15 @@ func (es *EventExporterService) Start() (err error) {
es.stopChan = make(chan struct{})
go es.eeS.ListenAndServe(es.stopChan, es.rldChan)
- es.rpc = v1.NewEeSv1(es.eeS)
- if !es.cfg.DispatcherSCfg().Enabled {
- es.server.RpcRegister(es.rpc)
+ srv, err := engine.NewServiceWithName(es.eeS, utils.EeS, true)
+ if err != nil {
+ return err
}
- es.intConnChan <- es.anz.GetInternalCodec(es.eeS, utils.EEs)
- return
+ if !es.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ es.server.RpcRegister(s)
+ }
+ }
+ es.intConnChan <- es.anz.GetInternalCodec(srv, utils.EEs)
+ return nil
}
diff --git a/services/ees_it_test.go b/services/ees_it_test.go
index 8f603a53b..05d63cf37 100644
--- a/services/ees_it_test.go
+++ b/services/ees_it_test.go
@@ -27,8 +27,8 @@ import (
"testing"
"time"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -62,14 +62,14 @@ func TestEventExporterSReload(t *testing.T) {
chS := engine.NewCacheS(cfg, nil, nil)
close(chS.GetPrecacheChannel(utils.CacheAttributeProfiles))
close(chS.GetPrecacheChannel(utils.CacheAttributeFilterIndexes))
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
attrS := NewAttributeService(cfg, db,
- chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1),
+ chS, filterSChan, server, make(chan birpc.ClientConnector, 1),
anz, srvDep)
ees := NewEventExporterService(cfg, filterSChan, engine.NewConnManager(cfg, nil),
- server, make(chan rpcclient.ClientConnector, 2), anz, srvDep)
+ server, make(chan birpc.ClientConnector, 2), anz, srvDep)
srvMngr.AddServices(ees, attrS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -86,10 +86,11 @@ func TestEventExporterSReload(t *testing.T) {
fcTmp.ComputePath()
cfg.TemplatesCfg()["requiredFields"] = []*config.FCTemplate{fcTmp}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "ees"),
- Section: config.EEsJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "ees"),
+ Section: config.EEsJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
@@ -136,9 +137,9 @@ func TestEventExporterSReload2(t *testing.T) {
shdChan := utils.NewSyncedChan()
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
ees := NewEventExporterService(cfg, filterSChan, engine.NewConnManager(cfg, nil),
- server, make(chan rpcclient.ClientConnector, 2), anz, srvDep)
+ server, make(chan birpc.ClientConnector, 2), anz, srvDep)
if ees.IsRunning() {
t.Fatalf("Expected service to be down")
}
diff --git a/services/ees_test.go b/services/ees_test.go
index 326de0ba8..6b5654bd8 100644
--- a/services/ees_test.go
+++ b/services/ees_test.go
@@ -21,13 +21,13 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/ees"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestEventExporterSCoverage for cover testing
@@ -41,8 +41,8 @@ func TestEventExporterSCoverage(t *testing.T) {
shdChan := utils.NewSyncedChan()
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- srv := NewEventExporterService(cfg, filterSChan, engine.NewConnManager(cfg, nil), server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ srv := NewEventExporterService(cfg, filterSChan, engine.NewConnManager(cfg, nil), server, make(chan birpc.ClientConnector, 1), anz, srvDep)
if srv.IsRunning() {
t.Errorf("Expected service to be down")
}
@@ -51,7 +51,7 @@ func TestEventExporterSCoverage(t *testing.T) {
filterSChan: filterSChan,
connMgr: engine.NewConnManager(cfg, nil),
server: server,
- intConnChan: make(chan rpcclient.ClientConnector, 1),
+ intConnChan: make(chan birpc.ClientConnector, 1),
anz: anz,
srvDep: srvDep,
rldChan: make(chan struct{}, 1),
@@ -69,7 +69,11 @@ func TestEventExporterSCoverage(t *testing.T) {
if shouldRun != false {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", false, shouldRun)
}
- srv2.intConnChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ srv2.intConnChan <- cacheSrv
shutErr := srv2.Shutdown()
if shutErr != nil {
t.Errorf("\nExpecting ,\n Received <%+v>", shutErr)
diff --git a/services/ers_it_test.go b/services/ers_it_test.go
index 844f0229d..1f905ba71 100644
--- a/services/ers_it_test.go
+++ b/services/ers_it_test.go
@@ -28,13 +28,14 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/ers"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestEventReaderSReload(t *testing.T) {
@@ -63,13 +64,13 @@ func TestEventReaderSReload(t *testing.T) {
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1), shdChan, nil, anz, srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1), shdChan, nil, anz, srvDep)
erS := NewEventReaderService(cfg, filterSChan, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(erS, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -77,10 +78,11 @@ func TestEventReaderSReload(t *testing.T) {
t.Fatal("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "ers_reload", "internal"),
- Section: config.ERsJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "ers_reload", "internal"),
+ Section: config.ERsJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
diff --git a/services/freeswitchagent.go b/services/freeswitchagent.go
index fb731f7f3..01c2d145f 100644
--- a/services/freeswitchagent.go
+++ b/services/freeswitchagent.go
@@ -54,7 +54,7 @@ type FreeswitchAgent struct {
}
// Start should handle the sercive start
-func (fS *FreeswitchAgent) Start() (err error) {
+func (fS *FreeswitchAgent) Start() error {
if fS.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -62,15 +62,20 @@ func (fS *FreeswitchAgent) Start() (err error) {
fS.Lock()
defer fS.Unlock()
- fS.fS = agents.NewFSsessions(fS.cfg.FsAgentCfg(), fS.cfg.GeneralCfg().DefaultTimezone, fS.connMgr)
+ var err error
+ fS.fS, err = agents.NewFSsessions(fS.cfg.FsAgentCfg(), fS.cfg.GeneralCfg().DefaultTimezone, fS.connMgr)
+ if err != nil {
+ utils.Logger.Err(fmt.Sprintf("<%s> failed to initialize agent, error: %s", utils.FreeSWITCHAgent, err))
+ return err
+ }
go func(f *agents.FSsessions) {
- if err := f.Connect(); err != nil {
- utils.Logger.Err(fmt.Sprintf("<%s> error: %s!", utils.FreeSWITCHAgent, err))
+ if connErr := f.Connect(); connErr != nil {
+ utils.Logger.Err(fmt.Sprintf("<%s> error: %s!", utils.FreeSWITCHAgent, connErr))
fS.shdChan.CloseOnce() // stop the engine here
}
}(fS.fS)
- return
+ return nil
}
// Reload handles the change of config
diff --git a/services/freeswitchagent_it_test.go b/services/freeswitchagent_it_test.go
index 19f3f37f6..67aca7f80 100644
--- a/services/freeswitchagent_it_test.go
+++ b/services/freeswitchagent_it_test.go
@@ -26,13 +26,14 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestFreeSwitchAgentReload(t *testing.T) {
@@ -51,20 +52,24 @@ func TestFreeSwitchAgentReload(t *testing.T) {
}()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
srv := NewFreeswitchAgent(cfg, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -72,10 +77,11 @@ func TestFreeSwitchAgentReload(t *testing.T) {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "tutorial_tests", "fs_evsock", "cgrates", "etc", "cgrates"),
- Section: config.FreeSWITCHAgentJSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "tutorial_tests", "fs_evsock", "cgrates", "etc", "cgrates"),
+ Section: config.FreeSWITCHAgentJSN,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
@@ -97,8 +103,12 @@ func TestFreeSwitchAgentReload2(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewFreeswitchAgent(cfg, shdChan, nil, srvDep)
@@ -109,7 +119,7 @@ func TestFreeSwitchAgentReload2(t *testing.T) {
if !srv.IsRunning() {
t.Fatalf("Expected service to be running")
}
- err := srv.Start()
+ err = srv.Start()
if err == nil || err.Error() != "service already running" {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", "service already running", err)
}
@@ -129,8 +139,12 @@ func TestFreeSwitchAgentReload3(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewFreeswitchAgent(cfg, shdChan, nil, srvDep)
@@ -141,7 +155,7 @@ func TestFreeSwitchAgentReload3(t *testing.T) {
if !srv.IsRunning() {
t.Fatalf("Expected service to be running")
}
- err := srv.Start()
+ err = srv.Start()
if err == nil || err.Error() != "service already running" {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", "service already running", err)
}
@@ -160,8 +174,12 @@ func TestFreeSwitchAgentReload4(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewFreeswitchAgent(cfg, shdChan, nil, srvDep)
if srv.IsRunning() {
@@ -186,8 +204,12 @@ func TestFreeSwitchAgentReload4(t *testing.T) {
},
},
}
- srv.(*FreeswitchAgent).fS = agents.NewFSsessions(agentCfg, "", nil)
- err := srv.(*FreeswitchAgent).reload(srv.(*FreeswitchAgent).fS)
+
+ srv.(*FreeswitchAgent).fS, err = agents.NewFSsessions(agentCfg, "", nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+ err = srv.(*FreeswitchAgent).reload(srv.(*FreeswitchAgent).fS)
if err != nil {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
@@ -202,8 +224,12 @@ func TestFreeSwitchAgentReload5(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewFreeswitchAgent(cfg, shdChan, nil, srvDep)
if srv.IsRunning() {
@@ -211,7 +237,7 @@ func TestFreeSwitchAgentReload5(t *testing.T) {
}
srv.(*FreeswitchAgent).fS = nil
- err := srv.Start()
+ err = srv.Start()
if err != nil {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
@@ -226,8 +252,12 @@ func TestFreeSwitchAgentReload6(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewFreeswitchAgent(cfg, shdChan, nil, srvDep)
if srv.IsRunning() {
@@ -252,8 +282,11 @@ func TestFreeSwitchAgentReload6(t *testing.T) {
},
},
}
- srv.(*FreeswitchAgent).fS = agents.NewFSsessions(agentCfg, "", nil)
- err := srv.Reload()
+ srv.(*FreeswitchAgent).fS, err = agents.NewFSsessions(agentCfg, "", nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+ err = srv.Reload()
if err != nil {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
diff --git a/services/freeswitchagent_test.go b/services/freeswitchagent_test.go
index 587ecdccf..05b97db88 100644
--- a/services/freeswitchagent_test.go
+++ b/services/freeswitchagent_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestFreeSwitchAgentCoverage for cover testing
@@ -38,8 +38,12 @@ func TestFreeSwitchAgentCoverage(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewFreeswitchAgent(cfg, shdChan, nil, srvDep)
diff --git a/services/httpagent_it_test.go b/services/httpagent_it_test.go
index 11fd5fb63..c50017e50 100644
--- a/services/httpagent_it_test.go
+++ b/services/httpagent_it_test.go
@@ -27,12 +27,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestHTTPAgentReload(t *testing.T) {
@@ -50,19 +51,23 @@ func TestHTTPAgentReload(t *testing.T) {
}()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
srv := NewHTTPAgent(cfg, filterSChan, server, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -70,10 +75,11 @@ func TestHTTPAgentReload(t *testing.T) {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "httpagent_mysql_test"),
- Section: config.HttpAgentJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "httpagent_mysql_test"),
+ Section: config.HttpAgentJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
@@ -89,7 +95,7 @@ func TestHTTPAgentReload(t *testing.T) {
t.Fatalf("\nExpecting ,\n Received <%+v>", srvReload)
}
runtime.Gosched()
- err := srv.Start()
+ err = srv.Start()
if err != utils.ErrServiceAlreadyRunning {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err)
}
diff --git a/services/httpagent_test.go b/services/httpagent_test.go
index 846a1183e..e93d81de0 100644
--- a/services/httpagent_test.go
+++ b/services/httpagent_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestHTTPAgent for cover testing
@@ -36,7 +36,7 @@ func TestHTTPAgentCoverage(t *testing.T) {
filterSChan := make(chan *engine.FilterS, 1)
filterSChan <- nil
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- rpcInternal := map[string]chan rpcclient.ClientConnector{}
+ rpcInternal := map[string]chan birpc.ClientConnector{}
cM := engine.NewConnManager(cfg, rpcInternal)
srv := NewHTTPAgent(cfg, filterSChan, server, cM, srvDep)
if srv == nil {
diff --git a/services/kamailioagent.go b/services/kamailioagent.go
index 1330ac032..4e5ed0738 100644
--- a/services/kamailioagent.go
+++ b/services/kamailioagent.go
@@ -55,7 +55,7 @@ type KamailioAgent struct {
}
// Start should handle the sercive start
-func (kam *KamailioAgent) Start() (err error) {
+func (kam *KamailioAgent) Start() error {
if kam.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -63,17 +63,22 @@ func (kam *KamailioAgent) Start() (err error) {
kam.Lock()
defer kam.Unlock()
- kam.kam = agents.NewKamailioAgent(kam.cfg.KamAgentCfg(), kam.connMgr,
+ var err error
+ kam.kam, err = agents.NewKamailioAgent(kam.cfg.KamAgentCfg(), kam.connMgr,
utils.FirstNonEmpty(kam.cfg.KamAgentCfg().Timezone, kam.cfg.GeneralCfg().DefaultTimezone))
+ if err != nil {
+ utils.Logger.Err(fmt.Sprintf("<%s> failed to initialize agent, error: %s", utils.KamailioAgent, err))
+ return err
+ }
go func(k *agents.KamailioAgent) {
- if err = k.Connect(); err != nil &&
- !strings.Contains(err.Error(), "use of closed network connection") { // if closed by us do not log
- utils.Logger.Err(fmt.Sprintf("<%s> error: %s", utils.KamailioAgent, err))
+ if connErr := k.Connect(); connErr != nil &&
+ !strings.Contains(connErr.Error(), "use of closed network connection") { // if closed by us do not log
+ utils.Logger.Err(fmt.Sprintf("<%s> error: %s", utils.KamailioAgent, connErr))
kam.shdChan.CloseOnce()
}
}(kam.kam)
- return
+ return nil
}
// Reload handles the change of config
diff --git a/services/kamailioagent_it_test.go b/services/kamailioagent_it_test.go
index 3ff8d7429..2756d337f 100644
--- a/services/kamailioagent_it_test.go
+++ b/services/kamailioagent_it_test.go
@@ -27,6 +27,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
@@ -34,7 +36,6 @@ import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestKamailioAgentReload(t *testing.T) {
@@ -49,21 +50,24 @@ func TestKamailioAgentReload(t *testing.T) {
shdChan := utils.NewSyncedChan()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
-
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
srv := NewKamailioAgent(cfg, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -72,10 +76,11 @@ func TestKamailioAgentReload(t *testing.T) {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "tutorial_tests", "kamevapi", "cgrates", "etc", "cgrates"),
- Section: config.KamailioAgentJSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "tutorial_tests", "kamevapi", "cgrates", "etc", "cgrates"),
+ Section: config.KamailioAgentJSN,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
@@ -91,9 +96,11 @@ func TestKamailioAgentReload(t *testing.T) {
Timezone: "Local",
}
- srv.(*KamailioAgent).kam = agents.NewKamailioAgent(kaCfg, nil, "")
-
- err := srv.Reload()
+ srv.(*KamailioAgent).kam, err = agents.NewKamailioAgent(kaCfg, nil, "")
+ if err != nil {
+ t.Fatal(err)
+ }
+ err = srv.Reload()
if err != nil {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
diff --git a/services/kamailioagent_test.go b/services/kamailioagent_test.go
index 44d70522f..4b0008655 100644
--- a/services/kamailioagent_test.go
+++ b/services/kamailioagent_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
//TestKamailioAgentCoverage for cover testing
@@ -40,8 +40,12 @@ func TestKamailioAgentCoverage(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewKamailioAgent(cfg, shdChan, nil, srvDep)
if srv.IsRunning() {
diff --git a/services/loaders.go b/services/loaders.go
index 51cdb485c..2afa3ec49 100644
--- a/services/loaders.go
+++ b/services/loaders.go
@@ -21,19 +21,18 @@ package services
import (
"sync"
- v1 "github.com/cgrates/cgrates/apier/v1"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/loaders"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewLoaderService returns the Loader Service
func NewLoaderService(cfg *config.CGRConfig, dm *DataDBService,
filterSChan chan *engine.FilterS, server *cores.Server,
- internalLoaderSChan chan rpcclient.ClientConnector,
+ internalLoaderSChan chan birpc.ClientConnector,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) *LoaderService {
return &LoaderService{
@@ -59,15 +58,14 @@ type LoaderService struct {
stopChan chan struct{}
ldrs *loaders.LoaderService
- rpc *v1.LoaderSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
connMgr *engine.ConnManager
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
-func (ldrs *LoaderService) Start() (err error) {
+func (ldrs *LoaderService) Start() error {
if ldrs.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -85,17 +83,22 @@ func (ldrs *LoaderService) Start() (err error) {
ldrs.cfg.GeneralCfg().DefaultTimezone, filterS, ldrs.connMgr)
if !ldrs.ldrs.Enabled() {
- return
+ return nil
}
- if err = ldrs.ldrs.ListenAndServe(ldrs.stopChan); err != nil {
- return
+ if err := ldrs.ldrs.ListenAndServe(ldrs.stopChan); err != nil {
+ return err
+ }
+ srv, err := engine.NewServiceWithName(ldrs.ldrs, utils.LoaderS, true)
+ if err != nil {
+ return err
}
- ldrs.rpc = v1.NewLoaderSv1(ldrs.ldrs)
if !ldrs.cfg.DispatcherSCfg().Enabled {
- ldrs.server.RpcRegister(ldrs.rpc)
+ for _, s := range srv {
+ ldrs.server.RpcRegister(s)
+ }
}
- ldrs.connChan <- ldrs.anz.GetInternalCodec(ldrs.rpc, utils.LoaderS)
- return
+ ldrs.connChan <- ldrs.anz.GetInternalCodec(srv, utils.LoaderS)
+ return nil
}
// Reload handles the change of config
@@ -123,7 +126,6 @@ func (ldrs *LoaderService) Reload() (err error) {
func (ldrs *LoaderService) Shutdown() (err error) {
ldrs.Lock()
ldrs.ldrs = nil
- ldrs.rpc = nil
close(ldrs.stopChan)
<-ldrs.connChan
ldrs.Unlock()
diff --git a/services/loaders_it_test.go b/services/loaders_it_test.go
index 5edf18295..0b123a9a1 100644
--- a/services/loaders_it_test.go
+++ b/services/loaders_it_test.go
@@ -27,12 +27,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func testCreateDirs(t *testing.T) {
@@ -72,10 +73,10 @@ func TestLoaderSReload(t *testing.T) {
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
conMngr := engine.NewConnManager(cfg, nil)
srv := NewLoaderService(cfg, db, filterSChan,
- server, make(chan rpcclient.ClientConnector, 1),
+ server, make(chan birpc.ClientConnector, 1),
conMngr, anz, srvDep)
srvMngr.AddServices(srv, db)
if err := srvMngr.StartServices(); err != nil {
@@ -91,10 +92,11 @@ func TestLoaderSReload(t *testing.T) {
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "loaders", "tutinternal"),
- Section: config.LoaderJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "loaders", "tutinternal"),
+ Section: config.LoaderJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
@@ -154,9 +156,9 @@ func TestLoaderSReload2(t *testing.T) {
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
db.dbchan <- new(engine.DataManager)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
srv := NewLoaderService(cfg, db, filterSChan,
- server, make(chan rpcclient.ClientConnector, 1),
+ server, make(chan birpc.ClientConnector, 1),
nil, anz, srvDep)
err := srv.Start()
if err != nil {
@@ -179,9 +181,9 @@ func TestLoaderSReload3(t *testing.T) {
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
db.dbchan <- new(engine.DataManager)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
srv := NewLoaderService(cfg, db, filterSChan,
- server, make(chan rpcclient.ClientConnector, 1),
+ server, make(chan birpc.ClientConnector, 1),
nil, anz, srvDep)
err := srv.Start()
if err == nil || err.Error() != "no such file or directory" {
diff --git a/services/loaders_test.go b/services/loaders_test.go
index 9797fcf15..f93563c0a 100644
--- a/services/loaders_test.go
+++ b/services/loaders_test.go
@@ -22,13 +22,13 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/loaders"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestLoaderSCoverage for cover testing
@@ -40,10 +40,10 @@ func TestLoaderSCoverage(t *testing.T) {
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- internalLoaderSChan := make(chan rpcclient.ClientConnector, 1)
- rpcInternal := map[string]chan rpcclient.ClientConnector{}
+ internalLoaderSChan := make(chan birpc.ClientConnector, 1)
+ rpcInternal := map[string]chan birpc.ClientConnector{}
cM := engine.NewConnManager(cfg, rpcInternal)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
srv := NewLoaderService(cfg, db,
filterSChan, server, internalLoaderSChan,
cM, anz, srvDep)
@@ -84,7 +84,11 @@ func TestLoaderSCoverage(t *testing.T) {
}
srv.stopChan = make(chan struct{}, 1)
chS := engine.NewCacheS(cfg, nil, nil)
- srv.connChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ srv.connChan <- cacheSrv
srv.Shutdown()
if srv.IsRunning() {
t.Errorf("Expected service to be down")
diff --git a/services/radiusagent_it_test.go b/services/radiusagent_it_test.go
index 9cb0a75d7..b98cf0319 100644
--- a/services/radiusagent_it_test.go
+++ b/services/radiusagent_it_test.go
@@ -27,13 +27,14 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestRadiusAgentReload(t *testing.T) {
@@ -52,21 +53,24 @@ func TestRadiusAgentReload(t *testing.T) {
}()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
-
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
srv := NewRadiusAgent(cfg, filterSChan, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -74,10 +78,11 @@ func TestRadiusAgentReload(t *testing.T) {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "radagent_mysql"),
- Section: config.RA_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "radagent_mysql"),
+ Section: config.RA_JSN,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
@@ -88,7 +93,7 @@ func TestRadiusAgentReload(t *testing.T) {
t.Fatalf("Expected service to be running")
}
runtime.Gosched()
- err := srv.Start()
+ err = srv.Start()
if err == nil || err != utils.ErrServiceAlreadyRunning {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err)
}
@@ -120,21 +125,24 @@ func TestRadiusAgentReload2(t *testing.T) {
}()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
-
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
srv := NewRadiusAgent(cfg, filterSChan, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -142,10 +150,11 @@ func TestRadiusAgentReload2(t *testing.T) {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "radagent_mysql"),
- Section: config.RA_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "radagent_mysql"),
+ Section: config.RA_JSN,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
@@ -158,7 +167,7 @@ func TestRadiusAgentReload2(t *testing.T) {
}
runtime.Gosched()
runtime.Gosched()
- err := srv.Start()
+ err = srv.Start()
if err == nil || err != utils.ErrServiceAlreadyRunning {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err)
}
diff --git a/services/radiusagent_test.go b/services/radiusagent_test.go
index 7bdf091b3..6ff24df22 100644
--- a/services/radiusagent_test.go
+++ b/services/radiusagent_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestLoaderSCoverage for cover testing
@@ -38,8 +38,12 @@ func TestRadiusAgentCoverage(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewRadiusAgent(cfg, filterSChan, shdChan, nil, srvDep)
if srv.IsRunning() {
diff --git a/services/rals.go b/services/rals.go
index e484e2aca..a578f7a9a 100644
--- a/services/rals.go
+++ b/services/rals.go
@@ -21,17 +21,17 @@ package services
import (
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewRalService returns the Ral Service
func NewRalService(cfg *config.CGRConfig, cacheS *engine.CacheS, server *cores.Server,
- internalRALsChan, internalResponderChan chan rpcclient.ClientConnector, shdChan *utils.SyncedChan,
+ internalRALsChan, internalResponderChan chan birpc.ClientConnector, shdChan *utils.SyncedChan,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup,
filtersCh chan *engine.FilterS) *RalService {
@@ -57,7 +57,7 @@ type RalService struct {
server *cores.Server
rals *v1.RALsV1
responder *ResponderService
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
connMgr *engine.ConnManager
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
@@ -65,7 +65,7 @@ type RalService struct {
// Start should handle the sercive start
// For this service the start should be called from RAL Service
-func (rals *RalService) Start() (err error) {
+func (rals *RalService) Start() error {
if rals.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -87,12 +87,18 @@ func (rals *RalService) Start() (err error) {
rals.rals = v1.NewRALsV1()
+ srv, err := engine.NewService(rals.rals)
+ if err != nil {
+ return err
+ }
if !rals.cfg.DispatcherSCfg().Enabled {
- rals.server.RpcRegister(rals.rals)
+ for _, s := range srv {
+ rals.server.RpcRegister(s)
+ }
}
- rals.connChan <- rals.anz.GetInternalCodec(rals.rals, utils.RALService)
- return
+ rals.connChan <- rals.anz.GetInternalCodec(srv, utils.RALService)
+ return nil
}
// Reload handles the change of config
diff --git a/services/rals_it_test.go b/services/rals_it_test.go
index 977413a21..63de38d3e 100644
--- a/services/rals_it_test.go
+++ b/services/rals_it_test.go
@@ -26,12 +26,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestRalsReload(t *testing.T) {
@@ -65,16 +66,16 @@ func TestRalsReload(t *testing.T) {
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Type = utils.MetaInternal
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
stordb := NewStorDBService(cfg, srvDep)
- schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
- tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
+ schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
+ tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
ralS := NewRalService(cfg, chS, server,
- make(chan rpcclient.ClientConnector, 1),
- make(chan rpcclient.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep, filterSChan)
srvMngr.AddServices(ralS, schS, tS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db, stordb)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db, stordb)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -88,10 +89,11 @@ func TestRalsReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.RALS_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.RALS_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
@@ -158,10 +160,10 @@ func TestRalsReload2(t *testing.T) {
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
cfg.StorDbCfg().Type = utils.MetaInternal
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
ralS := NewRalService(cfg, chS, server,
- make(chan rpcclient.ClientConnector, 1),
- make(chan rpcclient.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep, filterSChan)
ralS.responder.resp = &engine.Responder{
ShdChan: shdChan,
diff --git a/services/rals_test.go b/services/rals_test.go
index 186a1c76d..70102b13c 100644
--- a/services/rals_test.go
+++ b/services/rals_test.go
@@ -22,12 +22,12 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestRalsCoverage for cover testing
@@ -41,10 +41,10 @@ func TestRalsCoverage(t *testing.T) {
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
cfg.StorDbCfg().Type = utils.MetaInternal
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
ralS := NewRalService(cfg, chS, server,
- make(chan rpcclient.ClientConnector, 1),
- make(chan rpcclient.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep, filterSChan)
if ralS.IsRunning() {
t.Errorf("Expected service to be down")
@@ -55,7 +55,7 @@ func TestRalsCoverage(t *testing.T) {
server: server,
shdChan: shdChan,
resp: &engine.Responder{},
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
anz: anz,
srvDep: srvDep,
},
@@ -63,9 +63,13 @@ func TestRalsCoverage(t *testing.T) {
cacheS: chS,
server: server,
rals: &v1.RALsV1{},
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
}
- ralS2.responder.connChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ ralS2.responder.connChan <- cacheSrv
if !ralS2.IsRunning() {
t.Errorf("Expected service to be running")
}
@@ -80,7 +84,7 @@ func TestRalsCoverage(t *testing.T) {
if !reflect.DeepEqual(ralS2.GetResponder(), ralS2.responder) {
t.Errorf("\nExpecting <%+v>,\n Received <%+v>", ralS2.responder, ralS2.GetResponder())
}
- ralS2.connChan <- chS
+ ralS2.connChan <- cacheSrv
ralS2.Shutdown()
if ralS.IsRunning() {
t.Errorf("Expected service to be down")
diff --git a/services/registrarc_it_test.go b/services/registrarc_it_test.go
index e2e07b78c..a564b53cc 100644
--- a/services/registrarc_it_test.go
+++ b/services/registrarc_it_test.go
@@ -27,6 +27,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -54,12 +56,12 @@ func TestDispatcherHReload(t *testing.T) {
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
connMngr := engine.NewConnManager(cfg, nil)
srv := NewRegistrarCService(cfg, server, connMngr, anz, srvDep)
srvMngr.AddServices(srv,
NewLoaderService(cfg, db, filterSChan, server,
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -68,10 +70,11 @@ func TestDispatcherHReload(t *testing.T) {
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "registrarc", "all_mongo"),
- Section: config.RegistrarCJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "registrarc", "all_mongo"),
+ Section: config.RegistrarCJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/registrarc_test.go b/services/registrarc_test.go
index 7d4609baa..5c0281193 100644
--- a/services/registrarc_test.go
+++ b/services/registrarc_test.go
@@ -23,12 +23,12 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/registrarc"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestDispatcherCoverage for cover testing
@@ -39,8 +39,8 @@ func TestDispatcherHCoverage(t *testing.T) {
filterSChan <- nil
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- rpcInternal := map[string]chan rpcclient.ClientConnector{}
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ rpcInternal := map[string]chan birpc.ClientConnector{}
cM := engine.NewConnManager(cfg, rpcInternal)
srv := NewRegistrarCService(cfg, server, cM, anz, srvDep)
if srv == nil {
diff --git a/services/resources.go b/services/resources.go
index f043e4476..43e4e5371 100644
--- a/services/resources.go
+++ b/services/resources.go
@@ -22,19 +22,18 @@ import (
"fmt"
"sync"
- v1 "github.com/cgrates/cgrates/apier/v1"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewResourceService returns the Resource Service
func NewResourceService(cfg *config.CGRConfig, dm *DataDBService,
cacheS *engine.CacheS, filterSChan chan *engine.FilterS,
- server *cores.Server, internalResourceSChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalResourceSChan chan birpc.ClientConnector,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &ResourceService{
@@ -60,15 +59,14 @@ type ResourceService struct {
server *cores.Server
reS *engine.ResourceService
- rpc *v1.ResourceSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
connMgr *engine.ConnManager
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the service start
-func (reS *ResourceService) Start() (err error) {
+func (reS *ResourceService) Start() error {
if reS.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -88,12 +86,17 @@ func (reS *ResourceService) Start() (err error) {
reS.reS = engine.NewResourceService(datadb, reS.cfg, filterS, reS.connMgr)
utils.Logger.Info(fmt.Sprintf("<%s> starting <%s> subsystem", utils.CoreS, utils.ResourceS))
reS.reS.StartLoop()
- reS.rpc = v1.NewResourceSv1(reS.reS)
- if !reS.cfg.DispatcherSCfg().Enabled {
- reS.server.RpcRegister(reS.rpc)
+ srv, err := engine.NewServiceWithName(reS.reS, utils.ResourceS, true)
+ if err != nil {
+ return err
}
- reS.connChan <- reS.anz.GetInternalCodec(reS.rpc, utils.ResourceS)
- return
+ if !reS.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ reS.server.RpcRegister(s)
+ }
+ }
+ reS.connChan <- reS.anz.GetInternalCodec(srv, utils.ResourceS)
+ return nil
}
// Reload handles the change of config
@@ -111,7 +114,6 @@ func (reS *ResourceService) Shutdown() (err error) {
defer reS.Unlock()
reS.reS.Shutdown() //we don't verify the error because shutdown never returns an error
reS.reS = nil
- reS.rpc = nil
<-reS.connChan
return
}
diff --git a/services/resources_it_test.go b/services/resources_it_test.go
index 6eb25eeb4..032f65d28 100644
--- a/services/resources_it_test.go
+++ b/services/resources_it_test.go
@@ -26,8 +26,8 @@ import (
"testing"
"time"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -56,13 +56,13 @@ func TestResourceSReload(t *testing.T) {
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
- reS := NewResourceService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
+ reS := NewResourceService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(tS, reS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -73,10 +73,11 @@ func TestResourceSReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.RESOURCES_JSON,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.RESOURCES_JSON,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/resources_test.go b/services/resources_test.go
index 23f614aca..d26f0fe11 100644
--- a/services/resources_test.go
+++ b/services/resources_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestResourceSCoverage for cover testing
@@ -39,9 +39,9 @@ func TestResourceSCoverage(t *testing.T) {
chS := engine.NewCacheS(cfg, nil, nil)
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- reS := NewResourceService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ reS := NewResourceService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
if reS.IsRunning() {
t.Errorf("Expected service to be down")
@@ -52,7 +52,7 @@ func TestResourceSCoverage(t *testing.T) {
cacheS: chS,
filterSChan: filterSChan,
server: server,
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
connMgr: nil,
anz: anz,
srvDep: srvDep,
diff --git a/services/responders.go b/services/responders.go
index a2b081f34..83672e01f 100644
--- a/services/responders.go
+++ b/services/responders.go
@@ -21,16 +21,16 @@ package services
import (
"sync"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewResponderService returns the Resonder Service
func NewResponderService(cfg *config.CGRConfig, server *cores.Server,
- internalRALsChan chan rpcclient.ClientConnector,
+ internalRALsChan chan birpc.ClientConnector,
shdChan *utils.SyncedChan, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup,
filterSCh chan *engine.FilterS) *ResponderService {
@@ -55,7 +55,7 @@ type ResponderService struct {
shdChan *utils.SyncedChan
resp *engine.Responder
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
syncChans map[string]chan *engine.Responder
@@ -65,7 +65,7 @@ type ResponderService struct {
// Start should handle the sercive start
// For this service the start should be called from RAL Service
-func (resp *ResponderService) Start() (err error) {
+func (resp *ResponderService) Start() error {
if resp.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -80,13 +80,19 @@ func (resp *ResponderService) Start() (err error) {
MaxComputedUsage: resp.cfg.RalsCfg().MaxComputedUsage,
}
+ srv, err := engine.NewService(resp.resp)
+ if err != nil {
+ return err
+ }
if !resp.cfg.DispatcherSCfg().Enabled {
- resp.server.RpcRegister(resp.resp)
+ for _, s := range srv {
+ resp.server.RpcRegister(s)
+ }
}
- resp.connChan <- resp.anz.GetInternalCodec(resp.resp, utils.ResponderS) // Rater done
+ resp.connChan <- resp.anz.GetInternalCodec(srv, utils.ResponderS) // Rater done
resp.sync()
- return
+ return nil
}
// Reload handles the change of config
diff --git a/services/responders_it_test.go b/services/responders_it_test.go
index 2e6c85e15..5ad390946 100644
--- a/services/responders_it_test.go
+++ b/services/responders_it_test.go
@@ -24,8 +24,7 @@ import (
"sync"
"testing"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -44,8 +43,8 @@ func TestResponderSReload(t *testing.T) {
shdChan := utils.NewSyncedChan()
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- internalChan := make(chan rpcclient.ClientConnector, 1)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ internalChan := make(chan birpc.ClientConnector, 1)
srv := NewResponderService(cfg, server, internalChan,
shdChan, anz, srvDep, filterSChan)
@@ -101,8 +100,8 @@ func TestResponderSReload2(t *testing.T) {
shdChan := utils.NewSyncedChan()
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- internalChan := make(chan rpcclient.ClientConnector, 1)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ internalChan := make(chan birpc.ClientConnector, 1)
srv := NewResponderService(cfg, server, internalChan,
shdChan, anz, srvDep, filterSChan)
diff --git a/services/responders_test.go b/services/responders_test.go
index 5ffd1a302..92dcb245c 100644
--- a/services/responders_test.go
+++ b/services/responders_test.go
@@ -22,24 +22,24 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestResponderCoverage for cover testing
func TestResponderCoverage(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
server := cores.NewServer(nil)
- internalChan := make(chan rpcclient.ClientConnector, 1)
+ internalChan := make(chan birpc.ClientConnector, 1)
shdChan := utils.NewSyncedChan()
filterSChan := make(chan *engine.FilterS, 1)
filterSChan <- nil
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
anz := NewAnalyzerService(cfg, server, filterSChan,
- shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ shdChan, make(chan birpc.ClientConnector, 1), srvDep)
srv := NewResponderService(cfg, server, internalChan,
shdChan, anz, srvDep, filterSChan)
if srv == nil {
diff --git a/services/routes.go b/services/routes.go
index 4f4aefb9e..829f44a65 100644
--- a/services/routes.go
+++ b/services/routes.go
@@ -22,19 +22,18 @@ import (
"fmt"
"sync"
- v1 "github.com/cgrates/cgrates/apier/v1"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewRouteService returns the Route Service
func NewRouteService(cfg *config.CGRConfig, dm *DataDBService,
cacheS *engine.CacheS, filterSChan chan *engine.FilterS,
- server *cores.Server, internalRouteSChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalRouteSChan chan birpc.ClientConnector,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &RouteService{
@@ -61,14 +60,13 @@ type RouteService struct {
connMgr *engine.ConnManager
routeS *engine.RouteService
- rpc *v1.RouteSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
-func (routeS *RouteService) Start() (err error) {
+func (routeS *RouteService) Start() error {
if routeS.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -87,12 +85,17 @@ func (routeS *RouteService) Start() (err error) {
routeS.routeS = engine.NewRouteService(datadb, filterS, routeS.cfg, routeS.connMgr)
utils.Logger.Info(fmt.Sprintf("<%s> starting <%s> subsystem", utils.CoreS, utils.RouteS))
- routeS.rpc = v1.NewRouteSv1(routeS.routeS)
- if !routeS.cfg.DispatcherSCfg().Enabled {
- routeS.server.RpcRegister(routeS.rpc)
+ srv, err := engine.NewServiceWithName(routeS.routeS, utils.RouteS, true)
+ if err != nil {
+ return err
}
- routeS.connChan <- routeS.anz.GetInternalCodec(routeS.rpc, utils.RouteS)
- return
+ if !routeS.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ routeS.server.RpcRegister(s)
+ }
+ }
+ routeS.connChan <- routeS.anz.GetInternalCodec(srv, utils.RouteS)
+ return nil
}
// Reload handles the change of config
@@ -106,7 +109,6 @@ func (routeS *RouteService) Shutdown() (err error) {
defer routeS.Unlock()
routeS.routeS.Shutdown() //we don't verify the error because shutdown never returns an error
routeS.routeS = nil
- routeS.rpc = nil
<-routeS.connChan
return
}
diff --git a/services/routes_it_test.go b/services/routes_it_test.go
index aa010a420..b61b3e6cf 100644
--- a/services/routes_it_test.go
+++ b/services/routes_it_test.go
@@ -26,12 +26,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestRouteSReload(t *testing.T) {
@@ -50,12 +51,12 @@ func TestRouteSReload(t *testing.T) {
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- routeS := NewRouteService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ routeS := NewRouteService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(routeS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -66,10 +67,11 @@ func TestRouteSReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "cluelrn"),
- Section: config.RouteSJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "cluelrn"),
+ Section: config.RouteSJson,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/routes_test.go b/services/routes_test.go
index af882c2c9..23267c153 100644
--- a/services/routes_test.go
+++ b/services/routes_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestSupplierSCoverage for cover testing
@@ -40,8 +40,8 @@ func TestSupplierSCoverage(t *testing.T) {
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- supS := NewRouteService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ supS := NewRouteService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
if supS.IsRunning() {
t.Errorf("Expected service to be down")
@@ -54,8 +54,7 @@ func TestSupplierSCoverage(t *testing.T) {
server: server,
connMgr: nil,
routeS: &engine.RouteService{},
- rpc: nil,
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
anz: anz,
srvDep: srvDep,
}
@@ -70,7 +69,11 @@ func TestSupplierSCoverage(t *testing.T) {
if !reflect.DeepEqual(shouldRun, false) {
t.Errorf("\nExpecting ,\n Received <%+v>", shouldRun)
}
- supS2.connChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ supS2.connChan <- cacheSrv
supS2.Shutdown()
if supS.IsRunning() {
t.Errorf("Expected service to be down")
diff --git a/services/schedulers.go b/services/schedulers.go
index 1b21f019a..014f9d69c 100644
--- a/services/schedulers.go
+++ b/services/schedulers.go
@@ -21,19 +21,19 @@ package services
import (
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/scheduler"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewSchedulerService returns the Scheduler Service
func NewSchedulerService(cfg *config.CGRConfig, dm *DataDBService,
cacheS *engine.CacheS, fltrSChan chan *engine.FilterS,
- server *cores.Server, internalSchedulerrSChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalSchedulerrSChan chan birpc.ClientConnector,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) *SchedulerService {
return &SchedulerService{
@@ -60,14 +60,14 @@ type SchedulerService struct {
schS *scheduler.Scheduler
rpc *v1.SchedulerSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
connMgr *engine.ConnManager
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
-func (schS *SchedulerService) Start() (err error) {
+func (schS *SchedulerService) Start() error {
if schS.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -87,12 +87,17 @@ func (schS *SchedulerService) Start() (err error) {
go schS.schS.Loop()
schS.rpc = v1.NewSchedulerSv1(schS.cfg, datadb, fltrS)
- if !schS.cfg.DispatcherSCfg().Enabled {
- schS.server.RpcRegister(schS.rpc)
+ srv, err := engine.NewService(schS.rpc)
+ if err != nil {
+ return err
}
- schS.connChan <- schS.anz.GetInternalCodec(schS.rpc, utils.SchedulerS)
-
- return
+ if !schS.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ schS.server.RpcRegister(s)
+ }
+ }
+ schS.connChan <- schS.anz.GetInternalCodec(srv, utils.SchedulerS)
+ return nil
}
// Reload handles the change of config
diff --git a/services/schedulers_it_test.go b/services/schedulers_it_test.go
index b3e1a669e..52e204bca 100644
--- a/services/schedulers_it_test.go
+++ b/services/schedulers_it_test.go
@@ -27,12 +27,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestSchedulerSReload(t *testing.T) {
@@ -50,11 +51,11 @@ func TestSchedulerSReload(t *testing.T) {
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(schS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -65,10 +66,11 @@ func TestSchedulerSReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongonew"),
- Section: config.SCHEDULER_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongonew"),
+ Section: config.SCHEDULER_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/schedulers_test.go b/services/schedulers_test.go
index 0e7021182..6a9d038ad 100644
--- a/services/schedulers_test.go
+++ b/services/schedulers_test.go
@@ -22,13 +22,13 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/scheduler"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestSchedulerSCoverage for cover testing
@@ -42,8 +42,8 @@ func TestSchedulerSCoverage(t *testing.T) {
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
if schS.IsRunning() {
t.Errorf("Expected service to be down")
diff --git a/services/sessions.go b/services/sessions.go
index a7d31f3a5..f9f8cc997 100644
--- a/services/sessions.go
+++ b/services/sessions.go
@@ -22,6 +22,7 @@ import (
"fmt"
"sync"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -30,12 +31,11 @@ import (
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewSessionService returns the Session Service
func NewSessionService(cfg *config.CGRConfig, dm *DataDBService,
- server *cores.Server, internalChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalChan chan birpc.ClientConnector,
shdChan *utils.SyncedChan, connMgr *engine.ConnManager,
anz *AnalyzerService, srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &SessionService{
@@ -61,18 +61,17 @@ type SessionService struct {
sm *sessions.SessionS
rpc *v1.SMGenericV1
- rpcv1 *v1.SessionSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
// in order to stop the bircp server if necesary
- bircpEnabled bool
+ birpcEnabled bool
connMgr *engine.ConnManager
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
-func (smg *SessionService) Start() (err error) {
+func (smg *SessionService) Start() error {
if smg.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -90,29 +89,39 @@ func (smg *SessionService) Start() (err error) {
//start sync session in a separate gorutine
smg.stopChan = make(chan struct{})
go smg.sm.ListenAndServe(smg.stopChan)
- // Pass internal connection via BiRPCClient
- smg.connChan <- smg.anz.GetInternalBiRPCCodec(smg.sm, utils.SessionS)
+ // Pass internal connection
+ srv, err := engine.NewServiceWithName(v1.NewSessionSv1(smg.sm), "", false)
+ if err != nil {
+ return err
+ }
+ smg.connChan <- smg.anz.GetInternalCodec(srv, utils.SessionS)
// Register RPC handler
smg.rpc = v1.NewSMGenericV1(smg.sm)
- smg.rpcv1 = v1.NewSessionSv1(smg.sm) // methods with multiple options
if !smg.cfg.DispatcherSCfg().Enabled {
- smg.server.RpcRegister(smg.rpc)
- smg.server.RpcRegister(smg.rpcv1)
+ for _, s := range srv {
+ smg.server.RpcRegister(s)
+ }
+
+ var legacySrv engine.IntService
+ legacySrv, err := engine.NewService(smg.rpc)
+ if err != nil {
+ return err
+ }
+ for _, s := range legacySrv {
+ smg.server.RpcRegister(s)
+ }
}
// Register BiRpc handlers
if smg.cfg.SessionSCfg().ListenBijson != "" {
- smg.bircpEnabled = true
- for method, handler := range smg.rpc.Handlers() {
- smg.server.BiRPCRegisterName(method, handler)
- }
- for method, handler := range smg.rpcv1.Handlers() {
- smg.server.BiRPCRegisterName(method, handler)
+ smg.birpcEnabled = true
+ for n, s := range srv {
+ smg.server.BiRPCRegisterName(n, s)
}
// run this in it's own goroutine
go smg.start()
}
- return
+ return nil
}
func (smg *SessionService) start() (err error) {
@@ -120,7 +129,7 @@ func (smg *SessionService) start() (err error) {
smg.cfg.SessionSCfg().ListenBigob, smg.sm.OnBiJSONConnect, smg.sm.OnBiJSONDisconnect); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> serve BiRPC error: %s!", utils.SessionS, err))
smg.Lock()
- smg.bircpEnabled = false
+ smg.birpcEnabled = false
smg.Unlock()
smg.shdChan.CloseOnce()
}
@@ -140,13 +149,12 @@ func (smg *SessionService) Shutdown() (err error) {
if err = smg.sm.Shutdown(); err != nil {
return
}
- if smg.bircpEnabled {
+ if smg.birpcEnabled {
smg.server.StopBiRPC()
- smg.bircpEnabled = false
+ smg.birpcEnabled = false
}
smg.sm = nil
smg.rpc = nil
- smg.rpcv1 = nil
<-smg.connChan
return
}
diff --git a/services/sessions_it_test.go b/services/sessions_it_test.go
index 8094f1f07..664ae6866 100644
--- a/services/sessions_it_test.go
+++ b/services/sessions_it_test.go
@@ -28,6 +28,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -44,7 +46,7 @@ type testMockClients struct {
calls func(args any, reply any) error
}
-func (sT *testMockClients) Call(method string, arg any, rply any) error {
+func (sT *testMockClients) Call(ctx *context.Context, method string, arg any, rply any) error {
return sT.calls(arg, rply)
}
@@ -78,7 +80,7 @@ func TestSessionSReload1(t *testing.T) {
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- clientConect := make(chan rpcclient.ClientConnector, 1)
+ clientConect := make(chan birpc.ClientConnector, 1)
clientConect <- &testMockClients{
calls: func(args any, reply any) error {
rply, cancast := reply.(*[]*engine.ChrgSProcessEventReply)
@@ -96,11 +98,11 @@ func TestSessionSReload1(t *testing.T) {
return nil
},
}
- conMng := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ conMng := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): clientConect,
})
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- srv := NewSessionService(cfg, new(DataDBService), server, make(chan rpcclient.ClientConnector, 1), shdChan, conMng, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ srv := NewSessionService(cfg, new(DataDBService), server, make(chan birpc.ClientConnector, 1), shdChan, conMng, anz, srvDep)
err := srv.Start()
if err != nil {
t.Fatal(err)
@@ -130,7 +132,7 @@ func TestSessionSReload1(t *testing.T) {
}
rply := new(sessions.V1InitSessionReply)
- srv.(*SessionService).sm.BiRPCv1InitiateSession(nil, args, rply)
+ srv.(*SessionService).sm.BiRPCv1InitiateSession(context.Background(), args, rply)
err = srv.Shutdown()
if err == nil || err != utils.ErrPartiallyExecuted {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrPartiallyExecuted, err)
@@ -162,18 +164,22 @@ func TestSessionSReload2(t *testing.T) {
close(chS.GetPrecacheChannel(utils.CacheSharedGroups))
close(chS.GetPrecacheChannel(utils.CacheTimings))
- internalChan := make(chan rpcclient.ClientConnector, 1)
+ internalChan := make(chan birpc.ClientConnector, 1)
internalChan <- nil
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Type = utils.MetaInternal
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- srv := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1), shdChan, nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ srv := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1), shdChan, nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
srv.(*SessionService).sm = &sessions.SessionS{}
@@ -185,7 +191,7 @@ func TestSessionSReload2(t *testing.T) {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err2)
}
cfg.SessionSCfg().Enabled = false
- err := srv.Reload()
+ err = srv.Reload()
if err != nil {
t.Fatalf("\nExpecting ,\n Received <%+v>", err)
}
@@ -224,18 +230,22 @@ func TestSessionSReload3(t *testing.T) {
close(chS.GetPrecacheChannel(utils.CacheSharedGroups))
close(chS.GetPrecacheChannel(utils.CacheTimings))
- internalChan := make(chan rpcclient.ClientConnector, 1)
+ internalChan := make(chan birpc.ClientConnector, 1)
internalChan <- nil
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Type = utils.MetaInternal
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- srv := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1), shdChan, nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ srv := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1), shdChan, nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
srv.(*SessionService).sm = &sessions.SessionS{}
diff --git a/services/sessions_test.go b/services/sessions_test.go
index d567a770f..bdeff0654 100644
--- a/services/sessions_test.go
+++ b/services/sessions_test.go
@@ -22,13 +22,13 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestSessionSCoverage for cover testing
@@ -41,16 +41,20 @@ func TestSessionSCoverage(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- internalChan := make(chan rpcclient.ClientConnector, 1)
+ internalChan := make(chan birpc.ClientConnector, 1)
internalChan <- nil
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Type = utils.MetaInternal
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- srv := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1), shdChan, nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ srv := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1), shdChan, nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
if srv.IsRunning() {
t.Errorf("Expected service to be down")
@@ -60,7 +64,7 @@ func TestSessionSCoverage(t *testing.T) {
dm: db,
server: server,
shdChan: shdChan,
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
connMgr: nil,
anz: anz,
srvDep: srvDep,
diff --git a/services/sipagent_it_test.go b/services/sipagent_it_test.go
index 5cd634533..2447616a2 100644
--- a/services/sipagent_it_test.go
+++ b/services/sipagent_it_test.go
@@ -27,12 +27,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestSIPAgentReload(t *testing.T) {
@@ -47,21 +48,24 @@ func TestSIPAgentReload(t *testing.T) {
shdChan := utils.NewSyncedChan()
shdWg := new(sync.WaitGroup)
chS := engine.NewCacheS(cfg, nil, nil)
-
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
db := NewDataDBService(cfg, nil, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1),
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ sS := NewSessionService(cfg, db, server, make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep)
srv := NewSIPAgent(cfg, filterSChan, shdChan, nil, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(srv, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Fatal(err)
}
@@ -69,10 +73,11 @@ func TestSIPAgentReload(t *testing.T) {
t.Fatalf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "sipagent_mysql"),
- Section: config.SIPAgentJson,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "sipagent_mysql"),
+ Section: config.SIPAgentJson,
+ }, &reply); err != nil {
t.Fatal(err)
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
@@ -87,7 +92,7 @@ func TestSIPAgentReload(t *testing.T) {
if srvStart != utils.ErrServiceAlreadyRunning {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, srvStart)
}
- err := srv.Reload()
+ err = srv.Reload()
if err != nil {
t.Fatalf("\nExpecting ,\n Received <%+v>", err)
}
@@ -112,8 +117,12 @@ func TestSIPAgentReload2(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewSIPAgent(cfg, filterSChan, shdChan, nil, srvDep)
if srv.IsRunning() {
@@ -128,7 +137,7 @@ func TestSIPAgentReload2(t *testing.T) {
},
},
}
- err := srv.Start()
+ err = srv.Start()
if err == nil || err.Error() != "no template with id: <>" {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", "no template with id: <>", err)
}
@@ -145,14 +154,18 @@ func TestSIPAgentReload3(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewSIPAgent(cfg, filterSChan, shdChan, nil, srvDep)
if srv.IsRunning() {
t.Fatalf("Expected service to be down")
}
- err := srv.Start()
+ err = srv.Start()
if err != nil {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", nil, err)
}
diff --git a/services/sipagent_test.go b/services/sipagent_test.go
index 664c14946..b93279563 100644
--- a/services/sipagent_test.go
+++ b/services/sipagent_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestSIPAgentCoverage for cover testing
@@ -38,8 +38,12 @@ func TestSIPAgentCoverage(t *testing.T) {
filterSChan <- nil
shdChan := utils.NewSyncedChan()
chS := engine.NewCacheS(cfg, nil, nil)
- cacheSChan := make(chan rpcclient.ClientConnector, 1)
- cacheSChan <- chS
+ cacheSrv, err := engine.NewService(chS)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cacheSChan := make(chan birpc.ClientConnector, 1)
+ cacheSChan <- cacheSrv
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewSIPAgent(cfg, filterSChan, shdChan, nil, srvDep)
if srv.IsRunning() {
diff --git a/services/stats.go b/services/stats.go
index f5dac6fdf..ad6f5c82b 100644
--- a/services/stats.go
+++ b/services/stats.go
@@ -22,19 +22,19 @@ import (
"fmt"
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewStatService returns the Stat Service
func NewStatService(cfg *config.CGRConfig, dm *DataDBService,
cacheS *engine.CacheS, filterSChan chan *engine.FilterS,
- server *cores.Server, internalStatSChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalStatSChan chan birpc.ClientConnector,
connMgr *engine.ConnManager, anz *AnalyzerService,
srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &StatService{
@@ -61,14 +61,13 @@ type StatService struct {
connMgr *engine.ConnManager
sts *engine.StatService
- rpc *v1.StatSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
-func (sts *StatService) Start() (err error) {
+func (sts *StatService) Start() error {
if sts.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -91,12 +90,17 @@ func (sts *StatService) Start() (err error) {
utils.Logger.Info(fmt.Sprintf("<%s> starting <%s> subsystem",
utils.CoreS, utils.StatS))
sts.sts.StartLoop()
- sts.rpc = v1.NewStatSv1(sts.sts)
- if !sts.cfg.DispatcherSCfg().Enabled {
- sts.server.RpcRegister(sts.rpc)
+ srv, err := engine.NewService(v1.NewStatSv1(sts.sts))
+ if err != nil {
+ return err
}
- sts.connChan <- sts.anz.GetInternalCodec(sts.rpc, utils.StatS)
- return
+ if !sts.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ sts.server.RpcRegister(s)
+ }
+ }
+ sts.connChan <- sts.anz.GetInternalCodec(srv, utils.StatS)
+ return nil
}
// Reload handles the change of config
@@ -114,7 +118,6 @@ func (sts *StatService) Shutdown() (err error) {
defer sts.Unlock()
sts.sts.Shutdown()
sts.sts = nil
- sts.rpc = nil
<-sts.connChan
return
}
diff --git a/services/stats_it_test.go b/services/stats_it_test.go
index 18f02f963..10836909a 100644
--- a/services/stats_it_test.go
+++ b/services/stats_it_test.go
@@ -26,8 +26,8 @@ import (
"testing"
"time"
- "github.com/cgrates/rpcclient"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -56,13 +56,13 @@ func TestStatSReload(t *testing.T) {
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
- sS := NewStatService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
+ sS := NewStatService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(tS, sS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -73,10 +73,11 @@ func TestStatSReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.STATS_JSON,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.STATS_JSON,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/stats_test.go b/services/stats_test.go
index c4426805e..e5461ed70 100644
--- a/services/stats_test.go
+++ b/services/stats_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestStatSCoverage for cover testing
@@ -40,9 +40,9 @@ func TestStatSCoverage(t *testing.T) {
chS := engine.NewCacheS(cfg, nil, nil)
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- sS := NewStatService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ sS := NewStatService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
if sS.IsRunning() {
t.Errorf("Expected service to be down")
}
@@ -54,7 +54,7 @@ func TestStatSCoverage(t *testing.T) {
server: server,
connMgr: nil,
sts: &engine.StatService{},
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
anz: anz,
srvDep: srvDep,
}
diff --git a/services/stordb_it_test.go b/services/stordb_it_test.go
index d70b7aebc..a1e0058db 100644
--- a/services/stordb_it_test.go
+++ b/services/stordb_it_test.go
@@ -26,12 +26,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestStorDBReload(t *testing.T) {
@@ -50,19 +51,19 @@ func TestStorDBReload(t *testing.T) {
db := NewDataDBService(cfg, nil, srvDep)
cfg.StorDbCfg().Password = "CGRateS.org"
stordb := NewStorDBService(cfg, srvDep)
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
- chrS := NewChargerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
- schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
+ chrS := NewChargerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
+ schS := NewSchedulerService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep)
ralS := NewRalService(cfg, chS, server,
- make(chan rpcclient.ClientConnector, 1),
- make(chan rpcclient.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
+ make(chan birpc.ClientConnector, 1),
shdChan, nil, anz, srvDep, filterSChan)
- cdrsRPC := make(chan rpcclient.ClientConnector, 1)
+ cdrsRPC := make(chan birpc.ClientConnector, 1)
cdrS := NewCDRServer(cfg, db, stordb, filterSChan, server,
cdrsRPC, nil, anz, srvDep)
srvMngr.AddServices(cdrS, ralS, schS, chrS,
NewLoaderService(cfg, db, filterSChan, server,
- make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db, stordb)
+ make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db, stordb)
if err := engine.InitStorDb(cfg); err != nil {
t.Fatal(err)
}
@@ -80,10 +81,11 @@ func TestStorDBReload(t *testing.T) {
cfg.RalsCfg().Enabled = true
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.CDRS_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.CDRS_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
@@ -107,10 +109,11 @@ func TestStorDBReload(t *testing.T) {
}
time.Sleep(10 * time.Millisecond)
cfg.StorDbCfg().Password = ""
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.STORDB_JSN,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.STORDB_JSN,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/thresholds.go b/services/thresholds.go
index 130c968d0..cf3fd722a 100644
--- a/services/thresholds.go
+++ b/services/thresholds.go
@@ -22,19 +22,19 @@ import (
"fmt"
"sync"
+ "github.com/cgrates/birpc"
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// NewThresholdService returns the Threshold Service
func NewThresholdService(cfg *config.CGRConfig, dm *DataDBService,
cacheS *engine.CacheS, filterSChan chan *engine.FilterS,
- server *cores.Server, internalThresholdSChan chan rpcclient.ClientConnector,
+ server *cores.Server, internalThresholdSChan chan birpc.ClientConnector,
anz *AnalyzerService, srvDep map[string]*sync.WaitGroup) servmanager.Service {
return &ThresholdService{
connChan: internalThresholdSChan,
@@ -58,14 +58,13 @@ type ThresholdService struct {
server *cores.Server
thrs *engine.ThresholdService
- rpc *v1.ThresholdSv1
- connChan chan rpcclient.ClientConnector
+ connChan chan birpc.ClientConnector
anz *AnalyzerService
srvDep map[string]*sync.WaitGroup
}
// Start should handle the sercive start
-func (thrs *ThresholdService) Start() (err error) {
+func (thrs *ThresholdService) Start() error {
if thrs.IsRunning() {
return utils.ErrServiceAlreadyRunning
}
@@ -87,12 +86,17 @@ func (thrs *ThresholdService) Start() (err error) {
utils.Logger.Info(fmt.Sprintf("<%s> starting <%s> subsystem", utils.CoreS, utils.ThresholdS))
thrs.thrs.StartLoop()
- thrs.rpc = v1.NewThresholdSv1(thrs.thrs)
- if !thrs.cfg.DispatcherSCfg().Enabled {
- thrs.server.RpcRegister(thrs.rpc)
+ srv, err := engine.NewService(v1.NewThresholdSv1(thrs.thrs))
+ if err != nil {
+ return err
}
- thrs.connChan <- thrs.anz.GetInternalCodec(thrs.rpc, utils.ThresholdS)
- return
+ if !thrs.cfg.DispatcherSCfg().Enabled {
+ for _, s := range srv {
+ thrs.server.RpcRegister(s)
+ }
+ }
+ thrs.connChan <- thrs.anz.GetInternalCodec(srv, utils.ThresholdS)
+ return nil
}
// Reload handles the change of config
@@ -110,7 +114,6 @@ func (thrs *ThresholdService) Shutdown() (err error) {
defer thrs.Unlock()
thrs.thrs.Shutdown()
thrs.thrs = nil
- thrs.rpc = nil
<-thrs.connChan
return
}
diff --git a/services/thresholds_it_test.go b/services/thresholds_it_test.go
index 59f2caecf..e9c9c1f7b 100644
--- a/services/thresholds_it_test.go
+++ b/services/thresholds_it_test.go
@@ -27,12 +27,13 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
func TestThresholdSReload(t *testing.T) {
@@ -52,12 +53,12 @@ func TestThresholdSReload(t *testing.T) {
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
+ tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(tS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -68,10 +69,11 @@ func TestThresholdSReload(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.THRESHOLDS_JSON,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.THRESHOLDS_JSON,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
@@ -120,12 +122,12 @@ func TestThresholdSReload2(t *testing.T) {
server := cores.NewServer(nil)
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg, nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
+ tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
engine.NewConnManager(cfg, nil)
srvMngr.AddServices(tS,
- NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
+ NewLoaderService(cfg, db, filterSChan, server, make(chan birpc.ClientConnector, 1), nil, anz, srvDep), db)
if err := srvMngr.StartServices(); err != nil {
t.Error(err)
}
@@ -136,10 +138,11 @@ func TestThresholdSReload2(t *testing.T) {
t.Errorf("Expected service to be down")
}
var reply string
- if err := cfg.V1ReloadConfig(&config.ReloadArgs{
- Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
- Section: config.THRESHOLDS_JSON,
- }, &reply); err != nil {
+ if err := cfg.V1ReloadConfig(context.Background(),
+ &config.ReloadArgs{
+ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
+ Section: config.THRESHOLDS_JSON,
+ }, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expecting OK ,received %s", reply)
diff --git a/services/thresholds_test.go b/services/thresholds_test.go
index 7d9ea942a..067f327f2 100644
--- a/services/thresholds_test.go
+++ b/services/thresholds_test.go
@@ -22,11 +22,11 @@ import (
"sync"
"testing"
+ "github.com/cgrates/birpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
// TestThresholdSCoverage for cover testing
@@ -38,9 +38,9 @@ func TestThresholdSCoverage(t *testing.T) {
chS := engine.NewCacheS(cfg, nil, nil)
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
- anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
+ anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan birpc.ClientConnector, 1), srvDep)
db := NewDataDBService(cfg, nil, srvDep)
- tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep)
+ tS := NewThresholdService(cfg, db, chS, filterSChan, server, make(chan birpc.ClientConnector, 1), anz, srvDep)
if tS.IsRunning() {
t.Errorf("Expected service to be down")
}
@@ -52,7 +52,7 @@ func TestThresholdSCoverage(t *testing.T) {
filterSChan: filterSChan,
server: server,
thrs: thrs1,
- connChan: make(chan rpcclient.ClientConnector, 1),
+ connChan: make(chan birpc.ClientConnector, 1),
anz: anz,
srvDep: srvDep,
}
diff --git a/servmanager/servmanager.go b/servmanager/servmanager.go
index 45a622dfc..0f1328452 100644
--- a/servmanager/servmanager.go
+++ b/servmanager/servmanager.go
@@ -25,6 +25,7 @@ import (
"strings"
"sync"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -55,7 +56,7 @@ type ServiceManager struct {
}
// Call .
-func (srvMngr *ServiceManager) Call(serviceMethod string, args any, reply any) error {
+func (srvMngr *ServiceManager) Call(ctx *context.Context, serviceMethod string, args any, reply any) error {
parts := strings.Split(serviceMethod, ".")
if len(parts) != 2 {
return rpcclient.ErrUnsupporteServiceMethod
@@ -87,7 +88,7 @@ type ArgStartService struct {
}
// V1StartService starts a service with ID
-func (srvMngr *ServiceManager) V1StartService(args ArgStartService, reply *string) (err error) {
+func (srvMngr *ServiceManager) V1StartService(ctx *context.Context, args ArgStartService, reply *string) (err error) {
switch args.ServiceID {
case utils.MetaScheduler:
// stop the service using the config
@@ -106,7 +107,7 @@ func (srvMngr *ServiceManager) V1StartService(args ArgStartService, reply *strin
}
// V1StopService shuts-down a service with ID
-func (srvMngr *ServiceManager) V1StopService(args ArgStartService, reply *string) (err error) {
+func (srvMngr *ServiceManager) V1StopService(ctx *context.Context, args ArgStartService, reply *string) (err error) {
switch args.ServiceID {
case utils.MetaScheduler:
// stop the service using the config
@@ -125,7 +126,7 @@ func (srvMngr *ServiceManager) V1StopService(args ArgStartService, reply *string
}
// V1ServiceStatus returns the service status
-func (srvMngr *ServiceManager) V1ServiceStatus(args ArgStartService, reply *string) error {
+func (srvMngr *ServiceManager) V1ServiceStatus(ctx *context.Context, args ArgStartService, reply *string) error {
srvMngr.RLock()
defer srvMngr.RUnlock()
var running bool
diff --git a/sessions/lib_test.go b/sessions/lib_test.go
index ea157fa8c..761019364 100644
--- a/sessions/lib_test.go
+++ b/sessions/lib_test.go
@@ -21,26 +21,26 @@ package sessions
import (
"errors"
"flag"
- "net/rpc"
- "net/rpc/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
var (
dataDir = flag.String("data_dir", "/usr/share/cgrates", "CGR data dir path here")
- waitRater = flag.Int("wait_rater", 100, "Number of miliseconds to wait for rater to start and cache")
+ waitRater = flag.Int("wait_rater", 500, "Number of miliseconds to wait for rater to start and cache")
encoding = flag.String("rpc", utils.MetaJSON, "what encoding whould be uused for rpc comunication")
dbType = flag.String("dbtype", utils.MetaInternal, "The type of DataBase (Internal/Mongo/mySql)")
)
-func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
+func newRPCClient(cfg *config.ListenCfg) (c *birpc.Client, err error) {
switch *encoding {
case utils.MetaJSON:
return jsonrpc.Dial(utils.TCP, cfg.RPCJSONListen)
case utils.MetaGOB:
- return rpc.Dial(utils.TCP, cfg.RPCGOBListen)
+ return birpc.Dial(utils.TCP, cfg.RPCGOBListen)
default:
return nil, errors.New("UNSUPPORTED_RPC")
}
diff --git a/sessions/libsessions.go b/sessions/libsessions.go
index fcdf2fc4e..d4e56e40e 100644
--- a/sessions/libsessions.go
+++ b/sessions/libsessions.go
@@ -23,10 +23,10 @@ import (
"strings"
"time"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
jwt "github.com/dgrijalva/jwt-go"
)
@@ -41,21 +41,14 @@ var authReqs = engine.MapEvent{
utils.MetaPseudoPrepaid: struct{}{},
}
-// BiRPClient is the interface implemented by Agents which are able to
+// BiRPCClient is the interface implemented by Agents which are able to
// communicate bidirectionally with SessionS and remote Communication Switch
-type BiRPClient interface {
- rpcclient.BiRPCConector
- V1DisconnectSession(args utils.AttrDisconnectSession, reply *string) (err error)
- V1GetActiveSessionIDs(ignParam string, sessionIDs *[]*SessionID) (err error)
- V1ReAuthorize(originID string, reply *string) (err error)
- V1DisconnectPeer(args *utils.DPRArgs, reply *string) (err error)
- V1WarnDisconnect(args map[string]any, reply *string) (err error)
-
- BiRPCv1DisconnectSession(clnt rpcclient.ClientConnector, args utils.AttrDisconnectSession, reply *string) (err error)
- BiRPCv1GetActiveSessionIDs(clnt rpcclient.ClientConnector, ignParam string, sessionIDs *[]*SessionID) (err error)
- BiRPCv1ReAuthorize(clnt rpcclient.ClientConnector, originID string, reply *string) (err error)
- BiRPCv1DisconnectPeer(clnt rpcclient.ClientConnector, args *utils.DPRArgs, reply *string) (err error)
- BiRPCv1WarnDisconnect(clnt rpcclient.ClientConnector, args map[string]any, reply *string) (err error)
+type BiRPCClient interface {
+ V1DisconnectSession(ctx *context.Context, args utils.AttrDisconnectSession, reply *string) (err error)
+ V1GetActiveSessionIDs(ctx *context.Context, ignParam string, sessionIDs *[]*SessionID) (err error)
+ V1ReAuthorize(ctx *context.Context, originID string, reply *string) (err error)
+ V1DisconnectPeer(ctx *context.Context, args *utils.DPRArgs, reply *string) (err error)
+ V1WarnDisconnect(ctx *context.Context, args map[string]any, reply *string) (err error)
}
// GetSetCGRID will populate the CGRID key if not present and return it
diff --git a/sessions/sessions.go b/sessions/sessions.go
index ede03729d..e07fb4b50 100644
--- a/sessions/sessions.go
+++ b/sessions/sessions.go
@@ -27,13 +27,13 @@ import (
"sync"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/guardian"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
)
var (
@@ -51,7 +51,7 @@ func NewSessionS(cgrCfg *config.CGRConfig,
cgrCfg: cgrCfg,
dm: dm,
connMgr: connMgr,
- biJClnts: make(map[rpcclient.ClientConnector]string),
+ biJClnts: make(map[birpc.ClientConnector]string),
biJIDs: make(map[string]*biJClient),
aSessions: make(map[string]*Session),
aSessionsIdx: make(map[string]map[string]map[string]utils.StringSet),
@@ -64,8 +64,8 @@ func NewSessionS(cgrCfg *config.CGRConfig,
// biJClient contains info we need to reach back a bidirectional json client
type biJClient struct {
- conn rpcclient.ClientConnector // connection towards BiJ client
- proto float64 // client protocol version
+ conn birpc.ClientConnector // connection towards BiJ client
+ proto float64 // client protocol version
}
// SessionS represents the session service
@@ -74,9 +74,9 @@ type SessionS struct {
dm *engine.DataManager
connMgr *engine.ConnManager
- biJMux sync.RWMutex // mux protecting BI-JSON connections
- biJClnts map[rpcclient.ClientConnector]string // index BiJSONConnection so we can sync them later
- biJIDs map[string]*biJClient // identifiers of bidirectional JSON conns, used to call RPC based on connIDs
+ biJMux sync.RWMutex // mux protecting BI-JSON connections
+ biJClnts map[birpc.ClientConnector]string // index BiJSONConnection so we can sync them later
+ biJIDs map[string]*biJClient // identifiers of bidirectional JSON conns, used to call RPC based on connIDs
aSsMux sync.RWMutex // protects aSessions
aSessions map[string]*Session // group sessions per sessionId
@@ -124,8 +124,8 @@ func (sS *SessionS) Shutdown() (err error) {
return
}
-// OnBiJSONConnect is called by rpc2.Client on each new connection
-func (sS *SessionS) OnBiJSONConnect(c *rpc2.Client) {
+// OnBiJSONConnect handles new client connections.
+func (sS *SessionS) OnBiJSONConnect(c birpc.ClientConnector) {
nodeID := utils.UUIDSha1Prefix() // connection identifier, should be later updated as login procedure
sS.biJMux.Lock()
sS.biJClnts[c] = nodeID
@@ -135,8 +135,8 @@ func (sS *SessionS) OnBiJSONConnect(c *rpc2.Client) {
sS.biJMux.Unlock()
}
-// OnBiJSONDisconnect is called by rpc2.Client on each client disconnection
-func (sS *SessionS) OnBiJSONDisconnect(c *rpc2.Client) {
+// OnBiJSONDisconnect handles client disconnects.
+func (sS *SessionS) OnBiJSONDisconnect(c birpc.ClientConnector) {
sS.biJMux.Lock()
if nodeID, has := sS.biJClnts[c]; has {
delete(sS.biJClnts, c)
@@ -146,7 +146,7 @@ func (sS *SessionS) OnBiJSONDisconnect(c *rpc2.Client) {
}
// RegisterIntBiJConn is called on internal BiJ connection towards SessionS
-func (sS *SessionS) RegisterIntBiJConn(c rpcclient.ClientConnector, nodeID string) {
+func (sS *SessionS) RegisterIntBiJConn(c birpc.ClientConnector, nodeID string) {
if nodeID == utils.EmptyString {
nodeID = sS.cgrCfg.GeneralCfg().NodeID
}
@@ -170,7 +170,7 @@ func (sS *SessionS) biJClnt(connID string) (clnt *biJClient) {
}
// biJClnt returns connection ID based on bidirectional connection received
-func (sS *SessionS) biJClntID(c rpcclient.ClientConnector) (clntConnID string) {
+func (sS *SessionS) biJClntID(c birpc.ClientConnector) (clntConnID string) {
if c == nil {
return
}
@@ -373,7 +373,7 @@ func (sS *SessionS) forceSTerminate(s *Session, extraUsage time.Duration, tUsage
argsProc.Flags = append(argsProc.Flags, utils.MetaRALs)
}
argsProc.SetCloneable(true)
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().CDRsConns, nil,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().CDRsConns,
utils.CDRsV1ProcessEvent, argsProc, &reply); err != nil {
utils.Logger.Warning(
fmt.Sprintf(
@@ -397,7 +397,7 @@ func (sS *SessionS) forceSTerminate(s *Session, extraUsage time.Duration, tUsage
cgrEv.APIOpts[utils.OptsResourcesUsageID] = s.ResourceID
cgrEv.APIOpts[utils.OptsResourcesUnits] = 1
cgrEv.SetCloneable(true)
- if err := sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ResSConns, nil,
+ if err := sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ResSConns,
utils.ResourceSv1ReleaseResources,
cgrEv, &reply); err != nil {
utils.Logger.Warning(
@@ -409,7 +409,7 @@ func (sS *SessionS) forceSTerminate(s *Session, extraUsage time.Duration, tUsage
if clntConn := sS.biJClnt(s.ClientConnID); clntConn != nil {
go func() {
var rply string
- if err := clntConn.conn.Call(
+ if err := clntConn.conn.Call(context.TODO(),
utils.SessionSv1DisconnectSession,
utils.AttrDisconnectSession{
EventStart: s.EventStart,
@@ -451,7 +451,7 @@ func (sS *SessionS) debitSession(s *Session, sRunIdx int, dur time.Duration,
sr.CD.DurationIndex += rDur
cd := sr.CD.Clone()
cc := new(engine.CallCost)
- err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RALsConns, nil,
+ err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RALsConns,
utils.ResponderMaxDebit,
&engine.CallDescriptorWithAPIOpts{
CallDescriptor: cd,
@@ -463,7 +463,7 @@ func (sS *SessionS) debitSession(s *Session, sRunIdx int, dur time.Duration,
sr.Event.GetStringIgnoreErrors(utils.RequestType) == utils.MetaDynaprepaid {
var reply string
// execute the actionPlan configured in Scheduler
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().SchedulerConns, nil,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().SchedulerConns,
utils.SchedulerSv1ExecuteActionPlans, &utils.AttrsExecuteActionPlans{
ActionPlanIDs: sS.cgrCfg.SchedulerCfg().DynaprepaidActionPlans,
Tenant: cd.Tenant, AccountID: cd.Account},
@@ -471,7 +471,7 @@ func (sS *SessionS) debitSession(s *Session, sRunIdx int, dur time.Duration,
return
}
// execute again the MaxDebit operation
- err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RALsConns, nil,
+ err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RALsConns,
utils.ResponderMaxDebit,
&engine.CallDescriptorWithAPIOpts{
CallDescriptor: cd,
@@ -673,7 +673,8 @@ func (sS *SessionS) refundSession(s *Session, sRunIdx int, rUsage time.Duration)
Increments: incrmts,
}
var acnt engine.Account
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RALsConns, nil, utils.ResponderRefundIncrements,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RALsConns,
+ utils.ResponderRefundIncrements,
&engine.CallDescriptorWithAPIOpts{
CallDescriptor: cd,
APIOpts: s.OptsStart,
@@ -709,7 +710,8 @@ func (sS *SessionS) storeSCost(s *Session, sRunIdx int) (err error) {
}
var reply string
// use the v1 because it doesn't do rounding refund
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().CDRsConns, nil, utils.CDRsV1StoreSessionCost,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().CDRsConns,
+ utils.CDRsV1StoreSessionCost,
argSmCost, &reply); err != nil && err == utils.ErrExists {
utils.Logger.Warning(
fmt.Sprintf("<%s> refunding session: <%s> error: <%s>",
@@ -746,7 +748,7 @@ func (sS *SessionS) roundCost(s *Session, sRunIdx int) (err error) {
cd.RunID = runID
cd.Increments = roundIncrements
response := new(engine.Account)
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RALsConns, nil,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RALsConns,
utils.ResponderRefundRounding,
&engine.CallDescriptorWithAPIOpts{CallDescriptor: cd},
response); err != nil {
@@ -776,7 +778,7 @@ func (sS *SessionS) disconnectSession(s *Session, rsn string) (err error) {
servMethod = "SMGClientV1.DisconnectSession"
}
var rply string
- if err = clnt.conn.Call(servMethod,
+ if err = clnt.conn.Call(context.TODO(), servMethod,
utils.AttrDisconnectSession{
EventStart: s.EventStart,
Reason: rsn}, &rply); err != nil {
@@ -797,7 +799,7 @@ func (sS *SessionS) warnSession(connID string, ev map[string]any) (err error) {
utils.SessionSv1WarnDisconnect, connID)
}
var rply string
- if err = clnt.conn.Call(utils.SessionSv1WarnDisconnect,
+ if err = clnt.conn.Call(context.TODO(), utils.SessionSv1WarnDisconnect,
ev, &rply); err != nil {
if err != utils.ErrNotImplemented {
utils.Logger.Warning(fmt.Sprintf("<%s> failed to warn session: <%s>, err: <%s>",
@@ -825,7 +827,7 @@ func (sS *SessionS) replicateSessions(cgrID string, psv bool, connIDs []string)
for _, s := range ss {
sCln := s.Clone()
var rply string
- if err := sS.connMgr.Call(connIDs, nil,
+ if err := sS.connMgr.Call(context.TODO(), connIDs,
utils.SessionSv1SetPassiveSession,
sCln, &rply); err != nil {
utils.Logger.Warning(
@@ -1232,7 +1234,7 @@ func (sS *SessionS) processChargerS(cgrEv *utils.CGREvent) (chrgrs []*engine.Chr
if x, ok := engine.Cache.Get(utils.CacheEventCharges, cgrEv.ID); ok && x != nil {
return x.([]*engine.ChrgSProcessEventReply), nil
}
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ChargerSConns, nil,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ChargerSConns,
utils.ChargerSv1ProcessEvent, cgrEv, &chrgrs); err != nil {
err = utils.NewErrChargerS(err)
}
@@ -1378,7 +1380,7 @@ func (sS *SessionS) syncSessions() {
errChan := make(chan error)
go func() {
var queriedSessionIDs []*SessionID
- if err := clnt.conn.Call(utils.SessionSv1GetActiveSessionIDs,
+ if err := clnt.conn.Call(context.TODO(), utils.SessionSv1GetActiveSessionIDs,
utils.EmptyString, &queriedSessionIDs); err != nil {
errChan <- err
}
@@ -1466,7 +1468,7 @@ func (sS *SessionS) authEvent(cgrEv *utils.CGREvent, forceDuration bool) (usage
if !authReqs.HasField(
sr.Event.GetStringIgnoreErrors(utils.RequestType)) {
rplyMaxUsage = eventUsage
- } else if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RALsConns, nil,
+ } else if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RALsConns,
utils.ResponderGetMaxSessionTime,
&engine.CallDescriptorWithAPIOpts{
CallDescriptor: sr.CD,
@@ -1594,7 +1596,8 @@ func (sS *SessionS) endSession(s *Session, tUsage, lastUsage *time.Duration,
sr.CD.TimeEnd = sr.CD.TimeStart.Add(notCharged)
sr.CD.DurationIndex += notCharged
cc := new(engine.CallCost)
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RALsConns, nil, utils.ResponderDebit,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RALsConns,
+ utils.ResponderDebit,
&engine.CallDescriptorWithAPIOpts{
CallDescriptor: sr.CD,
APIOpts: s.OptsStart,
@@ -1691,19 +1694,8 @@ func (sS *SessionS) chargeEvent(cgrEv *utils.CGREvent, forceDuration bool) (maxU
// APIs start here
-// Call is part of RpcClientConnection interface
-func (sS *SessionS) Call(serviceMethod string, args any, reply any) error {
- return sS.CallBiRPC(nil, serviceMethod, args, reply)
-}
-
-// CallBiRPC is part of utils.BiRPCServer interface to help internal connections do calls over rpcclient.ClientConnector interface
-func (sS *SessionS) CallBiRPC(clnt rpcclient.ClientConnector,
- serviceMethod string, args any, reply any) error {
- return utils.BiRPCCall(sS, clnt, serviceMethod, args, reply)
-}
-
// BiRPCv1GetActiveSessions returns the list of active sessions based on filter
-func (sS *SessionS) BiRPCv1GetActiveSessions(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1GetActiveSessions(ctx *context.Context,
args *utils.SessionFilter, reply *[]*ExternalSession) (err error) {
if args == nil { //protection in case on nil
args = &utils.SessionFilter{}
@@ -1717,7 +1709,7 @@ func (sS *SessionS) BiRPCv1GetActiveSessions(clnt rpcclient.ClientConnector,
}
// BiRPCv1GetActiveSessionsCount counts the active sessions
-func (sS *SessionS) BiRPCv1GetActiveSessionsCount(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1GetActiveSessionsCount(ctx *context.Context,
args *utils.SessionFilter, reply *int) error {
if args == nil { //protection in case on nil
args = &utils.SessionFilter{}
@@ -1727,7 +1719,7 @@ func (sS *SessionS) BiRPCv1GetActiveSessionsCount(clnt rpcclient.ClientConnector
}
// BiRPCv1GetPassiveSessions returns the passive sessions handled by SessionS
-func (sS *SessionS) BiRPCv1GetPassiveSessions(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1GetPassiveSessions(ctx *context.Context,
args *utils.SessionFilter, reply *[]*ExternalSession) error {
if args == nil { //protection in case on nil
args = &utils.SessionFilter{}
@@ -1741,7 +1733,7 @@ func (sS *SessionS) BiRPCv1GetPassiveSessions(clnt rpcclient.ClientConnector,
}
// BiRPCv1GetPassiveSessionsCount counts the passive sessions handled by the system
-func (sS *SessionS) BiRPCv1GetPassiveSessionsCount(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1GetPassiveSessionsCount(ctx *context.Context,
args *utils.SessionFilter, reply *int) error {
if args == nil { //protection in case on nil
args = &utils.SessionFilter{}
@@ -1751,7 +1743,7 @@ func (sS *SessionS) BiRPCv1GetPassiveSessionsCount(clnt rpcclient.ClientConnecto
}
// BiRPCv1SetPassiveSession used for replicating Sessions
-func (sS *SessionS) BiRPCv1SetPassiveSession(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1SetPassiveSession(ctx *context.Context,
s *Session, reply *string) (err error) {
if s.CGRID == "" {
return utils.NewErrMandatoryIeMissing(utils.CGRID)
@@ -1785,7 +1777,7 @@ type ArgsReplicateSessions struct {
// BiRPCv1ReplicateSessions will replicate active sessions to either args.Connections or the internal configured ones
// args.Filter is used to filter the sessions which are replicated, CGRID is the only one possible for now
-func (sS *SessionS) BiRPCv1ReplicateSessions(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1ReplicateSessions(ctx *context.Context,
args ArgsReplicateSessions, reply *string) (err error) {
sS.replicateSessions(args.CGRID, args.Passive, args.ConnIDs)
*reply = utils.OK
@@ -1945,7 +1937,7 @@ func (v1AuthReply *V1AuthorizeReply) AsNavigableMap() map[string]*utils.DataNode
}
// BiRPCv1AuthorizeEvent performs authorization for CGREvent based on specific components
-func (sS *SessionS) BiRPCv1AuthorizeEvent(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
args *V1AuthorizeArgs, authReply *V1AuthorizeReply) (err error) {
if args.CGREvent == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -2024,7 +2016,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(clnt rpcclient.ClientConnector,
}
args.CGREvent.APIOpts[utils.OptsResourcesUsageID] = originID
args.CGREvent.APIOpts[utils.OptsResourcesUnits] = 1
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ResSConns, nil, utils.ResourceSv1AuthorizeResources,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ResSConns, utils.ResourceSv1AuthorizeResources,
args.CGREvent, &allocMsg); err != nil {
return utils.NewErrResourceS(err)
}
@@ -2079,10 +2071,10 @@ type V1AuthorizeReplyWithDigest struct {
// BiRPCv1AuthorizeEventWithDigest performs authorization for CGREvent based on specific components
// returning one level fields instead of multiple ones returned by BiRPCv1AuthorizeEvent
-func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
args *V1AuthorizeArgs, authReply *V1AuthorizeReplyWithDigest) (err error) {
var initAuthRply V1AuthorizeReply
- if err = sS.BiRPCv1AuthorizeEvent(clnt, args, &initAuthRply); err != nil {
+ if err = sS.BiRPCv1AuthorizeEvent(ctx, args, &initAuthRply); err != nil {
return
}
if args.GetAttributes && initAuthRply.Attributes != nil {
@@ -2232,7 +2224,7 @@ func (v1Rply *V1InitSessionReply) AsNavigableMap() map[string]*utils.DataNode {
}
// BiRPCv1InitiateSession initiates a new session
-func (sS *SessionS) BiRPCv1InitiateSession(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
args *V1InitSessionArgs, rply *V1InitSessionReply) (err error) {
if args.CGREvent == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -2294,7 +2286,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(clnt rpcclient.ClientConnector,
args.CGREvent.APIOpts[utils.OptsResourcesUsageID] = originID
args.CGREvent.APIOpts[utils.OptsResourcesUnits] = 1
var allocMessage string
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ResSConns, nil,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ResSConns,
utils.ResourceSv1AllocateResources, args.CGREvent, &allocMessage); err != nil {
return utils.NewErrResourceS(err)
}
@@ -2309,7 +2301,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(clnt rpcclient.ClientConnector,
return utils.NewErrRALs(err)
}
}
- s, err := sS.initSession(args.CGREvent, sS.biJClntID(clnt), originID, dbtItvl,
+ s, err := sS.initSession(args.CGREvent, sS.biJClntID(ctx.Client), originID, dbtItvl,
false, args.ForceDuration)
if err != nil {
return err
@@ -2373,10 +2365,10 @@ type V1InitReplyWithDigest struct {
}
// BiRPCv1InitiateSessionWithDigest returns the formated result of InitiateSession
-func (sS *SessionS) BiRPCv1InitiateSessionWithDigest(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1InitiateSessionWithDigest(ctx *context.Context,
args *V1InitSessionArgs, initReply *V1InitReplyWithDigest) (err error) {
var initSessionRply V1InitSessionReply
- if err = sS.BiRPCv1InitiateSession(clnt, args, &initSessionRply); err != nil {
+ if err = sS.BiRPCv1InitiateSession(ctx, args, &initSessionRply); err != nil {
return
}
@@ -2469,7 +2461,7 @@ func (v1Rply *V1UpdateSessionReply) AsNavigableMap() map[string]*utils.DataNode
}
// BiRPCv1UpdateSession updates an existing session, returning the duration which the session can still last
-func (sS *SessionS) BiRPCv1UpdateSession(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1UpdateSession(ctx *context.Context,
args *V1UpdateSessionArgs, rply *V1UpdateSessionReply) (err error) {
if args.CGREvent == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -2532,7 +2524,7 @@ func (sS *SessionS) BiRPCv1UpdateSession(clnt rpcclient.ClientConnector,
ev.GetStringIgnoreErrors(utils.OriginID),
ev.GetStringIgnoreErrors(utils.OriginHost))
if s == nil {
- if s, err = sS.initSession(args.CGREvent, sS.biJClntID(clnt), ev.GetStringIgnoreErrors(utils.OriginID),
+ if s, err = sS.initSession(args.CGREvent, sS.biJClntID(ctx.Client), ev.GetStringIgnoreErrors(utils.OriginID),
dbtItvl, false, args.ForceDuration); err != nil {
return err
}
@@ -2610,7 +2602,7 @@ func (args *V1TerminateSessionArgs) ParseFlags(flags, sep string) {
}
// BiRPCv1TerminateSession will stop debit loops as well as release any used resources
-func (sS *SessionS) BiRPCv1TerminateSession(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
args *V1TerminateSessionArgs, rply *string) (err error) {
if args.CGREvent == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -2677,7 +2669,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(clnt rpcclient.ClientConnector,
continue
}
isMsg = true
- if s, err = sS.initSession(args.CGREvent, sS.biJClntID(clnt), ev.GetStringIgnoreErrors(utils.OriginID),
+ if s, err = sS.initSession(args.CGREvent, sS.biJClntID(ctx.Client), ev.GetStringIgnoreErrors(utils.OriginID),
dbtItvl, isMsg, args.ForceDuration); err != nil {
return utils.NewErrRALs(err)
}
@@ -2713,7 +2705,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(clnt rpcclient.ClientConnector,
}
args.CGREvent.APIOpts[utils.OptsResourcesUsageID] = originID // same ID should be accepted by first group since the previous resource should be expired
args.CGREvent.APIOpts[utils.OptsResourcesUnits] = 1
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ResSConns, nil, utils.ResourceSv1ReleaseResources,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ResSConns, utils.ResourceSv1ReleaseResources,
args.CGREvent, &reply); err != nil {
return utils.NewErrResourceS(err)
}
@@ -2746,7 +2738,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(clnt rpcclient.ClientConnector,
}
// BiRPCv1ProcessCDR sends the CDR to CDRs
-func (sS *SessionS) BiRPCv1ProcessCDR(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1ProcessCDR(ctx *context.Context,
cgrEv *utils.CGREvent, rply *string) (err error) {
if cgrEv.Event == nil {
return utils.NewErrMandatoryIeMissing(utils.Event)
@@ -2934,7 +2926,7 @@ func (v1Rply *V1ProcessMessageReply) AsNavigableMap() map[string]*utils.DataNode
}
// BiRPCv1ProcessMessage processes one event with the right subsystems based on arguments received
-func (sS *SessionS) BiRPCv1ProcessMessage(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
args *V1ProcessMessageArgs, rply *V1ProcessMessageReply) (err error) {
if args.CGREvent == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -2995,7 +2987,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(clnt rpcclient.ClientConnector,
args.CGREvent.APIOpts[utils.OptsResourcesUsageID] = originID
args.CGREvent.APIOpts[utils.OptsResourcesUnits] = 1
var allocMessage string
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ResSConns, nil, utils.ResourceSv1AllocateResources,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ResSConns, utils.ResourceSv1AllocateResources,
args.CGREvent, &allocMessage); err != nil {
return utils.NewErrResourceS(err)
}
@@ -3145,7 +3137,7 @@ func (v1Rply *V1ProcessEventReply) AsNavigableMap() map[string]*utils.DataNode {
}
// BiRPCv1ProcessEvent processes one event with the right subsystems based on arguments received
-func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
args *V1ProcessEventArgs, rply *V1ProcessEventReply) (err error) {
if args.CGREvent == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -3358,7 +3350,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
//check for subflags and convert them into utils.FlagsWithParams
switch {
case resOpt.Has(utils.MetaAuthorize):
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ResSConns, nil, utils.ResourceSv1AuthorizeResources,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ResSConns, utils.ResourceSv1AuthorizeResources,
args.CGREvent, &resMessage); err != nil {
if blockError {
return utils.NewErrResourceS(err)
@@ -3369,7 +3361,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
withErrors = true
}
case resOpt.Has(utils.MetaAllocate):
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ResSConns, nil, utils.ResourceSv1AllocateResources,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ResSConns, utils.ResourceSv1AllocateResources,
args.CGREvent, &resMessage); err != nil {
if blockError {
return utils.NewErrResourceS(err)
@@ -3380,7 +3372,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
withErrors = true
}
case resOpt.Has(utils.MetaRelease):
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ResSConns, nil, utils.ResourceSv1ReleaseResources,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ResSConns, utils.ResourceSv1ReleaseResources,
args.CGREvent, &resMessage); err != nil {
if blockError {
return utils.NewErrResourceS(err)
@@ -3436,7 +3428,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
ForceDuration: ralsOpts.Has(utils.MetaFD),
}
var cc engine.CallCost
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RALsConns, nil,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RALsConns,
utils.ResponderGetCost,
&engine.CallDescriptorWithAPIOpts{
CallDescriptor: cd,
@@ -3465,7 +3457,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
return utils.NewErrRALs(err)
}
}
- s, err := sS.initSession(args.CGREvent, sS.biJClntID(clnt), originID, dbtItvl, false,
+ s, err := sS.initSession(args.CGREvent, sS.biJClntID(ctx.Client), originID, dbtItvl, false,
ralsOpts.Has(utils.MetaFD))
if err != nil {
return err
@@ -3494,7 +3486,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
ev.GetStringIgnoreErrors(utils.OriginID),
ev.GetStringIgnoreErrors(utils.OriginHost))
if s == nil {
- if s, err = sS.initSession(args.CGREvent, sS.biJClntID(clnt), ev.GetStringIgnoreErrors(utils.OriginID),
+ if s, err = sS.initSession(args.CGREvent, sS.biJClntID(ctx.Client), ev.GetStringIgnoreErrors(utils.OriginID),
dbtItvl, false, ralsOpts.Has(utils.MetaFD)); err != nil {
return err
}
@@ -3516,7 +3508,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
ev.GetStringIgnoreErrors(utils.OriginID),
ev.GetStringIgnoreErrors(utils.OriginHost))
if s == nil {
- if s, err = sS.initSession(args.CGREvent, sS.biJClntID(clnt), ev.GetStringIgnoreErrors(utils.OriginID),
+ if s, err = sS.initSession(args.CGREvent, sS.biJClntID(ctx.Client), ev.GetStringIgnoreErrors(utils.OriginID),
dbtItvl, false, ralsOpts.Has(utils.MetaFD)); err != nil {
return err
}
@@ -3567,7 +3559,7 @@ type V1GetCostReply struct {
}
// BiRPCv1GetCost processes one event with the right subsystems based on arguments received
-func (sS *SessionS) BiRPCv1GetCost(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1GetCost(ctx *context.Context,
args *V1ProcessEventArgs, rply *V1GetCostReply) (err error) {
if args.CGREvent == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -3645,7 +3637,7 @@ func (sS *SessionS) BiRPCv1GetCost(clnt rpcclient.ClientConnector,
TimeEnd: startTime.Add(me.GetDurationIgnoreErrors(utils.Usage)),
}
var cc engine.CallCost
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RALsConns, nil,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RALsConns,
utils.ResponderGetCost,
&engine.CallDescriptorWithAPIOpts{
CallDescriptor: cd,
@@ -3660,7 +3652,7 @@ func (sS *SessionS) BiRPCv1GetCost(clnt rpcclient.ClientConnector,
}
// BiRPCv1SyncSessions will sync sessions on demand
-func (sS *SessionS) BiRPCv1SyncSessions(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1SyncSessions(ctx *context.Context,
ignParam *utils.TenantWithAPIOpts, reply *string) error {
sS.syncSessions()
*reply = utils.OK
@@ -3668,7 +3660,7 @@ func (sS *SessionS) BiRPCv1SyncSessions(clnt rpcclient.ClientConnector,
}
// BiRPCv1ForceDisconnect will force disconnecting sessions matching sessions
-func (sS *SessionS) BiRPCv1ForceDisconnect(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1ForceDisconnect(ctx *context.Context,
args *utils.SessionFilter, reply *string) (err error) {
if args == nil { //protection in case on nil
args = &utils.SessionFilter{}
@@ -3704,16 +3696,16 @@ func (sS *SessionS) BiRPCv1ForceDisconnect(clnt rpcclient.ClientConnector,
}
// BiRPCv1RegisterInternalBiJSONConn will register the client for a bidirectional comunication
-func (sS *SessionS) BiRPCv1RegisterInternalBiJSONConn(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1RegisterInternalBiJSONConn(ctx *context.Context,
connID string, reply *string) error {
- sS.RegisterIntBiJConn(clnt, connID)
+ sS.RegisterIntBiJConn(ctx.Client, connID)
*reply = utils.OK
return nil
}
// BiRPCv1ActivateSessions is called to activate a list/all sessions
// returns utils.ErrPartiallyExecuted in case of errors
-func (sS *SessionS) BiRPCv1ActivateSessions(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1ActivateSessions(ctx *context.Context,
sIDs *utils.SessionIDsWithArgsDispatcher, reply *string) (err error) {
if len(sIDs.IDs) == 0 {
sS.pSsMux.RLock()
@@ -3739,7 +3731,7 @@ func (sS *SessionS) BiRPCv1ActivateSessions(clnt rpcclient.ClientConnector,
// BiRPCv1DeactivateSessions is called to deactivate a list/all active sessios
// returns utils.ErrPartiallyExecuted in case of errors
-func (sS *SessionS) BiRPCv1DeactivateSessions(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1DeactivateSessions(ctx *context.Context,
sIDs *utils.SessionIDsWithArgsDispatcher, reply *string) (err error) {
if len(sIDs.IDs) == 0 {
sS.aSsMux.RLock()
@@ -3785,7 +3777,7 @@ func (sS *SessionS) processCDR(cgrEv *utils.CGREvent, flags []string, rply *stri
CGREvent: *cgrEv,
}
argsProc.SetCloneable(clnb)
- return sS.connMgr.Call(sS.cgrCfg.SessionSCfg().CDRsConns, nil, utils.CDRsV1ProcessEvent,
+ return sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().CDRsConns, utils.CDRsV1ProcessEvent,
argsProc, rply)
}
@@ -3803,7 +3795,7 @@ func (sS *SessionS) processCDR(cgrEv *utils.CGREvent, flags []string, rply *stri
if mp := engine.MapEvent(cgrEv.Event); unratedReqs.HasField(mp.GetStringIgnoreErrors(utils.RequestType)) { // order additional rating for unrated request types
argsProc.Flags = append(argsProc.Flags, fmt.Sprintf("%s:true", utils.MetaRALs))
}
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().CDRsConns, nil, utils.CDRsV1ProcessEvent,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().CDRsConns, utils.CDRsV1ProcessEvent,
argsProc, rply); err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> error <%s> posting CDR with CGRID: <%s>",
@@ -3832,7 +3824,7 @@ func (sS *SessionS) processThreshold(cgrEv *utils.CGREvent, thIDs []string, clnb
}
cgrEv.SetCloneable(clnb)
//initialize the returned variable
- err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().ThreshSConns, nil, utils.ThresholdSv1ProcessEvent, cgrEv, &tIDs)
+ err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().ThreshSConns, utils.ThresholdSv1ProcessEvent, cgrEv, &tIDs)
return
}
@@ -3850,7 +3842,7 @@ func (sS *SessionS) processStats(cgrEv *utils.CGREvent, stsIDs []string, clnb bo
}
cgrEv.SetCloneable(clnb)
//initialize the returned variable
- err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().StatSConns, nil, utils.StatSv1ProcessEvent, cgrEv, &sIDs)
+ err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().StatSConns, utils.StatSv1ProcessEvent, cgrEv, &sIDs)
return
}
@@ -3870,7 +3862,7 @@ func (sS *SessionS) getRoutes(cgrEv *utils.CGREvent, pag utils.Paginator, ignore
cgrEv.APIOpts[utils.OptsRoutesIgnoreErrors] = ignoreErrors
}
cgrEv.SetCloneable(clnb)
- if err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().RouteSConns, nil, utils.RouteSv1GetRoutes,
+ if err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().RouteSConns, utils.RouteSv1GetRoutes,
cgrEv, &routesReply); err != nil {
return routesReply, utils.NewErrRouteS(err)
}
@@ -3893,7 +3885,7 @@ func (sS *SessionS) processAttributes(cgrEv *utils.CGREvent, attrIDs []string,
utils.IfaceAsString(ctx),
utils.MetaSessionS)
cgrEv.SetCloneable(clnb)
- err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().AttrSConns, nil, utils.AttributeSv1ProcessEvent,
+ err = sS.connMgr.Call(context.TODO(), sS.cgrCfg.SessionSCfg().AttrSConns, utils.AttributeSv1ProcessEvent,
cgrEv, &rplyEv)
if err == nil && !has && utils.IfaceAsString(rplyEv.APIOpts[utils.OptsContext]) == utils.MetaSessionS {
delete(rplyEv.APIOpts, utils.OptsContext)
@@ -3903,11 +3895,11 @@ func (sS *SessionS) processAttributes(cgrEv *utils.CGREvent, attrIDs []string,
// BiRPCV1GetMaxUsage returns the maximum usage as seconds, compatible with OpenSIPS 2.3
// DEPRECATED, it will be removed in future versions
-func (sS *SessionS) BiRPCV1GetMaxUsage(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCV1GetMaxUsage(ctx *context.Context,
ev engine.MapEvent, maxUsage *float64) (err error) {
var rply *V1AuthorizeReply
if err = sS.BiRPCv1AuthorizeEvent(
- clnt,
+ ctx,
&V1AuthorizeArgs{
GetMaxUsage: true,
CGREvent: &utils.CGREvent{
@@ -3928,11 +3920,11 @@ func (sS *SessionS) BiRPCV1GetMaxUsage(clnt rpcclient.ClientConnector,
// BiRPCV1InitiateSession is called on session start, returns the maximum number of seconds the session can last
// DEPRECATED, it will be removed in future versions
// Kept for compatibility with OpenSIPS 2.3
-func (sS *SessionS) BiRPCV1InitiateSession(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCV1InitiateSession(ctx *context.Context,
ev engine.MapEvent, maxUsage *float64) (err error) {
var rply *V1InitSessionReply
if err = sS.BiRPCv1InitiateSession(
- clnt,
+ ctx,
&V1InitSessionArgs{
InitSession: true,
CGREvent: &utils.CGREvent{
@@ -3953,11 +3945,11 @@ func (sS *SessionS) BiRPCV1InitiateSession(clnt rpcclient.ClientConnector,
// BiRPCV1UpdateSession processes interim updates, returns remaining duration from the RALs
// DEPRECATED, it will be removed in future versions
// Kept for compatibility with OpenSIPS 2.3
-func (sS *SessionS) BiRPCV1UpdateSession(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCV1UpdateSession(ctx *context.Context,
ev engine.MapEvent, maxUsage *float64) (err error) {
var rply *V1UpdateSessionReply
if err = sS.BiRPCv1UpdateSession(
- clnt,
+ ctx,
&V1UpdateSessionArgs{
UpdateSession: true,
CGREvent: &utils.CGREvent{
@@ -3978,10 +3970,10 @@ func (sS *SessionS) BiRPCV1UpdateSession(clnt rpcclient.ClientConnector,
// BiRPCV1TerminateSession is called on session end, should stop debit loop
// DEPRECATED, it will be removed in future versions
// Kept for compatibility with OpenSIPS 2.3
-func (sS *SessionS) BiRPCV1TerminateSession(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCV1TerminateSession(ctx *context.Context,
ev engine.MapEvent, rply *string) (err error) {
return sS.BiRPCv1TerminateSession(
- clnt,
+ ctx,
&V1TerminateSessionArgs{
TerminateSession: true,
CGREvent: &utils.CGREvent{
@@ -3998,10 +3990,10 @@ func (sS *SessionS) BiRPCV1TerminateSession(clnt rpcclient.ClientConnector,
// BiRPCV1ProcessCDR should send the CDR to CDRS
// DEPRECATED, it will be removed in future versions
// Kept for compatibility with OpenSIPS 2.3
-func (sS *SessionS) BiRPCV1ProcessCDR(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCV1ProcessCDR(ctx *context.Context,
ev engine.MapEvent, rply *string) (err error) {
return sS.BiRPCv1ProcessCDR(
- clnt,
+ ctx,
&utils.CGREvent{
Tenant: utils.FirstNonEmpty(
ev.GetStringIgnoreErrors(utils.Tenant),
@@ -4022,14 +4014,14 @@ func (sS *SessionS) sendRar(s *Session) (err error) {
return
}
var rply string
- if err = clnt.conn.Call(utils.SessionSv1ReAuthorize, originID, &rply); err == utils.ErrNotImplemented {
+ if err = clnt.conn.Call(context.TODO(), utils.SessionSv1ReAuthorize, originID, &rply); err == utils.ErrNotImplemented {
err = nil
}
return
}
// BiRPCv1ReAuthorize sends a RAR for the matching sessions
-func (sS *SessionS) BiRPCv1ReAuthorize(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1ReAuthorize(ctx *context.Context,
args *utils.SessionFilter, reply *string) (err error) {
if args == nil { //protection in case on nil
args = &utils.SessionFilter{}
@@ -4064,7 +4056,7 @@ func (sS *SessionS) BiRPCv1ReAuthorize(clnt rpcclient.ClientConnector,
}
// BiRPCv1DisconnectPeer sends a DPR for the given OriginHost and OriginRealm
-func (sS *SessionS) BiRPCv1DisconnectPeer(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1DisconnectPeer(ctx *context.Context,
args *utils.DPRArgs, reply *string) (err error) {
hasErrors := false
clients := make(map[string]*biJClient)
@@ -4074,7 +4066,7 @@ func (sS *SessionS) BiRPCv1DisconnectPeer(clnt rpcclient.ClientConnector,
}
sS.biJMux.RUnlock()
for ID, clnt := range clients {
- if err = clnt.conn.Call(utils.SessionSv1DisconnectPeer, args, reply); err != nil && err != utils.ErrNotImplemented {
+ if err = clnt.conn.Call(context.TODO(), utils.SessionSv1DisconnectPeer, args, reply); err != nil && err != utils.ErrNotImplemented {
utils.Logger.Warning(
fmt.Sprintf(
"<%s> failed sending DPR for connection with id: <%s>, err: <%s>",
@@ -4090,7 +4082,7 @@ func (sS *SessionS) BiRPCv1DisconnectPeer(clnt rpcclient.ClientConnector,
}
// BiRPCv1STIRAuthenticate the API for STIR checking
-func (sS *SessionS) BiRPCv1STIRAuthenticate(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1STIRAuthenticate(ctx *context.Context,
args *V1STIRAuthenticateArgs, reply *string) (err error) {
attest := sS.cgrCfg.SessionSCfg().STIRCfg.AllowedAttest
if len(args.Attest) != 0 {
@@ -4111,7 +4103,7 @@ func (sS *SessionS) BiRPCv1STIRAuthenticate(clnt rpcclient.ClientConnector,
}
// BiRPCv1STIRIdentity the API for STIR header creation
-func (sS *SessionS) BiRPCv1STIRIdentity(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1STIRIdentity(ctx *context.Context,
args *V1STIRIdentityArgs, identity *string) (err error) {
if args == nil || args.Payload == nil {
return utils.NewErrMandatoryIeMissing("Payload")
@@ -4134,91 +4126,15 @@ func (sS *SessionS) BiRPCv1STIRIdentity(clnt rpcclient.ClientConnector,
}
// BiRPCv1STIRIdentity the API for STIR header creation
-func (sS *SessionS) BiRPCv1CapsError(clnt rpcclient.ClientConnector,
+func (sS *SessionS) BiRPCv1CapsError(ctx *context.Context,
args any, identity *string) (err error) {
- return utils.ErrMaxConcurrentRPCExceeded
+ return utils.ErrMaxConcurrentRPCExceededNoCaps
}
-// Handlers bidirectional methods following
-func (sS *SessionS) Handlers() map[string]any {
- return map[string]any{
- utils.SessionSv1AuthorizeEvent: func(clnt *rpc2.Client, args *V1AuthorizeArgs, rply *V1AuthorizeReply) (err error) {
- return sS.BiRPCv1AuthorizeEvent(clnt, args, rply)
- },
- utils.SessionSv1AuthorizeEventWithDigest: func(clnt *rpc2.Client, args *V1AuthorizeArgs, rply *V1AuthorizeReplyWithDigest) (err error) {
- return sS.BiRPCv1AuthorizeEventWithDigest(clnt, args, rply)
- },
- utils.SessionSv1InitiateSession: func(clnt *rpc2.Client, args *V1InitSessionArgs, rply *V1InitSessionReply) (err error) {
- return sS.BiRPCv1InitiateSession(clnt, args, rply)
- },
- utils.SessionSv1InitiateSessionWithDigest: func(clnt *rpc2.Client, args *V1InitSessionArgs, rply *V1InitReplyWithDigest) (err error) {
- return sS.BiRPCv1InitiateSessionWithDigest(clnt, args, rply)
- },
- utils.SessionSv1UpdateSession: func(clnt *rpc2.Client, args *V1UpdateSessionArgs, rply *V1UpdateSessionReply) (err error) {
- return sS.BiRPCv1UpdateSession(clnt, args, rply)
- },
- utils.SessionSv1SyncSessions: func(clnt *rpc2.Client, args *utils.TenantWithAPIOpts, rply *string) (err error) {
- return sS.BiRPCv1SyncSessions(clnt, args, rply)
- },
- utils.SessionSv1TerminateSession: func(clnt *rpc2.Client, args *V1TerminateSessionArgs, rply *string) (err error) {
- return sS.BiRPCv1TerminateSession(clnt, args, rply)
- },
- utils.SessionSv1ProcessCDR: func(clnt *rpc2.Client, args *utils.CGREvent, rply *string) (err error) {
- return sS.BiRPCv1ProcessCDR(clnt, args, rply)
- },
- utils.SessionSv1ProcessMessage: func(clnt *rpc2.Client, args *V1ProcessMessageArgs, rply *V1ProcessMessageReply) (err error) {
- return sS.BiRPCv1ProcessMessage(clnt, args, rply)
- },
- utils.SessionSv1ProcessEvent: func(clnt *rpc2.Client, args *V1ProcessEventArgs, rply *V1ProcessEventReply) (err error) {
- return sS.BiRPCv1ProcessEvent(clnt, args, rply)
- },
- utils.SessionSv1GetCost: func(clnt *rpc2.Client, args *V1ProcessEventArgs, rply *V1GetCostReply) (err error) {
- return sS.BiRPCv1GetCost(clnt, args, rply)
- },
- utils.SessionSv1GetActiveSessions: func(clnt *rpc2.Client, args *utils.SessionFilter, rply *[]*ExternalSession) (err error) {
- return sS.BiRPCv1GetActiveSessions(clnt, args, rply)
- },
- utils.SessionSv1GetActiveSessionsCount: func(clnt *rpc2.Client, args *utils.SessionFilter, rply *int) (err error) {
- return sS.BiRPCv1GetActiveSessionsCount(clnt, args, rply)
- },
- utils.SessionSv1GetPassiveSessions: func(clnt *rpc2.Client, args *utils.SessionFilter, rply *[]*ExternalSession) (err error) {
- return sS.BiRPCv1GetPassiveSessions(clnt, args, rply)
- },
- utils.SessionSv1GetPassiveSessionsCount: func(clnt *rpc2.Client, args *utils.SessionFilter, rply *int) (err error) {
- return sS.BiRPCv1GetPassiveSessionsCount(clnt, args, rply)
- },
- utils.SessionSv1ForceDisconnect: func(clnt *rpc2.Client, args *utils.SessionFilter, rply *string) (err error) {
- return sS.BiRPCv1ForceDisconnect(clnt, args, rply)
- },
- utils.SessionSv1RegisterInternalBiJSONConn: func(clnt *rpc2.Client, args string, rply *string) (err error) {
- return sS.BiRPCv1RegisterInternalBiJSONConn(clnt, args, rply)
- },
- utils.SessionSv1ReplicateSessions: func(clnt *rpc2.Client, args ArgsReplicateSessions, rply *string) (err error) {
- return sS.BiRPCv1ReplicateSessions(clnt, args, rply)
- },
- utils.SessionSv1SetPassiveSession: func(clnt *rpc2.Client, args *Session, rply *string) (err error) {
- return sS.BiRPCv1SetPassiveSession(clnt, args, rply)
- },
- utils.SessionSv1ActivateSessions: func(clnt *rpc2.Client, args *utils.SessionIDsWithArgsDispatcher, rply *string) (err error) {
- return sS.BiRPCv1ActivateSessions(clnt, args, rply)
- },
- utils.SessionSv1DeactivateSessions: func(clnt *rpc2.Client, args *utils.SessionIDsWithArgsDispatcher, rply *string) (err error) {
- return sS.BiRPCv1DeactivateSessions(clnt, args, rply)
- },
- utils.SessionSv1ReAuthorize: func(clnt *rpc2.Client, args *utils.SessionFilter, rply *string) (err error) {
- return sS.BiRPCv1ReAuthorize(clnt, args, rply)
- },
- utils.SessionSv1DisconnectPeer: func(clnt *rpc2.Client, args *utils.DPRArgs, rply *string) (err error) {
- return sS.BiRPCv1DisconnectPeer(clnt, args, rply)
- },
- utils.SessionSv1STIRAuthenticate: func(clnt *rpc2.Client, args *V1STIRAuthenticateArgs, rply *string) (err error) {
- return sS.BiRPCv1STIRAuthenticate(clnt, args, rply)
- },
- utils.SessionSv1STIRIdentity: func(clnt *rpc2.Client, args *V1STIRIdentityArgs, rply *string) (err error) {
- return sS.BiRPCv1STIRIdentity(clnt, args, rply)
- },
- utils.SessionSv1CapsError: func(clnt *rpc2.Client, args any, rply *string) (err error) {
- return sS.BiRPCv1CapsError(clnt, args, rply)
- },
- }
+// BiRPCv1Sleep mimics a request whose process takes the given amount of time to process
+func (ssv1 *SessionS) BiRPCv1Sleep(ctx *context.Context, args *utils.DurationArgs,
+ reply *string) (err error) {
+ time.Sleep(args.Duration)
+ *reply = utils.OK
+ return nil
}
diff --git a/sessions/sessions_bench_test.go b/sessions/sessions_bench_test.go
index 3d72c29ac..cddd75516 100644
--- a/sessions/sessions_bench_test.go
+++ b/sessions/sessions_bench_test.go
@@ -25,13 +25,14 @@ import (
"flag"
"fmt"
"log"
- "net/rpc"
- "net/rpc/jsonrpc"
"path"
"sync"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/birpc/jsonrpc"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -39,7 +40,7 @@ import (
var (
sBenchCfg *config.CGRConfig
- sBenchRPC *rpc.Client
+ sBenchRPC *birpc.Client
connOnce sync.Once
initRuns = flag.Int("runs", 25000, "number of loops to run in init")
cps = flag.Int("cps", 2000, "number of loops to run in init")
@@ -68,14 +69,14 @@ func loadTP() {
attrs := &utils.AttrLoadTpFromFolder{
FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
var tpLoadInst utils.LoadInstance
- if err := sBenchRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+ if err := sBenchRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder,
attrs, &tpLoadInst); err != nil {
log.Fatal(err)
}
time.Sleep(100 * time.Millisecond) // Give time for scheduler to execute topups
}
-func addBalance(sBenchRPC *rpc.Client, sraccount string) {
+func addBalance(sBenchRPC *birpc.Client, sraccount string) {
attrSetBalance := utils.AttrSetBalance{
Tenant: "cgrates.org",
Account: sraccount,
@@ -86,7 +87,7 @@ func addBalance(sBenchRPC *rpc.Client, sraccount string) {
},
}
var reply string
- if err := sBenchRPC.Call(utils.APIerSv2SetBalance,
+ if err := sBenchRPC.Call(context.Background(), utils.APIerSv2SetBalance,
attrSetBalance, &reply); err != nil {
log.Fatal(err)
}
@@ -131,7 +132,7 @@ func initSession(i int) {
initArgs.Event[utils.Destination] = fmt.Sprintf("1002%v", i)
var initRpl *V1InitSessionReply
- if err := sBenchRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sBenchRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
// log.Fatal(err)
}
@@ -165,7 +166,7 @@ func sendInit() {
func getCount() int {
var count int
- if err := sBenchRPC.Call(utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
+ if err := sBenchRPC.Call(context.Background(), utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
Filters: []string{"*string:~*req.ToR:*voice"},
}, &count); err != nil {
log.Fatal(err)
@@ -221,7 +222,7 @@ func BenchmarkEncodingGOB(b *testing.B) {
log.Fatal(err)
}
- if sBenchRPC, err = rpc.Dial(utils.TCP, sBenchCfg.ListenCfg().RPCGOBListen); err != nil {
+ if sBenchRPC, err = birpc.Dial(utils.TCP, sBenchCfg.ListenCfg().RPCGOBListen); err != nil {
log.Fatalf("Error at dialing rcp client:%v\n", err)
}
b.ResetTimer()
diff --git a/sessions/sessions_birpc_it_test.go b/sessions/sessions_birpc_it_test.go
index 46a7a4e6e..f86e5be65 100644
--- a/sessions/sessions_birpc_it_test.go
+++ b/sessions/sessions_birpc_it_test.go
@@ -26,7 +26,8 @@ import (
"testing"
"time"
- "github.com/cenkalti/rpc2"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ var (
sessionsBiRPCCfgPath string
sessionsBiRPCCfgDIR string
sessionsBiRPCCfg *config.CGRConfig
- sessionsBiRPC *rpc2.Client
+ sessionsBiRPC *birpc.BirpcClient
disconnectEvChan = make(chan *utils.AttrDisconnectSession, 1)
err error
sessionsTests = []func(t *testing.T){
@@ -71,7 +72,9 @@ func TestSessionsBiRPC(t *testing.T) {
}
}
-func handleDisconnectSession(clnt *rpc2.Client,
+type smock struct{}
+
+func (*smock) DisconnectSession(ctx *context.Context,
args *utils.AttrDisconnectSession, reply *string) error {
disconnectEvChan <- args
*reply = utils.OK
@@ -110,14 +113,17 @@ func testSessionsBiRPCStartEngine(t *testing.T) {
// Connect rpc client to rater
func testSessionsBiRPCApierRpcConn(t *testing.T) {
- clntHandlers := map[string]any{utils.SessionSv1DisconnectSession: handleDisconnectSession}
+ srv, err := birpc.NewService(new(smock), utils.SessionSv1, true)
+ if err != nil {
+ t.Fatal(err)
+ }
dummyClnt, err := utils.NewBiJSONrpcClient(sessionsBiRPCCfg.SessionSCfg().ListenBijson,
- clntHandlers)
+ srv)
if err != nil { // First attempt is to make sure multiple clients are supported
t.Fatal(err)
}
if sessionsBiRPC, err = utils.NewBiJSONrpcClient(sessionsBiRPCCfg.SessionSCfg().ListenBijson,
- clntHandlers); err != nil {
+ srv); err != nil {
t.Fatal(err)
}
if sessionsRPC, err = newRPCClient(sessionsBiRPCCfg.ListenCfg()); err != nil { // Connect also simple RPC so we can check accounts and such
@@ -130,7 +136,7 @@ func testSessionsBiRPCApierRpcConn(t *testing.T) {
func testSessionsBiRPCTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
var loadInst utils.LoadInstance
- if err := sessionsRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -148,7 +154,7 @@ func testSessionsBiRPCSessionAutomaticDisconnects(t *testing.T) {
},
}
var reply string
- if err := sessionsRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -159,7 +165,7 @@ func testSessionsBiRPCSessionAutomaticDisconnects(t *testing.T) {
Account: attrSetBalance.Account,
}
eAcntVal := 0.01 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrGetAcnt, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrGetAcnt, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f", eAcntVal,
@@ -189,7 +195,7 @@ func testSessionsBiRPCSessionAutomaticDisconnects(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsBiRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsBiRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Fatal(err)
}
@@ -231,16 +237,16 @@ func testSessionsBiRPCSessionAutomaticDisconnects(t *testing.T) {
}
var rpl string
- if err := sessionsBiRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sessionsBiRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
time.Sleep(100 * time.Millisecond) // Give time for debits to occur
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrGetAcnt, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrGetAcnt, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 0 {
t.Errorf("Balance should be empty, have: %f", acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := sessionsBiRPC.Call(utils.SessionSv1ProcessCDR, termArgs.CGREvent, &reply); err != nil {
+ if err := sessionsBiRPC.Call(context.Background(), utils.SessionSv1ProcessCDR, termArgs.CGREvent, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received reply: %s", reply)
@@ -249,7 +255,7 @@ func testSessionsBiRPCSessionAutomaticDisconnects(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault},
DestinationPrefixes: []string{"1004"}}
- if err := sessionsRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -274,7 +280,7 @@ func testSessionsBiRPCSessionOriginatorTerminate(t *testing.T) {
},
}
var reply string
- if err := sessionsRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -282,7 +288,7 @@ func testSessionsBiRPCSessionOriginatorTerminate(t *testing.T) {
var acnt *engine.Account
attrGetAcnt := &utils.AttrGetAccount{Tenant: attrSetBalance.Tenant, Account: attrSetBalance.Account}
eAcntVal := 1.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrGetAcnt, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrGetAcnt, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -311,7 +317,7 @@ func testSessionsBiRPCSessionOriginatorTerminate(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsBiRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsBiRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -346,18 +352,18 @@ func testSessionsBiRPCSessionOriginatorTerminate(t *testing.T) {
}
var rpl string
- if err := sessionsBiRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sessionsBiRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
time.Sleep(50 * time.Millisecond) // Give time for debits to occur
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrGetAcnt, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrGetAcnt, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() > 0.995*float64(time.Second) { // FixMe: should be not 0.93?
t.Errorf("Balance value: %f", acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := sessionsRPC.Call(utils.SessionSv1ProcessCDR, termArgs.CGREvent, &reply); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1ProcessCDR, termArgs.CGREvent, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received reply: %s", reply)
@@ -367,7 +373,7 @@ func testSessionsBiRPCSessionOriginatorTerminate(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault},
DestinationPrefixes: []string{"1005"}}
- if err := sessionsRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -384,7 +390,7 @@ func testSessionsBiRPCStopCgrEngine(t *testing.T) {
if err := sessionsBiRPC.Close(); err != nil { // Close the connection so we don't get EOF warnings from client
t.Error(err)
}
- if err := engine.KillEngine(100); err != nil {
+ if err := engine.KillEngine(*waitRater); err != nil {
t.Error(err)
}
}
diff --git a/sessions/sessions_data_it_test.go b/sessions/sessions_data_it_test.go
index 40ee991ce..a674d7001 100644
--- a/sessions/sessions_data_it_test.go
+++ b/sessions/sessions_data_it_test.go
@@ -21,11 +21,12 @@ along with this program. If not, see
package sessions
import (
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -35,7 +36,7 @@ var (
dataCfgPath string
dataCfgDIR string
dataCfg *config.CGRConfig
- sDataRPC *rpc.Client
+ sDataRPC *birpc.Client
SessionsDataTests = []func(t *testing.T){
testSessionsDataInitCfg,
@@ -118,7 +119,7 @@ func testSessionsDataApierRpcConn(t *testing.T) {
func testSessionsDataTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
var loadInst utils.LoadInstance
- if err := sDataRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -128,7 +129,7 @@ func testSessionsDataLastUsedData(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 102400.0
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -146,7 +147,7 @@ func testSessionsDataLastUsedData(t *testing.T) {
}
var cc engine.CallCost
// Make sure the cost is what we expect to be for 1MB of data
- if err := sDataRPC.Call(utils.ResponderGetCost, &engine.CallDescriptorWithAPIOpts{CallDescriptor: &cd}, &cc); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.ResponderGetCost, &engine.CallDescriptorWithAPIOpts{CallDescriptor: &cd}, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.Cost != 1024 {
t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -176,7 +177,7 @@ func testSessionsDataLastUsedData(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sDataRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -185,7 +186,7 @@ func testSessionsDataLastUsedData(t *testing.T) {
}
eAcntVal = 97280.0 // 100 -5
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -216,7 +217,7 @@ func testSessionsDataLastUsedData(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sDataRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage.Nanoseconds() != usage {
@@ -224,7 +225,7 @@ func testSessionsDataLastUsedData(t *testing.T) {
}
eAcntVal = 93184.0 // 100-9
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaData].GetTotalValue())
@@ -253,11 +254,11 @@ func testSessionsDataLastUsedData(t *testing.T) {
}
var rpl string
- if err := sDataRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eAcntVal = 98304.0 //100-4
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -279,12 +280,12 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
},
}
var reply string
- if err := sDataRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
@@ -314,7 +315,7 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sDataRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -323,13 +324,13 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
}
eAcntVal = 96256 // 100-6
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
}
aSessions := make([]*ExternalSession, 0)
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
aSessions[0].Usage != 6144 {
@@ -362,7 +363,7 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sDataRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage.Nanoseconds() != usage {
@@ -370,12 +371,12 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
}
eAcntVal = 87040.000000 // 15MB used
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
}
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
aSessions[0].Usage != 15360 {
@@ -410,7 +411,7 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
},
}
- if err := sDataRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage.Nanoseconds() != usage {
@@ -418,12 +419,12 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
}
eAcntVal = 87040.000000 // the amount is not modified and there will be 1024 extra left in SMG
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
}
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
aSessions[0].Usage != 13312 { // 14MB in used, 2MB extra reserved
@@ -457,7 +458,7 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
},
}
- if err := sDataRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage.Nanoseconds() != usage {
@@ -465,12 +466,12 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
}
eAcntVal = 87040.000000
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
}
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
aSessions[0].Usage != 14336 { // 14MB in use
@@ -501,21 +502,21 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
}
var rpl string
- if err := sDataRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eAcntVal = 89088.000000
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
}
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err, aSessions)
}
- if err := sDataRPC.Call(utils.SessionSv1ProcessCDR, termArgs.CGREvent, &reply); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1ProcessCDR, termArgs.CGREvent, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received reply: %s", reply)
@@ -526,7 +527,7 @@ func testSessionsDataLastUsedMultipleUpdates(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault},
Accounts: []string{acntAttrs.Account}}
- if err := sDataRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -554,12 +555,12 @@ func testSessionsDataTTLExpired(t *testing.T) {
},
}
var reply string
- if err := sDataRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
@@ -592,7 +593,7 @@ func testSessionsDataTTLExpired(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sDataRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -601,7 +602,7 @@ func testSessionsDataTTLExpired(t *testing.T) {
}
eAcntVal = 101376.000000
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
@@ -609,7 +610,7 @@ func testSessionsDataTTLExpired(t *testing.T) {
time.Sleep(70 * time.Millisecond)
eAcntVal = 100352.000000
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
@@ -618,7 +619,7 @@ func testSessionsDataTTLExpired(t *testing.T) {
// verify the cdr usage SessionTTLUsage ( 2048)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Accounts: []string{acntAttrs.Account}}
- if err := sDataRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -646,12 +647,12 @@ func testSessionsDataTTLExpMultiUpdates(t *testing.T) {
},
}
var reply string
- if err := sDataRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
@@ -681,7 +682,7 @@ func testSessionsDataTTLExpMultiUpdates(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sDataRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Fatal(err)
}
@@ -691,13 +692,13 @@ func testSessionsDataTTLExpMultiUpdates(t *testing.T) {
}
eAcntVal = 98304.000000 //96MB
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
}
aSessions := make([]*ExternalSession, 0)
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
int64(aSessions[0].Usage) != 4096 {
@@ -734,7 +735,7 @@ func testSessionsDataTTLExpMultiUpdates(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sDataRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage.Nanoseconds() != usage {
@@ -742,7 +743,7 @@ func testSessionsDataTTLExpMultiUpdates(t *testing.T) {
}
eAcntVal = 97280.000000 // 20480
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaData].GetTotalValue())
@@ -750,12 +751,12 @@ func testSessionsDataTTLExpMultiUpdates(t *testing.T) {
time.Sleep(60 * time.Millisecond) // TTL will kick in
eAcntVal = 100352.000000 // initial balance ( 102400 ) - SessionTTLUsage from update ( 2048 )
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
}
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err, aSessions)
}
@@ -763,7 +764,7 @@ func testSessionsDataTTLExpMultiUpdates(t *testing.T) {
// verify the cdr usage SessionTTLUsage ( 2048)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Accounts: []string{acntAttrs.Account}}
- if err := sDataRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -788,12 +789,12 @@ func testSessionsDataMultipleDataNoUsage(t *testing.T) {
},
}
var reply string
- if err := sDataRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
@@ -823,7 +824,7 @@ func testSessionsDataMultipleDataNoUsage(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sDataRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Fatal(err)
}
@@ -832,13 +833,13 @@ func testSessionsDataMultipleDataNoUsage(t *testing.T) {
}
eAcntVal = 100352.000000 // 1054720
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
}
aSessions := make([]*ExternalSession, 0)
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
int64(aSessions[0].Usage) != 2048 {
@@ -873,7 +874,7 @@ func testSessionsDataMultipleDataNoUsage(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sDataRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Fatal(err)
}
if updateRpl.MaxUsage.Nanoseconds() != usage {
@@ -881,13 +882,13 @@ func testSessionsDataMultipleDataNoUsage(t *testing.T) {
}
eAcntVal = 100352.000000
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
}
aSessions = make([]*ExternalSession, 0)
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
int64(aSessions[0].Usage) != 2048 {
@@ -922,7 +923,7 @@ func testSessionsDataMultipleDataNoUsage(t *testing.T) {
}
updateRpl = new(V1UpdateSessionReply) // because gob doesn't overwrite 0 value fields
- if err := sDataRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Fatal(err)
}
if *encoding != utils.MetaGOB {
@@ -936,13 +937,13 @@ func testSessionsDataMultipleDataNoUsage(t *testing.T) {
}
eAcntVal = 100352.000000
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
}
aSessions = make([]*ExternalSession, 0)
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
int64(aSessions[0].Usage) != 1024 {
@@ -972,18 +973,18 @@ func testSessionsDataMultipleDataNoUsage(t *testing.T) {
}
var rpl string
- if err := sDataRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eAcntVal = 101376.000000 // refunded last 1MB reserved and unused
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
eAcntVal, acnt.BalanceMap[utils.MetaData].GetTotalValue())
}
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err, aSessions)
@@ -1006,12 +1007,12 @@ func testSessionsDataTTLUsageProtection(t *testing.T) {
},
}
var reply string
- if err := sDataRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
@@ -1041,7 +1042,7 @@ func testSessionsDataTTLUsageProtection(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sDataRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Fatal(err)
}
@@ -1050,20 +1051,20 @@ func testSessionsDataTTLUsageProtection(t *testing.T) {
}
eAcntVal = 100352.000000 // 1054720
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
}
aSessions := make([]*ExternalSession, 0)
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 ||
int64(aSessions[0].Usage) != 2048 {
t.Errorf("wrong active sessions usage: %d", int64(aSessions[0].Usage))
}
time.Sleep(60 * time.Millisecond)
- if err := sDataRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err, utils.ToJSON(aSessions))
}
@@ -1083,12 +1084,12 @@ func testSessionsDataTTLLastUsage(t *testing.T) {
},
}
var reply string
- if err := sDataRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
}
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if totalVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); totalVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, totalVal)
@@ -1121,7 +1122,7 @@ func testSessionsDataTTLLastUsage(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sDataRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sDataRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -1130,7 +1131,7 @@ func testSessionsDataTTLLastUsage(t *testing.T) {
}
eAcntVal = 101376.000000
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
@@ -1138,7 +1139,7 @@ func testSessionsDataTTLLastUsage(t *testing.T) {
time.Sleep(70 * time.Millisecond)
eAcntVal = 99328.000000 // 101376.000000 ( units remains after init session ) - SessionTTLLastUsage ( 2048 )
- if err := sDataRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
t.Error(err)
} else if dataVal := acnt.BalanceMap[utils.MetaData].GetTotalValue(); dataVal != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, dataVal)
@@ -1147,7 +1148,7 @@ func testSessionsDataTTLLastUsage(t *testing.T) {
// verify the cdr usage to be 3072 ( init usage ( 1024 ) + SessionTTLLastUsage ( 2048 ) )
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{Accounts: []string{acntAttrs.Account}}
- if err := sDataRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sDataRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
diff --git a/sessions/sessions_it_test.go b/sessions/sessions_it_test.go
index f76bb431b..68c8e804c 100644
--- a/sessions/sessions_it_test.go
+++ b/sessions/sessions_it_test.go
@@ -22,11 +22,12 @@ package sessions
import (
"fmt"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ var (
sItCfgPath string
sItCfgDIR string
sItCfg *config.CGRConfig
- sItRPC *rpc.Client
+ sItRPC *birpc.Client
sessionsITtests = []func(t *testing.T){
testSessionsItInitCfg,
@@ -115,7 +116,7 @@ func testSessionsItApierRpcConn(t *testing.T) {
func testSessionsItTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
var loadInst utils.LoadInstance
- if err := sItRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -125,7 +126,7 @@ func testSessionsItTerminatNonexist(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 10.0
- if err := sItRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -158,19 +159,19 @@ func testSessionsItTerminatNonexist(t *testing.T) {
}
var rpl string
- if err := sItRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
time.Sleep(100 * time.Millisecond)
eAcntVal = 9.299800
- if err := sItRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
time.Sleep(100 * time.Millisecond)
- if err := sItRPC.Call(utils.SessionSv1ProcessCDR, termArgs.CGREvent, &rpl); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1ProcessCDR, termArgs.CGREvent, &rpl); err != nil {
t.Error(err)
} else if rpl != utils.OK {
t.Errorf("Received reply: %s", rpl)
@@ -181,7 +182,7 @@ func testSessionsItTerminatNonexist(t *testing.T) {
DestinationPrefixes: []string{"1002"},
RunIDs: []string{utils.MetaDefault},
}
- if err := sItRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Errorf("Unexpected number of CDRs returned: %v \n cdrs=%s", len(cdrs), utils.ToJSON(cdrs))
@@ -200,7 +201,7 @@ func testSessionsItUpdateNonexist(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 9.299800
- if err := sItRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -233,7 +234,7 @@ func testSessionsItUpdateNonexist(t *testing.T) {
}
var updtRpl V1UpdateSessionReply
- if err := sItRPC.Call(utils.SessionSv1UpdateSession, updtArgs, &updtRpl); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updtArgs, &updtRpl); err != nil {
t.Error(err)
}
if updtRpl.MaxUsage == nil || *updtRpl.MaxUsage != usage {
@@ -243,7 +244,7 @@ func testSessionsItUpdateNonexist(t *testing.T) {
time.Sleep(10 * time.Millisecond)
eAcntVal = 8.599600
- if err := sItRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -271,7 +272,7 @@ func testSessionsItUpdateNonexist(t *testing.T) {
},
}
- if err := sItRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
}
@@ -308,7 +309,7 @@ func testSessionsItTerminatePassive(t *testing.T) {
var rply string
//transfer the session from active to pasive
- if err := sItRPC.Call(utils.SessionSv1SetPassiveSession,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1SetPassiveSession,
s, &rply); err != nil {
t.Error(err)
} else if rply != utils.OK {
@@ -316,7 +317,7 @@ func testSessionsItTerminatePassive(t *testing.T) {
}
var pSessions []*ExternalSession
//check if the passive session was created
- if err := sItRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
&utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123789"),
@@ -352,13 +353,13 @@ func testSessionsItTerminatePassive(t *testing.T) {
}
var rpl string
- if err := sItRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
//check if the passive session was terminate
- if err := sItRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123789"),
@@ -382,7 +383,7 @@ func testSessionsItEventCostCompressing(t *testing.T) {
},
}
var reply string
- if err := sItRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sItRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -404,7 +405,7 @@ func testSessionsItEventCostCompressing(t *testing.T) {
},
}
var initRpl *V1InitSessionReply
- if err := sItRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -423,15 +424,15 @@ func testSessionsItEventCostCompressing(t *testing.T) {
},
}
var updateRpl *V1UpdateSessionReply
- if err := sItRPC.Call(utils.SessionSv1UpdateSession,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1UpdateSession,
updateArgs, &updateRpl); err != nil {
t.Error(err)
}
- if err := sItRPC.Call(utils.SessionSv1UpdateSession,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1UpdateSession,
updateArgs, &updateRpl); err != nil {
t.Error(err)
}
- if err := sItRPC.Call(utils.SessionSv1UpdateSession,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1UpdateSession,
updateArgs, &updateRpl); err != nil {
t.Error(err)
}
@@ -451,19 +452,19 @@ func testSessionsItEventCostCompressing(t *testing.T) {
},
}
var rpl string
- if err := sItRPC.Call(utils.SessionSv1TerminateSession,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
termArgs, &rpl); err != nil ||
rpl != utils.OK {
t.Error(err)
}
- if err := sItRPC.Call(utils.SessionSv1ProcessCDR,
+ if err := sItRPC.Call(context.Background(), utils.SessionSv1ProcessCDR,
termArgs.CGREvent, &reply); err != nil {
t.Error(err)
}
time.Sleep(20 * time.Millisecond)
cgrID := utils.Sha1("TestSessionsItEventCostCompressing", "")
var ec *engine.EventCost
- if err := sItRPC.Call(utils.APIerSv1GetEventCost,
+ if err := sItRPC.Call(context.Background(), utils.APIerSv1GetEventCost,
&utils.AttrGetCallCost{CgrId: cgrID, RunId: utils.MetaDefault},
&ec); err != nil {
t.Fatal(err)
diff --git a/sessions/sessions_rpl_it_test.go b/sessions/sessions_rpl_it_test.go
index 4d4200877..6c2b7dc4d 100644
--- a/sessions/sessions_rpl_it_test.go
+++ b/sessions/sessions_rpl_it_test.go
@@ -22,11 +22,12 @@ package sessions
import (
"fmt"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ var (
smgRplcMasterCfgPath, smgRplcSlaveCfgPath string
smgRplcMasterCfgDIR, smgRplcSlaveCfgDIR string
smgRplcMasterCfg, smgRplcSlaveCfg *config.CGRConfig
- smgRplcMstrRPC, smgRplcSlvRPC *rpc.Client
+ smgRplcMstrRPC, smgRplcSlvRPC *birpc.Client
SessionsRplTests = []func(t *testing.T){
testSessionSRplInitCfg,
@@ -122,7 +123,7 @@ func testSessionSRplApierRpcConn(t *testing.T) {
func testSessionSRplTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
var loadInst utils.LoadInstance
- if err := smgRplcMstrRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -131,11 +132,11 @@ func testSessionSRplTPFromFolder(t *testing.T) {
func testSessionSRplInitiate(t *testing.T) {
var aSessions []*ExternalSession
//make sure we don't have active sessions on master and passive on slave
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
@@ -164,7 +165,7 @@ func testSessionSRplInitiate(t *testing.T) {
}
var initRpl V1InitSessionReply
- if err := smgRplcMstrRPC.Call(utils.SessionSv1InitiateSession,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
argsInit, &initRpl); err != nil {
t.Error(err)
}
@@ -175,7 +176,7 @@ func testSessionSRplInitiate(t *testing.T) {
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated
//check if the session was createad as active session on master
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -190,7 +191,7 @@ func testSessionSRplInitiate(t *testing.T) {
//check if the session was created as passive session on slave
var pSessions []*ExternalSession
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -229,7 +230,7 @@ func testSessionSRplUpdate(t *testing.T) {
},
}
var updtRpl V1UpdateSessionReply
- if err := smgRplcSlvRPC.Call(utils.SessionSv1UpdateSession,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1UpdateSession,
argsUpdate, &updtRpl); err != nil {
t.Error(err)
}
@@ -239,7 +240,7 @@ func testSessionSRplUpdate(t *testing.T) {
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated
var aSessions []*ExternalSession
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -254,13 +255,13 @@ func testSessionSRplUpdate(t *testing.T) {
var pSessions []*ExternalSession
// Make sure we don't have passive session on active host
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter),
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter),
&pSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
// Master should not longer have activeSession
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -272,7 +273,7 @@ func testSessionSRplUpdate(t *testing.T) {
cgrID := GetSetCGRID(engine.NewMapEvent(argsUpdate.Event))
// Make sure session was replicated
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetPassiveSessions,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions,
new(utils.SessionFilter), &pSessions); err != nil {
t.Error(err)
} else if len(pSessions) != 1 {
@@ -307,13 +308,13 @@ func testSessionSRplTerminate(t *testing.T) {
},
}
var reply string
- if err := smgRplcMstrRPC.Call(utils.SessionSv1TerminateSession, args, &reply); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1TerminateSession, args, &reply); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated
var aSessions []*ExternalSession
//check if the session was terminated on master
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
@@ -323,17 +324,17 @@ func testSessionSRplTerminate(t *testing.T) {
t.Errorf("Error: %v with len(aSessions)=%v , session : %+v", err, len(aSessions), utils.ToIJSON(aSessions))
}
//check if the session was terminated on slave
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %v with len(aSessions)=%v , session : %+v", err, len(aSessions), utils.ToIJSON(aSessions))
}
// check to don't have passive session on master and slave
var pSessions []*ExternalSession
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter),
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter),
&pSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %v with len(pSessions)=%v , session : %+v", err, len(pSessions), utils.ToIJSON(pSessions))
}
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter),
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter),
&pSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Error: %v with len(pSessions)=%v , session : %+v", err, len(pSessions), utils.ToIJSON(pSessions))
}
@@ -394,7 +395,7 @@ func testSessionSRplManualReplicate(t *testing.T) {
for _, args := range []*V1InitSessionArgs{argsInit1, argsInit2} {
var initRpl *V1InitSessionReply
- if err := smgRplcMstrRPC.Call(utils.SessionSv1InitiateSession, args, &initRpl); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1InitiateSession, args, &initRpl); err != nil {
t.Error(err)
}
if initRpl.MaxUsage == nil || *initRpl.MaxUsage != 90*time.Second {
@@ -403,7 +404,7 @@ func testSessionSRplManualReplicate(t *testing.T) {
}
//verify if the sessions was created on master and are active
var aSessions []*ExternalSession
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 2 {
t.Errorf("Unexpected number of sessions received: %+v", utils.ToJSON(aSessions))
@@ -425,7 +426,7 @@ func testSessionSRplManualReplicate(t *testing.T) {
t.Fatal(err)
}
// when we start slave after master we expect to don't have sessions
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Error(err, aSessions)
}
@@ -434,11 +435,11 @@ func testSessionSRplManualReplicate(t *testing.T) {
}
//replicate manually the session from master to slave
var repply string
- if err := smgRplcMstrRPC.Call(utils.SessionSv1ReplicateSessions, &argsRepl, &repply); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1ReplicateSessions, &argsRepl, &repply); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 2 {
t.Errorf("Unexpected number of sessions received: %+v", aSessions)
@@ -450,10 +451,10 @@ func testSessionSRplManualReplicate(t *testing.T) {
t.Errorf("Failed to kill process, error: %v", err.Error())
}
var status map[string]any
- if err := smgRplcMstrRPC.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err == nil { // master should not longer be reachable
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err == nil { // master should not longer be reachable
t.Error(err, status)
}
- if err := smgRplcSlvRPC.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // slave should be still operational
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // slave should be still operational
t.Error(err)
}
// start master
@@ -464,10 +465,10 @@ func testSessionSRplManualReplicate(t *testing.T) {
t.Fatal(err)
}
// Master should have no session active/passive
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err, aSessions)
}
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err, aSessions)
}
// recover passive sessions from slave
@@ -475,15 +476,15 @@ func testSessionSRplManualReplicate(t *testing.T) {
Passive: true,
ConnIDs: []string{"rplConn"},
}
- if err := smgRplcSlvRPC.Call(utils.SessionSv1ReplicateSessions, &argsRepl, &repply); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1ReplicateSessions, &argsRepl, &repply); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated
// Master should have no session active/passive
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err, aSessions)
}
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 2 {
t.Errorf("Unexpected number of sessions received: %+v", aSessions)
@@ -499,27 +500,27 @@ func testSessionSRplActivateSessions(t *testing.T) {
args := &utils.SessionIDsWithArgsDispatcher{
IDs: []string{"ede927f8e42318a8db02c0f74adc2d9e16770339"},
}
- if err := smgRplcMstrRPC.Call(utils.SessionSv1ActivateSessions, args, &reply); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1ActivateSessions, args, &reply); err != nil {
t.Error(err)
}
// Check the sessions on master engine (at this point should have one active and one passive session)
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("Expecting: 1 session, received: %+v sessions", len(aSessions))
}
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("Expecting: 1 session, received: %+v sessions", len(aSessions))
}
// Check the sessions on slave engine (at this point should have one active and one passive session)
- // if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ // if err := smgRplcSlvRPC.Call(context.Background(),utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
// t.Error(err)
// } else if len(aSessions) != 1 {
// t.Errorf("Expecting: 1 session, received: %+v sessions", len(aSessions)) //received 2
// }
- // if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ // if err := smgRplcSlvRPC.Call(context.Background(),utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
// t.Error(err) //received not found
// } else if len(aSessions) != 1 {
// t.Errorf("Expecting: 1 session, received: %+v sessions", len(aSessions))
@@ -528,20 +529,20 @@ func testSessionSRplActivateSessions(t *testing.T) {
args = &utils.SessionIDsWithArgsDispatcher{
IDs: []string{"3b0417028f8cefc0e02ddbd37a6dda6fbef4f5e0"},
}
- if err := smgRplcMstrRPC.Call(utils.SessionSv1ActivateSessions, args, &reply); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1ActivateSessions, args, &reply); err != nil {
t.Error(err)
}
//Check the sessions on master engine (2 active, 0 passive)
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 2 {
t.Errorf("Expecting: 2 session, received: %+v sessions", len(aSessions))
}
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+ if err := smgRplcMstrRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
//check the number of passive sessions on slave engine
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+ if err := smgRplcSlvRPC.Call(context.Background(), utils.SessionSv1GetPassiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 2 {
t.Errorf("Expecting: 2 session, received: %+v sessions", len(aSessions))
diff --git a/sessions/sessions_test.go b/sessions/sessions_test.go
index aa2f9841a..a70b2d431 100644
--- a/sessions/sessions_test.go
+++ b/sessions/sessions_test.go
@@ -26,12 +26,11 @@ import (
"testing"
"time"
- "github.com/cenkalti/rpc2"
-
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
jwt "github.com/dgrijalva/jwt-go"
)
@@ -94,7 +93,7 @@ func TestOnBiJSONConnectDisconnect(t *testing.T) {
sessions := NewSessionS(cfg, dm, nil)
//connect BiJSON
- client := rpc2.NewClient(nil)
+ client := &birpc.Service{}
sessions.OnBiJSONConnect(client)
//we'll change the connection identifier just for testing
@@ -123,10 +122,10 @@ func TestBiRPCv1RegisterInternalBiJSONConn(t *testing.T) {
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
sessions := NewSessionS(cfg, dm, nil)
- client := rpc2.NewClient(nil)
-
+ client := &birpc.Service{}
+ ctx := context.WithClient(context.Background(), client)
var reply string
- if err := sessions.BiRPCv1RegisterInternalBiJSONConn(client, utils.EmptyString, &reply); err != nil {
+ if err := sessions.BiRPCv1RegisterInternalBiJSONConn(ctx, utils.EmptyString, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected %+v, received %+v", reply, utils.OK)
@@ -1942,7 +1941,7 @@ func TestNewSessionS(t *testing.T) {
eOut := &SessionS{
cgrCfg: cgrCGF,
dm: nil,
- biJClnts: make(map[rpcclient.ClientConnector]string),
+ biJClnts: make(map[birpc.ClientConnector]string),
biJIDs: make(map[string]*biJClient),
aSessions: make(map[string]*Session),
aSessionsIdx: make(map[string]map[string]map[string]utils.StringSet),
@@ -2468,26 +2467,29 @@ aa+jqv4dwkr/FLEcN1zC76Y/IniI65fId55hVJvN3ORuzUqYEtzD3irmsw==
t.Errorf("Expecting: nil, received: %s", err)
}
var rply string
- if err := sS.BiRPCv1STIRAuthenticate(nil, &V1STIRAuthenticateArgs{
- PayloadMaxDuration: "A",
- }, &rply); err == nil {
+ if err := sS.BiRPCv1STIRAuthenticate(context.Background(),
+ &V1STIRAuthenticateArgs{
+ PayloadMaxDuration: "A",
+ }, &rply); err == nil {
t.Error("Expected error")
}
- if err := sS.BiRPCv1STIRAuthenticate(nil, &V1STIRAuthenticateArgs{
- DestinationTn: "1003",
- Identity: "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly93d3cuZXhhbXBsZS5vcmcvY2VydC5jZXIifQ.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMTk4MjIsIm9yaWciOnsidG4iOiIxMDAxIn0sIm9yaWdpZCI6IjEyMzQ1NiJ9.4ybtWmgqdkNyJLS9Iv3PuJV8ZxR7yZ_NEBhCpKCEu2WBiTchqwoqoWpI17Q_ALm38tbnpay32t95ZY_LhSgwJg;info=;ppt=shaken",
- OriginatorTn: "1001",
- }, &rply); err == nil {
+ if err := sS.BiRPCv1STIRAuthenticate(context.Background(),
+ &V1STIRAuthenticateArgs{
+ DestinationTn: "1003",
+ Identity: "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly93d3cuZXhhbXBsZS5vcmcvY2VydC5jZXIifQ.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMTk4MjIsIm9yaWciOnsidG4iOiIxMDAxIn0sIm9yaWdpZCI6IjEyMzQ1NiJ9.4ybtWmgqdkNyJLS9Iv3PuJV8ZxR7yZ_NEBhCpKCEu2WBiTchqwoqoWpI17Q_ALm38tbnpay32t95ZY_LhSgwJg;info=;ppt=shaken",
+ OriginatorTn: "1001",
+ }, &rply); err == nil {
t.Error("Expected invalid identity")
}
- if err := sS.BiRPCv1STIRAuthenticate(nil, &V1STIRAuthenticateArgs{
- Attest: []string{"A"},
- PayloadMaxDuration: "-1",
- DestinationTn: "1002",
- Identity: "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly93d3cuZXhhbXBsZS5vcmcvY2VydC5jZXIifQ.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMTk4MjIsIm9yaWciOnsidG4iOiIxMDAxIn0sIm9yaWdpZCI6IjEyMzQ1NiJ9.4ybtWmgqdkNyJLS9Iv3PuJV8ZxR7yZ_NEBhCpKCEu2WBiTchqwoqoWpI17Q_ALm38tbnpay32t95ZY_LhSgwJg;info=;ppt=shaken",
- OriginatorTn: "1001",
- }, &rply); err != nil {
+ if err := sS.BiRPCv1STIRAuthenticate(context.Background(),
+ &V1STIRAuthenticateArgs{
+ Attest: []string{"A"},
+ PayloadMaxDuration: "-1",
+ DestinationTn: "1002",
+ Identity: "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly93d3cuZXhhbXBsZS5vcmcvY2VydC5jZXIifQ.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMTk4MjIsIm9yaWciOnsidG4iOiIxMDAxIn0sIm9yaWdpZCI6IjEyMzQ1NiJ9.4ybtWmgqdkNyJLS9Iv3PuJV8ZxR7yZ_NEBhCpKCEu2WBiTchqwoqoWpI17Q_ALm38tbnpay32t95ZY_LhSgwJg;info=;ppt=shaken",
+ OriginatorTn: "1001",
+ }, &rply); err != nil {
t.Fatal(err)
}
}
@@ -2531,24 +2533,26 @@ aa+jqv4dwkr/FLEcN1zC76Y/IniI65fId55hVJvN3ORuzUqYEtzD3irmsw==
}
var rcv string
- if err := sS.BiRPCv1STIRIdentity(nil, &V1STIRIdentityArgs{
- Payload: payload,
- PublicKeyPath: "https://www.example.org/cert.cer",
- PrivateKeyPath: "https://www.example.org/private.pem",
- OverwriteIAT: true,
- }, &rcv); err == nil {
+ if err := sS.BiRPCv1STIRIdentity(context.Background(),
+ &V1STIRIdentityArgs{
+ Payload: payload,
+ PublicKeyPath: "https://www.example.org/cert.cer",
+ PrivateKeyPath: "https://www.example.org/private.pem",
+ OverwriteIAT: true,
+ }, &rcv); err == nil {
t.Error("Expected error")
}
if err := engine.Cache.Set(utils.CacheSTIR, "https://www.example.org/private.pem", prvKey,
nil, true, utils.NonTransactional); err != nil {
t.Errorf("Expecting: nil, received: %s", err)
}
- if err := sS.BiRPCv1STIRIdentity(nil, &V1STIRIdentityArgs{
- Payload: payload,
- PublicKeyPath: "https://www.example.org/cert.cer",
- PrivateKeyPath: "https://www.example.org/private.pem",
- OverwriteIAT: true,
- }, &rcv); err != nil {
+ if err := sS.BiRPCv1STIRIdentity(context.Background(),
+ &V1STIRIdentityArgs{
+ Payload: payload,
+ PublicKeyPath: "https://www.example.org/cert.cer",
+ PrivateKeyPath: "https://www.example.org/private.pem",
+ OverwriteIAT: true,
+ }, &rcv); err != nil {
t.Error(err)
} else if err := AuthStirShaken(rcv, "1001", "", "1002", "", utils.NewStringSet([]string{utils.MetaAny}), -1); err != nil {
t.Fatal(err)
@@ -2559,7 +2563,7 @@ type mockConnWarnDisconnect1 struct {
*testRPCClientConnection
}
-func (mk *mockConnWarnDisconnect1) Call(method string, args any, rply any) error {
+func (mk *mockConnWarnDisconnect1) Call(ctx *context.Context, method string, args any, rply any) error {
return utils.ErrNotImplemented
}
@@ -2567,7 +2571,7 @@ type mockConnWarnDisconnect2 struct {
*testRPCClientConnection
}
-func (mk *mockConnWarnDisconnect2) Call(method string, args any, rply any) error {
+func (mk *mockConnWarnDisconnect2) Call(ctx *context.Context, method string, args any, rply any) error {
return utils.ErrNoActiveSession
}
@@ -2597,13 +2601,13 @@ func TestWarnSession(t *testing.T) {
type clMock func(_ string, _ any, _ any) error
-func (c clMock) Call(m string, a any, r any) error {
+func (c clMock) Call(_ *context.Context, m string, a any, r any) error {
return c(m, a, r)
}
func TestInitSession(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
- clientConect := make(chan rpcclient.ClientConnector, 1)
+ clientConect := make(chan birpc.ClientConnector, 1)
clientConect <- clMock(func(_ string, args any, reply any) error {
rply, cancast := reply.(*[]*engine.ChrgSProcessEventReply)
if !cancast {
@@ -2619,7 +2623,7 @@ func TestInitSession(t *testing.T) {
}
return nil
})
- conMng := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ conMng := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): clientConect,
})
sS := NewSessionS(cfg, nil, conMng)
@@ -2666,17 +2670,13 @@ func TestInitSession(t *testing.T) {
}
}
-func TestSessionSAsBiRPC(t *testing.T) {
- _ = rpcclient.BiRPCConector(new(SessionS))
-}
-
func TestBiJClntID(t *testing.T) {
client := &mockConnWarnDisconnect1{}
cfg := config.NewDefaultCGRConfig()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
sessions := NewSessionS(cfg, dm, nil)
- sessions.biJClnts = map[rpcclient.ClientConnector]string{
+ sessions.biJClnts = map[birpc.ClientConnector]string{
client: "First_connector",
}
expected := "First_connector"
@@ -2720,9 +2720,9 @@ func TestBiRPCv1AuthorizeEventNoTenant(t *testing.T) {
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.Attributes): chanClnt,
})
db := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -2749,7 +2749,7 @@ func TestBiRPCv1AuthorizeEventNoTenant(t *testing.T) {
rply := &V1AuthorizeReply{
Attributes: new(engine.AttrSProcessEventReply),
}
- if err := ss.BiRPCv1AuthorizeEvent(nil, args,
+ if err := ss.BiRPCv1AuthorizeEvent(context.Background(), args,
rply); err != nil {
t.Error(err)
}
@@ -2790,9 +2790,9 @@ func TestBiRPCv1AuthorizeEventWithDigestNoTenant(t *testing.T) {
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.Attributes): chanClnt,
})
db := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -2817,7 +2817,7 @@ func TestBiRPCv1AuthorizeEventWithDigestNoTenant(t *testing.T) {
}
rply := &V1AuthorizeReplyWithDigest{}
- if err := ss.BiRPCv1AuthorizeEventWithDigest(nil, args,
+ if err := ss.BiRPCv1AuthorizeEventWithDigest(context.Background(), args,
rply); err != nil {
t.Error(err)
}
@@ -2858,9 +2858,9 @@ func TestBiRPCv1InitiateSessionNoTenant(t *testing.T) {
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.Attributes): chanClnt,
})
db := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -2886,7 +2886,7 @@ func TestBiRPCv1InitiateSessionNoTenant(t *testing.T) {
reply := &V1InitSessionReply{
Attributes: new(engine.AttrSProcessEventReply),
}
- if err := ss.BiRPCv1InitiateSession(nil, args, reply); err != nil {
+ if err := ss.BiRPCv1InitiateSession(context.Background(), args, reply); err != nil {
t.Error(err)
}
}
@@ -2925,9 +2925,9 @@ func TestBiRPCv1InitiateSessionWithDigestNoTenant(t *testing.T) {
}
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.Attributes): chanClnt,
})
db := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -2951,7 +2951,7 @@ func TestBiRPCv1InitiateSessionWithDigestNoTenant(t *testing.T) {
},
}
reply := &V1InitReplyWithDigest{}
- if err := ss.BiRPCv1InitiateSessionWithDigest(nil, args, reply); err != nil {
+ if err := ss.BiRPCv1InitiateSessionWithDigest(context.Background(), args, reply); err != nil {
t.Error(err)
}
}
@@ -2990,9 +2990,9 @@ func TestBiRPCv1UpdateSessionNoTenant(t *testing.T) {
}
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.Attributes): chanClnt,
})
db := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -3016,7 +3016,7 @@ func TestBiRPCv1UpdateSessionNoTenant(t *testing.T) {
},
}
rply := &V1UpdateSessionReply{}
- if err := ss.BiRPCv1UpdateSession(nil, args, rply); err != nil {
+ if err := ss.BiRPCv1UpdateSession(context.Background(), args, rply); err != nil {
t.Error(err)
}
}
@@ -3040,9 +3040,9 @@ func TestBiRPCv1TerminateSessionNoTenant(t *testing.T) {
*rply = []*engine.ChrgSProcessEventReply{}
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanClnt,
})
db := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -3066,7 +3066,7 @@ func TestBiRPCv1TerminateSessionNoTenant(t *testing.T) {
},
}
var reply string
- if err := ss.BiRPCv1TerminateSession(nil, args,
+ if err := ss.BiRPCv1TerminateSession(context.Background(), args,
&reply); err != nil {
t.Error(err)
}
@@ -3106,9 +3106,9 @@ func TestBiRPCv1ProcessMessageNoTenant(t *testing.T) {
}
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.Attributes): chanClnt,
})
db := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -3174,9 +3174,9 @@ func TestBiRPCv1ProcessEventNoTenant(t *testing.T) {
}
return nil
})
- chanClnt := make(chan rpcclient.ClientConnector, 1)
+ chanClnt := make(chan birpc.ClientConnector, 1)
chanClnt <- clMock
- connMngr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMngr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.Attributes): chanClnt,
})
db := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -3202,7 +3202,7 @@ func TestBiRPCv1ProcessEventNoTenant(t *testing.T) {
reply := &V1ProcessEventReply{
Attributes: make(map[string]*engine.AttrSProcessEventReply),
}
- if err := ss.BiRPCv1ProcessEvent(nil, args, reply); err != nil {
+ if err := ss.BiRPCv1ProcessEvent(context.Background(), args, reply); err != nil {
t.Error(err)
}
}
diff --git a/sessions/sessions_voice_it_test.go b/sessions/sessions_voice_it_test.go
index d51ddb349..e28313ac8 100644
--- a/sessions/sessions_voice_it_test.go
+++ b/sessions/sessions_voice_it_test.go
@@ -22,11 +22,12 @@ package sessions
import (
"fmt"
- "net/rpc"
"path"
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -36,7 +37,7 @@ var (
voiceCfgPath string
voiceCfgDIR string
voiceCfg *config.CGRConfig
- sessionsRPC *rpc.Client
+ sessionsRPC *birpc.Client
sessionsVoiceTests = []func(t *testing.T){
testSessionsVoiceInitCfg,
@@ -120,7 +121,7 @@ func testSessionsVoiceApierRpcConn(t *testing.T) {
func testSessionsVoiceTPFromFolder(t *testing.T) {
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
var loadInst utils.LoadInstance
- if err := sessionsRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
t.Error(err)
}
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
@@ -151,7 +152,7 @@ func testSessionsVoiceMonetaryRefund(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -161,7 +162,7 @@ func testSessionsVoiceMonetaryRefund(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 8.700010
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -191,12 +192,12 @@ func testSessionsVoiceMonetaryRefund(t *testing.T) {
}
var rpl string
- if err := sessionsRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eAcntVal = 8.8
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -228,7 +229,7 @@ func testSessionsVoiceVoiceRefund(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -239,7 +240,7 @@ func testSessionsVoiceVoiceRefund(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 120.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -270,12 +271,12 @@ func testSessionsVoiceVoiceRefund(t *testing.T) {
}
var rpl string
- if err := sessionsRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eAcntVal = 150.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -285,7 +286,7 @@ func testSessionsVoiceVoiceRefund(t *testing.T) {
func testSessionsVoiceMixedRefund(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
}
@@ -313,7 +314,7 @@ func testSessionsVoiceMixedRefund(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -325,7 +326,7 @@ func testSessionsVoiceMixedRefund(t *testing.T) {
//attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eVoiceVal := 90.0 * float64(time.Second)
eMoneyVal := 8.7399
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eVoiceVal ||
acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eMoneyVal {
@@ -358,13 +359,13 @@ func testSessionsVoiceMixedRefund(t *testing.T) {
}
var rpl string
- if err := sessionsRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eVoiceVal = 90.0 * float64(time.Second)
eMoneyVal = 8.79
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eVoiceVal ||
acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eMoneyVal {
@@ -380,7 +381,7 @@ func testSessionsVoiceLastUsed(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 8.790000
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -410,7 +411,7 @@ func testSessionsVoiceLastUsed(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -419,7 +420,7 @@ func testSessionsVoiceLastUsed(t *testing.T) {
}
eAcntVal = 7.39002
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -448,7 +449,7 @@ func testSessionsVoiceLastUsed(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage == nil || *updateRpl.MaxUsage != usage {
@@ -456,7 +457,7 @@ func testSessionsVoiceLastUsed(t *testing.T) {
}
eAcntVal = 7.09005
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -486,7 +487,7 @@ func testSessionsVoiceLastUsed(t *testing.T) {
},
}
- if err := sessionsRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage == nil || *updateRpl.MaxUsage != usage {
@@ -494,7 +495,7 @@ func testSessionsVoiceLastUsed(t *testing.T) {
}
eAcntVal = 6.590100
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -524,12 +525,12 @@ func testSessionsVoiceLastUsed(t *testing.T) {
}
var rpl string
- if err := sessionsRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eAcntVal = 7.59
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -541,7 +542,7 @@ func testSessionsVoiceLastUsedEnd(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 7.59000
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -571,7 +572,7 @@ func testSessionsVoiceLastUsedEnd(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -580,7 +581,7 @@ func testSessionsVoiceLastUsedEnd(t *testing.T) {
}
eAcntVal = 6.190020
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -609,7 +610,7 @@ func testSessionsVoiceLastUsedEnd(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1UpdateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1UpdateSession,
updateArgs, &updateRpl); err != nil {
t.Error(err)
}
@@ -618,7 +619,7 @@ func testSessionsVoiceLastUsedEnd(t *testing.T) {
}
eAcntVal = 6.090030
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -646,12 +647,12 @@ func testSessionsVoiceLastUsedEnd(t *testing.T) {
}
var rpl string
- if err := sessionsRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eAcntVal = 6.590000
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -663,7 +664,7 @@ func testSessionsVoiceLastUsedNotFixed(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 6.59000
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -693,7 +694,7 @@ func testSessionsVoiceLastUsedNotFixed(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -702,7 +703,7 @@ func testSessionsVoiceLastUsedNotFixed(t *testing.T) {
}
eAcntVal = 5.190020
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -732,7 +733,7 @@ func testSessionsVoiceLastUsedNotFixed(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Error(err)
}
if updateRpl.MaxUsage == nil || *updateRpl.MaxUsage != usage {
@@ -740,7 +741,7 @@ func testSessionsVoiceLastUsedNotFixed(t *testing.T) {
}
eAcntVal = 5.123360
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -768,12 +769,12 @@ func testSessionsVoiceLastUsedNotFixed(t *testing.T) {
}
var rpl string
- if err := sessionsRPC.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
eAcntVal = 5.590000
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -785,7 +786,7 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
eAcntVal := 5.590000
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f",
@@ -816,7 +817,7 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -827,7 +828,7 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
}
var aSessions []*ExternalSession
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -838,7 +839,7 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
err.Error() != utils.ErrNotFound.Error() {
t.Error(err, aSessions)
}
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -853,7 +854,7 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
}
eAcntVal = 4.190020
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -883,7 +884,7 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
t.Fatal(err)
}
time.Sleep(10 * time.Millisecond)
@@ -891,7 +892,7 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
t.Errorf("Expected: %+v, received: %+v", usage, updateRpl.MaxUsage)
}
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -906,14 +907,14 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
}
eAcntVal = 4.090030
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
}
time.Sleep(200 * time.Millisecond)
eAcntVal = 4.0566 // rounding issue; old values : 4.0565 , 4.0566
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaMonetary].GetTotalValue())
@@ -921,7 +922,7 @@ func testSessionsVoiceSessionTTL(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, DestinationPrefixes: []string{"1008"}}
- if err := sessionsRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -947,7 +948,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
},
}
var reply string
- if err := sessionsRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -958,7 +959,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
Account: attrSetBalance.Account,
}
eAcntVal := 300.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f",
@@ -989,7 +990,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -999,7 +1000,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
}
var aSessions []*ExternalSession
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -1013,7 +1014,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
t.Errorf("Expecting 2m, received usage: %v", aSessions[0].Usage)
}
eAcntVal = 180.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f",
@@ -1047,7 +1048,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1UpdateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1UpdateSession,
updateArgs, &updateRpl); err != nil {
t.Error(err)
}
@@ -1056,7 +1057,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
}
time.Sleep(20 * time.Millisecond)
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -1070,7 +1071,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
t.Errorf("Expecting 2m30s, received usage: %v", aSessions[0].Usage)
}
eAcntVal = 150.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f",
@@ -1079,13 +1080,13 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
time.Sleep(200 * time.Millisecond) // should trigger the TTL from config
eAcntVal = 149.95 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f",
eAcntVal, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -1097,7 +1098,7 @@ func testSessionsVoiceSessionTTLWithRelocate(t *testing.T) {
time.Sleep(100 * time.Millisecond)
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, DestinationPrefixes: []string{"1009"}}
- if err := sessionsRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1120,7 +1121,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
},
}
var reply string
- if err := sessionsRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received: %s", reply)
@@ -1131,7 +1132,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
Account: attrSetBalance.Account,
}
eAcntVal := 300.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f", eAcntVal,
@@ -1162,7 +1163,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
}
var initRpl *V1InitSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1InitiateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1InitiateSession,
initArgs, &initRpl); err != nil {
t.Error(err)
}
@@ -1172,7 +1173,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
time.Sleep(20 * time.Millisecond)
var aSessions []*ExternalSession
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -1186,7 +1187,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
t.Errorf("Expecting 2m, received usage: %v", aSessions[0].Usage)
}
eAcntVal = 180.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f", eAcntVal,
@@ -1220,7 +1221,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
}
var updateRpl *V1UpdateSessionReply
- if err := sessionsRPC.Call(utils.SessionSv1UpdateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1UpdateSession,
updateArgs, &updateRpl); err != nil {
t.Error(err)
}
@@ -1229,7 +1230,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
}
time.Sleep(20 * time.Millisecond)
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -1243,7 +1244,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
t.Errorf("Expecting 2m30s, received usage: %v", aSessions[0].Usage)
}
eAcntVal = 150.0 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expecting: %f, received: %f",
@@ -1273,13 +1274,13 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
}
var rpl string
- if err := sessionsRPC.Call(utils.SessionSv1TerminateSession,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1TerminateSession,
termArgs, &rpl); err != nil || rpl != utils.OK {
t.Error(err)
}
time.Sleep(10 * time.Millisecond)
- if err := sessionsRPC.Call(utils.SessionSv1GetActiveSessions,
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1GetActiveSessions,
utils.SessionFilter{
Filters: []string{
fmt.Sprintf("*string:~*req.%s:%s", utils.RunID, utils.MetaDefault),
@@ -1290,7 +1291,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
t.Error(err, aSessions)
}
eAcntVal = 240 * float64(time.Second)
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount,
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetAccount,
attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
@@ -1298,7 +1299,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
eAcntVal, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
}
- if err := sessionsRPC.Call(utils.SessionSv1ProcessCDR, termArgs.CGREvent, &reply); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.SessionSv1ProcessCDR, termArgs.CGREvent, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Received reply: %s", reply)
@@ -1307,7 +1308,7 @@ func testSessionsVoiceRelocateWithOriginIDPrefix(t *testing.T) {
var cdrs []*engine.ExternalCDR
req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault},
DestinationPrefixes: []string{"12371"}}
- if err := sessionsRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+ if err := sessionsRPC.Call(context.Background(), utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1324,7 +1325,7 @@ func TestSMGDataDerivedChargingNoCredit(t *testing.T) {
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1011"}
eAcntVal := 50000.0
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(),utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
@@ -1344,7 +1345,7 @@ func TestSMGDataDerivedChargingNoCredit(t *testing.T) {
utils.Usage: "100",
}
var maxUsage float64
- if err := sessionsRPC.Call(utils.SMGenericV2InitiateSession, smgEv, &maxUsage); err != nil {
+ if err := sessionsRPC.Call(context.Background(),utils.SMGenericV2InitiateSession, smgEv, &maxUsage); err != nil {
t.Error(err)
}
// the second derived charging run has no credit
@@ -1353,7 +1354,7 @@ func TestSMGDataDerivedChargingNoCredit(t *testing.T) {
t.Error("Bad max usage: ", maxUsage)
}
eAcntVal = 50000.0
- if err := sessionsRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+ if err := sessionsRPC.Call(context.Background(),utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
diff --git a/sessions/sessionscover_test.go b/sessions/sessionscover_test.go
index a1e634712..da7dd25da 100644
--- a/sessions/sessionscover_test.go
+++ b/sessions/sessionscover_test.go
@@ -29,6 +29,8 @@ import (
"testing"
"time"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -280,7 +282,7 @@ func TestForceSTerminatorPostCDRs(t *testing.T) {
cfg.SessionSCfg().CDRsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs): nil,
})
sessions := NewSessionS(cfg, dm, connMgr)
@@ -317,7 +319,7 @@ func TestForceSTerminatorReleaseSession(t *testing.T) {
cfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): nil,
})
sessions := NewSessionS(cfg, dm, connMgr)
@@ -354,7 +356,7 @@ type testMockClientConn struct {
*testRPCClientConnection
}
-func (sT *testMockClientConn) Call(method string, arg any, rply any) error {
+func (sT *testMockClientConn) Call(ctx *context.Context, method string, arg any, rply any) error {
return utils.ErrNoActiveSession
}
@@ -366,7 +368,7 @@ func TestForceSTerminatorClientCall(t *testing.T) {
cfg.GeneralCfg().NodeID = "ClientConnID"
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): nil,
})
sessions := NewSessionS(cfg, dm, connMgr)
@@ -455,7 +457,7 @@ type testMockClients struct {
calls map[string]func(args any, reply any) error
}
-func (sT *testMockClients) Call(method string, arg any, rply any) error {
+func (sT *testMockClients) Call(ctx *context.Context, method string, arg any, rply any) error {
if call, has := sT.calls[method]; !has {
return rpcclient.ErrUnsupporteServiceMethod
} else {
@@ -482,13 +484,13 @@ func TestDebitSessionResponderMaxDebit(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): sMock,
})
@@ -550,13 +552,13 @@ func TestDebitSessionResponderMaxDebitError(t *testing.T) {
},
}
- internalRpcChan := make(chan rpcclient.ClientConnector, 1)
+ internalRpcChan := make(chan birpc.ClientConnector, 1)
internalRpcChan <- sMock
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
cfg.SessionSCfg().SchedulerConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): internalRpcChan,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler): internalRpcChan})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -593,9 +595,9 @@ func TestDebitSessionResponderMaxDebitError(t *testing.T) {
sMock.calls[utils.SchedulerSv1ExecuteActionPlans] = func(args any, reply any) error {
return utils.ErrNotImplemented
}
- newInternalRpcChan := make(chan rpcclient.ClientConnector, 1)
+ newInternalRpcChan := make(chan birpc.ClientConnector, 1)
newInternalRpcChan <- sMock
- connMgr = engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): internalRpcChan,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler): internalRpcChan})
dm = engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -648,7 +650,7 @@ type testMockClientConnDiscSess struct {
*testRPCClientConnection
}
-func (sT *testMockClientConnDiscSess) Call(method string, arg any, rply any) error {
+func (sT *testMockClientConnDiscSess) Call(ctx *context.Context, method string, arg any, rply any) error {
return nil
}
@@ -703,9 +705,9 @@ func TestDebitLoopSessionErrorDebiting(t *testing.T) {
},
},
}
- internalRpcChan := make(chan rpcclient.ClientConnector, 1)
+ internalRpcChan := make(chan birpc.ClientConnector, 1)
internalRpcChan <- sMock
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): internalRpcChan,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler): internalRpcChan})
dm = engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -738,13 +740,13 @@ func TestDebitLoopSession(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): sMock,
})
@@ -801,13 +803,13 @@ func TestDebitLoopSessionFrcDiscLowerDbtInterval(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): sMock,
})
@@ -854,14 +856,14 @@ func TestDebitLoopSessionLowBalance(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
cfg.SessionSCfg().MinDurLowBalance = 1 * time.Second
data := engine.NewInternalDB(nil, nil, true,cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): sMock,
})
@@ -916,7 +918,7 @@ func TestDebitLoopSessionWarningSessions(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
@@ -924,7 +926,7 @@ func TestDebitLoopSessionWarningSessions(t *testing.T) {
cfg.SessionSCfg().MinDurLowBalance = 1 * time.Second
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): sMock,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): sMock})
@@ -973,7 +975,7 @@ func TestDebitLoopSessionDisconnectSession(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.GeneralCfg().NodeID = "ClientConnID"
@@ -982,7 +984,7 @@ func TestDebitLoopSessionDisconnectSession(t *testing.T) {
cfg.SessionSCfg().MinDurLowBalance = 1 * time.Second
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): sMock,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): sMock})
@@ -1040,13 +1042,13 @@ func TestStoreSCost(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().CDRsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs): sMock})
sessions := NewSessionS(cfg, dm, connMgr)
@@ -1095,13 +1097,13 @@ func TestRefundSession(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): sMock})
sessions := NewSessionS(cfg, dm, connMgr)
@@ -1200,13 +1202,13 @@ func TestRoundCost(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): sMock})
sessions := NewSessionS(cfg, dm, connMgr)
@@ -1312,13 +1314,13 @@ func TestReplicateSessions(t *testing.T) {
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): sMock})
sessions := NewSessionS(cfg, dm, connMgr)
@@ -1351,11 +1353,11 @@ func TestNewSession(t *testing.T) {
},
},
}
- sMock := make(chan rpcclient.ClientConnector, 1)
+ sMock := make(chan birpc.ClientConnector, 1)
sMock <- testMock1
cfg := config.NewDefaultCGRConfig()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): sMock})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -1433,8 +1435,8 @@ func TestProcessChargerS(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheEventCharges].Limit = -1
- sMock := make(chan rpcclient.ClientConnector, 1)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ sMock := make(chan birpc.ClientConnector, 1)
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): sMock})
dm := engine.NewDataManager(engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items), cfg.CacheCfg(), connMgr)
engine.Cache = engine.NewCacheS(cfg, dm, nil)
@@ -1477,7 +1479,7 @@ func TestProcessChargerS(t *testing.T) {
}
cacheS := engine.NewCacheS(cfg, nil, nil)
engine.Cache = cacheS
- connMgr = engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): sMock})
engine.SetConnManager(connMgr)
@@ -1612,7 +1614,7 @@ func TestLibsessionsSetMockErrors(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- sTestMock
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
@@ -1621,7 +1623,7 @@ func TestLibsessionsSetMockErrors(t *testing.T) {
}
cacheS := engine.NewCacheS(cfg, nil, nil)
engine.Cache = cacheS
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): chanInternal})
engine.SetConnManager(connMgr)
@@ -1655,7 +1657,7 @@ type testMockClientSyncSessions struct {
*testRPCClientConnection
}
-func (sT *testMockClientSyncSessions) Call(method string, arg any, rply any) error {
+func (sT *testMockClientSyncSessions) Call(ctx *context.Context, method string, arg any, rply any) error {
queriedSessionIDs := []*SessionID{
{
OriginID: "ORIGIN_ID",
@@ -1682,7 +1684,7 @@ func TestSyncSessions(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- sTestMock
cfg := config.NewDefaultCGRConfig()
//cfg.GeneralCfg().ReplyTimeout = 1
@@ -1692,7 +1694,7 @@ func TestSyncSessions(t *testing.T) {
Replicate: true,
}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
sessions := NewSessionS(cfg, dm, connMgr)
@@ -1711,7 +1713,7 @@ func TestSyncSessions(t *testing.T) {
sessions.cgrCfg.GeneralCfg().ReplyTimeout = 1
cacheS := engine.NewCacheS(cfg, nil, nil)
engine.Cache = cacheS
- connMgr = engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): chanInternal})
engine.SetConnManager(connMgr)
sessions.aSessions = map[string]*Session{
@@ -1719,7 +1721,7 @@ func TestSyncSessions(t *testing.T) {
}
var reply string
- if err := sessions.BiRPCv1SyncSessions(nil, nil, &reply); err != nil {
+ if err := sessions.BiRPCv1SyncSessions(context.Background(), nil, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected to be OK")
@@ -1757,12 +1759,12 @@ func TestAuthEvent(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- sTestMock
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -1830,11 +1832,11 @@ func TestAuthEventMockCall(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- sTestMock
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal})
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
@@ -1904,14 +1906,14 @@ func TestChargeEvent(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- sTestMock
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
cfg.CacheCfg().Partitions[utils.CacheClosedSessions] = &config.CacheParamCfg{
Replicate: true,
}
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
})
@@ -1936,7 +1938,7 @@ func TestChargeEvent(t *testing.T) {
cacheS := engine.NewCacheS(cfg, nil, nil)
engine.Cache = cacheS
- connMgr = engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): chanInternal})
engine.SetConnManager(connMgr)
@@ -2021,12 +2023,12 @@ func TestEndSession(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- sTestMock
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
cfg.SessionSCfg().CDRsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs)}
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs): chanInternal,
})
@@ -2110,35 +2112,6 @@ func TestEndSession(t *testing.T) {
}
}
-func TestCallBiRPC(t *testing.T) {
- log.SetOutput(io.Discard)
- cfg := config.NewDefaultCGRConfig()
- data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
- sessions := NewSessionS(cfg, dm, nil)
-
- sTestMock := &testMockClients{}
- valid := "BiRPCv1TerminateSession"
- args := new(V1TerminateSessionArgs)
- var reply *string
-
- if err := sessions.CallBiRPC(sTestMock, valid, args, reply); err == nil || err != rpcclient.ErrUnsupporteServiceMethod {
- t.Errorf("Expected %+v, received %+v", rpcclient.ErrUnsupporteServiceMethod, err)
- }
-
- valid = "BiRPC.TerminateSession"
- if err := sessions.CallBiRPC(sTestMock, valid, args, reply); err == nil || err != rpcclient.ErrUnsupporteServiceMethod {
- t.Errorf("Expected %+v, received %+v", rpcclient.ErrUnsupporteServiceMethod, err)
- }
-
- valid = "BiRPCv1.TerminateSession"
- expected := "MANDATORY_IE_MISSING: [CGREvent]"
- if err := sessions.Call(valid, args, reply); err == nil || err.Error() != expected {
- t.Errorf("Expected %+v, received %+v", expected, err)
- }
-
-}
-
func TestBiRPCv1GetActivePassiveSessions(t *testing.T) {
log.SetOutput(io.Discard)
clnt := &testMockClients{}
@@ -2151,8 +2124,9 @@ func TestBiRPCv1GetActivePassiveSessions(t *testing.T) {
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
sessions := NewSessionS(cfg, dm, nil)
+ ctx := context.WithClient(context.Background(), clnt)
var reply []*ExternalSession
- if err := sessions.BiRPCv1GetActiveSessions(clnt, nil, &reply); err == nil || err != utils.ErrNotFound {
+ if err := sessions.BiRPCv1GetActiveSessions(ctx, nil, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
@@ -2243,7 +2217,7 @@ func TestBiRPCv1GetActivePassiveSessions(t *testing.T) {
}
args := &utils.SessionFilter{Filters: []string{fmt.Sprintf("*string:~*req.ToR:%s|%s", utils.MetaVoice, utils.MetaData)}}
- if err := sessions.BiRPCv1GetActiveSessions(clnt, args, &reply); err != nil {
+ if err := sessions.BiRPCv1GetActiveSessions(ctx, args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expSess, reply) {
t.Errorf("Expected %s , received: %s", utils.ToJSON(expSess), utils.ToJSON(reply))
@@ -2251,13 +2225,13 @@ func TestBiRPCv1GetActivePassiveSessions(t *testing.T) {
var newReply1 int
//nil args, but it will be an empty SessionFilter
- if err := sessions.BiRPCv1GetActiveSessionsCount(clnt, nil, &newReply1); err != nil {
+ if err := sessions.BiRPCv1GetActiveSessionsCount(ctx, nil, &newReply1); err != nil {
t.Error(err)
} else if newReply1 != 2 {
t.Errorf("Expected %+v, received: %+v", 2, newReply1)
}
- if err := sessions.BiRPCv1GetActiveSessionsCount(clnt, args, &newReply1); err != nil {
+ if err := sessions.BiRPCv1GetActiveSessionsCount(ctx, args, &newReply1); err != nil {
t.Error(err)
} else if newReply1 != 1 {
t.Errorf("Expected %+v, received: %+v", 1, newReply1)
@@ -2265,7 +2239,7 @@ func TestBiRPCv1GetActivePassiveSessions(t *testing.T) {
//Passive session
reply = []*ExternalSession{}
- if err := sessions.BiRPCv1GetPassiveSessions(clnt, nil, &reply); err == nil || err != utils.ErrNotFound {
+ if err := sessions.BiRPCv1GetPassiveSessions(ctx, nil, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
}
@@ -2288,13 +2262,13 @@ func TestBiRPCv1GetActivePassiveSessions(t *testing.T) {
ExtraFields: map[string]string{},
},
}
- if err := sessions.BiRPCv1GetPassiveSessions(clnt, args, &reply); err != nil {
+ if err := sessions.BiRPCv1GetPassiveSessions(ctx, args, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(reply, expSess) {
t.Errorf("Expected %+v\n, received: %+v", utils.ToJSON(expSess), utils.ToJSON(reply))
}
- if err := sessions.BiRPCv1GetPassiveSessionsCount(clnt, nil, &newReply1); err != nil {
+ if err := sessions.BiRPCv1GetPassiveSessionsCount(ctx, nil, &newReply1); err != nil {
t.Error(err)
}
}
@@ -2314,14 +2288,15 @@ func TestBiRPCv1SetPassiveSession(t *testing.T) {
SRuns: []*SRun{},
}
expected := "MANDATORY_IE_MISSING: [CGRID]"
- if err := sessions.BiRPCv1SetPassiveSession(clnt, ss, &reply); err == nil || err.Error() != expected {
+ ctx := context.WithClient(context.Background(), clnt)
+ if err := sessions.BiRPCv1SetPassiveSession(ctx, ss, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v\n, received: %+v", expected, err)
} else if reply != utils.EmptyString {
t.Errorf("Expected %+v\n, received: %+v", utils.EmptyString, err)
}
ss.CGRID = "CGR_ID"
- if err := sessions.BiRPCv1SetPassiveSession(clnt, ss, &reply); err == nil || err != utils.ErrNotFound {
+ if err := sessions.BiRPCv1SetPassiveSession(ctx, ss, &reply); err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %+v\n, received: %+v", utils.ErrNotFound, err)
} else if reply != utils.EmptyString {
t.Errorf("Expected %+v\n, received: %+v", utils.EmptyString, err)
@@ -2330,7 +2305,7 @@ func TestBiRPCv1SetPassiveSession(t *testing.T) {
sessions.pSessions = map[string]*Session{
"CGR_ID": ss,
}
- if err := sessions.BiRPCv1SetPassiveSession(clnt, ss, &reply); err != nil {
+ if err := sessions.BiRPCv1SetPassiveSession(ctx, ss, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected %+v\n, received: %+v", utils.OK, err)
@@ -2340,7 +2315,7 @@ func TestBiRPCv1SetPassiveSession(t *testing.T) {
"CGR_ID": ss,
}
ss.EventStart = engine.MapEvent{}
- if err := sessions.BiRPCv1SetPassiveSession(clnt, ss, &reply); err != nil {
+ if err := sessions.BiRPCv1SetPassiveSession(ctx, ss, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected %+v\n, received: %+v", utils.OK, err)
@@ -2357,11 +2332,11 @@ func TestBiRPCv1ReplicateSessions(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
"conn1": chanInternal,
})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -2373,13 +2348,14 @@ func TestBiRPCv1ReplicateSessions(t *testing.T) {
ConnIDs: []string{},
}
+ ctx := context.WithClient(context.Background(), clnt)
var reply string
- if err := sessions.BiRPCv1ReplicateSessions(clnt, args, &reply); err != nil {
+ if err := sessions.BiRPCv1ReplicateSessions(ctx, args, &reply); err != nil {
t.Error(err)
}
args.ConnIDs = []string{"conn1"}
- if err := sessions.BiRPCv1ReplicateSessions(clnt, args, &reply); err != nil {
+ if err := sessions.BiRPCv1ReplicateSessions(ctx, args, &reply); err != nil {
t.Error(err)
}
}
@@ -2404,11 +2380,11 @@ func TestBiRPCv1AuthorizeEvent(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanInternal,
})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -2432,7 +2408,7 @@ func TestBiRPCv1AuthorizeEvent(t *testing.T) {
}
expected := "MANDATORY_IE_MISSING: [CGREvent]"
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -2450,12 +2426,12 @@ func TestBiRPCv1AuthorizeEvent(t *testing.T) {
engine.Cache = caches
caches.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1AuthorizeEvent, args.CGREvent.ID),
value, nil, true, utils.NonTransactional)
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err != nil {
t.Error(err)
}
engine.Cache = tmp
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -2468,13 +2444,13 @@ func TestBiRPCv1AuthorizeEvent(t *testing.T) {
args.CGREvent.Tenant = "cgrates.org"
expected = "ATTRIBUTES_ERROR:NOT_CONNECTED: AttributeS"
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
expected = "NOT_CONNECTED: RouteS"
sessions.cgrCfg.SessionSCfg().AttrSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -2520,12 +2496,12 @@ func TestBiRPCv1AuthorizeEvent2(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 0
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes): chanInternal,
@@ -2554,13 +2530,13 @@ func TestBiRPCv1AuthorizeEvent2(t *testing.T) {
//GetMaxUsage
expected := "ChargerS is disabled"
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
args.CGREvent.ID = "TestID"
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err != nil {
t.Error(err)
}
@@ -2569,18 +2545,18 @@ func TestBiRPCv1AuthorizeEvent2(t *testing.T) {
false, []string{}, false, []string{}, true, false,
false, false, false, cgrEvent, utils.Paginator{}, false, "")
expected = "NOT_CONNECTED: ResourceS"
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err != nil {
t.Error(err)
}
args.CGREvent.Tenant = "new_tenant"
expected = "RESOURCES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -2589,12 +2565,12 @@ func TestBiRPCv1AuthorizeEvent2(t *testing.T) {
false, []string{}, false, []string{}, false, false,
true, false, false, cgrEvent, utils.Paginator{}, false, "")
expected = "NOT_CONNECTED: RouteS"
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().RouteSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes)}
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err != nil {
t.Error(err)
}
@@ -2602,7 +2578,7 @@ func TestBiRPCv1AuthorizeEvent2(t *testing.T) {
args = NewV1AuthorizeArgs(false, []string{},
true, []string{"TestID"}, false, []string{}, false, false,
true, false, false, cgrEvent, utils.Paginator{}, false, "")
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err != utils.ErrPartiallyExecuted {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err != utils.ErrPartiallyExecuted {
t.Errorf("Expected %+v, received %+v", utils.ErrPartiallyExecuted, err)
}
@@ -2610,7 +2586,7 @@ func TestBiRPCv1AuthorizeEvent2(t *testing.T) {
args = NewV1AuthorizeArgs(false, []string{},
false, []string{}, true, []string{"TestID"}, false, false,
true, false, false, cgrEvent, utils.Paginator{}, false, "")
- if err := sessions.BiRPCv1AuthorizeEvent(nil, args, rply); err == nil || err != utils.ErrPartiallyExecuted {
+ if err := sessions.BiRPCv1AuthorizeEvent(context.Background(), args, rply); err == nil || err != utils.ErrPartiallyExecuted {
t.Errorf("Expected %+v, received %+v", utils.ErrPartiallyExecuted, err)
}
}
@@ -2672,7 +2648,7 @@ func TestBiRPCv1AuthorizeEventWithDigest(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().AttrSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
@@ -2683,7 +2659,7 @@ func TestBiRPCv1AuthorizeEventWithDigest(t *testing.T) {
cfg.SessionSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 0
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes): chanInternal,
@@ -2714,7 +2690,7 @@ func TestBiRPCv1AuthorizeEventWithDigest(t *testing.T) {
Thresholds: utils.StringPointer(utils.EmptyString),
StatQueues: utils.StringPointer(utils.EmptyString),
}
- if err := sessions.BiRPCv1AuthorizeEventWithDigest(nil, args, authReply); err != nil {
+ if err := sessions.BiRPCv1AuthorizeEventWithDigest(context.Background(), args, authReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(authReply, expectedRply) {
t.Errorf("Expected %+v, received %+v", utils.ToJSON(expectedRply), utils.ToJSON(authReply))
@@ -2722,7 +2698,7 @@ func TestBiRPCv1AuthorizeEventWithDigest(t *testing.T) {
sessions.cgrCfg.SessionSCfg().ChargerSConns = nil
expected := "ChargerS is disabled"
- if err := sessions.BiRPCv1AuthorizeEventWithDigest(nil, args, authReply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1AuthorizeEventWithDigest(context.Background(), args, authReply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -2783,7 +2759,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
@@ -2791,7 +2767,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
cfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanInternal,
@@ -2812,12 +2788,12 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
rply := &V1InitSessionReply{}
expected := "MANDATORY_IE_MISSING: [CGREvent]"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
args.CGREvent = cgrEvent
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err != nil {
t.Error(err)
}
@@ -2836,7 +2812,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
engine.Cache = caches
engine.Cache.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1InitiateSession, args.CGREvent.ID),
value, nil, true, utils.NonTransactional)
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err != nil {
t.Error(err)
}
engine.Cache = tmp
@@ -2844,7 +2820,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
args.CGREvent.Tenant = utils.EmptyString
args.AttributeIDs = []string{"attr1"}
expected = "ATTRIBUTES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -2852,7 +2828,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
args.AttributeIDs = []string{}
sessions.cgrCfg.SessionSCfg().ResSConns = []string{}
expected = "NOT_CONNECTED: ResourceS"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
@@ -2862,7 +2838,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
cgrEvent, true)
delete(args.CGREvent.Event, utils.OriginID)
expected = "MANDATORY_IE_MISSING: [OriginID]"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -2878,7 +2854,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
false, []string{}, false, []string{}, true, false,
cgrEvent, true)
expected = "RESOURCES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -2887,7 +2863,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) {
false, []string{}, false, []string{}, false, false,
cgrEvent, true)
expected = "MANDATORY_IE_MISSING: [subsystems]"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -2926,14 +2902,14 @@ func TestBiRPCv1InitiateSession2(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
cfg.SessionSCfg().ThreshSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)}
cfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): chanInternal,
@@ -2958,25 +2934,25 @@ func TestBiRPCv1InitiateSession2(t *testing.T) {
rply := &V1InitSessionReply{}
expected := "RALS_ERROR:time: invalid duration \"invalid_DUR_FORMAT\""
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
args.CGREvent.APIOpts[utils.OptsDebitInterval] = "10s"
expected = "ChargerS is disabled"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
expected = "RALS_ERROR:time: invalid duration \"invalid_usage\""
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
sessions = NewSessionS(cfg, dm, connMgr)
args.CGREvent.Event[utils.Usage] = "10s"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err != nil {
t.Error(err)
}
@@ -2985,7 +2961,7 @@ func TestBiRPCv1InitiateSession2(t *testing.T) {
true, []string{}, true, []string{}, false, true,
cgrEvent, true)
sessions = NewSessionS(cfg, dm, connMgr)
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err != utils.ErrPartiallyExecuted {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err != utils.ErrPartiallyExecuted {
t.Errorf("Expected %+v, received %+v", utils.ErrPartiallyExecuted, err)
}
@@ -3004,7 +2980,7 @@ func TestBiRPCv1InitiateSession2(t *testing.T) {
true, []string{}, true, []string{}, false, true,
cgrEvent, true)
expected = "EXISTS"
- if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err != utils.ErrPartiallyExecuted {
+ if err := sessions.BiRPCv1InitiateSession(context.Background(), args, rply); err == nil || err != utils.ErrPartiallyExecuted {
t.Errorf("Expected %+v, received %+v", utils.ErrPartiallyExecuted, err)
}
@@ -3063,7 +3039,7 @@ func TestBiRPCv1InitiateSessionWithDigest(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().AttrSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
@@ -3074,7 +3050,7 @@ func TestBiRPCv1InitiateSessionWithDigest(t *testing.T) {
cfg.SessionSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 0
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes): chanInternal,
@@ -3106,7 +3082,7 @@ func TestBiRPCv1InitiateSessionWithDigest(t *testing.T) {
Thresholds: utils.StringPointer(utils.EmptyString),
StatQueues: utils.StringPointer(utils.EmptyString),
}
- if err := sessions.BiRPCv1InitiateSessionWithDigest(nil, args, authReply); err != nil {
+ if err := sessions.BiRPCv1InitiateSessionWithDigest(context.Background(), args, authReply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(authReply, expectedRply) {
t.Errorf("Expected %+v, received %+v", utils.ToJSON(expectedRply), utils.ToJSON(authReply))
@@ -3114,7 +3090,8 @@ func TestBiRPCv1InitiateSessionWithDigest(t *testing.T) {
sessions.cgrCfg.SessionSCfg().ChargerSConns = nil
expected := "MANDATORY_IE_MISSING: [OriginID]"
- if err := sessions.BiRPCv1InitiateSessionWithDigest(nil, args, authReply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1InitiateSessionWithDigest(context.Background(), args,
+ authReply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -3135,13 +3112,13 @@ func TestBiRPCv1UpdateSession1(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
cfg.SessionSCfg().AttrSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanInternal,
})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -3158,7 +3135,7 @@ func TestBiRPCv1UpdateSession1(t *testing.T) {
rply := new(V1UpdateSessionReply)
expected := "MANDATORY_IE_MISSING: [CGREvent]"
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3175,7 +3152,7 @@ func TestBiRPCv1UpdateSession1(t *testing.T) {
engine.Cache = caches
engine.Cache.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1UpdateSession, args.CGREvent.ID),
value, nil, true, utils.NonTransactional)
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err != nil {
t.Error(err)
}
engine.Cache = tmp
@@ -3184,20 +3161,20 @@ func TestBiRPCv1UpdateSession1(t *testing.T) {
args = NewV1UpdateSessionArgs(true, []string{"attrr1"}, false,
cgrEvent, true)
expected = "ATTRIBUTES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args = NewV1UpdateSessionArgs(true, []string{}, false,
cgrEvent, true)
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err != nil {
t.Error(err)
}
args = NewV1UpdateSessionArgs(false, []string{}, false,
cgrEvent, true)
expected = "MANDATORY_IE_MISSING: [subsystems]"
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
}
@@ -3224,11 +3201,11 @@ func TestBiRPCv1UpdateSession2(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -3248,7 +3225,7 @@ func TestBiRPCv1UpdateSession2(t *testing.T) {
cgrEvent, true)
rply := new(V1UpdateSessionReply)
expected := "RALS_ERROR:time: invalid duration \"invalid_dur_format\""
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.APIOpts[utils.OptsDebitInterval] = "10s"
@@ -3256,20 +3233,20 @@ func TestBiRPCv1UpdateSession2(t *testing.T) {
args = NewV1UpdateSessionArgs(false, []string{}, true,
cgrEvent, true)
expected = "ChargerS is disabled"
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
expected = "RALS_ERROR:time: invalid duration \"invalid_dur_format\""
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.Event[utils.Usage] = time.Minute
args = NewV1UpdateSessionArgs(false, []string{}, true,
cgrEvent, true)
- if err := sessions.BiRPCv1UpdateSession(nil, args, rply); err != nil {
+ if err := sessions.BiRPCv1UpdateSession(context.Background(), args, rply); err != nil {
t.Error(err)
}
}
@@ -3302,13 +3279,13 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -3325,14 +3302,14 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
args := NewV1TerminateSessionArgs(true, false, false, nil, false, nil, nil, true)
var reply string
expected := "MANDATORY_IE_MISSING: [CGREvent]"
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.ID = utils.EmptyString
args = NewV1TerminateSessionArgs(false, false, false, nil, false, nil, cgrEvent, true)
expected = "MANDATORY_IE_MISSING: [subsystems]"
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.ID = "test_id"
@@ -3345,7 +3322,7 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
engine.Cache = caches
engine.Cache.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1TerminateSession, args.CGREvent.ID),
value, nil, true, utils.NonTransactional)
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err != nil {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
engine.Cache = tmp
@@ -3353,7 +3330,7 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
cgrEvent.Event[utils.OriginID] = utils.EmptyString
args = NewV1TerminateSessionArgs(true, false, false, nil, false, nil, cgrEvent, true)
expected = "MANDATORY_IE_MISSING: [OriginID]"
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.Event[utils.OriginID] = "ORIGIN_ID"
@@ -3362,7 +3339,7 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
cgrEvent.APIOpts[utils.OptsDebitInterval] = "invalid_time_format"
args = NewV1TerminateSessionArgs(true, false, false, nil, false, nil, cgrEvent, true)
expected = "RALS_ERROR:time: invalid duration \"invalid_time_format\""
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.APIOpts[utils.OptsDebitInterval] = "1m"
@@ -3373,7 +3350,7 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
"CGR_ID": {},
}
args = NewV1TerminateSessionArgs(true, false, false, nil, false, nil, cgrEvent, true)
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err != nil {
t.Error(err)
}
cgrEvent.Event[utils.CGRID] = "CHANGED_CGRID"
@@ -3381,7 +3358,7 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
args = NewV1TerminateSessionArgs(true, false, false, nil, false, nil, cgrEvent, true)
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{}
expected = "RALS_ERROR:ChargerS is disabled"
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
@@ -3390,7 +3367,7 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
cgrEvent.Event[utils.Usage] = "invalid_dur_time"
args = NewV1TerminateSessionArgs(true, false, false, nil, false, nil, cgrEvent, true)
expected = "time: invalid duration \"invalid_dur_time\""
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.Event[utils.Usage] = "1m"
@@ -3409,7 +3386,7 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
}
cfg.SessionSCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
- connMgr = engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr = engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): chanInternal,
})
@@ -3418,7 +3395,7 @@ func TestBiRPCv1TerminateSession1(t *testing.T) {
engine.Cache = caches
args = NewV1TerminateSessionArgs(true, false, false, nil, false, nil, cgrEvent, true)
expected = "RALS_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
engine.Cache = tmp
@@ -3437,12 +3414,12 @@ func TestBiRPCv1TerminateSession2(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -3459,14 +3436,14 @@ func TestBiRPCv1TerminateSession2(t *testing.T) {
args := NewV1TerminateSessionArgs(false, true, false, nil, false, nil, cgrEvent, true)
var reply string
expected := "RESOURCES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.Event[utils.OriginID] = utils.EmptyString
args = NewV1TerminateSessionArgs(false, true, false, nil, false, nil, cgrEvent, true)
expected = "MANDATORY_IE_MISSING: [OriginID]"
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.Event[utils.OriginID] = "ORIGIN_ID"
@@ -3474,14 +3451,14 @@ func TestBiRPCv1TerminateSession2(t *testing.T) {
args = NewV1TerminateSessionArgs(false, true, false, nil, false, nil, cgrEvent, true)
expected = "NOT_CONNECTED: ResourceS"
sessions.cgrCfg.SessionSCfg().ResSConns = []string{}
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
cgrEvent.Tenant = "CHANGED_ID"
args = NewV1TerminateSessionArgs(false, true, true, nil, true, nil, cgrEvent, true)
- if err := sessions.BiRPCv1TerminateSession(nil, args, &reply); err == nil || err != utils.ErrPartiallyExecuted {
+ if err := sessions.BiRPCv1TerminateSession(context.Background(), args, &reply); err == nil || err != utils.ErrPartiallyExecuted {
t.Errorf("Exepected %+v, received %+v", utils.ErrPartiallyExecuted, err)
}
}
@@ -3506,7 +3483,7 @@ func TestBiRPCv1ProcessCDR(t *testing.T) {
cgrEvent.ID = utils.EmptyString
expected := "MANDATORY_IE_MISSING: [connIDs]"
- if err := sessions.BiRPCv1ProcessCDR(nil, cgrEvent, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessCDR(context.Background(), cgrEvent, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.ID = "test_id"
@@ -3519,7 +3496,7 @@ func TestBiRPCv1ProcessCDR(t *testing.T) {
engine.Cache = caches
engine.Cache.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1ProcessCDR, cgrEvent.ID),
value, nil, true, utils.NonTransactional)
- if err := sessions.BiRPCv1ProcessCDR(nil, cgrEvent, &reply); err != nil {
+ if err := sessions.BiRPCv1ProcessCDR(context.Background(), cgrEvent, &reply); err != nil {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
engine.Cache = tmp
@@ -3540,13 +3517,13 @@ func TestBiRPCv1ProcessMessage1(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
cfg.SessionSCfg().AttrSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanInternal,
})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
@@ -3565,7 +3542,7 @@ func TestBiRPCv1ProcessMessage1(t *testing.T) {
true, false, false, nil, utils.Paginator{}, false, "1")
reply := V1ProcessMessageReply{}
expected := "MANDATORY_IE_MISSING: [CGREvent]"
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3574,7 +3551,7 @@ func TestBiRPCv1ProcessMessage1(t *testing.T) {
false, []string{}, false, []string{}, true, false,
false, false, false, cgrEvent, utils.Paginator{}, false, "1")
expected = "ATTRIBUTES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3583,7 +3560,7 @@ func TestBiRPCv1ProcessMessage1(t *testing.T) {
false, []string{}, false, []string{}, true, false,
false, false, false, cgrEvent, utils.Paginator{}, false, "1")
expected = "NOT_CONNECTED: ResourceS"
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
@@ -3600,7 +3577,7 @@ func TestBiRPCv1ProcessMessage1(t *testing.T) {
false, false, false, cgrEvent, utils.Paginator{}, false, "1")
engine.Cache.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1ProcessMessage, args.CGREvent.ID),
value, nil, true, utils.NonTransactional)
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err != nil {
t.Error(err)
}
engine.Cache = tmp
@@ -3644,13 +3621,13 @@ func TestBiRPCv1ProcessMessage2(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
cfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
@@ -3671,7 +3648,7 @@ func TestBiRPCv1ProcessMessage2(t *testing.T) {
true, false, false, cgrEvent, utils.Paginator{}, false, "1")
reply := V1ProcessMessageReply{}
expected := "MANDATORY_IE_MISSING: [OriginID]"
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
cgrEvent.Event[utils.OriginID] = "ID"
@@ -3681,7 +3658,7 @@ func TestBiRPCv1ProcessMessage2(t *testing.T) {
false, false, false, cgrEvent, utils.Paginator{}, false, "1")
reply = V1ProcessMessageReply{}
expected = "RESOURCES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3690,13 +3667,13 @@ func TestBiRPCv1ProcessMessage2(t *testing.T) {
false, []string{}, false, []string{}, true, true,
true, false, false, cgrEvent, utils.Paginator{}, false, "1")
expected = "NOT_CONNECTED: RouteS"
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().RouteSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes)}
expected = "ChargerS is disabled"
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3705,7 +3682,7 @@ func TestBiRPCv1ProcessMessage2(t *testing.T) {
true, false, false, cgrEvent, utils.Paginator{}, false, "1")
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
- if err := sessions.BiRPCv1ProcessMessage(nil, args, &reply); err == nil || err != utils.ErrPartiallyExecuted {
+ if err := sessions.BiRPCv1ProcessMessage(context.Background(), args, &reply); err == nil || err != utils.ErrPartiallyExecuted {
t.Errorf("Exepected %+v, received %+v", utils.ErrPartiallyExecuted, err)
}
}
@@ -3766,12 +3743,12 @@ func TestBiRPCv1ProcessEvent(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes): chanInternal,
@@ -3793,7 +3770,7 @@ func TestBiRPCv1ProcessEvent(t *testing.T) {
}
reply := V1ProcessEventReply{}
expected := "MANDATORY_IE_MISSING: [CGREvent]"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.CGREvent = cgrEvent
@@ -3809,14 +3786,14 @@ func TestBiRPCv1ProcessEvent(t *testing.T) {
engine.Cache = caches
engine.Cache.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1ProcessEvent, args.CGREvent.ID),
value, nil, true, utils.NonTransactional)
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
}
engine.Cache = tmp
cgrEvent.ID = utils.EmptyString
expected = "CHARGERS_ERROR:MANDATORY_IE_MISSING: [connIDs]"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3825,7 +3802,7 @@ func TestBiRPCv1ProcessEvent(t *testing.T) {
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
sessions.cgrCfg.SessionSCfg().AttrSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
expected = "ATTRIBUTES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3833,7 +3810,7 @@ func TestBiRPCv1ProcessEvent(t *testing.T) {
args.Flags = append(args.Flags, utils.MetaRoutes)
sessions.cgrCfg.SessionSCfg().RouteSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes)}
expected = "ROUTES_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3841,14 +3818,14 @@ func TestBiRPCv1ProcessEvent(t *testing.T) {
args.CGREvent.ID = "SECOND_ID"
sessions.cgrCfg.SessionSCfg().ThreshSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)}
expected = "PARTIALLY_EXECUTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.Flags = []string{utils.MetaThresholds, utils.MetaBlockerError}
sessions.cgrCfg.SessionSCfg().ThreshSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)}
expected = "THRESHOLDS_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3878,13 +3855,13 @@ func TestBiRPCv1ProcessEventStats(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats)}
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
})
@@ -3905,13 +3882,13 @@ func TestBiRPCv1ProcessEventStats(t *testing.T) {
}
reply := V1ProcessEventReply{}
expected := "PARTIALLY_EXECUTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.Flags = []string{utils.MetaStats, utils.MetaBlockerError}
expected = "STATS_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3919,7 +3896,7 @@ func TestBiRPCv1ProcessEventStats(t *testing.T) {
args.CGREvent.APIOpts = make(map[string]any)
args.CGREvent.APIOpts[utils.OptsStirATest] = "stir;test;opts"
expected = "*stir_authenticate: missing parts of the message header"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -3927,12 +3904,12 @@ func TestBiRPCv1ProcessEventStats(t *testing.T) {
args.CGREvent.APIOpts = make(map[string]any)
args.CGREvent.APIOpts[utils.OptsStirATest] = "stir;test;opts"
expected = "*stir_authenticate: open : no such file or directory"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.CGREvent.APIOpts[utils.OptsStirOriginatorURI] = "+407590336423;USER_ID"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
}
@@ -3949,12 +3926,12 @@ func TestBiRPCv1ProcessEventResources(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
})
@@ -3982,27 +3959,27 @@ func TestBiRPCv1ProcessEventResources(t *testing.T) {
reply := V1ProcessEventReply{}
expected := "NOT_CONNECTED: ResourceS"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
args.Flags = append(args.Flags, utils.MetaResources)
expected = "MANDATORY_IE_MISSING: [OriginID]"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.CGREvent.Event[utils.OriginID] = "ORIGIN_ID"
args.Flags = append(args.Flags, utils.MetaBlockerError)
expected = "RESOURCES_ERROR:UNSUPPORTED_SERVICE_METHOD"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.Flags = args.Flags[:len(args.Flags)-1]
expected = "PARTIALLY_EXECUTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -4011,13 +3988,13 @@ func TestBiRPCv1ProcessEventResources(t *testing.T) {
utils.MetaChargers}
args.Flags = append(args.Flags, utils.MetaBlockerError)
expected = "RESOURCES_ERROR:UNSUPPORTED_SERVICE_METHOD"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.Flags = args.Flags[:len(args.Flags)-1]
expected = "PARTIALLY_EXECUTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -4026,13 +4003,13 @@ func TestBiRPCv1ProcessEventResources(t *testing.T) {
utils.MetaChargers}
args.Flags = append(args.Flags, utils.MetaBlockerError)
expected = "RESOURCES_ERROR:UNSUPPORTED_SERVICE_METHOD"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.Flags = args.Flags[:len(args.Flags)-1]
expected = "PARTIALLY_EXECUTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
}
@@ -4067,14 +4044,14 @@ func TestBiRPCv1ProcessEventRals1(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheEventCharges].Limit = -1
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
})
@@ -4100,7 +4077,7 @@ func TestBiRPCv1ProcessEventRals1(t *testing.T) {
}
reply := V1ProcessEventReply{}
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err != utils.ErrNotImplemented {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err != utils.ErrNotImplemented {
t.Errorf("Exepected %+v, received %+v", utils.ErrNotImplemented, err)
}
@@ -4112,12 +4089,12 @@ func TestBiRPCv1ProcessEventRals1(t *testing.T) {
utils.MetaChargers}
args.CGREvent.Event[utils.Usage] = "invalid_usage_format"
expected := "time: invalid duration \"invalid_usage_format\""
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.CGREvent.Event[utils.Usage] = "1m"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Error(expected)
}
@@ -4127,14 +4104,14 @@ func TestBiRPCv1ProcessEventRals1(t *testing.T) {
args.APIOpts = make(map[string]any)
args.APIOpts[utils.OptsDebitInterval] = "invalid_dbtitrvl_format"
expected = "RALS_ERROR:time: invalid duration \"invalid_dbtitrvl_format\""
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.APIOpts[utils.OptsDebitInterval] = "5s"
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{}
expected = "ChargerS is disabled"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
@@ -4142,7 +4119,7 @@ func TestBiRPCv1ProcessEventRals1(t *testing.T) {
args.CGREvent.Event[utils.Usage] = "invalid_format"
args.CGREvent.Tenant = "cgrates.org"
expected = "RALS_ERROR:time: invalid duration \"invalid_format\""
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.CGREvent.Event[utils.Usage] = "10s"
@@ -4178,7 +4155,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheEventCharges].Limit = -1
@@ -4186,7 +4163,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
cfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
cfg.SessionSCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): chanInternal,
@@ -4215,7 +4192,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
reply := V1ProcessEventReply{}
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
}
@@ -4224,7 +4201,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
utils.MetaChargers}
args.APIOpts[utils.OptsDebitInterval] = "invalid_format"
expected := "RALS_ERROR:time: invalid duration \"invalid_format\""
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.APIOpts[utils.OptsDebitInterval] = "10s"
@@ -4232,7 +4209,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
args.Event[utils.CGRID] = "test_id_new"
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{}
expected = "ChargerS is disabled"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
@@ -4240,7 +4217,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
args.CGREvent.Event[utils.Usage] = "invalid_format"
expected = "RALS_ERROR:time: invalid duration \"invalid_format\""
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.CGREvent.Event[utils.Usage] = "10"
@@ -4249,7 +4226,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
utils.ConcatenatedKey(utils.MetaRALs, utils.MetaUpdate),
utils.MetaChargers}
delete(args.APIOpts, utils.OptsDebitInterval)
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err != nil {
t.Error(err)
}
@@ -4258,7 +4235,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
utils.MetaChargers}
args.APIOpts[utils.OptsDebitInterval] = "invalid_format"
expected = "RALS_ERROR:time: invalid duration \"invalid_format\""
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.APIOpts[utils.OptsDebitInterval] = "10s"
@@ -4266,7 +4243,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
args.Event[utils.CGRID] = "test_id_new"
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{}
expected = "ChargerS is disabled"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
@@ -4281,7 +4258,7 @@ func TestBiRPCv1ProcessEventRals2(t *testing.T) {
engine.Cache = cacheS
engine.SetConnManager(connMgr)
expected = "RALS_ERROR:NOT_IMPLEMENTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -4314,13 +4291,13 @@ func TestBiRPCv1ProcessEventCDRs11(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
cfg.SessionSCfg().CDRsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs)}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs): chanInternal,
})
@@ -4367,7 +4344,7 @@ func TestBiRPCv1ProcessEventCDRs11(t *testing.T) {
reply := V1ProcessEventReply{}
expected := "PARTIALLY_EXECUTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
@@ -4386,7 +4363,7 @@ func TestBiRPCv1ProcessEventCDRs11(t *testing.T) {
expectedLogger := "[WARNING] ProcessCDR called for active session with CGRID: "
expected = "CDRS_ERROR:PARTIALLY_EXECUTED"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
} else if rcv := buff.String(); !strings.Contains(rcv, expectedLogger) {
t.Errorf("Expected %+v, received %+v", expectedLogger, rcv)
@@ -4395,7 +4372,7 @@ func TestBiRPCv1ProcessEventCDRs11(t *testing.T) {
sessions.cgrCfg.SessionSCfg().CDRsConns = []string{}
expected = "NOT_CONNECTED: CDRs"
- if err := sessions.BiRPCv1ProcessEvent(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1ProcessEvent(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
}
@@ -4425,12 +4402,12 @@ func TestBiRPCv1GetCost(t *testing.T) {
},
},
}
- chanInternal := make(chan rpcclient.ClientConnector, 1)
+ chanInternal := make(chan birpc.ClientConnector, 1)
chanInternal <- clnt
cfg := config.NewDefaultCGRConfig()
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
- connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
+ connMgr := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): chanInternal,
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanInternal,
})
@@ -4455,7 +4432,7 @@ func TestBiRPCv1GetCost(t *testing.T) {
}
reply := V1GetCostReply{}
expected := "MANDATORY_IE_MISSING: [CGREvent]"
- if err := sessions.BiRPCv1GetCost(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1GetCost(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
args.CGREvent = cgrEvent
@@ -4472,20 +4449,20 @@ func TestBiRPCv1GetCost(t *testing.T) {
engine.Cache = caches
engine.Cache.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1GetCost, args.CGREvent.ID),
value, nil, true, utils.NonTransactional)
- if err := sessions.BiRPCv1GetCost(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1GetCost(context.Background(), args, &reply); err != nil {
t.Error(err)
}
engine.Cache = tmp
args.CGREvent.ID = utils.EmptyString
expected = "ATTRIBUTES_ERROR:NOT_CONNECTED: AttributeS"
- if err := sessions.BiRPCv1GetCost(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1GetCost(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().AttrSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
expected = "MANDATORY_IE_MISSING: [connIDs]"
- if err := sessions.BiRPCv1GetCost(nil, args, &reply); err == nil || err.Error() != expected {
+ if err := sessions.BiRPCv1GetCost(context.Background(), args, &reply); err == nil || err.Error() != expected {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
sessions.cgrCfg.SessionSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)}
@@ -4513,7 +4490,7 @@ func TestBiRPCv1GetCost(t *testing.T) {
},
}
expectedVal.EventCost.Compute()
- if err := sessions.BiRPCv1GetCost(nil, args, &reply); err != nil {
+ if err := sessions.BiRPCv1GetCost(context.Background(), args, &reply); err != nil {
t.Errorf("Exepected %+v, received %+v", expected, err)
}
/*
@@ -4548,7 +4525,7 @@ func TestSyncSessionsSync(t *testing.T) {
sessions.aSessions = map[string]*Session{}
var reply string
- if err := sessions.BiRPCv1SyncSessions(nil, nil, &reply); err != nil {
+ if err := sessions.BiRPCv1SyncSessions(context.Background(), nil, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected to be OK")
diff --git a/utils/birpcint_client.go b/utils/birpcint_client.go
index 56dbfa933..4a338c138 100644
--- a/utils/birpcint_client.go
+++ b/utils/birpcint_client.go
@@ -21,20 +21,19 @@ package utils
import (
"net"
- "github.com/cenkalti/rpc2"
- rpc2_jsonrpc "github.com/cenkalti/rpc2/jsonrpc"
+ "github.com/cgrates/birpc"
+ "github.com/cgrates/birpc/jsonrpc"
)
// NewBiJSONrpcClient will create a bidirectional JSON client connection
-func NewBiJSONrpcClient(addr string, handlers map[string]any) (*rpc2.Client, error) {
+func NewBiJSONrpcClient(addr string, obj birpc.ClientConnector) (*birpc.BirpcClient, error) {
conn, err := net.Dial(TCP, addr)
if err != nil {
return nil, err
}
- clnt := rpc2.NewClientWithCodec(rpc2_jsonrpc.NewJSONCodec(conn))
- for method, handlerFunc := range handlers {
- clnt.Handle(method, handlerFunc)
+ clnt := birpc.NewBirpcClientWithCodec(jsonrpc.NewJSONBirpcCodec(conn))
+ if obj != nil {
+ clnt.Register(obj)
}
- go clnt.Run()
return clnt, nil
}
diff --git a/utils/birpcint_client_test.go b/utils/birpcint_client_test.go
deleted file mode 100644
index 31b3394b2..000000000
--- a/utils/birpcint_client_test.go
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
-Copyright (C) ITsysCOM GmbH
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see
-*/
-
-package utils
-
-import (
- "net"
- "testing"
-
- "github.com/cenkalti/rpc2"
-)
-
-func TestNewBiJSONrpcClient(t *testing.T) {
- //empty check
- addr := "127.0.0.1:4024"
- handlers := map[string]any{}
- rcv, err := NewBiJSONrpcClient(addr, handlers)
- if err == nil || rcv != nil {
- t.Error("Expencting: \"connection refused\", received : nil")
- }
-
- l, err := net.Listen(TCP, addr)
- if err != nil {
- t.Error(err)
- }
- handlers = map[string]any{
- "": func(*rpc2.Client, *struct{}, *string) error { return nil },
- }
-
- _, err = NewBiJSONrpcClient(addr, handlers)
- if err != nil {
- t.Error(err)
- }
- l.Close()
-}
diff --git a/utils/consts.go b/utils/consts.go
index 109bf79f4..9682c8e40 100644
--- a/utils/consts.go
+++ b/utils/consts.go
@@ -970,23 +970,27 @@ const (
// Services
const (
- SessionS = "SessionS"
- AttributeS = "AttributeS"
- RouteS = "RouteS"
- ResourceS = "ResourceS"
- StatService = "StatS"
- FilterS = "FilterS"
- ThresholdS = "ThresholdS"
- DispatcherS = "DispatcherS"
- RegistrarC = "RegistrarC"
- LoaderS = "LoaderS"
- ChargerS = "ChargerS"
- CacheS = "CacheS"
AnalyzerS = "AnalyzerS"
- CDRServer = "CDRServer"
- ResponderS = "ResponderS"
- GuardianS = "GuardianS"
ApierS = "ApierS"
+ AttributeS = "AttributeS"
+ CacheS = "CacheS"
+ CDRServer = "CDRServer"
+ ChargerS = "ChargerS"
+ ConfigS = "ConfigS"
+ DispatcherS = "DispatcherS"
+ EeS = "EeS"
+ FilterS = "FilterS"
+ GuardianS = "GuardianS"
+ LoaderS = "LoaderS"
+ RALs = "RALs"
+ RegistrarC = "RegistrarC"
+ ReplicatorS = "ReplicatorS"
+ ResourceS = "ResourceS"
+ ResponderS = "ResponderS"
+ RouteS = "RouteS"
+ SessionS = "SessionS"
+ StatService = "StatS"
+ ThresholdS = "ThresholdS"
)
// Lower service names
@@ -1481,7 +1485,6 @@ const (
APIerSv2GetActions = "APIerSv2.GetActions"
APIerSv2GetDestinations = "APIerSv2.GetDestinations"
APIerSv2GetCacheStats = "APIerSv2.GetCacheStats"
- APIerSv2ExecuteAction = "APIerSv2.ExecuteAction"
APIerSv2ResetAccountActionTriggers = "APIerSv2.ResetAccountActionTriggers"
APIerSv2RemoveActions = "APIerSv2.RemoveActions"
APIerSv2ExportCdrsToFile = "APIerSv2.ExportCdrsToFile"
diff --git a/utils/coreutils.go b/utils/coreutils.go
index 99aa1e09e..004f2e3b7 100644
--- a/utils/coreutils.go
+++ b/utils/coreutils.go
@@ -868,45 +868,6 @@ func APIerRPCCall(inst any, serviceMethod string, args any, reply any) error {
return err
}
-// BiRPCCall is a generic method calling BiRPC on a struct instance
-// serviceMethod is assumed to be in the form InstanceV1.Method
-// where BiRPCV1Method will become RPC method called on instance
-// the subsystem is not checked
-func BiRPCCall(inst any, clnt rpcclient.ClientConnector, serviceMethod string, args any, reply any) error {
- parts := strings.Split(serviceMethod, ".")
- if len(parts) != 2 {
- return rpcclient.ErrUnsupporteServiceMethod
- }
- // get method BiRPCV1.Method
- method := reflect.ValueOf(inst).MethodByName(
- "BiRPC" + parts[0][len(parts[0])-2:] + parts[1]) // Inherit the version V1 in the method name and add prefix
- if !method.IsValid() {
- return rpcclient.ErrUnsupporteServiceMethod
- }
- // construct the params
- var clntVal reflect.Value
- if clnt == nil {
- clntVal = reflect.New(
- reflect.TypeOf(new(rpcclient.BiRPCInternalServer))).Elem() // Kinda cheat since we make up a type here
- } else {
- clntVal = reflect.ValueOf(clnt)
- }
- params := []reflect.Value{clntVal, reflect.ValueOf(args),
- reflect.ValueOf(reply)}
- ret := method.Call(params)
- if len(ret) != 1 {
- return ErrServerError
- }
- if ret[0].Interface() == nil {
- return nil
- }
- err, ok := ret[0].Interface().(error)
- if !ok {
- return ErrServerError
- }
- return err
-}
-
// CachedRPCResponse is used to cache a RPC response
type CachedRPCResponse struct {
Result any
diff --git a/utils/coreutils_test.go b/utils/coreutils_test.go
index d1ee664d1..fa4780e51 100644
--- a/utils/coreutils_test.go
+++ b/utils/coreutils_test.go
@@ -28,6 +28,7 @@ import (
"golang.org/x/crypto/bcrypt"
+ "github.com/cgrates/birpc"
"github.com/cgrates/rpcclient"
)
@@ -1724,87 +1725,23 @@ func (c client) Call(serviceMethod string, args any, reply any) (err error) {
return
}
-func (srv *server) BiRPCv1ValidMethod(cl rpcclient.ClientConnector, args any, req any) error {
+func (srv *server) BiRPCv1ValidMethod(cl birpc.ClientConnector, args any, req any) error {
return nil
}
-func (srv *server) BiRPCv1MultipleParams(cl rpcclient.ClientConnector, args any, req any) (int, error) {
+func (srv *server) BiRPCv1MultipleParams(cl birpc.ClientConnector, args any, req any) (int, error) {
return 1, nil
}
-func (srv *server) BiRPCv1NoErrorReturn(cl rpcclient.ClientConnector, args any, req any) int {
+func (srv *server) BiRPCv1NoErrorReturn(cl birpc.ClientConnector, args any, req any) int {
return 1
}
-func (srv *server) BiRPCv1FinalError(cl rpcclient.ClientConnector, args any, req any) (err error) {
+func (srv *server) BiRPCv1FinalError(cl birpc.ClientConnector, args any, req any) (err error) {
err = ErrExists
return
}
-func TestCoreUtilsBiRPCCall(t *testing.T) {
- srv := new(server)
- var clnt rpcclient.ClientConnector
- var args int
- var reply *int
- serviceMethod := "testv1.v2.v3"
-
- expected := rpcclient.ErrUnsupporteServiceMethod
- err := BiRPCCall(srv, clnt, serviceMethod, args, reply)
-
- if err == nil || err != expected {
- t.Errorf("\nExpected: <%v>, \nReceived: <%v>", expected, err)
- }
-
- serviceMethod = "testv1.fail"
-
- err = BiRPCCall(srv, clnt, serviceMethod, args, reply)
-
- if err == nil || err != expected {
- t.Errorf("\nExpected: <%v>, \nReceived: <%v>", expected, err)
- }
-
- serviceMethod = "Testv1.ValidMethod"
-
- err = BiRPCCall(srv, clnt, serviceMethod, args, reply)
-
- if err != nil {
- t.Errorf("\nExpected: <%v>, \nReceived: <%v>", nil, err)
- }
-
- serviceMethod = "Testv1.MultipleParams"
-
- expected = ErrServerError
- err = BiRPCCall(srv, clnt, serviceMethod, args, reply)
-
- if err == nil || err != expected {
- t.Errorf("\nExpected: <%v>, \nReceived: <%v>", expected, err)
- }
-
- serviceMethod = "Testv1.NoErrorReturn"
- err = BiRPCCall(srv, clnt, serviceMethod, args, reply)
-
- expected = ErrServerError
- if err == nil || err != expected {
- t.Errorf("\nExpected: <%v>, \nReceived: <%v>", expected, err)
- }
-
- serviceMethod = "Testv1.FinalError"
- err = BiRPCCall(srv, clnt, serviceMethod, args, reply)
-
- expected = ErrExists
- if err == nil || err != expected {
- t.Errorf("\nExpected: <%v>, \nReceived: <%v>", expected, err)
- }
-
- var c client
- c.Call("testString", args, reply)
-
- err = BiRPCCall(srv, c, serviceMethod, args, reply)
- if err == nil || err != expected {
- t.Errorf("\nExpected: <%+v>, \nReceived: <%+v>", expected, err)
- }
-}
-
func TestCoreUtilsGenerateDBItemOpts(t *testing.T) {
apiKey := "testKey1"
routeID := "testKey2"
diff --git a/utils/rpc_params.go b/utils/rpc_params.go
index 6ed8f069b..832e83211 100644
--- a/utils/rpc_params.go
+++ b/utils/rpc_params.go
@@ -19,8 +19,11 @@ along with this program. If not, see
package utils
import (
+ "fmt"
"reflect"
"sync"
+
+ "github.com/cgrates/birpc"
)
var (
@@ -28,40 +31,52 @@ var (
rpcParamsLock sync.Mutex
)
+// RpcParams holds the parameters for an RPC method, including the object, input, and output parameters.
type RpcParams struct {
Object any
InParam any
OutParam any
}
-func RegisterRpcParams(name string, obj any) {
- objType := reflect.TypeOf(obj)
- if name == "" {
- val := reflect.ValueOf(obj)
- name = objType.Name()
- if val.Kind() == reflect.Ptr {
- name = objType.Elem().Name()
+// RegisterRpcParams takes a receiver of any type and if it is of type *birpc.Service or can be wrapped within one, it attempts to
+// populate the rpcParamsMap. Each entry in the map associates a method name with an RpcParams struct containing the parameters
+// for that method.
+// The name parameter is taken into consideration only if the receiver is not already of type *birpc.Service.
+func RegisterRpcParams(name string, rcvr any) {
+
+ // Attempt to cast the receiver to a *birpc.Service.
+ srv, isService := rcvr.(*birpc.Service)
+ if !isService {
+ useName := name != EmptyString
+
+ // If the cast fails, create a new service instance.
+ var err error
+ srv, err = birpc.NewService(rcvr, name, useName)
+ if err != nil {
+ Logger.Err(fmt.Sprintf("failed to register rpc parameters, service initialization error: %s", err))
+ return
}
}
- for i := 0; i < objType.NumMethod(); i++ {
- method := objType.Method(i)
- methodType := method.Type
- if methodType.NumIn() == 3 { // if it has three parameters (one is self and two are rpc params)
- out := methodType.In(2)
- if out.Kind() == reflect.Ptr {
- out = out.Elem()
- }
- rpcParamsLock.Lock()
- rpcParamsMap[name+"."+method.Name] = &RpcParams{
- Object: obj,
- InParam: reflect.New(methodType.In(1)).Interface(),
- OutParam: reflect.New(out).Interface(),
- }
- rpcParamsLock.Unlock()
+ rpcParamsLock.Lock()
+ defer rpcParamsLock.Unlock()
+ for mName, mValue := range srv.Methods {
+ params := &RpcParams{
+ Object: srv,
+
+ // ReplyType will always be a pointer, therefore it is safe to be dereferenced
+ // and then create a new pointer to the underlying value.
+ OutParam: reflect.New(mValue.ReplyType.Elem()).Interface(),
}
+ if mValue.ArgType.Kind() == reflect.Ptr {
+ params.InParam = reflect.New(mValue.ArgType.Elem()).Interface()
+ } else {
+ params.InParam = reflect.New(mValue.ArgType).Elem().Interface()
+ }
+ rpcParamsMap[srv.Name+"."+mName] = params
}
}
+// GetRpcParams retrieves the RpcParams for a given method name.
func GetRpcParams(method string) (params *RpcParams, err error) {
var found bool
rpcParamsLock.Lock()
diff --git a/utils/rpc_params_test.go b/utils/rpc_params_test.go
index 497f92e8f..daa312de7 100644
--- a/utils/rpc_params_test.go
+++ b/utils/rpc_params_test.go
@@ -21,6 +21,7 @@ import (
"reflect"
"testing"
+ "github.com/cgrates/birpc/context"
"github.com/mitchellh/mapstructure"
)
@@ -32,15 +33,11 @@ type Attr struct {
Age float64
}
-func (rpc *RpcStruct) Method1(normal Attr, out *float64) error {
+func (rpc *RpcStruct) Method1(ctx *context.Context, normal Attr, out *float64) error {
return nil
}
-func (rpc *RpcStruct) Method2(pointer *Attr, out *float64) error {
- return nil
-}
-
-func (rpc *RpcStruct) Call(string, any, any) error {
+func (rpc *RpcStruct) Method2(ctx *context.Context, pointer *Attr, out *float64) error {
return nil
}
@@ -54,7 +51,7 @@ func TestRPCObjectPointer(t *testing.T) {
t.Errorf("error getting rpcobject: %v (%+v)", rpcParamsMap, x)
}
a := x.InParam
- if err := mapstructure.Decode(map[string]any{"Name": "a", "Surname": "b", "Age": 10.2}, a); err != nil || a.(*Attr).Name != "a" || a.(*Attr).Surname != "b" || a.(*Attr).Age != 10.2 {
+ if err := mapstructure.Decode(map[string]any{"Name": "a", "Surname": "b", "Age": 10.2}, &a); err != nil || a.(Attr).Name != "a" || a.(Attr).Surname != "b" || a.(Attr).Age != 10.2 {
t.Errorf("error converting to struct: %+v (%v)", a, err)
}
}
@@ -67,7 +64,7 @@ func TestGetRpcParamsError(t *testing.T) {
}
func TestGetRpcParams(t *testing.T) {
- testStruct := &Attr{"", "", 0}
+ testStruct := Attr{"", "", 0}
RegisterRpcParams("", &RpcStruct{})
if result, err := GetRpcParams("RpcStruct.Method1"); err != nil {
t.Errorf("Expected , received <%+v>", err)