diff --git a/apis/attributes.go b/apis/attributes.go
index a2afedbb5..a75fa1ea1 100644
--- a/apis/attributes.go
+++ b/apis/attributes.go
@@ -142,14 +142,14 @@ func (admS *AdminSv1) RemoveAttributeProfile(ctx *context.Context, arg *utils.Te
}
// NewAttributeSv1 returns the RPC Object for AttributeS
-func NewAttributeSv1(attrS *engine.AttributeService) *AttributeSv1 {
+func NewAttributeSv1(attrS *engine.AttributeS) *AttributeSv1 {
return &AttributeSv1{attrS: attrS}
}
// AttributeSv1 exports RPC from Attributes service
type AttributeSv1 struct {
ping
- attrS *engine.AttributeService
+ attrS *engine.AttributeS
}
// GetAttributeForEvent returns matching AttributeProfile for Event
diff --git a/apis/cache.go b/apis/cache.go
index 82ea2a0c8..4adae679c 100644
--- a/apis/cache.go
+++ b/apis/cache.go
@@ -50,9 +50,9 @@ func (chSv1 *CacheSv1) HasItem(ctx *context.Context, args *utils.ArgsGetCacheIte
}
// 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
@@ -80,26 +80,26 @@ func (chSv1 *CacheSv1) GetCacheStats(ctx *context.Context, args *utils.AttrCache
}
// 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
@@ -113,11 +113,11 @@ func (chSv1 *CacheSv1) LoadCache(ctx *context.Context, args *utils.AttrReloadCac
}
// 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)
}
diff --git a/apis/dispatchers.go b/apis/dispatchers.go
index 55939fb58..b39f90af7 100644
--- a/apis/dispatchers.go
+++ b/apis/dispatchers.go
@@ -22,7 +22,6 @@ import (
"time"
"github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -247,6 +246,7 @@ func (admS *AdminSv1) RemoveDispatcherHost(ctx *context.Context, arg *utils.Tena
return nil
}
+/*
func NewDispatcherSv1(dS *dispatchers.DispatcherService) *DispatcherSv1 {
return &DispatcherSv1{dS: dS}
}
@@ -256,20 +256,21 @@ type DispatcherSv1 struct {
ping
}
-// GetProfileForEvent returns the matching dispatcher profile for the provided event
-func (dSv1 DispatcherSv1) GetProfilesForEvent(ctx *context.Context, ev *utils.CGREvent,
- dPrfl *engine.DispatcherProfiles) error {
- return dSv1.dS.V1GetProfilesForEvent(ctx, ev, dPrfl)
-}
+// // GetProfileForEvent returns the matching dispatcher profile for the provided event
+// func (dSv1 DispatcherSv1) GetProfilesForEvent(ctx *context.Context, ev *utils.CGREvent,
+// dPrfl *engine.DispatcherProfiles) error {
+// return dSv1.dS.V1GetProfilesForEvent(ctx, ev, dPrfl)
+// }
-func (dS *DispatcherSv1) RemoteStatus(args *utils.TenantWithAPIOpts, reply *map[string]interface{}) (err error) {
- return dS.dS.DispatcherSv1RemoteStatus(args, reply)
-}
+// func (dS *DispatcherSv1) RemoteStatus(args *utils.TenantWithAPIOpts, reply *map[string]interface{}) (err error) {
+// return dS.dS.DispatcherSv1RemoteStatus(args, reply)
+// }
-func (dS *DispatcherSv1) RemotePing(args *utils.CGREvent, reply *string) (err error) {
- return dS.dS.DispatcherSv1RemotePing(args, reply)
-}
+// func (dS *DispatcherSv1) RemotePing(args *utils.CGREvent, reply *string) (err error) {
+// return dS.dS.DispatcherSv1RemotePing(args, reply)
+// }
-func (dS *DispatcherSv1) RemoteSleep(args *utils.DurationArgs, reply *string) (err error) {
- return dS.dS.DispatcherSv1RemoteSleep(args, reply)
-}
+// func (dS *DispatcherSv1) RemoteSleep(args *utils.DurationArgs, reply *string) (err error) {
+// return dS.dS.DispatcherSv1RemoteSleep(args, reply)
+// }
+*/
diff --git a/apis/sessions.go b/apis/sessions.go
index b15a72ccc..227539bcd 100644
--- a/apis/sessions.go
+++ b/apis/sessions.go
@@ -20,7 +20,6 @@ package apis
import (
"github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
)
@@ -111,9 +110,9 @@ func (ssv1 *SessionSv1) GetPassiveSessionsCount(ctx *context.Context, args *util
return ssv1.sS.BiRPCv1GetPassiveSessionsCount(ctx, args, 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) ReplicateSessions(ctx *context.Context, args *dispatchers.ArgsReplicateSessionsWithAPIOpts, rply *string) error {
+// return ssv1.sS.BiRPCv1ReplicateSessions(ctx, args.ArgsReplicateSessions, rply)
+// }
func (ssv1 *SessionSv1) SetPassiveSession(ctx *context.Context, args *sessions.Session,
reply *string) error {
diff --git a/build.sh b/build.sh
index 00e42d8cf..5ec824b60 100755
--- a/build.sh
+++ b/build.sh
@@ -10,9 +10,6 @@ then
GIT_LAST_LOG=""
fi
-go generate ./...
-go fmt ./...
-
go install -ldflags "-X 'github.com/cgrates/cgrates/utils.GitLastLog=$GIT_LAST_LOG'" github.com/cgrates/cgrates/cmd/cgr-engine
cr=$?
go install -ldflags "-X 'github.com/cgrates/cgrates/utils.GitLastLog=$GIT_LAST_LOG'" github.com/cgrates/cgrates/cmd/cgr-loader
diff --git a/data/scripts/generate_dispatchers/generator.go b/data/scripts/generate_dispatchers/generator.go
new file mode 100644
index 000000000..1b8ccceb7
--- /dev/null
+++ b/data/scripts/generate_dispatchers/generator.go
@@ -0,0 +1,481 @@
+//go: build ignore
+
+/*
+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 main
+
+import (
+ "fmt"
+ "go/ast"
+ "go/printer"
+ "go/token"
+ "io"
+ "log"
+ "os"
+ "path"
+ "reflect"
+ "strconv"
+ "unicode"
+
+ "github.com/cgrates/cgrates/accounts"
+ "github.com/cgrates/cgrates/actions"
+ "github.com/cgrates/cgrates/analyzers"
+ "github.com/cgrates/cgrates/apis"
+ "github.com/cgrates/cgrates/config"
+ "github.com/cgrates/cgrates/cores"
+ "github.com/cgrates/cgrates/ees"
+ "github.com/cgrates/cgrates/engine"
+ "github.com/cgrates/cgrates/loaders"
+ "github.com/cgrates/cgrates/rates"
+ "github.com/cgrates/cgrates/sessions"
+ "github.com/cgrates/cgrates/utils"
+)
+
+func main() {
+ type genFile struct {
+ path string
+ subsystem string // the name of the constant
+ obj interface{}
+ customName string
+ }
+ fmt.Println("Generating dispatcher files ...")
+ for _, file := range []genFile{
+ {"accounts.go", "MetaAccounts", new(accounts.AccountS), utils.EmptyString},
+ {"actions.go", "MetaActions", new(actions.ActionS), utils.EmptyString},
+ {"attributes.go", "MetaAttributes", new(engine.AttributeS), utils.EmptyString},
+ {"caches.go", "MetaCaches", engine.Cache, utils.EmptyString},
+ {"cdrs.go", "MetaCDRs", new(engine.CDRServer), utils.CDRs},
+ {"chargers.go", "MetaChargers", new(engine.ChargerS), utils.EmptyString},
+ {"config.go", "MetaConfig", new(config.CGRConfig), utils.ConfigS},
+ {"rates.go", "RateS", new(rates.RateS), utils.EmptyString},
+ {"replicator.go", "MetaReplicator", new(apis.ReplicatorSv1), utils.EmptyString},
+ {"resources.go", "MetaResources", new(engine.ResourceS), utils.EmptyString},
+ {"routes.go", "MetaRoutes", new(engine.RouteS), utils.EmptyString},
+ {"sessions.go", "MetaSessionS", new(sessions.SessionS), utils.SessionS},
+ {"stats.go", "MetaStats", new(engine.StatS), utils.EmptyString},
+ {"thresholds.go", "MetaThresholds", new(engine.ThresholdS), utils.EmptyString},
+ {"loaders.go", "MetaLoaders", new(loaders.LoaderS), utils.EmptyString},
+ {"ees.go", "MetaEEs", new(ees.EeS), utils.EmptyString},
+ {"analyzers.go", "MetaAnalyzer", new(analyzers.AnalyzerS), utils.EmptyString},
+ {"admins.go", "MetaAdminS", new(apis.AdminSv1), utils.EmptyString},
+ {"cores.go", "MetaCore", new(cores.CoreS), utils.EmptyString},
+ } {
+ if err := createFile(file.path, file.subsystem, file.customName, file.obj); err != nil {
+ log.Fatal(err)
+ }
+ }
+
+}
+
+func createFile(filePath, subsystem, customName string, obj interface{}) (err error) {
+ var f io.WriteCloser
+ if f, err = os.Create(filePath); err != nil {
+ return
+ }
+ defer f.Close()
+ return writeFile(f, subsystem, customName, obj)
+}
+
+func writeFile(w io.Writer, subsystem, customName string, obj interface{}) (err error) {
+ if _, err = w.Write([]byte(`/*
+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
+*/
+
+// do not modify this code because it's generated
+`)); err != nil {
+ return
+ }
+ srv, _ := engine.NewServiceWithName(obj, customName, len(customName) != 0)
+ fs := token.NewFileSet()
+ f := generateService(subsystem, srv)
+ ast.SortImports(fs, f)
+ return printer.Fprint(w, fs, f)
+}
+
+func generateService(subsystem string, srvs engine.IntService) *ast.File {
+ imports := utils.NewStringSet([]string{
+ "github.com/cgrates/cgrates/utils",
+ "github.com/cgrates/birpc/context",
+ })
+ decl := make([]ast.Decl, 0)
+ for k, srv := range srvs {
+ if unicode.IsLetter(rune(k[len(k)-1])) {
+ continue
+ }
+ for n, m := range srv.Methods {
+ decl = append(decl, generateFunc(srv.Name+n, subsystem, m.ArgType, m.ReplyType))
+ imports.AddSlice(getImports(m.ArgType))
+ imports.AddSlice(getImports(m.ReplyType))
+ }
+ }
+ imports.Remove("")
+ imps := make([]ast.Spec, imports.Size())
+ for i, k := range imports.AsOrderedSlice() {
+ imps[i] = &ast.ImportSpec{Path: &ast.BasicLit{
+ // Kind: token.STRING,
+ Value: strconv.Quote(k),
+ }}
+ }
+ decl = append([]ast.Decl{&ast.GenDecl{
+ Tok: token.IMPORT,
+ Specs: imps,
+ }}, decl...)
+ return &ast.File{
+ Name: ast.NewIdent("dispatchers"),
+ Decls: decl,
+ }
+}
+
+func generateFunc(service, subsystem string, arg, reply reflect.Type) *ast.FuncDecl {
+ defer func() {
+ val := recover()
+ if val != nil {
+ log.Println(service)
+ panic(val)
+ }
+ }()
+ return &ast.FuncDecl{
+ Recv: &ast.FieldList{
+ List: []*ast.Field{{
+ Names: []*ast.Ident{ast.NewIdent("dS")},
+ Type: &ast.StarExpr{X: ast.NewIdent("DispatcherService")},
+ }},
+ },
+ Name: ast.NewIdent(service),
+ Type: &ast.FuncType{
+ Params: &ast.FieldList{List: []*ast.Field{
+ {
+ Names: []*ast.Ident{ast.NewIdent("ctx")},
+ Type: &ast.StarExpr{X: &ast.SelectorExpr{
+ X: ast.NewIdent("context"),
+ Sel: ast.NewIdent("Context"),
+ }},
+ },
+ {
+ Names: []*ast.Ident{ast.NewIdent("args")},
+ Type: getArgType(arg),
+ },
+ {
+ Names: []*ast.Ident{ast.NewIdent("reply")},
+ Type: getArgType(reply),
+ },
+ }},
+ Results: &ast.FieldList{List: []*ast.Field{{
+ Names: []*ast.Ident{ast.NewIdent("err")},
+ Type: ast.NewIdent("error"),
+ }}},
+ },
+ Body: &ast.BlockStmt{List: generateFuncBody(arg, service, subsystem)},
+ }
+}
+
+type fldPath struct {
+ Name string
+ IsPointer bool
+}
+
+func generatePath(arg reflect.Type, field string, kind reflect.Kind) (p []fldPath) {
+ if arg.Kind() == reflect.Ptr {
+ arg = arg.Elem()
+ }
+ if arg.Kind() != reflect.Struct {
+ return
+ }
+ fld, has := arg.FieldByName(field)
+ if !has {
+ nf := arg.NumField()
+ for i := 0; i < nf; i++ {
+ fld := arg.Field(i)
+ if fld.Type.Kind() != reflect.Struct ||
+ fld.Type.Kind() != reflect.Ptr {
+ continue
+ }
+ if p = generatePath(fld.Type, field, kind); p != nil {
+ return append([]fldPath{{fld.Name, fld.Type.Kind() == reflect.Ptr}}, p...)
+ }
+ }
+ return
+ }
+ p = make([]fldPath, len(fld.Index))
+ cur := arg
+ for i, idx := range fld.Index {
+ f := cur.Field(idx)
+ p[i] = fldPath{f.Name, f.Type.Kind() == reflect.Ptr}
+ cur = f.Type
+ if cur.Kind() == reflect.Ptr {
+ cur = cur.Elem()
+ }
+ }
+ if cur.Kind() != kind {
+ return nil
+ }
+ return
+}
+
+func newCond(conds []*ast.BinaryExpr) *ast.BinaryExpr {
+ if len(conds) == 1 {
+ return conds[0]
+ }
+ return &ast.BinaryExpr{
+ X: conds[0],
+ Op: token.LAND,
+ Y: newCond(conds[1:]),
+ }
+}
+func generateCond(arg reflect.Type, obj, dftVal ast.Expr, field string, kind reflect.Kind) (p []ast.Stmt) {
+ p = make([]ast.Stmt, 0, 2)
+ p = append(p, &ast.AssignStmt{
+ Lhs: []ast.Expr{obj},
+ Tok: token.DEFINE,
+ Rhs: []ast.Expr{dftVal},
+ })
+ paths := generatePath(arg, field, kind)
+ if len(paths) == 0 {
+ return
+ }
+ paths = append([]fldPath{{"args", arg.Kind() == reflect.Ptr}}, paths...)
+ conds := make([]*ast.BinaryExpr, 0, len(paths)+1)
+ curPath := ""
+ nilI := ast.NewIdent("nil")
+ for i, p := range paths {
+ if i != 0 {
+ curPath += "."
+ }
+ curPath += p.Name
+ if !p.IsPointer {
+ continue
+ }
+ conds = append(conds, &ast.BinaryExpr{
+ X: ast.NewIdent(curPath),
+ Op: token.NEQ,
+ Y: nilI,
+ })
+ }
+ if kind == reflect.String {
+ conds = append(conds, &ast.BinaryExpr{
+ X: ast.NewIdent("len(" + curPath + ")"),
+ Op: token.NEQ,
+ Y: ast.NewIdent("0"),
+ })
+ }
+ if len(conds) == 0 {
+ return []ast.Stmt{
+ &ast.AssignStmt{
+ Lhs: []ast.Expr{obj},
+ Tok: token.DEFINE,
+ Rhs: []ast.Expr{ast.NewIdent(curPath)},
+ },
+ }
+ }
+ p = append(p, &ast.IfStmt{
+ Cond: newCond(conds),
+ Body: &ast.BlockStmt{List: []ast.Stmt{
+ &ast.AssignStmt{
+ Lhs: []ast.Expr{obj},
+ Tok: token.ASSIGN,
+ Rhs: []ast.Expr{ast.NewIdent(curPath)},
+ },
+ }},
+ })
+ return
+}
+
+func generateFuncBody(arg reflect.Type, funcName, subsystem string) (p []ast.Stmt) {
+ tnt := ast.NewIdent("tnt")
+ p = append(p, generateCond(arg, tnt, ast.NewIdent("dS.cfg.GeneralCfg().DefaultTenant"), utils.Tenant, reflect.String)...)
+ ev := ast.NewIdent("ev")
+ p = append(p, generateCond(arg, ev, ast.NewIdent("make(map[string]interface{})"), utils.Event, reflect.Map)...)
+ opts := ast.NewIdent("opts")
+ p = append(p, generateCond(arg, opts, ast.NewIdent("make(map[string]interface{})"), "APIOpts", reflect.Map)...)
+
+ p = append(p, &ast.IfStmt{
+ Cond: &ast.BinaryExpr{
+ X: ast.NewIdent("len(dS.cfg.DispatcherSCfg().AttributeSConns)"),
+ Op: token.NEQ,
+ Y: ast.NewIdent("0"),
+ },
+ Body: &ast.BlockStmt{List: []ast.Stmt{
+ &ast.IfStmt{
+ Init: &ast.AssignStmt{
+ Lhs: []ast.Expr{ast.NewIdent("err")},
+ Tok: token.ASSIGN,
+ Rhs: []ast.Expr{&ast.CallExpr{
+ Fun: &ast.SelectorExpr{
+ X: ast.NewIdent("dS"),
+ Sel: ast.NewIdent("authorize"),
+ },
+ Args: []ast.Expr{
+ ast.NewIdent("ctx"),
+ &ast.SelectorExpr{
+ X: ast.NewIdent("utils"),
+ Sel: ast.NewIdent(funcName),
+ },
+ tnt,
+ &ast.CallExpr{
+ Fun: &ast.SelectorExpr{
+ X: ast.NewIdent("utils"),
+ Sel: ast.NewIdent("IfaceAsString"),
+ },
+ Args: []ast.Expr{&ast.IndexExpr{
+ X: opts,
+ Index: &ast.SelectorExpr{
+ X: ast.NewIdent("utils"),
+ Sel: ast.NewIdent("OptsAPIKey"),
+ },
+ }},
+ },
+ },
+ }},
+ },
+ Cond: &ast.BinaryExpr{
+ X: ast.NewIdent("err"),
+ Op: token.NEQ,
+ Y: ast.NewIdent("nil"),
+ },
+ Body: &ast.BlockStmt{List: []ast.Stmt{&ast.ReturnStmt{}}},
+ },
+ },
+ },
+ })
+ p = append(p, &ast.ReturnStmt{Results: []ast.Expr{&ast.CallExpr{
+ Fun: &ast.SelectorExpr{
+ X: ast.NewIdent("dS"),
+ Sel: ast.NewIdent("Dispatch"),
+ },
+ Args: []ast.Expr{
+ ast.NewIdent("ctx"),
+ &ast.UnaryExpr{
+ Op: token.AND,
+ X: &ast.CompositeLit{
+ Type: ast.NewIdent("utils.CGREvent"),
+ Elts: []ast.Expr{
+ &ast.KeyValueExpr{
+ Key: ast.NewIdent(utils.Tenant),
+ Value: tnt,
+ },
+ &ast.KeyValueExpr{
+ Key: ast.NewIdent(utils.Event),
+ Value: ev,
+ },
+ &ast.KeyValueExpr{
+ Key: ast.NewIdent("APIOpts"),
+ Value: opts,
+ },
+ },
+ },
+ },
+ &ast.SelectorExpr{
+ X: ast.NewIdent("utils"),
+ Sel: ast.NewIdent(subsystem),
+ },
+ &ast.SelectorExpr{
+ X: ast.NewIdent("utils"),
+ Sel: ast.NewIdent(funcName),
+ },
+ ast.NewIdent("args"),
+ ast.NewIdent("reply"),
+ },
+ }},
+ })
+ return
+
+}
+
+func getArgType(args reflect.Type) ast.Expr {
+ if name := args.Name(); len(name) != 0 {
+ pkgpath := args.PkgPath()
+ if len(pkgpath) == 0 {
+ return ast.NewIdent(name)
+ }
+ return &ast.SelectorExpr{
+ X: ast.NewIdent(path.Base(pkgpath)),
+ Sel: ast.NewIdent(name),
+ }
+ }
+ switch args.Kind() {
+ default:
+ panic("unsuported argument")
+ case reflect.Bool, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+ reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
+ reflect.Uintptr, reflect.Float32, reflect.Float64, reflect.Complex64,
+ reflect.Complex128, reflect.String:
+ return ast.NewIdent(args.Name())
+ case reflect.Interface:
+ name := args.Name()
+ if len(name) == 0 {
+ name = "interface{}"
+ }
+ return ast.NewIdent(name)
+ case reflect.Ptr:
+ return &ast.StarExpr{
+ X: getArgType(args.Elem()),
+ }
+ case reflect.Struct:
+ pkgpath := args.PkgPath()
+ if len(pkgpath) == 0 {
+ return ast.NewIdent(args.Name())
+ }
+ return &ast.SelectorExpr{
+ X: ast.NewIdent(path.Base(pkgpath)),
+ Sel: ast.NewIdent(args.Name()),
+ }
+ case reflect.Array, reflect.Slice:
+ return &ast.ArrayType{
+ Elt: getArgType(args.Elem()),
+ }
+ case reflect.Map:
+ return &ast.MapType{
+ Key: getArgType(args.Key()),
+ Value: getArgType(args.Elem()),
+ }
+ }
+}
+
+func getImports(args reflect.Type) []string {
+ switch args.Kind() {
+ default:
+ panic("unsuported argument")
+ case reflect.Bool, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+ reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
+ reflect.Uintptr, reflect.Float32, reflect.Float64, reflect.Complex64,
+ reflect.Complex128, reflect.String, reflect.Interface:
+ return nil
+ case reflect.Ptr, reflect.Array, reflect.Slice:
+ return append(getImports(args.Elem()), args.PkgPath())
+ case reflect.Struct:
+ return []string{args.PkgPath()}
+ case reflect.Map:
+ args.PkgPath()
+ key := append(getImports(args.Key()), args.PkgPath())
+ return append(key, getImports(args.Elem())...)
+ }
+}
diff --git a/data/scripts/generate_dispatchers/generator_test.go b/data/scripts/generate_dispatchers/generator_test.go
new file mode 100644
index 000000000..ab370d03f
--- /dev/null
+++ b/data/scripts/generate_dispatchers/generator_test.go
@@ -0,0 +1,29 @@
+/*
+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 main
+
+/*
+func TestGenerate(t *testing.T) {
+ t.Errorf("%#v", writeFile(os.Stdout, "MetaAttributes", utils.EmptyString, new(engine.AttributeS)))
+}
+func TestGeneratePath(t *testing.T) {
+ path := generatePath(reflect.TypeOf(new(utils.TenantIDWithAPIOpts)), "Tenant", reflect.String)
+ t.Error(path)
+}
+*/
diff --git a/dispatchers/accounts.go b/dispatchers/accounts.go
index d69f04281..25d02282d 100644
--- a/dispatchers/accounts.go
+++ b/dispatchers/accounts.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -23,120 +24,174 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) AccountSv1Ping(args *utils.CGREvent, rpl *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
+func (dS *DispatcherService) AccountSv1GetAccount(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *utils.Account) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
}
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AccountSv1Ping, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AccountSv1GetAccount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaAccounts, utils.AccountSv1Ping, args, rpl)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1GetAccount, args, reply)
}
-
-func (dS *DispatcherService) AccountSv1AccountsForEvent(args *utils.CGREvent, reply *[]*utils.Account) (err error) {
+func (dS *DispatcherService) AccountSv1MaxAbstracts(ctx *context.Context, args *utils.CGREvent, reply *utils.EventCharges) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AccountSv1AccountsForEvent, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AccountSv1MaxAbstracts, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaAccounts, utils.AccountSv1AccountsForEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1MaxAbstracts, args, reply)
}
-
-func (dS *DispatcherService) AccountSv1MaxAbstracts(args *utils.CGREvent, reply *utils.EventCharges) (err error) {
+func (dS *DispatcherService) AccountSv1ActionRemoveBalance(ctx *context.Context, args *utils.ArgsActRemoveBalances, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AccountSv1MaxAbstracts, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AccountSv1ActionRemoveBalance, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaAccounts, utils.AccountSv1MaxAbstracts, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1ActionRemoveBalance, args, reply)
}
-
-func (dS *DispatcherService) AccountSv1DebitAbstracts(args *utils.CGREvent, reply *utils.EventCharges) (err error) {
+func (dS *DispatcherService) AccountSv1DebitAbstracts(ctx *context.Context, args *utils.CGREvent, reply *utils.EventCharges) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AccountSv1DebitAbstracts, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AccountSv1DebitAbstracts, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaAccounts, utils.AccountSv1DebitAbstracts, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1DebitAbstracts, args, reply)
}
-
-func (dS *DispatcherService) AccountSv1MaxConcretes(args *utils.CGREvent, reply *utils.EventCharges) (err error) {
+func (dS *DispatcherService) AccountSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AccountSv1MaxConcretes, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AccountSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaAccounts, utils.AccountSv1MaxConcretes, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1Ping, args, reply)
}
-
-func (dS *DispatcherService) AccountSv1DebitConcretes(args *utils.CGREvent, reply *utils.EventCharges) (err error) {
+func (dS *DispatcherService) AccountSv1MaxConcretes(ctx *context.Context, args *utils.CGREvent, reply *utils.EventCharges) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AccountSv1DebitConcretes, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AccountSv1MaxConcretes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaAccounts, utils.AccountSv1DebitConcretes, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1MaxConcretes, args, reply)
}
-
-func (dS *DispatcherService) AccountSv1ActionSetBalance(args *utils.ArgsActSetBalance, reply *string) (err error) {
+func (dS *DispatcherService) AccountSv1AccountsForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]*utils.Account) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AccountSv1ActionSetBalance, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AccountSv1AccountsForEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaAccounts, utils.AccountSv1ActionSetBalance, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1AccountsForEvent, args, reply)
}
-
-func (dS *DispatcherService) AccountSv1ActionRemoveBalance(args *utils.ArgsActRemoveBalances, reply *string) (err error) {
+func (dS *DispatcherService) AccountSv1DebitConcretes(ctx *context.Context, args *utils.CGREvent, reply *utils.EventCharges) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AccountSv1ActionRemoveBalance, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AccountSv1DebitConcretes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaAccounts, utils.AccountSv1ActionRemoveBalance, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1DebitConcretes, args, reply)
+}
+func (dS *DispatcherService) AccountSv1ActionSetBalance(ctx *context.Context, args *utils.ArgsActSetBalance, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AccountSv1ActionSetBalance, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAccounts, utils.AccountSv1ActionSetBalance, args, reply)
}
diff --git a/dispatchers/accounts_test.go b/dispatchers/accounts_test.go
index 401b6d7da..8fa594fd0 100644
--- a/dispatchers/accounts_test.go
+++ b/dispatchers/accounts_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 TestDspAccountSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.AccountSv1Ping(CGREvent, reply)
+ result := dspSrv.AccountSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -43,7 +44,7 @@ func TestDspAccountSv1PingNilArgs(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.AccountSv1Ping(nil, reply)
+ result := dspSrv.AccountSv1Ping(context.Background(), nil, 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 TestDspAccountSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.AccountSv1Ping(CGREvent, reply)
+ result := dspSrv.AccountSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -72,7 +73,7 @@ func TestDspAAccountsForEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*utils.Account
- result := dspSrv.AccountSv1AccountsForEvent(CGREvent, reply)
+ result := dspSrv.AccountSv1AccountsForEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -87,7 +88,7 @@ func TestDspAccountsForEventErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*utils.Account
- result := dspSrv.AccountSv1AccountsForEvent(CGREvent, reply)
+ result := dspSrv.AccountSv1AccountsForEvent(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 TestDspMaxAbstractsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.EventCharges
- result := dspSrv.AccountSv1MaxAbstracts(CGREvent, reply)
+ result := dspSrv.AccountSv1MaxAbstracts(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -116,7 +117,7 @@ func TestDspMaxAbstractsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.EventCharges
- result := dspSrv.AccountSv1MaxAbstracts(CGREvent, reply)
+ result := dspSrv.AccountSv1MaxAbstracts(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 TestDspDebitAbstractsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.EventCharges
- result := dspSrv.AccountSv1DebitAbstracts(CGREvent, reply)
+ result := dspSrv.AccountSv1DebitAbstracts(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -145,7 +146,7 @@ func TestDspDebitAbstractsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.EventCharges
- result := dspSrv.AccountSv1DebitAbstracts(CGREvent, reply)
+ result := dspSrv.AccountSv1DebitAbstracts(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -159,7 +160,7 @@ func TestDspMaxConcretesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.EventCharges
- result := dspSrv.AccountSv1MaxConcretes(CGREvent, reply)
+ result := dspSrv.AccountSv1MaxConcretes(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -174,7 +175,7 @@ func TestDspMaxConcretesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.EventCharges
- result := dspSrv.AccountSv1MaxConcretes(CGREvent, reply)
+ result := dspSrv.AccountSv1MaxConcretes(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -188,7 +189,7 @@ func TestDspDebitConcretesNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.EventCharges
- result := dspSrv.AccountSv1DebitConcretes(CGREvent, reply)
+ result := dspSrv.AccountSv1DebitConcretes(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -203,7 +204,7 @@ func TestDspDebitConcretesErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.EventCharges
- result := dspSrv.AccountSv1DebitConcretes(CGREvent, reply)
+ result := dspSrv.AccountSv1DebitConcretes(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 TestDspAccountSv1ActionSetBalanceNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.AccountSv1ActionSetBalance(CGREvent, reply)
+ result := dspSrv.AccountSv1ActionSetBalance(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -232,7 +233,7 @@ func TestDspAccountSv1ActionSetBalanceErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.AccountSv1ActionSetBalance(CGREvent, reply)
+ result := dspSrv.AccountSv1ActionSetBalance(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -246,7 +247,7 @@ func TestDspAAccountSv1ActionRemoveBalanceNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.AccountSv1ActionRemoveBalance(CGREvent, reply)
+ result := dspSrv.AccountSv1ActionRemoveBalance(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -261,7 +262,7 @@ func TestDspAccountSv1ActionRemoveBalanceErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.AccountSv1ActionRemoveBalance(CGREvent, reply)
+ result := dspSrv.AccountSv1ActionRemoveBalance(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/actions.go b/dispatchers/actions.go
index d219375ff..d7608d77a 100644
--- a/dispatchers/actions.go
+++ b/dispatchers/actions.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -23,50 +24,63 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ActionSv1Ping(args *utils.CGREvent, rpl *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ActionSv1Ping, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaActions, utils.ActionSv1Ping, args, rpl)
-}
-
-func (dS *DispatcherService) ActionSv1ScheduleActions(args *utils.CGREvent, rpl *string) (err error) {
- if args == nil {
- args = &utils.CGREvent{}
- }
+func (dS *DispatcherService) ActionSv1ExecuteActions(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ActionSv1ScheduleActions, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ActionSv1ExecuteActions, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaActions, utils.ActionSv1ScheduleActions, args, rpl)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaActions, utils.ActionSv1ExecuteActions, args, reply)
}
-
-func (dS *DispatcherService) ActionSv1ExecuteActions(args *utils.CGREvent, rpl *string) (err error) {
- if args == nil {
- args = &utils.CGREvent{}
- }
+func (dS *DispatcherService) ActionSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ActionSv1Ping, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ActionSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaActions, utils.ActionSv1Ping, args, rpl)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaActions, utils.ActionSv1Ping, args, reply)
+}
+func (dS *DispatcherService) ActionSv1ScheduleActions(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ActionSv1ScheduleActions, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaActions, utils.ActionSv1ScheduleActions, args, reply)
}
diff --git a/dispatchers/actions_test.go b/dispatchers/actions_test.go
index d01dd7f63..a7857192e 100644
--- a/dispatchers/actions_test.go
+++ b/dispatchers/actions_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 TestDspActionSv1PingNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ActionSv1Ping(CGREvent, reply)
+ result := dspSrv.ActionSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -43,7 +44,7 @@ func TestDspActionSv1PingNilArgs(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ActionSv1Ping(nil, reply)
+ result := dspSrv.ActionSv1Ping(context.Background(), nil, 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 TestDspActionSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ActionSv1Ping(CGREvent, reply)
+ result := dspSrv.ActionSv1Ping(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -72,7 +73,7 @@ func TestDspActionSv1ScheduleActionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ActionSv1ScheduleActions(CGREvent, reply)
+ result := dspSrv.ActionSv1ScheduleActions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -87,7 +88,7 @@ func TestDspActionSv1ScheduleActionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ActionSv1ScheduleActions(CGREvent, reply)
+ result := dspSrv.ActionSv1ScheduleActions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -99,7 +100,7 @@ func TestDspActionSv1ScheduleActionsNilArgs(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ActionSv1ScheduleActions(nil, reply)
+ result := dspSrv.ActionSv1ScheduleActions(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -113,7 +114,7 @@ func TestDspActionSv1ExecuteActionsNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ActionSv1ExecuteActions(CGREvent, reply)
+ result := dspSrv.ActionSv1ExecuteActions(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -128,7 +129,7 @@ func TestDspActionSv1ExecuteActionsErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.ActionSv1ExecuteActions(CGREvent, reply)
+ result := dspSrv.ActionSv1ExecuteActions(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -140,7 +141,7 @@ func TestDspActionSv1ExecuteActionsNilArgs(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ActionSv1ExecuteActions(nil, reply)
+ result := dspSrv.ActionSv1ExecuteActions(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
diff --git a/dispatchers/admins.go b/dispatchers/admins.go
new file mode 100644
index 000000000..efcc8ae35
--- /dev/null
+++ b/dispatchers/admins.go
@@ -0,0 +1,1374 @@
+/*
+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
+*/
+
+// do not modify this code because it's generated
+package dispatchers
+
+import (
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/apis"
+ "github.com/cgrates/cgrates/engine"
+ "github.com/cgrates/cgrates/utils"
+)
+
+func (dS *DispatcherService) AdminSv1GetDispatcherProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetDispatcherProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetDispatcherProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetFilterIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetFilterIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetFilterIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRateProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRateProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRateProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRateProfilesIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRateProfilesIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRateProfilesIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetResourceProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetResourceProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetResourceProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveDispatcherProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveDispatcherProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveDispatcherProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetFilter(ctx *context.Context, args *engine.FilterWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.Filter != nil && len(args.Filter.Tenant) != 0) {
+ tnt = args.Filter.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetFilter, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetFilter, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetAccount(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *utils.Account) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetAccount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetAccount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetAccountCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetAccountCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetAccountCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetDispatcherHostCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetDispatcherHostCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetDispatcherHostCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetDispatcherProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetDispatcherProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetDispatcherProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveFilterIndexes(ctx *context.Context, args *apis.AttrRemFilterIndexes, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveFilterIndexes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveFilterIndexes, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetActionProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ActionProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetActionProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetActionProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetFilterCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetFilterCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetFilterCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetReverseFilterHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *map[string]*engine.ReverseFilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetReverseFilterHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetReverseFilterHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRouteProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRouteProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRouteProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetRateProfile(ctx *context.Context, args *utils.APIRateProfile, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetRateProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetRateProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetChargersIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetChargersIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetChargersIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetDispatcherHost(ctx *context.Context, args *engine.DispatcherHostWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.DispatcherHost != nil && len(args.DispatcherHost.Tenant) != 0) {
+ tnt = args.DispatcherHost.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetDispatcherHost, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetDispatcherHost, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetChargerProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetChargerProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetChargerProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRateProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRateProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRateProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRateRatesIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRateRatesIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRateRatesIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetStatQueueProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetStatQueueProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetAccount(ctx *context.Context, args *apis.APIAccountWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.APIAccount != nil && len(args.APIAccount.Tenant) != 0) {
+ tnt = args.APIAccount.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetAccount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetAccount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1ComputeFilterIndexes(ctx *context.Context, args *utils.ArgsComputeFilterIndexes, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1ComputeFilterIndexes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1ComputeFilterIndexes, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetFilterIndexes(ctx *context.Context, args *apis.AttrGetFilterIndexes, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetFilterIndexes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetFilterIndexes, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveAccount(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveAccount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveAccount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveRateProfileRates(ctx *context.Context, args *utils.RemoveRPrfRates, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveRateProfileRates, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveRateProfileRates, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveThresholdProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveThresholdProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.APIRouteProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRouteProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRouteProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetThresholdProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetThresholdProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetThresholdProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetThresholdsIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetThresholdsIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetThresholdsIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveRouteProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveRouteProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetChargerProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetChargerProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetChargerProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetDispatcherHost, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetDispatcherHost, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRateProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *utils.RateProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRateProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRateProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRoutesIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRoutesIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRoutesIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetStatsIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetStatsIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetStatsIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveRateProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveRateProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveRateProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetDispatcherProfile(ctx *context.Context, args *apis.DispatcherWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.DispatcherProfile != nil && len(args.DispatcherProfile.Tenant) != 0) {
+ tnt = args.DispatcherProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetDispatcherProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetDispatcherProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetAccountsIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetAccountsIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetAccountsIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveFilter, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveFilter, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveResourceProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveResourceProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveResourceProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetActionsIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetActionsIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetActionsIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveChargerProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveChargerProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveChargerProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetAttributeProfile(ctx *context.Context, args *engine.APIAttributeProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.APIAttributeProfile != nil && len(args.APIAttributeProfile.Tenant) != 0) {
+ tnt = args.APIAttributeProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetAttributeProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetAttributeProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetStatQueueProfile(ctx *context.Context, args *engine.StatQueueProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.StatQueueProfile != nil && len(args.StatQueueProfile.Tenant) != 0) {
+ tnt = args.StatQueueProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetStatQueueProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetStatQueueProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetChargerProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetChargerProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetChargerProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetThresholdProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetThresholdProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1Ping, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetActionProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetActionProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetActionProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetAttributesIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetAttributesIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetAttributesIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetDispatchersIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetDispatchersIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetDispatchersIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetResourcesIndexesHealth(ctx *context.Context, args *engine.IndexHealthArgs, reply *engine.FilterIHReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetResourcesIndexesHealth, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetResourcesIndexesHealth, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetThresholdProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetThresholdProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetThresholdProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetResourceProfile(ctx *context.Context, args *engine.ResourceProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.ResourceProfile != nil && len(args.ResourceProfile.Tenant) != 0) {
+ tnt = args.ResourceProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetResourceProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetResourceProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetActionProfileCount(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetActionProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetActionProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetResourceProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetResourceProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetResourceProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetRouteProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetRouteProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetRouteProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetRouteProfile(ctx *context.Context, args *engine.APIRouteProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.APIRouteProfile != nil && len(args.APIRouteProfile.Tenant) != 0) {
+ tnt = args.APIRouteProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetRouteProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetRouteProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetThresholdProfile(ctx *context.Context, args *engine.ThresholdProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.ThresholdProfile != nil && len(args.ThresholdProfile.Tenant) != 0) {
+ tnt = args.ThresholdProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetThresholdProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetThresholdProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetAttributeProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.APIAttributeProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetAttributeProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetAttributeProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetAttributeProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetAttributeProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetAttributeProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetDispatcherHostIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetDispatcherHostIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetDispatcherHostIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetResourceProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetResourceProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetResourceProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetStatQueueProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetStatQueueProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetStatQueueProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveDispatcherHost, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveDispatcherHost, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetRateProfileRates(ctx *context.Context, args *utils.APIRateProfile, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetRateProfileRates, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetRateProfileRates, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetAccountIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetAccountIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetAccountIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetDispatcherProfileIDs(ctx *context.Context, args *utils.PaginatorWithTenant, reply *[]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetDispatcherProfileIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetDispatcherProfileIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Filter) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetFilter, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetFilter, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetStatQueueProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetStatQueueProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetStatQueueProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveActionProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveActionProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveActionProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveAttributeProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveAttributeProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveAttributeProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetActionProfile(ctx *context.Context, args *engine.ActionProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.ActionProfile != nil && len(args.ActionProfile.Tenant) != 0) {
+ tnt = args.ActionProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetActionProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetActionProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1ComputeFilterIndexIDs(ctx *context.Context, args *utils.ArgsComputeFilterIndexIDs, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1ComputeFilterIndexIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1ComputeFilterIndexIDs, args, reply)
+}
+func (dS *DispatcherService) AdminSv1GetAttributeProfileCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1GetAttributeProfileCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1GetAttributeProfileCount, args, reply)
+}
+func (dS *DispatcherService) AdminSv1RemoveStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1RemoveStatQueueProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1RemoveStatQueueProfile, args, reply)
+}
+func (dS *DispatcherService) AdminSv1SetChargerProfile(ctx *context.Context, args *apis.ChargerWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.ChargerProfile != nil && len(args.ChargerProfile.Tenant) != 0) {
+ tnt = args.ChargerProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AdminSv1SetChargerProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAdminS, utils.AdminSv1SetChargerProfile, args, reply)
+}
diff --git a/dispatchers/analyzers.go b/dispatchers/analyzers.go
new file mode 100644
index 000000000..2ccdb958f
--- /dev/null
+++ b/dispatchers/analyzers.go
@@ -0,0 +1,58 @@
+/*
+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
+*/
+
+// do not modify this code because it's generated
+package dispatchers
+
+import (
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/analyzers"
+ "github.com/cgrates/cgrates/utils"
+)
+
+func (dS *DispatcherService) AnalyzerSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AnalyzerSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAnalyzer, utils.AnalyzerSv1Ping, args, reply)
+}
+func (dS *DispatcherService) AnalyzerSv1StringQuery(ctx *context.Context, args *analyzers.QueryArgs, reply *[]map[string]interface{}) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AnalyzerSv1StringQuery, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAnalyzer, utils.AnalyzerSv1StringQuery, args, reply)
+}
diff --git a/dispatchers/attributes.go b/dispatchers/attributes.go
index ac078ca27..be5fb3099 100644
--- a/dispatchers/attributes.go
+++ b/dispatchers/attributes.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -24,41 +25,63 @@ import (
"github.com/cgrates/cgrates/utils"
)
-// AttributeSv1Ping interrogates AttributeS server responsible to process the event
-func (dS *DispatcherService) AttributeSv1Ping(ctx *context.Context, args *utils.CGREvent,
- reply *string) (err error) {
- return dS.ping(ctx, utils.MetaAttributes, utils.AttributeSv1Ping, args, reply)
-}
-
-// AttributeSv1GetAttributeForEvent is the dispatcher method for AttributeSv1.GetAttributeForEvent
-func (dS *DispatcherService) AttributeSv1GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent,
- reply *engine.AttributeProfile) (err error) {
+func (dS *DispatcherService) AttributeSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AttributeSv1GetAttributeForEvent, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AttributeSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(ctx, args, utils.MetaAttributes, utils.AttributeSv1GetAttributeForEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAttributes, utils.AttributeSv1Ping, args, reply)
}
-
-// AttributeSv1ProcessEvent .
-func (dS *DispatcherService) AttributeSv1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
- reply *engine.AttrSProcessEventReply) (err error) {
+func (dS *DispatcherService) AttributeSv1GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.APIAttributeProfile) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.AttributeSv1ProcessEvent, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.AttributeSv1GetAttributeForEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
-
}
- return dS.Dispatch(ctx, args, utils.MetaAttributes, utils.AttributeSv1ProcessEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAttributes, utils.AttributeSv1GetAttributeForEvent, args, reply)
+}
+func (dS *DispatcherService) AttributeSv1ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.AttrSProcessEventReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.AttributeSv1ProcessEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaAttributes, utils.AttributeSv1ProcessEvent, args, reply)
}
diff --git a/dispatchers/attributes_test.go b/dispatchers/attributes_test.go
index 8c3265727..7e28c29b2 100644
--- a/dispatchers/attributes_test.go
+++ b/dispatchers/attributes_test.go
@@ -86,7 +86,7 @@ func TestDspAttributeSv1GetAttributeForEventError(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
ev := &utils.CGREvent{}
- var reply *engine.AttributeProfile
+ var reply *engine.APIAttributeProfile
err := dspSrv.AttributeSv1GetAttributeForEvent(context.Background(), ev, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if err == nil || err.Error() != expected {
@@ -101,7 +101,7 @@ func TestDspAttributeSv1GetAttributeForEventErrorTenant(t *testing.T) {
ev := &utils.CGREvent{
Tenant: "tenant",
}
- var reply *engine.AttributeProfile
+ var reply *engine.APIAttributeProfile
err := dspSrv.AttributeSv1GetAttributeForEvent(context.Background(), ev, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if err == nil || err.Error() != expected {
@@ -116,7 +116,7 @@ func TestDspAttributeSv1GetAttributeForEventErrorAttributeS(t *testing.T) {
Tenant: "tenant",
}
- var reply *engine.AttributeProfile
+ var reply *engine.APIAttributeProfile
err := dspSrv.AttributeSv1GetAttributeForEvent(context.Background(), ev, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if err == nil || err.Error() != expected {
diff --git a/dispatchers/caches.go b/dispatchers/caches.go
index b55f64062..796f77314 100644
--- a/dispatchers/caches.go
+++ b/dispatchers/caches.go
@@ -16,313 +16,288 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
- "time"
-
"github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
+ "time"
)
-// CacheSv1Ping interogates CacheSv1 server responsible to process the event
-func (dS *DispatcherService) CacheSv1Ping(args *utils.CGREvent,
- reply *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
- }
+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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1Ping, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1GetItemExpiryTime, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaCaches, utils.CacheSv1Ping, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1GetItemExpiryTime, args, reply)
}
-
-// CacheSv1GetItemIDs returns the IDs for cacheID with given prefix
-func (dS *DispatcherService) CacheSv1GetItemIDs(args *utils.ArgsGetCacheItemIDsWithAPIOpts,
- 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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1GetItemIDs, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1LoadCache, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1GetItemIDs, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1LoadCache, args, reply)
}
-
-// CacheSv1HasItem verifies the existence of an Item in cache
-func (dS *DispatcherService) CacheSv1HasItem(args *utils.ArgsGetCacheItemWithAPIOpts,
- reply *bool) (err error) {
+func (dS *DispatcherService) CacheSv1HasItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts, reply *bool) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1HasItem, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1HasItem, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
-
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- },
- utils.MetaCaches, utils.CacheSv1HasItem, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1HasItem, args, reply)
}
-
-// CacheSv1GetItemExpiryTime returns the expiryTime for an item
-func (dS *DispatcherService) CacheSv1GetItemExpiryTime(args *utils.ArgsGetCacheItemWithAPIOpts,
- reply *time.Time) (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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1GetItemExpiryTime, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1ReplicateSet, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
-
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1GetItemExpiryTime, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1ReplicateSet, args, reply)
}
-
-// CacheSv1RemoveItem removes the Item with ID from cache
-func (dS *DispatcherService) CacheSv1RemoveItem(args *utils.ArgsGetCacheItemWithAPIOpts,
- 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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1RemoveItem, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1RemoveGroup, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1RemoveItem, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1RemoveGroup, args, reply)
}
-
-// CacheSv1RemoveItems removes the Item with ID from cache
-func (dS *DispatcherService) CacheSv1RemoveItems(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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1RemoveItems, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1ReloadCache, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1RemoveItems, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1ReloadCache, args, reply)
}
-
-// CacheSv1Clear will clear partitions in the cache (nil fol all, empty slice for none)
-func (dS *DispatcherService) CacheSv1Clear(args *utils.AttrCacheIDsWithAPIOpts,
- reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1RemoveItem(ctx *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1Clear, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1RemoveItem, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1Clear, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1RemoveItem, args, reply)
}
-
-// CacheSv1GetCacheStats returns CacheStats filtered by cacheIDs
-func (dS *DispatcherService) CacheSv1GetCacheStats(args *utils.AttrCacheIDsWithAPIOpts,
- reply *map[string]*ltcache.CacheStats) (err error) {
+func (dS *DispatcherService) CacheSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1GetCacheStats, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1GetCacheStats, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1Ping, args, reply)
}
-
-// CacheSv1PrecacheStatus checks status of active precache processes
-func (dS *DispatcherService) CacheSv1PrecacheStatus(args *utils.AttrCacheIDsWithAPIOpts, reply *map[string]string) (err error) {
+func (dS *DispatcherService) CacheSv1RemoveItems(ctx *context.Context, args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1PrecacheStatus, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1RemoveItems, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1PrecacheStatus, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1RemoveItems, args, reply)
}
-
-// CacheSv1HasGroup checks existence of a group in cache
-func (dS *DispatcherService) CacheSv1HasGroup(args *utils.ArgsGetGroupWithAPIOpts,
- reply *bool) (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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1HasGroup, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1ReplicateRemove, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1HasGroup, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1ReplicateRemove, args, reply)
}
-
-// CacheSv1GetGroupItemIDs returns a list of itemIDs in a cache group
-func (dS *DispatcherService) CacheSv1GetGroupItemIDs(args *utils.ArgsGetGroupWithAPIOpts,
- reply *[]string) (err error) {
+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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1GetGroupItemIDs, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1GetCacheStats, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1GetGroupItemIDs, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1GetCacheStats, args, reply)
}
-
-// 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) CacheSv1GetGroupItemIDs(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts, reply *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1RemoveGroup, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1GetGroupItemIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1RemoveGroup, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1GetGroupItemIDs, args, reply)
}
-
-// CacheSv1ReloadCache reloads cache from DB for a prefix or completely
-func (dS *DispatcherService) CacheSv1ReloadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1HasGroup(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts, reply *bool) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1ReloadCache, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1HasGroup, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1ReloadCache, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1HasGroup, args, reply)
}
-
-// CacheSv1LoadCache loads cache from DB for a prefix or completely
-func (dS *DispatcherService) CacheSv1LoadCache(args *utils.AttrReloadCacheWithAPIOpts, reply *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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1LoadCache, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1PrecacheStatus, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1LoadCache, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1PrecacheStatus, args, reply)
}
-
-// CacheSv1ReplicateRemove remove an item
-func (dS *DispatcherService) CacheSv1ReplicateRemove(args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1GetItemIDs(ctx *context.Context, args *utils.ArgsGetCacheItemIDsWithAPIOpts, reply *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1ReplicateRemove, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1GetItemIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1ReplicateRemove, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1GetItemIDs, args, reply)
}
-
-// CacheSv1ReplicateSet replicate an item
-func (dS *DispatcherService) CacheSv1ReplicateSet(args *utils.ArgCacheReplicateSet, reply *string) (err error) {
+func (dS *DispatcherService) CacheSv1Clear(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CacheSv1ReplicateSet, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CacheSv1Clear, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaCaches, utils.CacheSv1ReplicateSet, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1Clear, args, reply)
}
diff --git a/dispatchers/caches_test.go b/dispatchers/caches_test.go
index d7cd7f308..d7cd8dd65 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/utils"
"github.com/cgrates/ltcache"
@@ -37,7 +38,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)
@@ -48,7 +49,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)
@@ -66,7 +67,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)
@@ -79,7 +80,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)
@@ -93,7 +94,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)
@@ -106,7 +107,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)
@@ -120,7 +121,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)
@@ -133,7 +134,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)
@@ -147,7 +148,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)
@@ -160,7 +161,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)
@@ -174,7 +175,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)
@@ -187,7 +188,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)
@@ -201,7 +202,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)
@@ -214,7 +215,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)
@@ -228,7 +229,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)
@@ -241,7 +242,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)
@@ -255,7 +256,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)
@@ -268,7 +269,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)
@@ -282,7 +283,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)
@@ -295,7 +296,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)
@@ -309,7 +310,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)
@@ -322,7 +323,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)
@@ -336,7 +337,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)
@@ -349,7 +350,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)
@@ -363,7 +364,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)
@@ -376,7 +377,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)
@@ -390,7 +391,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)
@@ -403,7 +404,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)
@@ -417,7 +418,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)
@@ -430,7 +431,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)
@@ -444,7 +445,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)
@@ -457,7 +458,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)
@@ -471,7 +472,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)
diff --git a/dispatchers/cdrs.go b/dispatchers/cdrs.go
index 94b7ce747..bd5eadae8 100644
--- a/dispatchers/cdrs.go
+++ b/dispatchers/cdrs.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -23,52 +24,63 @@ import (
"github.com/cgrates/cgrates/utils"
)
-// CDRsV1Ping interogates CDRsV1 server responsible to process the event
-func (dS *DispatcherService) CDRsV1Ping(args *utils.CGREvent,
- reply *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
- }
+func (dS *DispatcherService) CDRsV1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CDRsV1Ping, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CDRsV1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaCDRs,
- utils.CDRsV1Ping, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCDRs, utils.CDRsV1Ping, args, reply)
}
-
-func (dS *DispatcherService) CDRsV1ProcessEvent(args *utils.CGREvent, reply *string) (err error) {
+func (dS *DispatcherService) CDRsV1ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CDRsV1ProcessEvent, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CDRsV1ProcessEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaCDRs,
- utils.CDRsV1ProcessEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCDRs, utils.CDRsV1ProcessEvent, args, reply)
}
-
-func (dS *DispatcherService) CDRsV2ProcessEvent(args *utils.CGREvent, reply *[]*utils.EventWithFlags) (err error) {
- tnt := args.Tenant
- if tnt == utils.EmptyString {
- tnt = dS.cfg.GeneralCfg().DefaultTenant
+func (dS *DispatcherService) CDRsV1ProcessEventWithGet(ctx *context.Context, args *utils.CGREvent, reply *[]*utils.EventWithFlags) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
}
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CDRsV2ProcessEvent, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.CDRsV1ProcessEventWithGet, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaCDRs,
- utils.CDRsV2ProcessEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCDRs, utils.CDRsV1ProcessEventWithGet, args, reply)
}
diff --git a/dispatchers/cdrs_test.go b/dispatchers/cdrs_test.go
index 3ced13883..d8186f261 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/utils"
)
@@ -31,7 +32,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)
@@ -45,7 +46,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)
@@ -57,7 +58,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)
@@ -72,7 +73,7 @@ func TestDspCDRsV1ProcessEventError(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CDRsV1ProcessEvent(ev, reply)
+ result := dspSrv.CDRsV1ProcessEvent(context.Background(), ev, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -86,12 +87,14 @@ func TestDspCDRsV1ProcessEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.CDRsV1ProcessEvent(ev, reply)
+ result := dspSrv.CDRsV1ProcessEvent(context.Background(), ev, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
}
}
+
+/*
func TestDspCDRsV2ProcessEventError(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
@@ -100,7 +103,7 @@ func TestDspCDRsV2ProcessEventError(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*utils.EventWithFlags
- result := dspSrv.CDRsV2ProcessEvent(ev, reply)
+ result := dspSrv.CDRsV2ProcessEvent(context.Background(), ev, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -114,7 +117,7 @@ func TestDspCDRsV2ProcessEventNil(t *testing.T) {
Tenant: "tenant",
}
var reply *[]*utils.EventWithFlags
- result := dspSrv.CDRsV2ProcessEvent(ev, reply)
+ result := dspSrv.CDRsV2ProcessEvent(context.Background(), ev, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -127,9 +130,10 @@ func TestDspCDRsV2ProcessEventErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
ev := &utils.CGREvent{}
var reply *[]*utils.EventWithFlags
- result := dspSrv.CDRsV2ProcessEvent(ev, reply)
+ result := dspSrv.CDRsV2ProcessEvent(context.Background(), ev, 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 6f80ee1b4..3d1574436 100644
--- a/dispatchers/chargers.go
+++ b/dispatchers/chargers.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -24,49 +25,63 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ChargerSv1Ping(args *utils.CGREvent, reply *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
- }
+func (dS *DispatcherService) ChargerSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ChargerSv1Ping, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ChargerSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaChargers, utils.ChargerSv1Ping, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaChargers, utils.ChargerSv1Ping, args, reply)
}
-
-func (dS *DispatcherService) ChargerSv1GetChargersForEvent(args *utils.CGREvent,
- reply *engine.ChargerProfiles) (err error) {
+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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ChargerSv1GetChargersForEvent, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ChargerSv1GetChargersForEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaChargers, utils.ChargerSv1GetChargersForEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaChargers, utils.ChargerSv1GetChargersForEvent, args, reply)
}
-
-func (dS *DispatcherService) ChargerSv1ProcessEvent(args *utils.CGREvent,
- reply *[]*engine.ChrgSProcessEventReply) (err error) {
+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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ChargerSv1ProcessEvent, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ChargerSv1ProcessEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaChargers, utils.ChargerSv1ProcessEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaChargers, utils.ChargerSv1ProcessEvent, args, reply)
}
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 ce9c9f4fd..527887c90 100644
--- a/dispatchers/config.go
+++ b/dispatchers/config.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -24,87 +25,125 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ConfigSv1GetConfig(args *config.SectionWithAPIOpts, reply *map[string]interface{}) (err error) {
+func (dS *DispatcherService) ConfigSv1StoreCfgInDB(ctx *context.Context, args *config.SectionWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ConfigSv1GetConfig, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ConfigSv1StoreCfgInDB, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaConfig, utils.ConfigSv1GetConfig, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaConfig, utils.ConfigSv1StoreCfgInDB, args, reply)
}
-
-func (dS *DispatcherService) ConfigSv1ReloadConfig(args *config.ReloadArgs, reply *string) (err error) {
+func (dS *DispatcherService) ConfigSv1GetConfig(ctx *context.Context, args *config.SectionWithAPIOpts, reply *map[string]interface{}) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ConfigSv1ReloadConfig, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ConfigSv1GetConfig, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaConfig, utils.ConfigSv1ReloadConfig, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaConfig, utils.ConfigSv1GetConfig, args, reply)
}
-
-func (dS *DispatcherService) ConfigSv1SetConfig(args *config.SetConfigArgs, 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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ConfigSv1SetConfig, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ConfigSv1GetConfigAsJSON, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaConfig, utils.ConfigSv1SetConfig, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaConfig, utils.ConfigSv1GetConfigAsJSON, args, reply)
}
-
-func (dS *DispatcherService) ConfigSv1SetConfigFromJSON(args *config.SetConfigFromJSONArgs, 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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ConfigSv1SetConfigFromJSON, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ConfigSv1ReloadConfig, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaConfig, utils.ConfigSv1SetConfigFromJSON, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaConfig, utils.ConfigSv1ReloadConfig, args, reply)
}
-
-func (dS *DispatcherService) ConfigSv1GetConfigAsJSON(args *config.SectionWithAPIOpts, 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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ConfigSv1GetConfigAsJSON, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ConfigSv1SetConfig, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaConfig, utils.ConfigSv1GetConfigAsJSON, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaConfig, utils.ConfigSv1SetConfig, args, reply)
+}
+func (dS *DispatcherService) ConfigSv1SetConfigFromJSON(ctx *context.Context, args *config.SetConfigFromJSONArgs, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ConfigSv1SetConfigFromJSON, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaConfig, utils.ConfigSv1SetConfigFromJSON, args, reply)
+}
+func (dS *DispatcherService) ConfigSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ConfigSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaConfig, utils.ConfigSv1Ping, args, reply)
}
diff --git a/dispatchers/config_test.go b/dispatchers/config_test.go
index 65007c8b8..5da061334 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]interface{}
- 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]interface{}
- 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
new file mode 100644
index 000000000..f579eb73e
--- /dev/null
+++ b/dispatchers/cores.go
@@ -0,0 +1,168 @@
+/*
+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
+*/
+
+// do not modify this code because it's generated
+package dispatchers
+
+import (
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/utils"
+)
+
+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
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.CoreSv1StopMemoryProfiling, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1StopMemoryProfiling, args, reply)
+}
+func (dS *DispatcherService) CoreSv1Shutdown(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.CoreSv1Shutdown, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1Shutdown, args, reply)
+}
+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
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.CoreSv1Sleep, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1Sleep, args, reply)
+}
+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
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.CoreSv1StartCPUProfiling, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1StartCPUProfiling, args, reply)
+}
+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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.CoreSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1Ping, args, reply)
+}
+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
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.CoreSv1StartMemoryProfiling, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1StartMemoryProfiling, args, reply)
+}
+func (dS *DispatcherService) CoreSv1Status(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *map[string]interface{}) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.CoreSv1Status, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1Status, args, reply)
+}
+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
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.CoreSv1StopCPUProfiling, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCore, utils.CoreSv1StopCPUProfiling, args, reply)
+}
diff --git a/dispatchers/dispatchers.go b/dispatchers/dispatchers.go
index a88716c12..631ba3f17 100644
--- a/dispatchers/dispatchers.go
+++ b/dispatchers/dispatchers.go
@@ -1,3 +1,4 @@
+//go:generate go run ../data/scripts/generate_dispatchers/generator.go
/*
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
Copyright (C) ITsysCOM GmbH
@@ -55,9 +56,9 @@ func (dS *DispatcherService) Shutdown() {
utils.Logger.Info(fmt.Sprintf("<%s> service shutdown complete", utils.DispatcherS))
}
-func (dS *DispatcherService) authorizeEvent(ev *utils.CGREvent,
+func (dS *DispatcherService) authorizeEvent(ctx *context.Context, ev *utils.CGREvent,
reply *engine.AttrSProcessEventReply) (err error) {
- if err = dS.connMgr.Call(context.TODO(), dS.cfg.DispatcherSCfg().AttributeSConns,
+ if err = dS.connMgr.Call(ctx, dS.cfg.DispatcherSCfg().AttributeSConns,
utils.AttributeSv1ProcessEvent, ev, reply); err != nil {
if err.Error() == utils.ErrNotFound.Error() {
err = utils.ErrUnknownApiKey
@@ -67,7 +68,10 @@ func (dS *DispatcherService) authorizeEvent(ev *utils.CGREvent,
return
}
-func (dS *DispatcherService) authorize(method, tenant string, apiKey string) (err error) {
+func (dS *DispatcherService) authorize2(method, tenant string, apiKey string) (err error) {
+ return dS.authorize(context.Background(), method, tenant, apiKey)
+}
+func (dS *DispatcherService) authorize(ctx *context.Context, method, tenant string, apiKey string) (err error) {
if apiKey == "" {
return utils.NewErrMandatoryIeMissing(utils.APIKey)
}
@@ -83,7 +87,7 @@ func (dS *DispatcherService) authorize(method, tenant string, apiKey string) (er
},
}
var rplyEv engine.AttrSProcessEventReply
- if err = dS.authorizeEvent(ev, &rplyEv); err != nil {
+ if err = dS.authorizeEvent(ctx, ev, &rplyEv); err != nil {
return
}
var apiMethods string
@@ -218,7 +222,7 @@ func (dS *DispatcherService) ping(ctx *context.Context, subsys, method string, a
tnt = args.Tenant
}
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(method, tnt,
+ if err = dS.authorize(ctx, method, tnt,
utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
return
}
@@ -226,51 +230,51 @@ func (dS *DispatcherService) ping(ctx *context.Context, subsys, method string, a
return dS.Dispatch(ctx, args, subsys, method, args, reply)
}
-func (dS *DispatcherService) DispatcherSv1RemoteStatus(args *utils.TenantWithAPIOpts,
+func (dS *DispatcherService) DispatcherSv1RemoteStatus(ctx *context.Context, args *utils.TenantWithAPIOpts,
reply *map[string]interface{}) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args.Tenant != utils.EmptyString {
tnt = args.Tenant
}
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CoreSv1Status, tnt,
+ if err = dS.authorize(ctx, utils.CoreSv1Status, tnt,
utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.Background(), &utils.CGREvent{
+ return dS.Dispatch(ctx, &utils.CGREvent{
Tenant: tnt,
APIOpts: args.APIOpts,
}, 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
}
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CoreSv1Sleep, tnt,
+ if err = dS.authorize(ctx, utils.CoreSv1Sleep, tnt,
utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.Background(), &utils.CGREvent{
+ return dS.Dispatch(ctx, &utils.CGREvent{
Tenant: tnt,
APIOpts: args.APIOpts,
}, 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
}
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.CoreSv1Ping, tnt,
+ if err = dS.authorize(ctx, utils.CoreSv1Ping, tnt,
utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.Background(), args, utils.MetaCore, utils.CoreSv1Ping, args, reply)
+ return dS.Dispatch(ctx, args, utils.MetaCore, utils.CoreSv1Ping, args, reply)
}
diff --git a/dispatchers/dispatchers_test.go b/dispatchers/dispatchers_test.go
index 925bb45aa..bf17c87d8 100644
--- a/dispatchers/dispatchers_test.go
+++ b/dispatchers/dispatchers_test.go
@@ -126,7 +126,7 @@ func TestDispatcherauthorizeEvent(t *testing.T) {
dsp := NewDispatcherService(dm, cfg, fltr, connMgr)
ev := &utils.CGREvent{}
reply := &engine.AttrSProcessEventReply{}
- err := dsp.authorizeEvent(ev, reply)
+ err := dsp.authorizeEvent(context.Background(), ev, reply)
expected := "MANDATORY_IE_MISSING: [connIDs]"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -141,7 +141,7 @@ func TestDispatcherAuthorizeEventErr(t *testing.T) {
dsp := NewDispatcherService(dm, cfg, fltr, connMgr)
ev := &utils.CGREvent{}
reply := &engine.AttrSProcessEventReply{}
- err := dsp.authorizeEvent(ev, reply)
+ err := dsp.authorizeEvent(context.Background(), ev, reply)
expected := "MANDATORY_IE_MISSING: [connIDs]"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -203,7 +203,7 @@ func TestDispatcherAuthorizeError(t *testing.T) {
}
connMng := engine.NewConnManager(cfg)
dsp := NewDispatcherService(nil, cfg, nil, connMng)
- err := dsp.authorize("", "cgrates.org", utils.APIMethods)
+ err := dsp.authorize2("", "cgrates.org", utils.APIMethods)
expected := "dial tcp: address error: missing port in address"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -227,7 +227,7 @@ func TestDispatcherAuthorizeError2(t *testing.T) {
}
connMng := engine.NewConnManager(cfg)
dsp := NewDispatcherService(nil, cfg, nil, connMng)
- err := dsp.authorize("", "cgrates.org", utils.APIMethods)
+ err := dsp.authorize2("", "cgrates.org", utils.APIMethods)
expected := "dial tcp: address error: missing port in address"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -248,7 +248,7 @@ func TestDispatcherServiceAuthorizeEvenError1(t *testing.T) {
reply := &engine.AttrSProcessEventReply{}
engine.Cache.SetWithoutReplicate(utils.CacheRPCConnections, "connID",
nil, nil, true, utils.NonTransactional)
- err := dsp.authorizeEvent(ev, reply)
+ err := dsp.authorizeEvent(context.Background(), ev, reply)
expected := "UNKNOWN_API_KEY"
if err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
@@ -282,7 +282,7 @@ func TestDispatcherServiceAuthorizeEventError2(t *testing.T) {
value, nil, true, utils.NonTransactional)
expected := "dial tcp: missing address"
- if err := dsp.authorizeEvent(ev, reply); err == nil || err.Error() != expected {
+ if err := dsp.authorizeEvent(context.Background(), ev, reply); err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
}
engine.Cache = cacheInit
@@ -327,7 +327,7 @@ func TestDispatcherServiceAuthorizeEventError3(t *testing.T) {
engine.Cache.SetWithoutReplicate(utils.CacheRPCConnections, "testID",
value, nil, true, utils.NonTransactional)
rply := &engine.AttrSProcessEventReply{}
- if err := dsp.authorizeEvent(ev, rply); err != nil {
+ if err := dsp.authorizeEvent(context.Background(), ev, rply); err != nil {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
engine.Cache = cacheInit
@@ -376,7 +376,7 @@ func TestDispatcherServiceAuthorizeError(t *testing.T) {
engine.Cache.SetWithoutReplicate(utils.CacheRPCConnections, "testID",
value, nil, true, utils.NonTransactional)
expected := "UNAUTHORIZED_API"
- if err := dsp.authorize(utils.APIMethods, "testTenant", "apikey"); err == nil || err.Error() != expected {
+ if err := dsp.authorize2(utils.APIMethods, "testTenant", "apikey"); err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
}
engine.Cache = cacheInit
@@ -424,7 +424,7 @@ func TestDispatcherServiceAuthorizeError2(t *testing.T) {
engine.Cache.SetWithoutReplicate(utils.CacheRPCConnections, "testID",
value, nil, true, utils.NonTransactional)
expected := "NOT_FOUND"
- if err := dsp.authorize(utils.APIMethods, "testTenant", "apikey"); err == nil || err.Error() != expected {
+ if err := dsp.authorize2(utils.APIMethods, "testTenant", "apikey"); err == nil || err.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
}
engine.Cache = cacheInit
@@ -473,7 +473,7 @@ func TestDispatcherServiceAuthorizeError3(t *testing.T) {
engine.Cache = newCache
engine.Cache.SetWithoutReplicate(utils.CacheRPCConnections, "testID",
value, nil, true, utils.NonTransactional)
- if err := dsp.authorize("testMethod", "testTenant", "apikey"); err != nil {
+ if err := dsp.authorize2("testMethod", "testTenant", "apikey"); err != nil {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
engine.Cache = cacheInit
diff --git a/dispatchers/ees.go b/dispatchers/ees.go
new file mode 100644
index 000000000..88f0dd5e0
--- /dev/null
+++ b/dispatchers/ees.go
@@ -0,0 +1,84 @@
+/*
+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
+*/
+
+// do not modify this code because it's generated
+package dispatchers
+
+import (
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/ees"
+ "github.com/cgrates/cgrates/utils"
+)
+
+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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.EeSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaEEs, utils.EeSv1Ping, args, reply)
+}
+func (dS *DispatcherService) EeSv1ArchiveEventsInReply(ctx *context.Context, args *ees.ArchiveEventsArgs, reply *[]uint8) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.EeSv1ArchiveEventsInReply, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaEEs, utils.EeSv1ArchiveEventsInReply, args, reply)
+}
+func (dS *DispatcherService) EeSv1ProcessEvent(ctx *context.Context, args *utils.CGREventWithEeIDs, reply *map[string]map[string]interface{}) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.CGREvent != nil && len(args.CGREvent.Tenant) != 0) {
+ tnt = args.CGREvent.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil && args.CGREvent != nil {
+ ev = args.CGREvent.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil && args.CGREvent != nil {
+ opts = args.CGREvent.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.EeSv1ProcessEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaEEs, utils.EeSv1ProcessEvent, args, reply)
+}
diff --git a/dispatchers/guardian.go b/dispatchers/guardian.go
index 97fe4ecfb..dabf8e61a 100644
--- a/dispatchers/guardian.go
+++ b/dispatchers/guardian.go
@@ -31,7 +31,7 @@ func (dS *DispatcherService) GuardianSv1Ping(args *utils.CGREvent,
}
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.GuardianSv1Ping, args.Tenant,
+ if err = dS.authorize2(utils.GuardianSv1Ping, args.Tenant,
utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
return
}
@@ -47,7 +47,7 @@ func (dS *DispatcherService) GuardianSv1RemoteLock(args AttrRemoteLockWithAPIOpt
tnt = args.Tenant
}
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.GuardianSv1RemoteLock, tnt,
+ if err = dS.authorize2(utils.GuardianSv1RemoteLock, tnt,
utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
return
}
@@ -66,7 +66,7 @@ func (dS *DispatcherService) GuardianSv1RemoteUnlock(args AttrRemoteUnlockWithAP
tnt = args.Tenant
}
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.GuardianSv1RemoteUnlock, tnt,
+ if err = dS.authorize2(utils.GuardianSv1RemoteUnlock, tnt,
utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
return
}
diff --git a/dispatchers/loaders.go b/dispatchers/loaders.go
new file mode 100644
index 000000000..bde8687d6
--- /dev/null
+++ b/dispatchers/loaders.go
@@ -0,0 +1,61 @@
+/*
+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
+*/
+
+// do not modify this code because it's generated
+package dispatchers
+
+import (
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/loaders"
+ "github.com/cgrates/cgrates/utils"
+)
+
+func (dS *DispatcherService) LoaderSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.LoaderSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaLoaders, utils.LoaderSv1Ping, args, reply)
+}
+func (dS *DispatcherService) LoaderSv1Run(ctx *context.Context, args *loaders.ArgsProcessFolder, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.LoaderSv1Run, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaLoaders, utils.LoaderSv1Run, args, reply)
+}
diff --git a/dispatchers/rates.go b/dispatchers/rates.go
index a92183c6b..e9429177a 100644
--- a/dispatchers/rates.go
+++ b/dispatchers/rates.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -23,30 +24,43 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) RateSv1Ping(args *utils.CGREvent, rpl *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
+func (dS *DispatcherService) RateSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
}
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.RateSv1Ping, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.RateSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.RateS, utils.RateSv1Ping, args, rpl)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.RateS, utils.RateSv1Ping, args, reply)
}
-
-func (dS *DispatcherService) RateSv1CostForEvent(args *utils.CGREvent, rpCost *utils.RateProfileCost) (err error) {
- if args == nil {
- args = &utils.CGREvent{}
+func (dS *DispatcherService) RateSv1CostForEvent(ctx *context.Context, args *utils.CGREvent, reply *utils.RateProfileCost) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
}
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.RateSv1CostForEvent, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.RateSv1CostForEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.RateS, utils.RateSv1CostForEvent, args, rpCost)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.RateS, utils.RateSv1CostForEvent, args, reply)
}
diff --git a/dispatchers/rates_test.go b/dispatchers/rates_test.go
index c03bc7fa8..84955dd11 100644
--- a/dispatchers/rates_test.go
+++ b/dispatchers/rates_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 TestDspRateSv1PingErrorCase2(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.RateSv1Ping(CGREvent, reply)
+ result := dspSrv.RateSv1Ping(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -47,7 +48,7 @@ func TestDspRateSv1PingErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *string
- result := dspSrv.RateSv1Ping(CGREvent, reply)
+ result := dspSrv.RateSv1Ping(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 TestDspRateSv1CostForEventCaseNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.RateSv1Ping(nil, reply)
+ result := dspSrv.RateSv1Ping(context.Background(), nil, 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 TestDspRateSv1CostForEventCase2(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.RateProfileCost
- result := dspSrv.RateSv1CostForEvent(CGREvent, reply)
+ result := dspSrv.RateSv1CostForEvent(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -83,7 +84,7 @@ func TestDspRateSv1PingNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *utils.RateProfileCost
- result := dspSrv.RateSv1CostForEvent(nil, reply)
+ result := dspSrv.RateSv1CostForEvent(context.Background(), nil, 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 TestDspRateSv1CostForEventErrorNil(t *testing.T) {
Tenant: "tenant",
}
var reply *utils.RateProfileCost
- result := dspSrv.RateSv1CostForEvent(CGREvent, reply)
+ result := dspSrv.RateSv1CostForEvent(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/replicator.go b/dispatchers/replicator.go
index c15395f07..7f493cd9d 100644
--- a/dispatchers/replicator.go
+++ b/dispatchers/replicator.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -24,949 +25,870 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ReplicatorSv1Ping(args *utils.CGREvent, rpl *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1Ping, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaReplicator, utils.ReplicatorSv1Ping, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1GetStatQueue(args *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetStatQueue, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveFilter, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetStatQueue, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveFilter, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetFilter(args *utils.TenantIDWithAPIOpts, reply *engine.Filter) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetResourceProfile(ctx *context.Context, args *engine.ResourceProfileWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.ResourceProfile != nil && len(args.ResourceProfile.Tenant) != 0) {
+ tnt = args.ResourceProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetResourceProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetResourceProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetFilter, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetStatQueueProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetFilter, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetStatQueueProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetThreshold(args *utils.TenantIDWithAPIOpts, reply *engine.Threshold) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetThreshold, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveDispatcherProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetThreshold, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveDispatcherProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetThresholdProfile(args *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1Ping, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveChargerProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetThresholdProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveChargerProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetThresholdProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveChargerProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetStatQueueProfile(args *utils.TenantIDWithAPIOpts, reply *engine.StatQueueProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetDispatcherProfile(ctx *context.Context, args *engine.DispatcherProfileWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.DispatcherProfile != nil && len(args.DispatcherProfile.Tenant) != 0) {
+ tnt = args.DispatcherProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetDispatcherProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetDispatcherProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetRateProfile(ctx *context.Context, args *utils.RateProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.RateProfile != nil && len(args.RateProfile.Tenant) != 0) {
+ tnt = args.RateProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetRateProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetRateProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetThreshold(ctx *context.Context, args *engine.ThresholdWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.Threshold != nil && len(args.Threshold.Tenant) != 0) {
+ tnt = args.Threshold.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetThreshold, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetThreshold, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetStatQueueProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetDispatcherHost, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetStatQueueProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetDispatcherHost, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetResource(args *utils.TenantIDWithAPIOpts, reply *engine.Resource) (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 {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetResource, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetResourceProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetResource, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetResourceProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetResourceProfile(args *utils.TenantIDWithAPIOpts, reply *engine.ResourceProfile) (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 {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetResourceProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetChargerProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetResourceProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetChargerProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetRouteProfile(args *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) (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 {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetRouteProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetDispatcherProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetRouteProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetDispatcherProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetAttributeProfile(args *utils.TenantIDWithAPIOpts, reply *engine.AttributeProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveActionProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetAttributeProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveActionProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetAttributeProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveActionProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetChargerProfile(args *utils.TenantIDWithAPIOpts, reply *engine.ChargerProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveAttributeProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetChargerProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveAttributeProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetChargerProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveAttributeProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetDispatcherProfile(args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveResourceProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetDispatcherProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveResourceProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetDispatcherProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveResourceProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetDispatcherHost(args *utils.TenantIDWithAPIOpts, reply *engine.DispatcherHost) (err error) {
+func (dS *DispatcherService) ReplicatorSv1RemoveStatQueueProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetDispatcherHost, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveStatQueueProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetDispatcherHost, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveStatQueueProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetRateProfile(args *utils.TenantIDWithAPIOpts, reply *utils.RateProfile) (err error) {
+func (dS *DispatcherService) ReplicatorSv1GetAccount(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *utils.Account) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetRateProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetAccount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetRateProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetAccount, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetActionProfile(args *utils.TenantIDWithAPIOpts, reply *engine.ActionProfile) (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 {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetActionProfile, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetAttributeProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetActionProfile, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetAttributeProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1GetItemLoadIDs(args *utils.StringWithAPIOpts, rpl *map[string]int64) (err error) {
- if args == nil {
- args = new(utils.StringWithAPIOpts)
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetItemLoadIDs, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetItemLoadIDs, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetThresholdProfile(args *engine.ThresholdProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{},
- }
- }
- args.ThresholdProfile.Tenant = utils.FirstNonEmpty(args.ThresholdProfile.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetThresholdProfile, args.ThresholdProfile.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.ThresholdProfile.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetThresholdProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetThreshold(args *engine.ThresholdWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.ThresholdWithAPIOpts{
- Threshold: &engine.Threshold{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetThreshold, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetThreshold, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetStatQueue(args *engine.StatQueueWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.StatQueueWithAPIOpts{
- StatQueue: &engine.StatQueue{},
- }
- }
- args.StatQueue.Tenant = utils.FirstNonEmpty(args.StatQueue.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetStatQueue, args.StatQueue.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.StatQueue.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetStatQueue, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetFilter(args *engine.FilterWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.FilterWithAPIOpts{
- Filter: &engine.Filter{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetFilter, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetFilter, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetStatQueueProfile(args *engine.StatQueueProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.StatQueueProfileWithAPIOpts{
- StatQueueProfile: &engine.StatQueueProfile{},
- }
-
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetStatQueueProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetStatQueueProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetResource(args *engine.ResourceWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.ResourceWithAPIOpts{
- Resource: &engine.Resource{},
- }
-
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetResource, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetResource, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetResourceProfile(args *engine.ResourceProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.ResourceProfileWithAPIOpts{
- ResourceProfile: &engine.ResourceProfile{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetResourceProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetResourceProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetRouteProfile(args *engine.RouteProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.RouteProfileWithAPIOpts{
- RouteProfile: &engine.RouteProfile{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetRouteProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetRouteProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetAttributeProfile(args *engine.AttributeProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetAttributeProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetAttributeProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetChargerProfile(args *engine.ChargerProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.ChargerProfileWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetChargerProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetChargerProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetDispatcherProfile(args *engine.DispatcherProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.DispatcherProfileWithAPIOpts{
- DispatcherProfile: &engine.DispatcherProfile{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetDispatcherProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetDispatcherProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetRateProfile(args *utils.RateProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.RateProfileWithAPIOpts{
- RateProfile: &utils.RateProfile{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetRateProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetRateProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetActionProfile(args *engine.ActionProfileWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.ActionProfileWithAPIOpts{
- ActionProfile: &engine.ActionProfile{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetActionProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetActionProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetDispatcherHost(args *engine.DispatcherHostWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &engine.DispatcherHostWithAPIOpts{
- DispatcherHost: &engine.DispatcherHost{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetDispatcherHost, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetDispatcherHost, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveThreshold(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
-
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveThreshold, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveThreshold, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1SetLoadIDs(args *utils.LoadIDsWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.LoadIDsWithAPIOpts{}
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetLoadIDs, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetLoadIDs, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveStatQueue(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveStatQueue, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveStatQueue, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveFilter(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveFilter, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveFilter, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveThresholdProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveThresholdProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveThresholdProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveStatQueueProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveStatQueueProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveStatQueueProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveResource(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
-
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveResource, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveResource, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveResourceProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveResourceProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveResourceProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveRouteProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
-
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveRouteProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveRouteProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveAttributeProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveAttributeProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveAttributeProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveChargerProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveChargerProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveChargerProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveDispatcherProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveDispatcherProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherHost(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveDispatcherHost, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveDispatcherHost, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveRateProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveRateProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveRateProfile, args, rpl)
-}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveActionProfile(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveActionProfile, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveActionProfile, args, rpl)
-}
-
-// ReplicatorSv1GetIndexes .
-func (dS *DispatcherService) ReplicatorSv1GetIndexes(args *utils.GetIndexesArg, reply *map[string]utils.StringSet) (err error) {
- if args == nil {
- args = &utils.GetIndexesArg{}
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetIndexes, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetIndexes, args, reply)
-}
-
-// ReplicatorSv1SetIndexes .
-func (dS *DispatcherService) ReplicatorSv1SetIndexes(args *utils.SetIndexesArg, reply *string) (err error) {
- if args == nil {
- args = &utils.SetIndexesArg{}
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetIndexes, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetIndexes, args, reply)
-}
-
-// ReplicatorSv1RemoveIndexes .
-func (dS *DispatcherService) ReplicatorSv1RemoveIndexes(args *utils.GetIndexesArg, reply *string) (err error) {
- if args == nil {
- args = &utils.GetIndexesArg{}
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveIndexes, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveIndexes, args, reply)
-}
-
-func (dS *DispatcherService) ReplicatorSv1GetAccount(args *utils.TenantIDWithAPIOpts, reply *utils.Account) (err error) {
+func (dS *DispatcherService) ReplicatorSv1SetDispatcherHost(ctx *context.Context, args *engine.DispatcherHostWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.DispatcherHost != nil && len(args.DispatcherHost.Tenant) != 0) {
+ tnt = args.DispatcherHost.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetDispatcherHost, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetDispatcherHost, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetStatQueue(ctx *context.Context, args *engine.StatQueueWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetStatQueue, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetStatQueue, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetThresholdProfile(ctx *context.Context, args *engine.ThresholdProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.ThresholdProfile != nil && len(args.ThresholdProfile.Tenant) != 0) {
+ tnt = args.ThresholdProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetThresholdProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetThresholdProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1GetAccount, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveThresholdProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1GetAccount, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveThresholdProfile, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1SetAccount(args *utils.AccountWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.AccountWithAPIOpts{
- Account: &utils.Account{},
- }
+func (dS *DispatcherService) ReplicatorSv1SetAccount(ctx *context.Context, args *utils.AccountWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.Account != nil && len(args.Account.Tenant) != 0) {
+ tnt = args.Account.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
}
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1SetAccount, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetAccount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1SetAccount, args, rpl)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetAccount, args, reply)
}
-
-func (dS *DispatcherService) ReplicatorSv1RemoveAccount(args *utils.TenantIDWithAPIOpts, rpl *string) (err error) {
- if args == nil {
- args = &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{},
- }
+func (dS *DispatcherService) ReplicatorSv1RemoveIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
}
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ReplicatorSv1RemoveAccount, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveIndexes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- APIOpts: args.APIOpts,
- }, utils.MetaReplicator, utils.ReplicatorSv1RemoveAccount, args, rpl)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveIndexes, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveStatQueue, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveStatQueue, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetLoadIDs(ctx *context.Context, args *utils.LoadIDsWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetLoadIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetLoadIDs, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetFilter(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Filter) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetFilter, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetFilter, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetThresholdProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ThresholdProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetThresholdProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetThresholdProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveRouteProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveRouteProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetIndexes(ctx *context.Context, args *utils.SetIndexesArg, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetIndexes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetIndexes, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetIndexes(ctx *context.Context, args *utils.GetIndexesArg, reply *map[string]utils.StringSet) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetIndexes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetIndexes, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveResource, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveResource, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetRouteProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.RouteProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetRouteProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetRouteProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherHost(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveDispatcherHost, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveDispatcherHost, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetChargerProfile(ctx *context.Context, args *engine.ChargerProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.ChargerProfile != nil && len(args.ChargerProfile.Tenant) != 0) {
+ tnt = args.ChargerProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetChargerProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetChargerProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetItemLoadIDs(ctx *context.Context, args *utils.StringWithAPIOpts, reply *map[string]int64) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetItemLoadIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetItemLoadIDs, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetRateProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *utils.RateProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetRateProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetRateProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveRateProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveRateProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveRateProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetFilter(ctx *context.Context, args *engine.FilterWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.Filter != nil && len(args.Filter.Tenant) != 0) {
+ tnt = args.Filter.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetFilter, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetFilter, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetStatQueueProfile(ctx *context.Context, args *engine.StatQueueProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.StatQueueProfile != nil && len(args.StatQueueProfile.Tenant) != 0) {
+ tnt = args.StatQueueProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetStatQueueProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetStatQueueProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Resource) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetResource, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetResource, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetStatQueue, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetStatQueue, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveAccount(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveAccount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveAccount, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1RemoveThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1RemoveThreshold, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1RemoveThreshold, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetActionProfile(ctx *context.Context, args *engine.ActionProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.ActionProfile != nil && len(args.ActionProfile.Tenant) != 0) {
+ tnt = args.ActionProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetActionProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetActionProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetAttributeProfile(ctx *context.Context, args *engine.AttributeProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.AttributeProfile != nil && len(args.AttributeProfile.Tenant) != 0) {
+ tnt = args.AttributeProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetAttributeProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetAttributeProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetResource(ctx *context.Context, args *engine.ResourceWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.Resource != nil && len(args.Resource.Tenant) != 0) {
+ tnt = args.Resource.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetResource, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetResource, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1SetRouteProfile(ctx *context.Context, args *engine.RouteProfileWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.RouteProfile != nil && len(args.RouteProfile.Tenant) != 0) {
+ tnt = args.RouteProfile.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1SetRouteProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1SetRouteProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetActionProfile(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.ActionProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetActionProfile, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetActionProfile, args, reply)
+}
+func (dS *DispatcherService) ReplicatorSv1GetThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Threshold) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ReplicatorSv1GetThreshold, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaReplicator, utils.ReplicatorSv1GetThreshold, args, reply)
}
diff --git a/dispatchers/replicator_test.go b/dispatchers/replicator_test.go
index 0929ea2bf..ae7378bf2 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)
@@ -77,7 +78,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)
@@ -93,7 +94,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)
@@ -110,7 +111,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)
@@ -126,7 +127,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)
@@ -143,7 +144,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)
@@ -159,7 +160,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)
@@ -176,7 +177,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)
@@ -192,7 +193,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)
@@ -209,7 +210,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)
@@ -225,7 +226,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)
@@ -242,7 +243,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)
@@ -258,7 +259,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)
@@ -275,7 +276,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)
@@ -291,7 +292,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)
@@ -308,7 +309,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)
@@ -324,7 +325,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)
@@ -341,7 +342,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)
@@ -357,7 +358,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)
@@ -374,7 +375,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)
@@ -390,7 +391,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)
@@ -407,7 +408,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)
@@ -423,7 +424,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)
@@ -440,7 +441,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)
@@ -456,7 +457,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)
@@ -468,7 +469,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)
@@ -483,7 +484,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)
@@ -497,7 +498,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)
@@ -514,7 +515,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)
@@ -530,7 +531,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)
@@ -547,7 +548,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)
@@ -563,7 +564,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)
@@ -574,7 +575,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)
@@ -591,7 +592,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)
@@ -607,7 +608,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)
@@ -618,7 +619,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)
@@ -635,7 +636,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)
@@ -651,7 +652,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)
@@ -662,7 +663,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)
@@ -679,7 +680,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)
@@ -695,7 +696,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)
@@ -706,7 +707,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)
@@ -723,7 +724,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)
@@ -739,7 +740,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)
@@ -750,7 +751,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)
@@ -767,7 +768,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)
@@ -783,7 +784,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)
@@ -794,7 +795,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)
@@ -811,7 +812,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)
@@ -827,7 +828,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)
@@ -838,7 +839,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)
@@ -855,7 +856,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)
@@ -871,7 +872,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)
@@ -882,7 +883,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)
@@ -899,7 +900,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)
@@ -915,7 +916,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)
@@ -926,7 +927,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)
@@ -943,7 +944,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)
@@ -959,7 +960,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)
@@ -970,7 +971,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)
@@ -985,7 +986,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)
@@ -999,7 +1000,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)
@@ -1010,7 +1011,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)
@@ -1025,7 +1026,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)
@@ -1039,7 +1040,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)
@@ -1050,7 +1051,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)
@@ -1065,7 +1066,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)
@@ -1080,7 +1081,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)
@@ -1094,7 +1095,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)
@@ -1105,7 +1106,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)
@@ -1122,7 +1123,7 @@ func TestDspReplicatorSv1RemoveAccountNil(t *testing.T) {
},
}
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)
@@ -1138,7 +1139,7 @@ func TestDspReplicatorSv1RemoveAccountErrorNil(t *testing.T) {
},
}
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)
@@ -1149,7 +1150,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)
@@ -1166,7 +1167,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)
@@ -1182,7 +1183,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)
@@ -1193,7 +1194,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)
@@ -1207,7 +1208,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)
@@ -1218,7 +1219,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)
@@ -1229,7 +1230,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)
@@ -1246,7 +1247,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)
@@ -1262,7 +1263,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)
@@ -1273,7 +1274,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)
@@ -1288,7 +1289,7 @@ func TestDspReplicatorSv1SetAccountNil(t *testing.T) {
Account: &utils.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)
@@ -1304,7 +1305,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)
@@ -1315,7 +1316,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)
@@ -1332,7 +1333,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)
@@ -1348,7 +1349,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)
@@ -1359,7 +1360,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)
@@ -1376,7 +1377,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)
@@ -1392,7 +1393,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)
@@ -1403,7 +1404,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)
@@ -1420,7 +1421,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)
@@ -1436,7 +1437,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)
@@ -1447,7 +1448,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)
@@ -1464,7 +1465,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)
@@ -1480,7 +1481,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)
@@ -1491,7 +1492,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)
@@ -1508,7 +1509,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)
@@ -1524,7 +1525,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)
@@ -1535,7 +1536,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)
@@ -1552,7 +1553,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)
@@ -1568,7 +1569,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)
@@ -1579,7 +1580,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)
@@ -1596,7 +1597,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)
@@ -1612,7 +1613,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)
@@ -1623,7 +1624,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)
@@ -1640,7 +1641,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)
@@ -1656,7 +1657,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)
@@ -1667,7 +1668,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)
@@ -1684,7 +1685,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)
@@ -1700,7 +1701,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)
@@ -1711,7 +1712,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)
@@ -1728,7 +1729,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)
@@ -1744,7 +1745,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)
@@ -1755,7 +1756,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)
@@ -1772,7 +1773,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)
@@ -1788,7 +1789,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)
@@ -1799,7 +1800,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)
@@ -1815,7 +1816,7 @@ func TestDspReplicatorSv1GetRateProfileNil(t *testing.T) {
},
}
var reply *utils.RateProfile
- result := dspSrv.ReplicatorSv1GetRateProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRateProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1831,7 +1832,7 @@ func TestDspReplicatorSv1GetRateProfileErrorTenant(t *testing.T) {
},
}
var reply *utils.RateProfile
- result := dspSrv.ReplicatorSv1GetRateProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRateProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1844,7 +1845,7 @@ func TestDspReplicatorSv1GetRateProfileErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.TenantIDWithAPIOpts{}
var reply *utils.RateProfile
- result := dspSrv.ReplicatorSv1GetRateProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetRateProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1860,7 +1861,7 @@ func TestDspReplicatorSv1GetActionProfileNil(t *testing.T) {
},
}
var reply *engine.ActionProfile
- result := dspSrv.ReplicatorSv1GetActionProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActionProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1876,7 +1877,7 @@ func TestDspReplicatorSv1GetActionProfileErrorTenant(t *testing.T) {
},
}
var reply *engine.ActionProfile
- result := dspSrv.ReplicatorSv1GetActionProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActionProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1893,7 +1894,7 @@ func TestDspReplicatorSv1GetActionProfileErrorNil(t *testing.T) {
},
}
var reply *engine.ActionProfile
- result := dspSrv.ReplicatorSv1GetActionProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1GetActionProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1909,7 +1910,7 @@ func TestDspReplicatorSv1SetActionProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetActionProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetActionProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1926,7 +1927,7 @@ func TestDspReplicatorSv1SetActionProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetActionProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetActionProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1938,7 +1939,7 @@ func TestDspReplicatorSv1SetActionProfileErrorNilArgs(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ReplicatorSv1SetActionProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetActionProfile(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1954,7 +1955,7 @@ func TestDspReplicatorSv1SetRateProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetRateProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetRateProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1971,7 +1972,7 @@ func TestDspReplicatorSv1SetRateProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1SetRateProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1SetRateProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1983,7 +1984,7 @@ func TestDspReplicatorSv1SetRateProfileErrorNilArgs(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ReplicatorSv1SetRateProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1SetRateProfile(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -1999,7 +2000,7 @@ func TestDspReplicatorSv1RemoveRateProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRateProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveRateProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2016,7 +2017,7 @@ func TestDsReplicatorSv1RemoveRateProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRateProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveRateProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2028,7 +2029,7 @@ func TestDspReplicatorSv1RemoveRateProfileErrorNilArgs(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveRateProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveRateProfile(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2044,7 +2045,7 @@ func TestDspReplicatorSv1RemoveActionProfileNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionProfile(context.Background(), CGREvent, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2061,7 +2062,7 @@ func TestDspReplicatorSv1RemoveActionProfileErrorNil(t *testing.T) {
},
}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionProfile(CGREvent, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionProfile(context.Background(), CGREvent, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2073,7 +2074,7 @@ func TestReplicatorSv1RemoveActionProfileNilArgs(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ReplicatorSv1RemoveActionProfile(nil, reply)
+ result := dspSrv.ReplicatorSv1RemoveActionProfile(context.Background(), nil, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -2090,7 +2091,7 @@ func TestDspReplicatorSv1GetAccountErrorNil(t *testing.T) {
},
}
var reply *utils.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)
@@ -2106,7 +2107,7 @@ func TestDspReplicatorSv1GetAccountErrorCase2(t *testing.T) {
},
}
var reply *utils.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)
diff --git a/dispatchers/resources.go b/dispatchers/resources.go
index 9e62e3dd2..f862e9430 100644
--- a/dispatchers/resources.go
+++ b/dispatchers/resources.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -24,112 +25,137 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ResourceSv1Ping(args *utils.CGREvent, rpl *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ResourceSv1Ping, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaResources, utils.ResourceSv1Ping, args, rpl)
-}
-
-func (dS *DispatcherService) ResourceSv1GetResourcesForEvent(args *utils.CGREvent,
- reply *engine.Resources) (err error) {
+func (dS *DispatcherService) ResourceSv1Ping(ctx *context.Context, args *utils.CGREvent, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ResourceSv1GetResourcesForEvent, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ResourceSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaResources, utils.ResourceSv1GetResourcesForEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaResources, utils.ResourceSv1Ping, args, reply)
}
-
-func (dS *DispatcherService) ResourceSv1AuthorizeResources(args *utils.CGREvent,
- reply *string) (err error) {
+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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ResourceSv1AuthorizeResources, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ResourceSv1AllocateResources, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaResources, utils.ResourceSv1AuthorizeResources, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaResources, utils.ResourceSv1AllocateResources, args, reply)
}
-
-func (dS *DispatcherService) ResourceSv1AllocateResources(args *utils.CGREvent,
- reply *string) (err error) {
+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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ResourceSv1AllocateResources, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ResourceSv1AuthorizeResources, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaResources, utils.ResourceSv1AllocateResources, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaResources, utils.ResourceSv1AuthorizeResources, args, reply)
}
-
-func (dS *DispatcherService) ResourceSv1ReleaseResources(args *utils.CGREvent,
- reply *string) (err error) {
+func (dS *DispatcherService) ResourceSv1GetResource(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Resource) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args != nil && args.Tenant != utils.EmptyString {
- tnt = args.Tenant
- }
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ResourceSv1ReleaseResources, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaResources, utils.ResourceSv1ReleaseResources, args, reply)
-}
-
-func (dS *DispatcherService) ResourceSv1GetResource(args *utils.TenantIDWithAPIOpts, reply *engine.Resource) (err error) {
- tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ResourceSv1GetResource, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ResourceSv1GetResource, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaResources, utils.ResourceSv1GetResource, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, 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 {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ResourceSv1GetResourceWithConfig, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ResourceSv1GetResourceWithConfig, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaResources, utils.ResourceSv1GetResourceWithConfig, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaResources, utils.ResourceSv1GetResourceWithConfig, args, reply)
+}
+func (dS *DispatcherService) ResourceSv1GetResourcesForEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.Resources) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ResourceSv1GetResourcesForEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaResources, utils.ResourceSv1GetResourcesForEvent, args, reply)
+}
+func (dS *DispatcherService) ResourceSv1ReleaseResources(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ResourceSv1ReleaseResources, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaResources, utils.ResourceSv1ReleaseResources, args, reply)
}
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/routes.go b/dispatchers/routes.go
index 8de2e309f..d3663c664 100644
--- a/dispatchers/routes.go
+++ b/dispatchers/routes.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -24,53 +25,83 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) RouteSv1Ping(args *utils.CGREvent, reply *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
+func (dS *DispatcherService) RouteSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
}
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.RouteSv1Ping,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.RouteSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaRoutes, utils.RouteSv1Ping, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaRoutes, utils.RouteSv1Ping, args, reply)
}
-
-func (dS *DispatcherService) RouteSv1GetRoutes(args *utils.CGREvent, reply *engine.SortedRoutesList) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
+func (dS *DispatcherService) RouteSv1GetRoutes(ctx *context.Context, args *utils.CGREvent, reply *engine.SortedRoutesList) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.RouteSv1GetRoutes,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.RouteSv1GetRoutes, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaRoutes, utils.RouteSv1GetRoutes, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaRoutes, utils.RouteSv1GetRoutes, args, reply)
}
-
-func (dS *DispatcherService) RouteSv1GetRoutesList(args *utils.CGREvent, reply *[]string) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
+func (dS *DispatcherService) RouteSv1GetRoutesList(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.RouteSv1GetRoutesList,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.RouteSv1GetRoutesList, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaRoutes, utils.RouteSv1GetRoutesList, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaRoutes, utils.RouteSv1GetRoutesList, args, reply)
}
-
-func (dS *DispatcherService) RouteSv1GetRouteProfilesForEvent(args *utils.CGREvent, reply *[]*engine.RouteProfile) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
+func (dS *DispatcherService) RouteSv1GetRouteProfilesForEvent(ctx *context.Context, args *utils.CGREvent, reply *[]*engine.RouteProfile) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.RouteSv1GetRouteProfilesForEvent,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.RouteSv1GetRouteProfilesForEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), args, utils.MetaRoutes, utils.RouteSv1GetRouteProfilesForEvent, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaRoutes, utils.RouteSv1GetRouteProfilesForEvent, args, reply)
}
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/servicemanager.go b/dispatchers/servicemanager.go
index 836a9cf52..1d42ca6c8 100644
--- a/dispatchers/servicemanager.go
+++ b/dispatchers/servicemanager.go
@@ -31,7 +31,7 @@ func (dS *DispatcherService) ServiceManagerV1Ping(args *utils.CGREvent,
}
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ServiceManagerV1Ping, args.Tenant,
+ if err = dS.authorize2(utils.ServiceManagerV1Ping, args.Tenant,
utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
return
}
diff --git a/dispatchers/sessions.go b/dispatchers/sessions.go
index 8591fbb1b..c24e4f030 100644
--- a/dispatchers/sessions.go
+++ b/dispatchers/sessions.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -24,327 +25,434 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) SessionSv1Ping(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,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1Ping, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1AuthorizeEvent(args *utils.CGREvent,
- reply *sessions.V1AuthorizeReply) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1AuthorizeEvent, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1AuthorizeEvent, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1AuthorizeEventWithDigest(args *utils.CGREvent,
- reply *sessions.V1AuthorizeReplyWithDigest) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1AuthorizeEventWithDigest, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1AuthorizeEventWithDigest, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1InitiateSession(args *utils.CGREvent,
- reply *sessions.V1InitSessionReply) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1InitiateSession, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1InitiateSession, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1InitiateSessionWithDigest(args *utils.CGREvent,
- reply *sessions.V1InitReplyWithDigest) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1InitiateSessionWithDigest, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1InitiateSessionWithDigest, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1UpdateSession(args *utils.CGREvent,
- reply *sessions.V1UpdateSessionReply) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1UpdateSession, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1UpdateSession, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1SyncSessions(args *utils.TenantWithAPIOpts,
- reply *string) (err error) {
+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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1SyncSessions, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1GetPassiveSessions, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1SyncSessions, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1GetPassiveSessions, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1TerminateSession(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.SessionSv1TerminateSession, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1TerminateSession, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1ProcessCDR(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.SessionSv1ProcessCDR, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1ProcessCDR, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1ProcessMessage(args *utils.CGREvent,
- reply *sessions.V1ProcessMessageReply) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1ProcessMessage, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1ProcessMessage, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1ProcessEvent(args *utils.CGREvent,
- reply *sessions.V1ProcessEventReply) (err error) {
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1ProcessEvent, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaSessionS, utils.SessionSv1ProcessEvent, args, reply)
-}
-
-func (dS *DispatcherService) SessionSv1GetActiveSessions(args *utils.SessionFilter,
- reply *[]*sessions.ExternalSession) (err error) {
+func (dS *DispatcherService) SessionSv1ReplicateSessions(ctx *context.Context, args sessions.ArgsReplicateSessions, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := args.APIOpts
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1GetActiveSessions,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1ReplicateSessions, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1GetActiveSessions, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1ReplicateSessions, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1GetActiveSessionsCount(args *utils.SessionFilter,
- reply *int) (err error) {
+func (dS *DispatcherService) SessionSv1AuthorizeEventWithDigest(ctx *context.Context, args *utils.CGREvent, reply *sessions.V1AuthorizeReplyWithDigest) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1GetActiveSessionsCount,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1AuthorizeEventWithDigest, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1GetActiveSessionsCount, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1AuthorizeEventWithDigest, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1ForceDisconnect(args *utils.SessionFilter,
- reply *string) (err error) {
+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 {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1ForceDisconnect,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1GetActiveSessions, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1ForceDisconnect, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1GetActiveSessions, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1GetPassiveSessions(args *utils.SessionFilter,
- reply *[]*sessions.ExternalSession) (err error) {
+func (dS *DispatcherService) SessionSv1ActivateSessions(ctx *context.Context, args *utils.SessionIDsWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1GetPassiveSessions,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1ActivateSessions, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1GetPassiveSessions, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1ActivateSessions, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1GetPassiveSessionsCount(args *utils.SessionFilter,
- reply *int) (err error) {
+func (dS *DispatcherService) SessionSv1ProcessEvent(ctx *context.Context, args *utils.CGREvent, reply *sessions.V1ProcessEventReply) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1GetPassiveSessionsCount,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1ProcessEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1GetPassiveSessionsCount, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1ProcessEvent, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1ReplicateSessions(args ArgsReplicateSessionsWithAPIOpts,
- reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1DeactivateSessions(ctx *context.Context, args *utils.SessionIDsWithAPIOpts, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1ReplicateSessions, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1DeactivateSessions, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1ReplicateSessions, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1DeactivateSessions, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1SetPassiveSession(args *sessions.Session,
- reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1ForceDisconnect(ctx *context.Context, args *utils.SessionFilter, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1SetPassiveSession, tnt,
- utils.IfaceAsString(args.OptsStart[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1ForceDisconnect, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.OptsStart,
- }, utils.MetaSessionS, utils.SessionSv1SetPassiveSession, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1ForceDisconnect, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1ActivateSessions(args *utils.SessionIDsWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1GetActiveSessionsCount(ctx *context.Context, args *utils.SessionFilter, reply *int) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1ActivateSessions,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1GetActiveSessionsCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1ActivateSessions, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1GetActiveSessionsCount, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1DeactivateSessions(args *utils.SessionIDsWithAPIOpts, reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1UpdateSession(ctx *context.Context, args *utils.CGREvent, reply *sessions.V1UpdateSessionReply) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1DeactivateSessions,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1UpdateSession, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1DeactivateSessions, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1UpdateSession, args, reply)
}
-
-func (dS *DispatcherService) SessionSv1STIRAuthenticate(args *sessions.V1STIRAuthenticateArgs, reply *string) (err error) {
+func (dS *DispatcherService) SessionSv1DisconnectPeer(ctx *context.Context, args *utils.DPRArgs, reply *string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1STIRAuthenticate,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1DisconnectPeer, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1STIRAuthenticate, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1DisconnectPeer, 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
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.SessionSv1STIRIdentity,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.SessionSv1STIRIdentity, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaSessionS, utils.SessionSv1STIRIdentity, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1STIRIdentity, args, reply)
+}
+func (dS *DispatcherService) SessionSv1STIRAuthenticate(ctx *context.Context, args *sessions.V1STIRAuthenticateArgs, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1STIRAuthenticate, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1STIRAuthenticate, args, reply)
+}
+func (dS *DispatcherService) SessionSv1AuthorizeEvent(ctx *context.Context, args *utils.CGREvent, reply *sessions.V1AuthorizeReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1AuthorizeEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1AuthorizeEvent, args, reply)
+}
+func (dS *DispatcherService) SessionSv1ProcessCDR(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1ProcessCDR, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1ProcessCDR, args, reply)
+}
+func (dS *DispatcherService) SessionSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1Ping, args, reply)
+}
+func (dS *DispatcherService) SessionSv1TerminateSession(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1TerminateSession, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1TerminateSession, args, reply)
+}
+func (dS *DispatcherService) SessionSv1RegisterInternalBiJSONConn(ctx *context.Context, args string, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1RegisterInternalBiJSONConn, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1RegisterInternalBiJSONConn, args, reply)
+}
+func (dS *DispatcherService) SessionSv1InitiateSession(ctx *context.Context, args *utils.CGREvent, reply *sessions.V1InitSessionReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1InitiateSession, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1InitiateSession, args, reply)
+}
+func (dS *DispatcherService) SessionSv1InitiateSessionWithDigest(ctx *context.Context, args *utils.CGREvent, reply *sessions.V1InitReplyWithDigest) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1InitiateSessionWithDigest, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1InitiateSessionWithDigest, args, reply)
+}
+func (dS *DispatcherService) SessionSv1ReAuthorize(ctx *context.Context, args *utils.SessionFilter, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1ReAuthorize, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1ReAuthorize, args, reply)
+}
+func (dS *DispatcherService) SessionSv1GetPassiveSessionsCount(ctx *context.Context, args *utils.SessionFilter, reply *int) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1GetPassiveSessionsCount, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1GetPassiveSessionsCount, args, reply)
+}
+func (dS *DispatcherService) SessionSv1SetPassiveSession(ctx *context.Context, args *sessions.Session, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1SetPassiveSession, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1SetPassiveSession, args, reply)
+}
+func (dS *DispatcherService) SessionSv1ProcessMessage(ctx *context.Context, args *utils.CGREvent, reply *sessions.V1ProcessMessageReply) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1ProcessMessage, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1ProcessMessage, args, reply)
+}
+func (dS *DispatcherService) SessionSv1SyncSessions(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
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.SessionSv1SyncSessions, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaSessionS, utils.SessionSv1SyncSessions, args, reply)
}
diff --git a/dispatchers/sessions_test.go b/dispatchers/sessions_test.go
index 6f9b6e758..5e4bb53db 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)
@@ -62,7 +63,7 @@ func TestDspSessionSv1AuthorizeEventNil(t *testing.T) {
Tenant: "tenant",
}
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)
@@ -77,7 +78,7 @@ func TestDspSessionSv1AuthorizeEventErrorNil(t *testing.T) {
Tenant: "tenant",
}
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)
@@ -91,7 +92,7 @@ func TestDspSessionSv1AuthorizeEventWithDigestNil(t *testing.T) {
Tenant: "tenant",
}
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)
@@ -106,7 +107,7 @@ func TestDspSessionSv1AuthorizeEventWithDigestErrorNil(t *testing.T) {
Tenant: "tenant",
}
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)
@@ -120,7 +121,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)
@@ -135,7 +136,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)
@@ -149,7 +150,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)
@@ -164,7 +165,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)
@@ -178,7 +179,7 @@ func TestDspSessionSv1ProcessMessageNil(t *testing.T) {
Tenant: "tenant",
}
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)
@@ -193,7 +194,7 @@ func TestDspSessionSv1ProcessMessageErrorNil(t *testing.T) {
Tenant: "tenant",
}
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)
@@ -207,7 +208,7 @@ func TestDspSessionSv1ProcessEventNil(t *testing.T) {
Tenant: "tenant",
}
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)
@@ -222,7 +223,7 @@ func TestDspSessionSv1ProcessEventErrorNil(t *testing.T) {
Tenant: "tenant",
}
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)
@@ -236,7 +237,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)
@@ -251,7 +252,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)
@@ -265,7 +266,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)
@@ -280,7 +281,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)
@@ -294,7 +295,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)
@@ -309,7 +310,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)
@@ -323,7 +324,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)
@@ -338,7 +339,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)
@@ -348,11 +349,11 @@ func TestDspSessionSv1GetPassiveSessionsErrorNil(t *testing.T) {
func TestDspSessionSv1ReplicateSessionsNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
- CGREvent := ArgsReplicateSessionsWithAPIOpts{
+ CGREvent := sessions.ArgsReplicateSessions{
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)
@@ -363,11 +364,11 @@ func TestDspSessionSv1ReplicateSessionsErrorNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
- CGREvent := ArgsReplicateSessionsWithAPIOpts{
+ CGREvent := sessions.ArgsReplicateSessions{
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)
@@ -381,7 +382,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)
@@ -396,7 +397,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)
@@ -410,7 +411,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)
@@ -425,7 +426,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)
@@ -437,7 +438,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)
@@ -450,7 +451,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)
@@ -462,7 +463,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)
@@ -475,7 +476,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)
@@ -487,7 +488,7 @@ func TestDspSessionSv1ActivateSessionsNil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
CGREvent := &utils.SessionIDsWithAPIOpts{}
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)
@@ -501,7 +502,7 @@ func TestDspSessionSv1ActivateSessionsErrorTenant(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)
@@ -514,7 +515,7 @@ func TestDspSessionSv1ActivateSessionsErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.SessionIDsWithAPIOpts{}
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)
@@ -526,7 +527,7 @@ func TestDspSessionSv1DeactivateSessionsNil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
CGREvent := &utils.SessionIDsWithAPIOpts{}
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)
@@ -540,7 +541,7 @@ func TestDspSessionSv1DeactivateSessionsErrorTenant(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)
@@ -553,7 +554,7 @@ func TestDspSessionSv1DeactivateSessionsErrorNil(t *testing.T) {
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
CGREvent := &utils.SessionIDsWithAPIOpts{}
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)
diff --git a/dispatchers/stats.go b/dispatchers/stats.go
index 43da4591b..e075bca23 100644
--- a/dispatchers/stats.go
+++ b/dispatchers/stats.go
@@ -16,117 +16,174 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
"github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) StatSv1Ping(args *utils.CGREvent, reply *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.StatSv1Ping,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaStats, utils.StatSv1Ping, args, reply)
-}
-
-func (dS *DispatcherService) StatSv1GetStatQueuesForEvent(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.StatSv1GetStatQueuesForEvent,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaStats, utils.StatSv1GetStatQueuesForEvent, args, reply)
-}
-
-func (dS *DispatcherService) StatSv1GetQueueStringMetrics(args *utils.TenantIDWithAPIOpts,
- reply *map[string]string) (err error) {
-
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.StatSv1GetQueueStringMetrics,
- args.TenantID.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaStats, utils.StatSv1GetQueueStringMetrics, args, reply)
-}
-
-func (dS *DispatcherService) StatSv1ProcessEvent(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.StatSv1ProcessEvent,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaStats, utils.StatSv1ProcessEvent, args, reply)
-}
-
-func (dS *DispatcherService) StatSv1GetQueueFloatMetrics(args *utils.TenantIDWithAPIOpts,
- reply *map[string]float64) (err error) {
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.StatSv1GetQueueFloatMetrics,
- args.TenantID.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaStats, utils.StatSv1GetQueueFloatMetrics, args, reply)
-}
-
-func (dS *DispatcherService) StatSv1GetQueueDecimalMetrics(args *utils.TenantIDWithAPIOpts,
- reply *map[string]float64) (err error) {
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.StatSv1GetQueueDecimalMetrics,
- args.TenantID.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: args.Tenant,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaStats, utils.StatSv1GetQueueDecimalMetrics, args, reply)
-}
-
-func (dS *DispatcherService) StatSv1GetQueueIDs(args *utils.TenantWithAPIOpts,
- reply *[]string) (err error) {
+func (dS *DispatcherService) StatSv1GetQueueFloatMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *map[string]float64) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.StatSv1GetQueueFloatMetrics, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1GetQueueFloatMetrics, args, reply)
+}
+func (dS *DispatcherService) StatSv1GetQueueIDs(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
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.StatSv1GetQueueIDs, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.StatSv1GetQueueIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaStats, utils.StatSv1GetQueueIDs, args, reply)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1GetQueueIDs, args, reply)
+}
+func (dS *DispatcherService) StatSv1GetStatQueuesForEvent(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.StatSv1GetStatQueuesForEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1GetStatQueuesForEvent, args, reply)
+}
+func (dS *DispatcherService) StatSv1ProcessEvent(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.StatSv1ProcessEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1ProcessEvent, args, reply)
+}
+func (dS *DispatcherService) StatSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.StatSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1Ping, args, reply)
+}
+func (dS *DispatcherService) StatSv1GetQueueStringMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *map[string]string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.StatSv1GetQueueStringMetrics, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1GetQueueStringMetrics, args, reply)
+}
+func (dS *DispatcherService) StatSv1ResetStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.StatSv1ResetStatQueue, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1ResetStatQueue, args, reply)
+}
+func (dS *DispatcherService) StatSv1GetQueueDecimalMetrics(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *map[string]*utils.Decimal) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.StatSv1GetQueueDecimalMetrics, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1GetQueueDecimalMetrics, args, reply)
+}
+func (dS *DispatcherService) StatSv1GetStatQueue(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.StatQueue) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.StatSv1GetStatQueue, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaStats, utils.StatSv1GetStatQueue, args, reply)
}
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 c2669dbbd..920319898 100644
--- a/dispatchers/thresholds.go
+++ b/dispatchers/thresholds.go
@@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
+// do not modify this code because it's generated
package dispatchers
import (
@@ -24,77 +25,114 @@ import (
"github.com/cgrates/cgrates/utils"
)
-func (dS *DispatcherService) ThresholdSv1Ping(args *utils.CGREvent, reply *string) (err error) {
- if args == nil {
- args = new(utils.CGREvent)
- }
- args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
- if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ThresholdSv1Ping, args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaThresholds, utils.ThresholdSv1Ping, args, reply)
-}
-
-func (dS *DispatcherService) ThresholdSv1GetThresholdsForEvent(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 {
- if err = dS.authorize(utils.ThresholdSv1GetThresholdsForEvent,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), args, utils.MetaThresholds, utils.ThresholdSv1GetThresholdsForEvent, args, t)
-}
-
-func (dS *DispatcherService) ThresholdSv1ProcessEvent(args *utils.CGREvent,
- tIDs *[]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.ThresholdSv1ProcessEvent,
- args.Tenant,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
- return
- }
- }
- return dS.Dispatch(context.TODO(), 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, reply *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
tnt = args.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ThresholdSv1GetThresholdIDs,
- tnt, utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ThresholdSv1GetThresholdIDs, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- APIOpts: args.APIOpts,
- }, utils.MetaThresholds, utils.ThresholdSv1GetThresholdIDs, args, tIDs)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaThresholds, utils.ThresholdSv1GetThresholdIDs, args, reply)
}
-
-func (dS *DispatcherService) ThresholdSv1GetThreshold(args *utils.TenantIDWithAPIOpts, th *engine.Threshold) (err error) {
+func (dS *DispatcherService) ThresholdSv1GetThresholdsForEvent(ctx *context.Context, args *utils.CGREvent, reply *engine.Thresholds) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
- if args.TenantID != nil && args.TenantID.Tenant != utils.EmptyString {
+ if args != nil && len(args.Tenant) != 0 {
+ tnt = args.Tenant
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ThresholdSv1GetThresholdsForEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaThresholds, utils.ThresholdSv1GetThresholdsForEvent, args, reply)
+}
+func (dS *DispatcherService) ThresholdSv1ProcessEvent(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ThresholdSv1ProcessEvent, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaThresholds, utils.ThresholdSv1ProcessEvent, args, reply)
+}
+func (dS *DispatcherService) ThresholdSv1ResetThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *string) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
tnt = args.TenantID.Tenant
}
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
- if err = dS.authorize(utils.ThresholdSv1GetThreshold, tnt,
- utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey])); err != nil {
+ if err = dS.authorize(ctx, utils.ThresholdSv1ResetThreshold, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
return
}
}
- return dS.Dispatch(context.TODO(), &utils.CGREvent{
- Tenant: tnt,
- ID: args.ID,
- APIOpts: args.APIOpts,
- }, utils.MetaThresholds, utils.ThresholdSv1GetThreshold, args, th)
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaThresholds, utils.ThresholdSv1ResetThreshold, args, reply)
+}
+func (dS *DispatcherService) ThresholdSv1Ping(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
+ }
+ ev := make(map[string]interface{})
+ if args != nil {
+ ev = args.Event
+ }
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ThresholdSv1Ping, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaThresholds, utils.ThresholdSv1Ping, args, reply)
+}
+func (dS *DispatcherService) ThresholdSv1GetThreshold(ctx *context.Context, args *utils.TenantIDWithAPIOpts, reply *engine.Threshold) (err error) {
+ tnt := dS.cfg.GeneralCfg().DefaultTenant
+ if args != nil && (args.TenantID != nil && len(args.TenantID.Tenant) != 0) {
+ tnt = args.TenantID.Tenant
+ }
+ ev := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ if args != nil {
+ opts = args.APIOpts
+ }
+ if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
+ if err = dS.authorize(ctx, utils.ThresholdSv1GetThreshold, tnt, utils.IfaceAsString(opts[utils.OptsAPIKey])); err != nil {
+ return
+ }
+ }
+ return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaThresholds, utils.ThresholdSv1GetThreshold, args, reply)
}
diff --git a/dispatchers/thresholds_test.go b/dispatchers/thresholds_test.go
index 18fe74f3c..c76d10cdc 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)
@@ -41,7 +42,7 @@ func TestDspThresholdSv1PingNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *string
- result := dspSrv.ThresholdSv1Ping(&utils.CGREvent{
+ result := dspSrv.ThresholdSv1Ping(context.Background(), &utils.CGREvent{
Tenant: "tenant",
}, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
@@ -55,7 +56,7 @@ func TestDspThresholdSv1PingErrorNil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *string
- result := dspSrv.ThresholdSv1Ping(&utils.CGREvent{}, reply)
+ result := dspSrv.ThresholdSv1Ping(context.Background(), &utils.CGREvent{}, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
if result == nil || result.Error() != expected {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
@@ -66,7 +67,7 @@ func TestDspThresholdSv1GetThresholdsForEventNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *engine.Thresholds
- result := dspSrv.ThresholdSv1GetThresholdsForEvent(&utils.CGREvent{
+ result := dspSrv.ThresholdSv1GetThresholdsForEvent(context.Background(), &utils.CGREvent{
Tenant: "tenant",
}, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
@@ -80,7 +81,7 @@ func TestDspThresholdSv1GetThresholdsEvnil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.Thresholds
- result := dspSrv.ThresholdSv1GetThresholdsForEvent(&utils.CGREvent{
+ result := dspSrv.ThresholdSv1GetThresholdsForEvent(context.Background(), &utils.CGREvent{
Tenant: "tenant",
}, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
@@ -93,7 +94,7 @@ func TestDspThresholdSv1ProcessEventNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *[]string
- result := dspSrv.ThresholdSv1ProcessEvent(&utils.CGREvent{
+ result := dspSrv.ThresholdSv1ProcessEvent(context.Background(), &utils.CGREvent{
Tenant: "tenant",
}, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
@@ -107,7 +108,7 @@ func TestDspThresholdSv1ProcessEventnNil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *[]string
- result := dspSrv.ThresholdSv1ProcessEvent(&utils.CGREvent{
+ result := dspSrv.ThresholdSv1ProcessEvent(context.Background(), &utils.CGREvent{
Tenant: "tenant",
}, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
@@ -120,7 +121,7 @@ func TestDspThresholdSv1GetThresholdIDsNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *[]string
- result := dspSrv.ThresholdSv1GetThresholdIDs(&utils.TenantWithAPIOpts{
+ result := dspSrv.ThresholdSv1GetThresholdIDs(context.Background(), &utils.TenantWithAPIOpts{
Tenant: "tenant",
}, reply)
expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION"
@@ -134,7 +135,7 @@ func TestDspThresholdSv1GetThresholdIDErrorNil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *[]string
- result := dspSrv.ThresholdSv1GetThresholdIDs(&utils.TenantWithAPIOpts{
+ result := dspSrv.ThresholdSv1GetThresholdIDs(context.Background(), &utils.TenantWithAPIOpts{
Tenant: "tenant",
}, reply)
expected := "MANDATORY_IE_MISSING: [ApiKey]"
@@ -147,7 +148,7 @@ func TestDspThresholdSv1GetThresholdNil(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
var reply *engine.Threshold
- result := dspSrv.ThresholdSv1GetThreshold(&utils.TenantIDWithAPIOpts{
+ result := dspSrv.ThresholdSv1GetThreshold(context.Background(), &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "tenant",
},
@@ -163,7 +164,7 @@ func TestDspThresholdSv1GetThresholdErrorNil(t *testing.T) {
dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil)
cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"}
var reply *engine.Threshold
- result := dspSrv.ThresholdSv1GetThreshold(&utils.TenantIDWithAPIOpts{
+ result := dspSrv.ThresholdSv1GetThreshold(context.Background(), &utils.TenantIDWithAPIOpts{
TenantID: &utils.TenantID{
Tenant: "tenant",
},
diff --git a/dispatchers/utils.go b/dispatchers/utils.go
index 96c75e15c..b6ec7ff0c 100644
--- a/dispatchers/utils.go
+++ b/dispatchers/utils.go
@@ -21,16 +21,9 @@ package dispatchers
import (
"strings"
- "github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
)
-type ArgsReplicateSessionsWithAPIOpts struct {
- APIOpts map[string]interface{}
- Tenant string
- sessions.ArgsReplicateSessions
-}
-
type AttrRemoteLockWithAPIOpts struct {
APIOpts map[string]interface{}
Tenant string
diff --git a/engine/attributes.go b/engine/attributes.go
index e8070e603..843656954 100644
--- a/engine/attributes.go
+++ b/engine/attributes.go
@@ -33,29 +33,29 @@ import (
// NewAttributeService returns a new AttributeService
func NewAttributeService(dm *DataManager, filterS *FilterS,
- cgrcfg *config.CGRConfig) *AttributeService {
- return &AttributeService{
+ cgrcfg *config.CGRConfig) *AttributeS {
+ return &AttributeS{
dm: dm,
fltrS: filterS,
cfg: cgrcfg,
}
}
-// AttributeService the service for the API
-type AttributeService struct {
+// AttributeS the service for the API
+type AttributeS struct {
dm *DataManager
fltrS *FilterS
cfg *config.CGRConfig
}
// Shutdown is called to shutdown the service
-func (alS *AttributeService) Shutdown() {
+func (alS *AttributeS) Shutdown() {
utils.Logger.Info(fmt.Sprintf("<%s> shutdown initialized", utils.AttributeS))
utils.Logger.Info(fmt.Sprintf("<%s> shutdown complete", utils.AttributeS))
}
// attributeProfileForEvent returns the matching attribute
-func (alS *AttributeService) attributeProfileForEvent(ctx *context.Context, tnt string, attrIDs []string,
+func (alS *AttributeS) attributeProfileForEvent(ctx *context.Context, tnt string, attrIDs []string,
evNm utils.MapStorage, lastID string, processedPrfNo map[string]int, profileRuns int, ignoreFilters bool) (matchAttrPrfl *AttributeProfile, err error) {
if len(attrIDs) == 0 {
ignoreFilters = false
@@ -130,7 +130,7 @@ func (attrReply *AttrSProcessEventReply) Digest() (rplyDigest string) {
}
// processEvent will match event with attribute profile and do the necessary replacements
-func (alS *AttributeService) processEvent(ctx *context.Context, tnt string, args *utils.CGREvent, evNm utils.MapStorage, dynDP utils.DataProvider,
+func (alS *AttributeS) processEvent(ctx *context.Context, tnt string, args *utils.CGREvent, evNm utils.MapStorage, dynDP utils.DataProvider,
lastID string, processedPrfNo map[string]int, profileRuns int) (rply *AttrSProcessEventReply, err error) {
var attrIDs []string
if attrIDs, err = GetStringSliceOpts(ctx, args.Tenant, args, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIDs,
@@ -203,7 +203,7 @@ func (alS *AttributeService) processEvent(ctx *context.Context, tnt string, args
}
// V1GetAttributeForEvent returns the AttributeProfile that matches the event
-func (alS *AttributeService) V1GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent,
+func (alS *AttributeS) V1GetAttributeForEvent(ctx *context.Context, args *utils.CGREvent,
attrPrfl *APIAttributeProfile) (err error) {
if args == nil {
return utils.NewErrMandatoryIeMissing(utils.CGREventString)
@@ -240,7 +240,7 @@ func (alS *AttributeService) V1GetAttributeForEvent(ctx *context.Context, args *
}
// V1ProcessEvent proccess the event and returns the result
-func (alS *AttributeService) V1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
+func (alS *AttributeS) V1ProcessEvent(ctx *context.Context, args *utils.CGREvent,
reply *AttrSProcessEventReply) (err error) {
tnt := args.Tenant
if tnt == utils.EmptyString {
diff --git a/engine/caches.go b/engine/caches.go
index 1473172c6..26e3b7645 100644
--- a/engine/caches.go
+++ b/engine/caches.go
@@ -253,7 +253,7 @@ func (chS *CacheS) V1HasItem(_ *context.Context, args *utils.ArgsGetCacheItemWit
return
}
-func (chS *CacheS) V1GetItemExpiryTime(args *utils.ArgsGetCacheItemWithAPIOpts,
+func (chS *CacheS) V1GetItemExpiryTime(_ *context.Context, args *utils.ArgsGetCacheItemWithAPIOpts,
reply *time.Time) (err error) {
expTime, has := chS.tCache.GetItemExpiryTime(args.CacheID, args.ItemID)
if !has {
@@ -295,7 +295,7 @@ func (chS *CacheS) V1GetCacheStats(ctx *context.Context, args *utils.AttrCacheID
return
}
-func (chS *CacheS) V1PrecacheStatus(args *utils.AttrCacheIDsWithAPIOpts, rply *map[string]string) (err error) {
+func (chS *CacheS) V1PrecacheStatus(_ *context.Context, args *utils.AttrCacheIDsWithAPIOpts, rply *map[string]string) (err error) {
if len(args.CacheIDs) == 0 {
args.CacheIDs = utils.CachePartitions.AsSlice()
}
@@ -315,13 +315,13 @@ func (chS *CacheS) V1PrecacheStatus(args *utils.AttrCacheIDsWithAPIOpts, rply *m
return
}
-func (chS *CacheS) V1HasGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (chS *CacheS) V1HasGroup(_ *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(_ *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
rply *[]string) (err error) {
if has := chS.tCache.HasGroup(args.CacheID, args.GroupID); !has {
return utils.ErrNotFound
@@ -330,7 +330,7 @@ func (chS *CacheS) V1GetGroupItemIDs(args *utils.ArgsGetGroupWithAPIOpts,
return
}
-func (chS *CacheS) V1RemoveGroup(args *utils.ArgsGetGroupWithAPIOpts,
+func (chS *CacheS) V1RemoveGroup(_ *context.Context, args *utils.ArgsGetGroupWithAPIOpts,
rply *string) (err error) {
chS.tCache.RemoveGroup(args.CacheID, args.GroupID, true, utils.NonTransactional)
*rply = utils.OK
@@ -399,7 +399,7 @@ func (chS *CacheS) ReplicateSet(ctx *context.Context, chID, itmID string, value
}
// V1ReplicateSet replicate an item
-func (chS *CacheS) V1ReplicateSet(args *utils.ArgCacheReplicateSet, reply *string) (err error) {
+func (chS *CacheS) V1ReplicateSet(_ *context.Context, args *utils.ArgCacheReplicateSet, reply *string) (err error) {
if cmp, canCast := args.Value.(utils.Compiler); canCast {
if err = cmp.Compile(); err != nil {
return
@@ -425,7 +425,7 @@ func (chS *CacheS) ReplicateRemove(ctx *context.Context, chID, itmID string) (er
}
// V1ReplicateRemove replicate an item
-func (chS *CacheS) V1ReplicateRemove(args *utils.ArgCacheReplicateRemove, reply *string) (err error) {
+func (chS *CacheS) V1ReplicateRemove(_ *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/libengine_test.go b/engine/libengine_test.go
index 1b2b9713a..3c06a6f31 100644
--- a/engine/libengine_test.go
+++ b/engine/libengine_test.go
@@ -119,7 +119,6 @@ func (TestRPCSrvMock) V2Do(*context.Context, interface{}, *string) error { retur
type TestRPCSrvMockS struct{} // exported for service
-func (TestRPCSrvMockS) Do(*context.Context, interface{}, *string) error { return nil }
func (TestRPCSrvMockS) V1Do(*context.Context, interface{}, *string) error { return nil }
func (TestRPCSrvMockS) V2Do(*context.Context, interface{}, *string) error { return nil }
@@ -167,7 +166,7 @@ func TestIntServiceNewService(t *testing.T) {
}
methods = getMethods(s)
exp = map[string][]string{
- "TestRPCSrvMockS": {"Do", "Ping", "V1Do", "V2Do"},
+ "TestRPCSrvMockS": {"Ping", "V1Do", "V2Do"},
"TestRPCSrvMockSv1": {"Do", "Ping"},
"TestRPCSrvMockSv2": {"Do", "Ping"},
}
diff --git a/engine/z_attributes_test.go b/engine/z_attributes_test.go
index aba534e1b..78c62cc96 100644
--- a/engine/z_attributes_test.go
+++ b/engine/z_attributes_test.go
@@ -30,7 +30,7 @@ import (
var (
expTimeAttributes = time.Now().Add(20 * time.Minute)
- attrS *AttributeService
+ attrS *AttributeS
dmAtr *DataManager
attrEvs = []*utils.CGREvent{
{ //matching AttributeProfile1
@@ -3454,7 +3454,7 @@ func TestAttributesattributeProfileForEventNoDBConn(t *testing.T) {
dataDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
dm := NewDataManager(dataDB, cfg.CacheCfg(), nil)
Cache = NewCacheS(cfg, dm, nil)
- alS := &AttributeService{
+ alS := &AttributeS{
cfg: cfg,
dm: dm,
fltrS: NewFilterS(cfg, nil, dm),
@@ -3527,7 +3527,7 @@ func TestAttributesattributeProfileForEventErrNotFound(t *testing.T) {
dataDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
dm := NewDataManager(dataDB, cfg.CacheCfg(), nil)
Cache = NewCacheS(cfg, dm, nil)
- alS := &AttributeService{
+ alS := &AttributeS{
cfg: cfg,
dm: dm,
fltrS: NewFilterS(cfg, nil, dm),
@@ -3565,7 +3565,7 @@ func TestAttributesattributeProfileForEventErrPass(t *testing.T) {
dataDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
dm := NewDataManager(dataDB, cfg.CacheCfg(), nil)
Cache = NewCacheS(cfg, dm, nil)
- alS := &AttributeService{
+ alS := &AttributeS{
cfg: cfg,
dm: dm,
fltrS: NewFilterS(cfg, nil, dm),
diff --git a/generate.sh b/generate.sh
new file mode 100755
index 000000000..083b2edcf
--- /dev/null
+++ b/generate.sh
@@ -0,0 +1,4 @@
+#! /usr/bin/env sh
+go generate ./...
+go fmt ./...
+./build.sh
\ No newline at end of file
diff --git a/services/attributes.go b/services/attributes.go
index f27d652df..cb26ac6cd 100644
--- a/services/attributes.go
+++ b/services/attributes.go
@@ -60,7 +60,7 @@ type AttributeService struct {
filterSChan chan *engine.FilterS
server *cores.Server
- attrS *engine.AttributeService
+ attrS *engine.AttributeS
rpc *apis.AttributeSv1 // useful on restart
connChan chan birpc.ClientConnector // publish the internal Subsystem when available
anz *AnalyzerService
diff --git a/services/attributes_test.go b/services/attributes_test.go
index 6d71baed9..da685b6ea 100644
--- a/services/attributes_test.go
+++ b/services/attributes_test.go
@@ -59,7 +59,7 @@ func TestAttributeSCoverage(t *testing.T) {
if attrS2.IsRunning() {
t.Errorf("Expected service to be down")
}
- attrS2.attrS = &engine.AttributeService{}
+ attrS2.attrS = &engine.AttributeS{}
if !attrS2.IsRunning() {
t.Errorf("Expected service to be running")
}
diff --git a/services/sessions.go b/services/sessions.go
index c389c9240..fd11cd5a2 100644
--- a/services/sessions.go
+++ b/services/sessions.go
@@ -106,7 +106,9 @@ func (smg *SessionService) Start(ctx *context.Context, shtDw context.CancelFunc)
// Register BiRpc handlers
if smg.cfg.SessionSCfg().ListenBijson != utils.EmptyString {
smg.bircpEnabled = true
- smg.server.BiRPCRegisterName(utils.SessionSv1, srv)
+ for n, s := range srv {
+ smg.server.BiRPCRegisterName(n, s)
+ }
// run this in it's own goroutine
go smg.start(shtDw)
}
diff --git a/sessions/libsessions.go b/sessions/libsessions.go
index 0a332fb61..2b3c5e49f 100644
--- a/sessions/libsessions.go
+++ b/sessions/libsessions.go
@@ -609,6 +609,8 @@ type ArgsReplicateSessions struct {
CGRID string
Passive bool
ConnIDs []string
+ APIOpts map[string]interface{}
+ Tenant string
}
// getMaxUsageFromRuns will return maxUsage with the lowest one from maxAbstractsRuns
diff --git a/utils/consts.go b/utils/consts.go
index 3c4a99209..54bf24052 100644
--- a/utils/consts.go
+++ b/utils/consts.go
@@ -1114,6 +1114,14 @@ const (
// APIerSv1 APIs
const (
+ AdminSv1GetRateRatesIndexesHealth = "AdminSv1.GetRateRatesIndexesHealth"
+ AdminSv1GetChargerProfileCount = "AdminSv1.GetChargerProfileCount"
+ AdminSv1GetAccountsIndexesHealth = "AdminSv1.GetAccountsIndexesHealth"
+ AdminSv1GetDispatcherProfileCount = "AdminSv1.GetDispatcherProfileCount"
+ AdminSv1GetRouteProfileCount = "AdminSv1.GetRouteProfileCount"
+ AdminSv1GetActionsIndexesHealth = "AdminSv1.GetActionsIndexesHealth"
+ AdminSv1GetDispatcherHostCount = "AdminSv1.GetDispatcherHostCount"
+ AdminSv1GetRateProfilesIndexesHealth = "AdminSv1.GetRateProfilesIndexesHealth"
AdminSv1ComputeFilterIndexes = "AdminSv1.ComputeFilterIndexes"
AdminSv1ComputeFilterIndexIDs = "AdminSv1.ComputeFilterIndexIDs"
AdminSv1GetAccountActionPlansIndexHealth = "AdminSv1.GetAccountActionPlansIndexHealth"
@@ -1256,6 +1264,7 @@ const (
ConfigSv1GetConfigAsJSON = "ConfigSv1.GetConfigAsJSON"
ConfigSv1SetConfigFromJSON = "ConfigSv1.SetConfigFromJSON"
ConfigSv1StoreCfgInDB = "ConfigSv1.StoreCfgInDB"
+ ConfigSv1Ping = "ConfigSv1.Ping"
)
const (
@@ -1483,18 +1492,19 @@ const (
// Cdrs APIs
const (
- CDRsV1 = "CDRsV1"
- CDRsV1GetCDRsCount = "CDRsV1.GetCDRsCount"
- CDRsV1RateCDRs = "CDRsV1.RateCDRs"
- CDRsV1GetCDRs = "CDRsV1.GetCDRs"
- CDRsV1ProcessCDR = "CDRsV1.ProcessCDR"
- CDRsV1ProcessExternalCDR = "CDRsV1.ProcessExternalCDR"
- CDRsV1StoreSessionCost = "CDRsV1.StoreSessionCost"
- CDRsV1ProcessEvent = "CDRsV1.ProcessEvent"
- CDRsV1Ping = "CDRsV1.Ping"
- CDRsV2 = "CDRsV2"
- CDRsV2StoreSessionCost = "CDRsV2.StoreSessionCost"
- CDRsV2ProcessEvent = "CDRsV2.ProcessEvent"
+ CDRsV1 = "CDRsV1"
+ CDRsV1GetCDRsCount = "CDRsV1.GetCDRsCount"
+ CDRsV1RateCDRs = "CDRsV1.RateCDRs"
+ CDRsV1GetCDRs = "CDRsV1.GetCDRs"
+ CDRsV1ProcessCDR = "CDRsV1.ProcessCDR"
+ CDRsV1ProcessExternalCDR = "CDRsV1.ProcessExternalCDR"
+ CDRsV1StoreSessionCost = "CDRsV1.StoreSessionCost"
+ CDRsV1ProcessEvent = "CDRsV1.ProcessEvent"
+ CDRsV1ProcessEventWithGet = "CDRsV1.ProcessEventWithGet"
+ CDRsV1Ping = "CDRsV1.Ping"
+ CDRsV2 = "CDRsV2"
+ CDRsV2StoreSessionCost = "CDRsV2.StoreSessionCost"
+ CDRsV2ProcessEvent = "CDRsV2.ProcessEvent"
)
// EEs