mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated parseFlags for agents
This commit is contained in:
committed by
Dan Christian Bogos
parent
f025f1b002
commit
05cdc494e7
@@ -285,42 +285,7 @@ func (smaEv *SMAsteriskEvent) V1AuthorizeArgs() (args *sessions.V1AuthorizeArgs)
|
||||
utils.AsteriskAgent))
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(smaEv.Subsystems(), utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.GetMaxUsage = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AuthorizeResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
case subsystem == utils.MetaSuppliers:
|
||||
args.GetSuppliers = true
|
||||
case subsystem == utils.MetaSuppliersIgnoreErrors:
|
||||
args.SuppliersIgnoreErrors = true
|
||||
case subsystem == utils.MetaSuppliersEventCost:
|
||||
args.SuppliersMaxCost = utils.MetaEventCost
|
||||
case strings.Index(subsystem, utils.MetaAttributes) != -1:
|
||||
args.GetAttributes = true
|
||||
if attrWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(attrWithIDs) > 1 {
|
||||
attrIDs := strings.Split(attrWithIDs[1], utils.INFIELD_SEP)
|
||||
args.AttributeIDs = &attrIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
thIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &thIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(smaEv.Subsystems())
|
||||
return
|
||||
}
|
||||
|
||||
@@ -335,35 +300,7 @@ func (smaEv *SMAsteriskEvent) V1InitSessionArgs(cgrEvDisp utils.CGREventWithArgD
|
||||
utils.AsteriskAgent, utils.ToJSON(cgrEvDisp.CGREvent), utils.CGRFlags))
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.InitSession = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AllocateResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEvDisp.ConsumeArgs(true, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
case strings.Index(subsystem, utils.MetaAttributes) != -1:
|
||||
args.GetAttributes = true
|
||||
if attrWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(attrWithIDs) > 1 {
|
||||
attrIDs := strings.Split(attrWithIDs[1], utils.INFIELD_SEP)
|
||||
args.AttributeIDs = &attrIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
thIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &thIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -378,28 +315,6 @@ func (smaEv *SMAsteriskEvent) V1TerminateSessionArgs(cgrEvDisp utils.CGREventWit
|
||||
utils.AsteriskAgent, utils.ToJSON(cgrEvDisp.CGREvent), utils.CGRFlags))
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.TerminateSession = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.ReleaseResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEvDisp.ConsumeArgs(true, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
thIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &thIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -419,42 +419,7 @@ func (fsev FSEvent) V1AuthorizeArgs() (args *sessions.V1AuthorizeArgs) {
|
||||
if !has {
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.GetMaxUsage = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AuthorizeResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
case subsystem == utils.MetaSuppliers:
|
||||
args.GetSuppliers = true
|
||||
case subsystem == utils.MetaSuppliersIgnoreErrors:
|
||||
args.SuppliersIgnoreErrors = true
|
||||
case subsystem == utils.MetaSuppliersEventCost:
|
||||
args.SuppliersMaxCost = utils.MetaEventCost
|
||||
case strings.Index(subsystem, utils.MetaAttributes) != -1:
|
||||
args.GetAttributes = true
|
||||
if attrWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(attrWithIDs) > 1 {
|
||||
attrIDs := strings.Split(attrWithIDs[1], utils.INFIELD_SEP)
|
||||
args.AttributeIDs = &attrIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
thIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &thIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -472,35 +437,7 @@ func (fsev FSEvent) V1InitSessionArgs() (args *sessions.V1InitSessionArgs) {
|
||||
if !has {
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.InitSession = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AllocateResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
case strings.Index(subsystem, utils.MetaAttributes) != -1:
|
||||
args.GetAttributes = true
|
||||
if attrWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(attrWithIDs) > 1 {
|
||||
attrIDs := strings.Split(attrWithIDs[1], utils.INFIELD_SEP)
|
||||
args.AttributeIDs = &attrIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
thIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &thIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -518,29 +455,7 @@ func (fsev FSEvent) V1TerminateSessionArgs() (args *sessions.V1TerminateSessionA
|
||||
if !has {
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.TerminateSession = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.ReleaseResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
thIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &thIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -212,42 +212,7 @@ func (kev KamEvent) V1AuthorizeArgs() (args *sessions.V1AuthorizeArgs) {
|
||||
if !has {
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.GetMaxUsage = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AuthorizeResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
case subsystem == utils.MetaSuppliers:
|
||||
args.GetSuppliers = true
|
||||
case subsystem == utils.MetaSuppliersIgnoreErrors:
|
||||
args.SuppliersIgnoreErrors = true
|
||||
case subsystem == utils.MetaSuppliersEventCost:
|
||||
args.SuppliersMaxCost = utils.MetaEventCost
|
||||
case strings.Index(subsystem, utils.MetaAttributes) != -1:
|
||||
args.GetAttributes = true
|
||||
if attrWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(attrWithIDs) > 1 {
|
||||
attrIDs := strings.Split(attrWithIDs[1], utils.INFIELD_SEP)
|
||||
args.AttributeIDs = &attrIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
tdIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &tdIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -306,35 +271,7 @@ func (kev KamEvent) V1InitSessionArgs() (args *sessions.V1InitSessionArgs) {
|
||||
if !has {
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.InitSession = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AllocateResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
case strings.Index(subsystem, utils.MetaAttributes) != -1:
|
||||
args.GetAttributes = true
|
||||
if attrWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(attrWithIDs) > 1 {
|
||||
attrIDs := strings.Split(attrWithIDs[1], utils.INFIELD_SEP)
|
||||
args.AttributeIDs = &attrIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
thIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &thIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -351,42 +288,7 @@ func (kev KamEvent) V1ProcessEventArgs() (args *sessions.V1ProcessEventArgs) {
|
||||
if !has {
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.Debit = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AllocateResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
case subsystem == utils.MetaSuppliers:
|
||||
args.GetSuppliers = true
|
||||
case subsystem == utils.MetaSuppliersIgnoreErrors:
|
||||
args.SuppliersIgnoreErrors = true
|
||||
case subsystem == utils.MetaSuppliersEventCost:
|
||||
args.SuppliersMaxCost = utils.MetaEventCost
|
||||
case strings.Index(subsystem, utils.MetaAttributes) != -1:
|
||||
args.GetAttributes = true
|
||||
if attrWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(attrWithIDs) > 1 {
|
||||
attrIDs := strings.Split(attrWithIDs[1], utils.INFIELD_SEP)
|
||||
args.AttributeIDs = &attrIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
tdIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &tdIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -493,29 +395,7 @@ func (kev KamEvent) V1TerminateSessionArgs() (args *sessions.V1TerminateSessionA
|
||||
if !has {
|
||||
return
|
||||
}
|
||||
for _, subsystem := range strings.Split(subsystems, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.TerminateSession = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.ReleaseResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
if thdWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(thdWithIDs) > 1 {
|
||||
thIDs := strings.Split(thdWithIDs[1], utils.INFIELD_SEP)
|
||||
args.ThresholdIDs = &thIDs
|
||||
}
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
if stsWithIDs := strings.Split(subsystem, utils.InInFieldSep); len(stsWithIDs) > 1 {
|
||||
stsIDs := strings.Split(stsWithIDs[1], utils.INFIELD_SEP)
|
||||
args.StatIDs = &stsIDs
|
||||
}
|
||||
}
|
||||
}
|
||||
args.ParseFlags(subsystems)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -243,6 +243,7 @@ func isHidden(fileName string) bool {
|
||||
}
|
||||
return strings.HasPrefix(fileName, ".")
|
||||
}
|
||||
|
||||
func loadConfigFromFolder(cfg *CGRConfig, cfgDir string) (*CGRConfig, error) {
|
||||
jsonFilesFound := false
|
||||
err := filepath.Walk(cfgDir, func(path string, info os.FileInfo, err error) error {
|
||||
|
||||
@@ -1709,6 +1709,15 @@ func NewV1AuthorizeArgs(attrs bool, attributeIDs []string,
|
||||
return
|
||||
}
|
||||
|
||||
func getFlagIDs(flag string) *[]string {
|
||||
flagWithIDs := strings.Split(flag, utils.InInFieldSep)
|
||||
if len(flagWithIDs) <= 1 {
|
||||
return nil
|
||||
}
|
||||
IDs := strings.Split(flagWithIDs[1], utils.INFIELD_SEP)
|
||||
return &IDs
|
||||
}
|
||||
|
||||
// V1AuthorizeArgs are options available in auth request
|
||||
type V1AuthorizeArgs struct {
|
||||
GetAttributes bool
|
||||
@@ -1727,6 +1736,38 @@ type V1AuthorizeArgs struct {
|
||||
*utils.ArgDispatcher
|
||||
}
|
||||
|
||||
func (args *V1AuthorizeArgs) ParseFlags(flags string) {
|
||||
dispatcherFlag := false
|
||||
for _, subsystem := range strings.Split(flags, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.GetMaxUsage = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AuthorizeResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
dispatcherFlag = true
|
||||
case subsystem == utils.MetaSuppliers:
|
||||
args.GetSuppliers = true
|
||||
case subsystem == utils.MetaSuppliersIgnoreErrors:
|
||||
args.SuppliersIgnoreErrors = true
|
||||
case subsystem == utils.MetaSuppliersEventCost:
|
||||
args.SuppliersMaxCost = utils.MetaEventCost
|
||||
case strings.HasPrefix(subsystem, utils.MetaAttributes):
|
||||
args.GetAttributes = true
|
||||
args.AttributeIDs = getFlagIDs(subsystem)
|
||||
case strings.HasPrefix(subsystem, utils.MetaThresholds):
|
||||
args.ProcessThresholds = true
|
||||
args.ThresholdIDs = getFlagIDs(subsystem)
|
||||
case strings.HasPrefix(subsystem, utils.MetaStats):
|
||||
args.ProcessStats = true
|
||||
args.StatIDs = getFlagIDs(subsystem)
|
||||
}
|
||||
}
|
||||
cgrArgs := args.CGREvent.ConsumeArgs(dispatcherFlag, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
}
|
||||
|
||||
// V1AuthorizeReply are options available in auth reply
|
||||
type V1AuthorizeReply struct {
|
||||
Attributes *engine.AttrSProcessEventReply
|
||||
@@ -2010,6 +2051,31 @@ type V1InitSessionArgs struct {
|
||||
*utils.ArgDispatcher
|
||||
}
|
||||
|
||||
func (args *V1InitSessionArgs) ParseFlags(flags string) {
|
||||
dispatcherFlag := false
|
||||
for _, subsystem := range strings.Split(flags, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.InitSession = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AllocateResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
dispatcherFlag = true
|
||||
case strings.HasPrefix(subsystem, utils.MetaAttributes):
|
||||
args.GetAttributes = true
|
||||
args.AttributeIDs = getFlagIDs(subsystem)
|
||||
case strings.HasPrefix(subsystem, utils.MetaThresholds):
|
||||
args.ProcessThresholds = true
|
||||
args.ThresholdIDs = getFlagIDs(subsystem)
|
||||
case strings.HasPrefix(subsystem, utils.MetaStats):
|
||||
args.ProcessStats = true
|
||||
args.StatIDs = getFlagIDs(subsystem)
|
||||
}
|
||||
}
|
||||
cgrArgs := args.CGREvent.ConsumeArgs(dispatcherFlag, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
}
|
||||
|
||||
// V1InitSessionReply are options for initialization reply
|
||||
type V1InitSessionReply struct {
|
||||
Attributes *engine.AttrSProcessEventReply
|
||||
@@ -2416,6 +2482,28 @@ type V1TerminateSessionArgs struct {
|
||||
*utils.ArgDispatcher
|
||||
}
|
||||
|
||||
func (args *V1TerminateSessionArgs) ParseFlags(flags string) {
|
||||
dispatcherFlag := false
|
||||
for _, subsystem := range strings.Split(flags, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.TerminateSession = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.ReleaseResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
dispatcherFlag = true
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
args.ThresholdIDs = getFlagIDs(subsystem)
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
args.StatIDs = getFlagIDs(subsystem)
|
||||
}
|
||||
}
|
||||
cgrArgs := args.CGREvent.ConsumeArgs(dispatcherFlag, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
}
|
||||
|
||||
// BiRPCV1TerminateSession will stop debit loops as well as release any used resources
|
||||
func (sS *SessionS) BiRPCv1TerminateSession(clnt rpcclient.RpcClientConnection,
|
||||
args *V1TerminateSessionArgs, rply *string) (err error) {
|
||||
@@ -2693,6 +2781,38 @@ type V1ProcessEventArgs struct {
|
||||
*utils.ArgDispatcher
|
||||
}
|
||||
|
||||
func (args V1ProcessEventArgs) ParseFlags(flags string) {
|
||||
dispatcherFlag := false
|
||||
for _, subsystem := range strings.Split(flags, utils.FIELDS_SEP) {
|
||||
switch {
|
||||
case subsystem == utils.MetaAccounts:
|
||||
args.Debit = true
|
||||
case subsystem == utils.MetaResources:
|
||||
args.AllocateResources = true
|
||||
case subsystem == utils.MetaDispatchers:
|
||||
dispatcherFlag = true
|
||||
case subsystem == utils.MetaSuppliers:
|
||||
args.GetSuppliers = true
|
||||
case subsystem == utils.MetaSuppliersIgnoreErrors:
|
||||
args.SuppliersIgnoreErrors = true
|
||||
case subsystem == utils.MetaSuppliersEventCost:
|
||||
args.SuppliersMaxCost = utils.MetaEventCost
|
||||
case strings.Index(subsystem, utils.MetaAttributes) != -1:
|
||||
args.GetAttributes = true
|
||||
args.AttributeIDs = getFlagIDs(subsystem)
|
||||
case strings.Index(subsystem, utils.MetaThresholds) != -1:
|
||||
args.ProcessThresholds = true
|
||||
args.ThresholdIDs = getFlagIDs(subsystem)
|
||||
case strings.Index(subsystem, utils.MetaStats) != -1:
|
||||
args.ProcessStats = true
|
||||
args.StatIDs = getFlagIDs(subsystem)
|
||||
}
|
||||
}
|
||||
cgrArgs := args.CGREvent.ConsumeArgs(dispatcherFlag, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
}
|
||||
|
||||
// V1ProcessEventReply is the reply for the ProcessEvent API
|
||||
type V1ProcessEventReply struct {
|
||||
MaxUsage *time.Duration
|
||||
|
||||
Reference in New Issue
Block a user