mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated sessions and loaders AsMapInterface method
This commit is contained in:
committed by
Dan Christian Bogos
parent
5fc810a2d2
commit
fbe425f144
@@ -200,54 +200,60 @@ func (self *LoaderSCfg) Clone() *LoaderSCfg {
|
||||
return clnLoader
|
||||
}
|
||||
|
||||
func (lData *LoaderDataType) AsMapInterface(separator string) map[string]interface{} {
|
||||
func (lData *LoaderDataType) AsMapInterface(separator string) (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.TypeCf: lData.Type,
|
||||
utils.FilenameCfg: lData.Filename,
|
||||
}
|
||||
|
||||
fields := make([]map[string]interface{}, len(lData.Fields))
|
||||
for i, item := range lData.Fields {
|
||||
fields[i] = item.AsMapInterface(separator)
|
||||
}
|
||||
initialMP[utils.FieldsCfg] = fields
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.TypeCf: lData.Type,
|
||||
utils.FilenameCfg: lData.Filename,
|
||||
utils.FieldsCfg: fields,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (l *LoaderSCfg) AsMapInterface(separator string) map[string]interface{} {
|
||||
tenant := make([]string, len(l.Tenant))
|
||||
for i, item := range l.Tenant {
|
||||
tenant[i] = item.Rules
|
||||
}
|
||||
strings.Join(tenant, utils.EmptyString)
|
||||
|
||||
data := make([]map[string]interface{}, len(l.Data))
|
||||
for i, item := range l.Data {
|
||||
data[i] = item.AsMapInterface(separator)
|
||||
}
|
||||
var runDelay string = "0"
|
||||
if l.RunDelay != 0 {
|
||||
runDelay = l.RunDelay.String()
|
||||
}
|
||||
cacheSConns := make([]string, len(l.CacheSConns))
|
||||
for i, item := range l.CacheSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)
|
||||
if item == buf {
|
||||
cacheSConns[i] = strings.ReplaceAll(item, ":*caches", utils.EmptyString)
|
||||
} else {
|
||||
cacheSConns[i] = item
|
||||
}
|
||||
}
|
||||
return map[string]interface{}{
|
||||
func (l *LoaderSCfg) AsMapInterface(separator string) (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.IdCfg: l.Id,
|
||||
utils.EnabledCfg: l.Enabled,
|
||||
utils.TenantCfg: strings.Join(tenant, utils.EmptyString),
|
||||
utils.DryRunCfg: l.DryRun,
|
||||
utils.RunDelayCfg: runDelay,
|
||||
utils.LockFileNameCfg: l.LockFileName,
|
||||
utils.CacheSConnsCfg: cacheSConns,
|
||||
utils.FieldSeparatorCfg: l.FieldSeparator,
|
||||
utils.TpInDirCfg: l.TpInDir,
|
||||
utils.TpOutDirCfg: l.TpOutDir,
|
||||
utils.DataCfg: data,
|
||||
}
|
||||
if l.Tenant != nil {
|
||||
tenant := make([]string, len(l.Tenant))
|
||||
for i, item := range l.Tenant {
|
||||
tenant[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.TenantCfg] = strings.Join(tenant, utils.EmptyString)
|
||||
}
|
||||
if l.Data != nil {
|
||||
data := make([]map[string]interface{}, len(l.Data))
|
||||
for i, item := range l.Data {
|
||||
data[i] = item.AsMapInterface(separator)
|
||||
}
|
||||
initialMP[utils.DataCfg] = data
|
||||
}
|
||||
if l.RunDelay != 0 {
|
||||
initialMP[utils.RunDelayCfg] = l.RunDelay.String()
|
||||
} else {
|
||||
initialMP[utils.RunDelayCfg] = "0"
|
||||
}
|
||||
if l.CacheSConns != nil {
|
||||
cacheSConns := make([]string, len(l.CacheSConns))
|
||||
for i, item := range l.CacheSConns {
|
||||
if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches) {
|
||||
cacheSConns[i] = strings.ReplaceAll(item, ":*caches", utils.EmptyString)
|
||||
} else {
|
||||
cacheSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.CachesConnsCfg] = cacheSConns
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -132,8 +132,7 @@ func TestLoaderCfgAsMapInterface(t *testing.T) {
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
],
|
||||
}`
|
||||
eMap := []map[string]interface{}{
|
||||
{
|
||||
|
||||
@@ -299,160 +299,165 @@ func (scfg *SessionSCfg) loadFromJsonCfg(jsnCfg *SessionSJsonCfg) (err error) {
|
||||
return scfg.STIRCfg.loadFromJSONCfg(jsnCfg.Stir)
|
||||
}
|
||||
|
||||
func (scfg *SessionSCfg) AsMapInterface() map[string]interface{} {
|
||||
var debitInterval string = "0"
|
||||
func (scfg *SessionSCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.EnabledCfg: scfg.Enabled,
|
||||
utils.ListenBijsonCfg: scfg.ListenBijson,
|
||||
utils.ReplicationConnsCfg: scfg.ReplicationConns,
|
||||
utils.StoreSCostsCfg: scfg.StoreSCosts,
|
||||
utils.SessionIndexesCfg: scfg.SessionIndexes.Slice(),
|
||||
utils.ClientProtocolCfg: scfg.ClientProtocol,
|
||||
utils.TerminateAttemptsCfg: scfg.TerminateAttempts,
|
||||
utils.AlterableFieldsCfg: scfg.AlterableFields.AsSlice(),
|
||||
utils.STIRCfg: scfg.STIRCfg.AsMapInterface(),
|
||||
}
|
||||
if scfg.DebitInterval != 0 {
|
||||
debitInterval = scfg.DebitInterval.String()
|
||||
initialMP[utils.DebitIntervalCfg] = scfg.DebitInterval.String()
|
||||
} else if scfg.DebitInterval == 0 {
|
||||
initialMP[utils.DebitIntervalCfg] = "0"
|
||||
}
|
||||
var minCallDuration string = "0"
|
||||
if scfg.MinCallDuration != 0 {
|
||||
minCallDuration = scfg.MinCallDuration.String()
|
||||
initialMP[utils.MinCallDurationCfg] = scfg.MinCallDuration.String()
|
||||
} else if scfg.MinCallDuration == 0 {
|
||||
initialMP[utils.MinCallDurationCfg] = "0"
|
||||
}
|
||||
var maxCallDuration string = "0"
|
||||
if scfg.MaxCallDuration != 0 {
|
||||
maxCallDuration = scfg.MaxCallDuration.String()
|
||||
initialMP[utils.MaxCallDurationCfg] = scfg.MaxCallDuration.String()
|
||||
} else if scfg.MaxCallDuration == 0 {
|
||||
initialMP[utils.MaxCallDurationCfg] = "0"
|
||||
}
|
||||
var sessionTTL string = "0"
|
||||
if scfg.SessionTTL != 0 {
|
||||
sessionTTL = scfg.SessionTTL.String()
|
||||
initialMP[utils.SessionTTLCfg] = scfg.SessionTTL.String()
|
||||
} else if scfg.SessionTTL == 0 {
|
||||
initialMP[utils.SessionTTLCfg] = "0"
|
||||
}
|
||||
var sessionTTLMaxDelay string = "0"
|
||||
if scfg.SessionTTLMaxDelay != nil {
|
||||
sessionTTLMaxDelay = scfg.SessionTTLMaxDelay.String()
|
||||
initialMP[utils.SessionTTLMaxDelayCfg] = scfg.SessionTTLMaxDelay.String()
|
||||
}
|
||||
var sessionTTLLastUsed string = "0"
|
||||
if scfg.SessionTTLLastUsed != nil {
|
||||
sessionTTLLastUsed = scfg.SessionTTLLastUsed.String()
|
||||
initialMP[utils.SessionTTLLastUsedCfg] = scfg.SessionTTLLastUsed.String()
|
||||
}
|
||||
var sessionTTLUsage string = "0"
|
||||
if scfg.SessionTTLUsage != nil {
|
||||
sessionTTLUsage = scfg.SessionTTLUsage.String()
|
||||
initialMP[utils.SessionTTLUsageCfg] = scfg.SessionTTLUsage.String()
|
||||
}
|
||||
var sessionTTLLastUsage string = "0"
|
||||
if scfg.SessionTTLLastUsage != nil {
|
||||
sessionTTLLastUsage = scfg.SessionTTLLastUsage.String()
|
||||
initialMP[utils.SessionTTLLastUsageCfg] = scfg.SessionTTLLastUsage.String()
|
||||
}
|
||||
var channelSyncInterval string = "0"
|
||||
if scfg.ChannelSyncInterval != 0 {
|
||||
channelSyncInterval = scfg.ChannelSyncInterval.String()
|
||||
initialMP[utils.ChannelSyncIntervalCfg] = scfg.ChannelSyncInterval.String()
|
||||
} else if scfg.ChannelSyncInterval == 0 {
|
||||
initialMP[utils.ChannelSyncIntervalCfg] = "0"
|
||||
}
|
||||
var minDurLowBalance string = "0"
|
||||
if scfg.MinDurLowBalance != 0 {
|
||||
minDurLowBalance = scfg.MinDurLowBalance.String()
|
||||
initialMP[utils.MinDurLowBalanceCfg] = scfg.MinDurLowBalance.String()
|
||||
}
|
||||
|
||||
chargerSConns := make([]string, len(scfg.ChargerSConns))
|
||||
for i, item := range scfg.ChargerSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)
|
||||
if item == buf {
|
||||
chargerSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaChargers, utils.EmptyString)
|
||||
} else {
|
||||
chargerSConns[i] = item
|
||||
if scfg.ChargerSConns != nil {
|
||||
chargerSConns := make([]string, len(scfg.ChargerSConns))
|
||||
for i, item := range scfg.ChargerSConns {
|
||||
if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers) {
|
||||
chargerSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaChargers, utils.EmptyString)
|
||||
} else {
|
||||
chargerSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.ChargerSConnsCfg] = chargerSConns
|
||||
}
|
||||
RALsConns := make([]string, len(scfg.RALsConns))
|
||||
for i, item := range scfg.RALsConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder)
|
||||
|
||||
if item == buf {
|
||||
RALsConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResponder, utils.EmptyString)
|
||||
} else {
|
||||
RALsConns[i] = item
|
||||
if scfg.RALsConns != nil {
|
||||
RALsConns := make([]string, len(scfg.RALsConns))
|
||||
for i, item := range scfg.RALsConns {
|
||||
if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder) {
|
||||
RALsConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResponder, utils.EmptyString)
|
||||
} else {
|
||||
RALsConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.RALsConnsCfg] = RALsConns
|
||||
}
|
||||
resSConns := make([]string, len(scfg.ResSConns))
|
||||
for i, item := range scfg.ResSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)
|
||||
if item == buf {
|
||||
resSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResources, utils.EmptyString)
|
||||
} else {
|
||||
resSConns[i] = item
|
||||
if scfg.ResSConns != nil {
|
||||
resSConns := make([]string, len(scfg.ResSConns))
|
||||
for i, item := range scfg.ResSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)
|
||||
if item == buf {
|
||||
resSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResources, utils.EmptyString)
|
||||
} else {
|
||||
resSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.ResourceSConnsCfg] = resSConns
|
||||
}
|
||||
threshSConns := make([]string, len(scfg.ThreshSConns))
|
||||
for i, item := range scfg.ThreshSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)
|
||||
if item == buf {
|
||||
threshSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaThresholds, utils.EmptyString)
|
||||
} else {
|
||||
threshSConns[i] = item
|
||||
if scfg.ThreshSConns != nil {
|
||||
threshSConns := make([]string, len(scfg.ThreshSConns))
|
||||
for i, item := range scfg.ThreshSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)
|
||||
if item == buf {
|
||||
threshSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaThresholds, utils.EmptyString)
|
||||
} else {
|
||||
threshSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.ThresholdSConnsCfg] = threshSConns
|
||||
}
|
||||
statSConns := make([]string, len(scfg.StatSConns))
|
||||
for i, item := range scfg.StatSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStatS)
|
||||
if item == buf {
|
||||
statSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaStatS, utils.EmptyString)
|
||||
} else {
|
||||
statSConns[i] = item
|
||||
if scfg.StatSConns != nil {
|
||||
statSConns := make([]string, len(scfg.StatSConns))
|
||||
for i, item := range scfg.StatSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStatS)
|
||||
if item == buf {
|
||||
statSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaStatS, utils.EmptyString)
|
||||
} else {
|
||||
statSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.StatSConnsCfg] = statSConns
|
||||
}
|
||||
routesConns := make([]string, len(scfg.RouteSConns))
|
||||
for i, item := range scfg.RouteSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes)
|
||||
if item == buf {
|
||||
routesConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaRoutes, utils.EmptyString)
|
||||
} else {
|
||||
routesConns[i] = item
|
||||
if scfg.RouteSConns != nil {
|
||||
routesConns := make([]string, len(scfg.RouteSConns))
|
||||
for i, item := range scfg.RouteSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes)
|
||||
if item == buf {
|
||||
routesConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaRoutes, utils.EmptyString)
|
||||
} else {
|
||||
routesConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.RouteSConnsCfg] = routesConns
|
||||
}
|
||||
attrSConns := make([]string, len(scfg.AttrSConns))
|
||||
for i, item := range scfg.AttrSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)
|
||||
if item == buf {
|
||||
attrSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaAttributes, utils.EmptyString)
|
||||
} else {
|
||||
attrSConns[i] = item
|
||||
if scfg.AttrSConns != nil {
|
||||
attrSConns := make([]string, len(scfg.AttrSConns))
|
||||
for i, item := range scfg.AttrSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)
|
||||
if item == buf {
|
||||
attrSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaAttributes, utils.EmptyString)
|
||||
} else {
|
||||
attrSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.AttributeSConnsCfg] = attrSConns
|
||||
}
|
||||
CDRsConns := make([]string, len(scfg.CDRsConns))
|
||||
for i, item := range scfg.CDRsConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs)
|
||||
if item == buf {
|
||||
CDRsConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaCDRs, utils.EmptyString)
|
||||
} else {
|
||||
CDRsConns[i] = item
|
||||
if scfg.CDRsConns != nil {
|
||||
CDRsConns := make([]string, len(scfg.CDRsConns))
|
||||
for i, item := range scfg.CDRsConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs)
|
||||
if item == buf {
|
||||
CDRsConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaCDRs, utils.EmptyString)
|
||||
} else {
|
||||
CDRsConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.CDRsConnsCfg] = CDRsConns
|
||||
}
|
||||
schedulerConns := make([]string, len(scfg.SchedulerConns))
|
||||
for i, item := range scfg.SchedulerConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler)
|
||||
if item == buf {
|
||||
schedulerConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaScheduler, utils.EmptyString)
|
||||
} else {
|
||||
schedulerConns[i] = item
|
||||
if scfg.SchedulerConns != nil {
|
||||
schedulerConns := make([]string, len(scfg.SchedulerConns))
|
||||
for i, item := range scfg.SchedulerConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler)
|
||||
if item == buf {
|
||||
schedulerConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaScheduler, utils.EmptyString)
|
||||
} else {
|
||||
schedulerConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.SchedulerConnsCfg] = schedulerConns
|
||||
}
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: scfg.Enabled,
|
||||
utils.ListenBijsonCfg: scfg.ListenBijson,
|
||||
utils.ChargerSConnsCfg: chargerSConns,
|
||||
utils.RALsConnsCfg: RALsConns,
|
||||
utils.ResSConnsCfg: resSConns,
|
||||
utils.ThreshSConnsCfg: threshSConns,
|
||||
utils.StatSConnsCfg: statSConns,
|
||||
utils.RouteSConnsCfg: routesConns,
|
||||
utils.AttrSConnsCfg: attrSConns,
|
||||
utils.CDRsConnsCfg: CDRsConns,
|
||||
utils.ReplicationConnsCfg: scfg.ReplicationConns,
|
||||
utils.DebitIntervalCfg: debitInterval,
|
||||
utils.StoreSCostsCfg: scfg.StoreSCosts,
|
||||
utils.MinCallDurationCfg: minCallDuration,
|
||||
utils.MaxCallDurationCfg: maxCallDuration,
|
||||
utils.SessionTTLCfg: sessionTTL,
|
||||
utils.SessionTTLMaxDelayCfg: sessionTTLMaxDelay,
|
||||
utils.SessionTTLLastUsedCfg: sessionTTLLastUsed,
|
||||
utils.SessionTTLUsageCfg: sessionTTLUsage,
|
||||
utils.SessionTTLLastUsageCfg: sessionTTLLastUsage,
|
||||
utils.SessionIndexesCfg: scfg.SessionIndexes.Slice(),
|
||||
utils.ClientProtocolCfg: scfg.ClientProtocol,
|
||||
utils.ChannelSyncIntervalCfg: channelSyncInterval,
|
||||
utils.TerminateAttemptsCfg: scfg.TerminateAttempts,
|
||||
utils.AlterableFieldsCfg: scfg.AlterableFields.AsSlice(),
|
||||
utils.MinDurLowBalanceCfg: minDurLowBalance,
|
||||
utils.SchedulerConnsCfg: schedulerConns,
|
||||
utils.STIRCfg: scfg.STIRCfg.AsMapInterface(),
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
type FsAgentCfg struct {
|
||||
@@ -523,48 +528,48 @@ func (fscfg *FsAgentCfg) loadFromJsonCfg(jsnCfg *FreeswitchAgentJsonCfg) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (fscfg *FsAgentCfg) AsMapInterface(separator string) map[string]interface{} {
|
||||
sessionSConns := make([]string, len(fscfg.SessionSConns))
|
||||
for i, item := range fscfg.SessionSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)
|
||||
if item == buf {
|
||||
sessionSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaSessionS, utils.EmptyString)
|
||||
} else {
|
||||
sessionSConns[i] = item
|
||||
}
|
||||
func (fscfg *FsAgentCfg) AsMapInterface(separator string) (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.EnabledCfg: fscfg.Enabled,
|
||||
utils.SubscribeParkCfg: fscfg.SubscribePark,
|
||||
utils.CreateCdrCfg: fscfg.CreateCdr,
|
||||
utils.LowBalanceAnnFileCfg: fscfg.LowBalanceAnnFile,
|
||||
utils.EmptyBalanceContextCfg: fscfg.EmptyBalanceContext,
|
||||
utils.EmptyBalanceAnnFileCfg: fscfg.EmptyBalanceAnnFile,
|
||||
}
|
||||
if fscfg.SessionSConns != nil {
|
||||
sessionSConns := make([]string, len(fscfg.SessionSConns))
|
||||
for i, item := range fscfg.SessionSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)
|
||||
if item == buf {
|
||||
sessionSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaSessionS, utils.EmptyString)
|
||||
} else {
|
||||
sessionSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.SessionSConnsCfg] = sessionSConns
|
||||
}
|
||||
|
||||
var extraFields string
|
||||
if fscfg.ExtraFields != nil {
|
||||
values := make([]string, len(fscfg.ExtraFields))
|
||||
for i, item := range fscfg.ExtraFields {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
extraFields = strings.Join(values, separator)
|
||||
initialMP[utils.ExtraFieldsCfg] = strings.Join(values, separator)
|
||||
}
|
||||
|
||||
var maxWaitConnection string = ""
|
||||
if fscfg.MaxWaitConnection != 0 {
|
||||
maxWaitConnection = fscfg.MaxWaitConnection.String()
|
||||
initialMP[utils.MaxWaitConnectionCfg] = fscfg.MaxWaitConnection.String()
|
||||
} else {
|
||||
initialMP[utils.MaxWaitConnectionCfg] = utils.EmptyString
|
||||
}
|
||||
|
||||
eventSocketConns := make([]map[string]interface{}, len(fscfg.EventSocketConns))
|
||||
for key, item := range fscfg.EventSocketConns {
|
||||
eventSocketConns[key] = item.AsMapInterface()
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: fscfg.Enabled,
|
||||
utils.SessionSConnsCfg: sessionSConns,
|
||||
utils.SubscribeParkCfg: fscfg.SubscribePark,
|
||||
utils.CreateCdrCfg: fscfg.CreateCdr,
|
||||
utils.ExtraFieldsCfg: extraFields,
|
||||
utils.LowBalanceAnnFileCfg: fscfg.LowBalanceAnnFile,
|
||||
utils.EmptyBalanceContextCfg: fscfg.EmptyBalanceContext,
|
||||
utils.EmptyBalanceAnnFileCfg: fscfg.EmptyBalanceAnnFile,
|
||||
utils.MaxWaitConnectionCfg: maxWaitConnection,
|
||||
utils.EventSocketConnsCfg: eventSocketConns,
|
||||
if fscfg.EventSocketConns != nil {
|
||||
eventSocketConns := make([]map[string]interface{}, len(fscfg.EventSocketConns))
|
||||
for key, item := range fscfg.EventSocketConns {
|
||||
eventSocketConns[key] = item.AsMapInterface()
|
||||
}
|
||||
initialMP[utils.EventSocketConnsCfg] = eventSocketConns
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Returns the first cached default value for a FreeSWITCHAgent connection
|
||||
@@ -682,28 +687,29 @@ func (aCfg *AsteriskAgentCfg) loadFromJsonCfg(jsnCfg *AsteriskAgentJsonCfg) (err
|
||||
return nil
|
||||
}
|
||||
|
||||
func (aCfg *AsteriskAgentCfg) AsMapInterface() map[string]interface{} {
|
||||
conns := make([]map[string]interface{}, len(aCfg.AsteriskConns))
|
||||
for i, item := range aCfg.AsteriskConns {
|
||||
conns[i] = item.AsMapInterface()
|
||||
func (aCfg *AsteriskAgentCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.EnabledCfg: aCfg.Enabled,
|
||||
utils.CreateCDRCfg: aCfg.CreateCDR,
|
||||
}
|
||||
if aCfg.AsteriskConns != nil {
|
||||
conns := make([]map[string]interface{}, len(aCfg.AsteriskConns))
|
||||
for i, item := range aCfg.AsteriskConns {
|
||||
conns[i] = item.AsMapInterface()
|
||||
}
|
||||
initialMP[utils.AsteriskConnsCfg] = conns
|
||||
}
|
||||
|
||||
sessionSConns := make([]string, len(aCfg.SessionSConns))
|
||||
for i, item := range aCfg.SessionSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)
|
||||
if item == buf {
|
||||
if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS) {
|
||||
sessionSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaSessionS, utils.EmptyString)
|
||||
} else {
|
||||
sessionSConns[i] = item
|
||||
}
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: aCfg.Enabled,
|
||||
utils.SessionSConnsCfg: sessionSConns,
|
||||
utils.CreateCDRCfg: aCfg.CreateCDR,
|
||||
utils.AsteriskConnsCfg: conns,
|
||||
}
|
||||
initialMP[utils.SessionSConnsCfg] = sessionSConns
|
||||
return
|
||||
}
|
||||
|
||||
// STIRcfg the confuguration structure for STIR
|
||||
@@ -739,21 +745,21 @@ func (stirCfg *STIRcfg) loadFromJSONCfg(jsnCfg *STIRJsonCfg) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (stirCfg *STIRcfg) AsMapInterface() map[string]interface{} {
|
||||
var payloadMaxduration string = "0"
|
||||
if stirCfg.PayloadMaxduration == 0 {
|
||||
payloadMaxduration = "0"
|
||||
} else if stirCfg.PayloadMaxduration == -1 {
|
||||
payloadMaxduration = "-1"
|
||||
} else {
|
||||
func (stirCfg *STIRcfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.DefaultAttestCfg: stirCfg.DefaultAttest,
|
||||
utils.PublicKeyPathCfg: stirCfg.PublicKeyPath,
|
||||
utils.PrivateKeyPathCfg: stirCfg.PrivateKeyPath,
|
||||
utils.AllowedAtestCfg: stirCfg.AllowedAttest.AsSlice(),
|
||||
}
|
||||
var payloadMaxduration string
|
||||
if stirCfg.PayloadMaxduration > 0 {
|
||||
payloadMaxduration = stirCfg.PayloadMaxduration.String()
|
||||
} else if stirCfg.PayloadMaxduration == 0 {
|
||||
payloadMaxduration = "0"
|
||||
} else {
|
||||
payloadMaxduration = "-1"
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.DefaultAttestCfg: stirCfg.DefaultAttest,
|
||||
utils.PublicKeyPathCfg: stirCfg.PublicKeyPath,
|
||||
utils.PrivateKeyPathCfg: stirCfg.PrivateKeyPath,
|
||||
utils.AllowedAtestCfg: stirCfg.AllowedAttest.AsSlice(),
|
||||
utils.PayloadMaxdurationCfg: payloadMaxduration,
|
||||
}
|
||||
initialMP[utils.PayloadMaxdurationCfg] = payloadMaxduration
|
||||
return
|
||||
}
|
||||
|
||||
@@ -124,90 +124,80 @@ func TestSessionSCfgloadFromJsonCfg(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestSessionSCfgAsMapInterface(t *testing.T) {
|
||||
var sescfg SessionSCfg
|
||||
sescfg.STIRCfg = new(STIRcfg)
|
||||
cfgJSONStr := `{
|
||||
"sessions": {
|
||||
"enabled": false,
|
||||
"listen_bijson": "127.0.0.1:2014",
|
||||
"chargers_conns": [],
|
||||
"rals_conns": [],
|
||||
"cdrs_conns": [],
|
||||
"resources_conns": [],
|
||||
"thresholds_conns": [],
|
||||
"stats_conns": [],
|
||||
"suppliers_conns": [],
|
||||
"attributes_conns": [],
|
||||
"replication_conns": [],
|
||||
"debit_interval": "0s",
|
||||
"store_session_costs": false,
|
||||
"min_call_duration": "0s",
|
||||
"max_call_duration": "3h",
|
||||
"session_ttl": "0s",
|
||||
"session_indexes": [],
|
||||
"client_protocol": 1.0,
|
||||
"channel_sync_interval": "0",
|
||||
"terminate_attempts": 5,
|
||||
"alterable_fields": [],
|
||||
"stir": {
|
||||
"allowed_attest": ["*any"],
|
||||
"payload_maxduration": "-1",
|
||||
"default_attest": "A",
|
||||
"publickey_path": "",
|
||||
"privatekey_path": "",
|
||||
},
|
||||
"scheduler_conns": [],
|
||||
"enabled": false, // starts the session service: <true|false>
|
||||
"listen_bijson": "127.0.0.1:2014", // address where to listen for bidirectional JSON-RPC requests
|
||||
"chargers_conns": [], // connections to ChargerS for session forking <""|*internal|$rpc_conns_id>
|
||||
"rals_conns": [], // connections to RALs for rating/accounting <""|*internal|$rpc_conns_id>
|
||||
"cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id>
|
||||
"resources_conns": [], // connections to ResourceS for resources monitoring <""|*internal|$rpc_conns_id>
|
||||
"thresholds_conns": [], // connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id>
|
||||
"stats_conns": [], // connections to StatS for reporting session events <""|*internal|$rpc_conns_id>
|
||||
"routes_conns": [], // connections to RouteS for querying routes for event <""|*internal|$rpc_conns_id>
|
||||
"attributes_conns": [], // connections to AttributeS for altering event fields <""|*internal|$rpc_conns_id>
|
||||
"replication_conns": [], // replicate sessions towards these session services
|
||||
"debit_interval": "0s", // interval to perform debits on.
|
||||
"store_session_costs": false, // enable storing of the session costs within CDRs
|
||||
"min_call_duration": "0s", // only authorize calls with allowed duration higher than this
|
||||
"max_call_duration": "3h", // maximum call duration a prepaid call can last
|
||||
"session_ttl": "0s", // time after a session with no updates is terminated, not defined by default
|
||||
"session_indexes": [], // index sessions based on these fields for GetActiveSessions API
|
||||
"client_protocol": 1.0, // version of protocol to use when acting as JSON-PRC client <"0","1.0">
|
||||
"channel_sync_interval": "0", // sync channels to detect stale sessions (0 to disable)
|
||||
"terminate_attempts": 5, // attempts to get the session before terminating it
|
||||
"alterable_fields": [], // the session fields that can be updated
|
||||
"stir": {
|
||||
"allowed_attest": ["*any"], // the default attest for stir/shaken authentication <*any|A|B|C>
|
||||
"payload_maxduration": "-1", // the duration that stir header is valid after it was created
|
||||
"default_attest": "A", // the default attest level if not mentioned in API
|
||||
"publickey_path": "", // the path to the public key
|
||||
"privatekey_path": "", // the path to the private key
|
||||
},
|
||||
"scheduler_conns": [],},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"listen_bijson": "127.0.0.1:2014",
|
||||
"chargers_conns": []string{},
|
||||
"rals_conns": []string{},
|
||||
"cdrs_conns": []string{},
|
||||
"resources_conns": []string{},
|
||||
"thresholds_conns": []string{},
|
||||
"stats_conns": []string{},
|
||||
"routes_conns": []string{},
|
||||
"attributes_conns": []string{},
|
||||
"replication_conns": []string{},
|
||||
"debit_interval": "0",
|
||||
"store_session_costs": false,
|
||||
"min_call_duration": "0",
|
||||
"max_call_duration": "3h0m0s",
|
||||
"min_dur_low_balance": "0",
|
||||
"session_ttl": "0",
|
||||
"session_indexes": []string{},
|
||||
"client_protocol": 1.0,
|
||||
"channel_sync_interval": "0",
|
||||
"terminate_attempts": 5,
|
||||
"alterable_fields": []string{},
|
||||
"session_ttl_last_used": "0",
|
||||
"session_ttl_max_delay": "0",
|
||||
"session_ttl_usage": "0",
|
||||
"session_ttl_last_usage": "0",
|
||||
"stir": map[string]interface{}{
|
||||
"allowed_attest": []string{"*any"},
|
||||
"payload_maxduration": "-1",
|
||||
"default_attest": "A",
|
||||
"publickey_path": "",
|
||||
"privatekey_path": "",
|
||||
utils.EnabledCfg: false,
|
||||
utils.ListenBijsonCfg: "127.0.0.1:2014",
|
||||
utils.ChargerSConnsCfg: []string{},
|
||||
utils.RALsConnsCfg: []string{},
|
||||
utils.CDRsConnsCfg: []string{},
|
||||
utils.ResourceSConnsCfg: []string{},
|
||||
utils.ThresholdSConnsCfg: []string{},
|
||||
utils.StatSConnsCfg: []string{},
|
||||
utils.RouteSConnsCfg: []string{},
|
||||
utils.AttributeSConnsCfg: []string{},
|
||||
utils.ReplicationConnsCfg: []string{},
|
||||
utils.DebitIntervalCfg: "0",
|
||||
utils.StoreSCostsCfg: false,
|
||||
utils.MinCallDurationCfg: "0",
|
||||
utils.MaxCallDurationCfg: "3h0m0s",
|
||||
utils.SessionTTLCfg: "0",
|
||||
utils.SessionIndexesCfg: []string{},
|
||||
utils.ClientProtocolCfg: 1.0,
|
||||
utils.ChannelSyncIntervalCfg: "0",
|
||||
utils.TerminateAttemptsCfg: 5,
|
||||
utils.AlterableFieldsCfg: []string{},
|
||||
utils.STIRCfg: map[string]interface{}{
|
||||
utils.AllowedAtestCfg: []string{"*any"},
|
||||
utils.PayloadMaxdurationCfg: "-1",
|
||||
utils.DefaultAttestCfg: "A",
|
||||
utils.PublicKeyPathCfg: "",
|
||||
utils.PrivateKeyPathCfg: "",
|
||||
},
|
||||
"scheduler_conns": []string{},
|
||||
utils.SchedulerConnsCfg: []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnSesCfg, err := jsnCfg.SessionSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = sescfg.loadFromJsonCfg(jsnSesCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := sescfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
} else if rcv := cgrCfg.sessionSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
cfgJSONStr = `{
|
||||
}
|
||||
func TestSessionSCfgAsMapInterface1(t *testing.T) {
|
||||
cfgJSONStr := `{
|
||||
"sessions": {
|
||||
"enabled": false,
|
||||
"listen_bijson": "127.0.0.1:2014",
|
||||
"enabled": true,
|
||||
"listen_bijson": "127.0.0.1:2018",
|
||||
"chargers_conns": ["*internal"],
|
||||
"rals_conns": ["*internal"],
|
||||
"cdrs_conns": ["*internal"],
|
||||
@@ -217,70 +207,58 @@ func TestSessionSCfgAsMapInterface(t *testing.T) {
|
||||
"routes_conns": ["*internal"],
|
||||
"attributes_conns": ["*internal"],
|
||||
"replication_conns": ["*localhost"],
|
||||
"debit_interval": "0s",
|
||||
"store_session_costs": false,
|
||||
"min_call_duration": "0s",
|
||||
"max_call_duration": "3h",
|
||||
"session_ttl": "0s",
|
||||
"session_indexes": [],
|
||||
"client_protocol": 1.0,
|
||||
"channel_sync_interval": "0",
|
||||
"terminate_attempts": 5,
|
||||
"alterable_fields": [],
|
||||
"debit_interval": "8s",
|
||||
"store_session_costs": true,
|
||||
"min_call_duration": "1s",
|
||||
"max_call_duration": "1h",
|
||||
"session_ttl": "1s",
|
||||
"client_protocol": 2.0,
|
||||
"terminate_attempts": 10,
|
||||
"stir": {
|
||||
"allowed_attest": ["*any"],
|
||||
"allowed_attest": ["*any1","*any2"],
|
||||
"payload_maxduration": "-1",
|
||||
"default_attest": "A",
|
||||
"default_attest": "B",
|
||||
"publickey_path": "",
|
||||
"privatekey_path": "",
|
||||
},
|
||||
"scheduler_conns": ["*internal"],
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": false,
|
||||
"listen_bijson": "127.0.0.1:2014",
|
||||
"chargers_conns": []string{"*internal"},
|
||||
"rals_conns": []string{"*internal"},
|
||||
"cdrs_conns": []string{"*internal"},
|
||||
"resources_conns": []string{"*internal"},
|
||||
"thresholds_conns": []string{"*internal"},
|
||||
"stats_conns": []string{"*internal"},
|
||||
"routes_conns": []string{"*internal"},
|
||||
"attributes_conns": []string{"*internal"},
|
||||
"replication_conns": []string{"*localhost"},
|
||||
"debit_interval": "0",
|
||||
"store_session_costs": false,
|
||||
"min_call_duration": "0",
|
||||
"max_call_duration": "3h0m0s",
|
||||
"min_dur_low_balance": "0",
|
||||
"session_ttl": "0",
|
||||
"session_indexes": []string{},
|
||||
"client_protocol": 1.0,
|
||||
"channel_sync_interval": "0",
|
||||
"terminate_attempts": 5,
|
||||
"alterable_fields": []string{},
|
||||
"session_ttl_last_used": "0",
|
||||
"session_ttl_max_delay": "0",
|
||||
"session_ttl_usage": "0",
|
||||
"session_ttl_last_usage": "0",
|
||||
"stir": map[string]interface{}{
|
||||
"allowed_attest": []string{"*any"},
|
||||
"payload_maxduration": "-1",
|
||||
"default_attest": "A",
|
||||
"publickey_path": "",
|
||||
"privatekey_path": "",
|
||||
eMap := map[string]interface{}{
|
||||
utils.EnabledCfg: true,
|
||||
utils.ListenBijsonCfg: "127.0.0.1:2018",
|
||||
utils.ChargerSConnsCfg: []string{"*internal"},
|
||||
utils.RALsConnsCfg: []string{"*internal"},
|
||||
utils.CDRsConnsCfg: []string{"*internal"},
|
||||
utils.ResourceSConnsCfg: []string{"*internal"},
|
||||
utils.ThresholdSConnsCfg: []string{"*internal"},
|
||||
utils.StatSConnsCfg: []string{"*internal"},
|
||||
utils.RouteSConnsCfg: []string{"*internal"},
|
||||
utils.AttributeSConnsCfg: []string{"*internal"},
|
||||
utils.ReplicationConnsCfg: []string{"*localhost"},
|
||||
utils.DebitIntervalCfg: "8s",
|
||||
utils.StoreSCostsCfg: true,
|
||||
utils.MinCallDurationCfg: "1s",
|
||||
utils.MaxCallDurationCfg: "1h0m0s",
|
||||
utils.SessionTTLCfg: "1s",
|
||||
utils.SessionIndexesCfg: []string{},
|
||||
utils.ClientProtocolCfg: 2.0,
|
||||
utils.ChannelSyncIntervalCfg: "0",
|
||||
utils.TerminateAttemptsCfg: 10,
|
||||
utils.AlterableFieldsCfg: []string{},
|
||||
utils.STIRCfg: map[string]interface{}{
|
||||
utils.AllowedAtestCfg: []string{"*any1", "*any2"},
|
||||
utils.PayloadMaxdurationCfg: "-1",
|
||||
utils.DefaultAttestCfg: "B",
|
||||
utils.PublicKeyPathCfg: "",
|
||||
utils.PrivateKeyPathCfg: "",
|
||||
},
|
||||
"scheduler_conns": []string{"*internal"},
|
||||
utils.SchedulerConnsCfg: []string{"*internal"},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnSesCfg, err := jsnCfg.SessionSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = sescfg.loadFromJsonCfg(jsnSesCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := sescfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", eMap, rcv)
|
||||
} else if rcv := cgrCfg.sessionSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,7 +315,6 @@ func TestFsAgentCfgloadFromJsonCfg2(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFsAgentCfgAsMapInterface(t *testing.T) {
|
||||
var fsagcfg FsAgentCfg
|
||||
cfgJSONStr := `{
|
||||
"freeswitch_agent": {
|
||||
"enabled": false,
|
||||
@@ -345,8 +322,7 @@ func TestFsAgentCfgAsMapInterface(t *testing.T) {
|
||||
"subscribe_park": true,
|
||||
"create_cdr": false,
|
||||
"extra_fields": [],
|
||||
//"min_dur_low_balance": "5s",
|
||||
//"low_balance_ann_file": "",
|
||||
"low_balance_ann_file": "",
|
||||
"empty_balance_context": "",
|
||||
"empty_balance_ann_file": "",
|
||||
"max_wait_connection": "2s",
|
||||
@@ -356,27 +332,23 @@ func TestFsAgentCfgAsMapInterface(t *testing.T) {
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"sessions_conns": []string{"*internal"},
|
||||
"subscribe_park": true,
|
||||
"create_cdr": false,
|
||||
"extra_fields": "",
|
||||
"low_balance_ann_file": "",
|
||||
"empty_balance_context": "",
|
||||
"empty_balance_ann_file": "",
|
||||
"max_wait_connection": "2s",
|
||||
"event_socket_conns": []map[string]interface{}{
|
||||
{"address": "127.0.0.1:8021", "password": "ClueCon", "reconnects": 5, "alias": "127.0.0.1:8021"},
|
||||
utils.EnabledCfg: false,
|
||||
utils.SessionSConnsCfg: []string{"*internal"},
|
||||
utils.SubscribeParkCfg: true,
|
||||
utils.CreateCdrCfg: false,
|
||||
utils.ExtraFieldsCfg: "",
|
||||
utils.LowBalanceAnnFileCfg: "",
|
||||
utils.EmptyBalanceContextCfg: "",
|
||||
utils.EmptyBalanceAnnFileCfg: "",
|
||||
utils.MaxWaitConnectionCfg: "2s",
|
||||
utils.EventSocketConnsCfg: []map[string]interface{}{
|
||||
{utils.AddressCfg: "127.0.0.1:8021", utils.Password: "ClueCon", utils.ReconnectsCfg: 5, utils.AliasCfg: "127.0.0.1:8021"},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnFsAgCfg, err := jsnCfg.FreeswitchAgentJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = fsagcfg.loadFromJsonCfg(jsnFsAgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := fsagcfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
} else if rcv := cgrCfg.fsAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -482,7 +454,6 @@ func TestAsteriskAgentCfgloadFromJsonCfg(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestAsteriskAgentCfgAsMapInterface(t *testing.T) {
|
||||
var asagcfg AsteriskAgentCfg
|
||||
cfgJSONStr := `{
|
||||
"asterisk_agent": {
|
||||
"enabled": true,
|
||||
@@ -501,13 +472,9 @@ func TestAsteriskAgentCfgAsMapInterface(t *testing.T) {
|
||||
{"alias": "", "address": "127.0.0.1:8088", "user": "cgrates", "password": "CGRateS.org", "connect_attempts": 3, "reconnects": 5},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnAsAgCfg, err := jsnCfg.AsteriskAgentJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = asagcfg.loadFromJsonCfg(jsnAsAgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := asagcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
} else if rcv := cgrCfg.asteriskAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2036,6 +2036,7 @@ const (
|
||||
EmptyBalanceAnnFileCfg = "empty_balance_ann_file"
|
||||
MaxWaitConnectionCfg = "max_wait_connection"
|
||||
EventSocketConnsCfg = "event_socket_conns"
|
||||
EmptyBalanceContext = "empty_balance_context"
|
||||
)
|
||||
|
||||
// From Config
|
||||
|
||||
Reference in New Issue
Block a user