Added AsMapInterface method for some config fields

This commit is contained in:
adragusin
2020-04-10 18:01:03 +03:00
committed by Dan Christian Bogos
parent 7d2f784a95
commit f4f0bf6bb8
9 changed files with 273 additions and 0 deletions

View File

@@ -117,3 +117,23 @@ func (cdrscfg *CdrsCfg) loadFromJsonCfg(jsnCdrsCfg *CdrsJsonCfg) (err error) {
return nil
}
func (cdrscfg *CdrsCfg) AsMapInterface() map[string]interface{} {
extraFields := make([]string, len(cdrscfg.ExtraFields))
for i, item := range cdrscfg.ExtraFields {
extraFields[i] = item.Rules
}
return map[string]interface{}{
utils.EnabledCfg: cdrscfg.Enabled,
utils.ExtraFieldsCfg: extraFields,
utils.StoreCdrsCfg: cdrscfg.StoreCdrs,
utils.SMCostRetriesCfg: cdrscfg.SMCostRetries,
utils.ChargerSConnsCfg: cdrscfg.ChargerSConns,
utils.RaterConnsCfg: cdrscfg.RaterConns,
utils.AttributeSConnsCfg: cdrscfg.AttributeSConns,
utils.ThresholdSConnsCfg: cdrscfg.ThresholdSConns,
utils.StatSConnsCfg: cdrscfg.StatSConns,
utils.OnlineCDRExportsCfg: cdrscfg.OnlineCDRExports,
}
}

View File

@@ -65,3 +65,11 @@ func (fSCfg *FilterSCfg) loadFromJsonCfg(jsnCfg *FilterSJsonCfg) (err error) {
}
return
}
func (fSCfg *FilterSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.StatSConnsCfg: fSCfg.StatSConns,
utils.ResourceSConnsCfg: fSCfg.ResourceSConns,
utils.ApierSConnsCfg: fSCfg.ApierSConns,
}
}

View File

@@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package config
import "github.com/cgrates/cgrates/utils"
// HTTP config section
type HTTPCfg struct {
HTTPJsonRPCURL string // JSON RPC relative URL ("" to disable)
@@ -54,3 +56,14 @@ func (httpcfg *HTTPCfg) loadFromJsonCfg(jsnHttpCfg *HTTPJsonCfg) (err error) {
return nil
}
func (httpcfg *HTTPCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.HTTPJsonRPCURLCfg: httpcfg.HTTPJsonRPCURL,
utils.HTTPWSURLCfg: httpcfg.HTTPWSURL,
utils.HTTPFreeswitchCDRsURLCfg: httpcfg.HTTPFreeswitchCDRsURL,
utils.HTTPCDRsURLCfg: httpcfg.HTTPCDRsURL,
utils.HTTPUseBasicAuthCfg: httpcfg.HTTPUseBasicAuth,
utils.HTTPAuthUsersCfg: httpcfg.HTTPAuthUsers,
}
}

View File

@@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package config
import "github.com/cgrates/cgrates/utils"
// Listen config section
type ListenCfg struct {
RPCJSONListen string // RPC JSON listening address
@@ -53,3 +55,14 @@ func (lstcfg *ListenCfg) loadFromJsonCfg(jsnListenCfg *ListenJsonCfg) (err error
}
return nil
}
func (lstcfg *ListenCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.RPCJSONListenCfg: lstcfg.RPCJSONListen,
utils.RPCGOBListenCfg: lstcfg.RPCGOBListen,
utils.HTTPListenCfg: lstcfg.HTTPListen,
utils.RPCJSONTLSListenCfg: lstcfg.RPCJSONTLSListen,
utils.RPCGOBTLSListenCfg: lstcfg.RPCGOBTLSListen,
utils.HTTPTLSListenCfg: lstcfg.HTTPTLSListen,
}
}

View File

@@ -102,3 +102,27 @@ func (ralsCfg *RalsCfg) loadFromJsonCfg(jsnRALsCfg *RalsJsonCfg) (err error) {
return nil
}
func (ralsCfg *RalsCfg) AsMapInterface() map[string]interface{} {
maxComputed := make(map[string]interface{})
for key, item := range ralsCfg.MaxComputedUsage {
maxComputed[key] = item
}
balanceRating := make(map[string]interface{})
for key, item := range ralsCfg.BalanceRatingSubject {
balanceRating[key] = item
}
return map[string]interface{}{
utils.EnabledCfg: ralsCfg.Enabled,
utils.ThresholdSConnsCfg: ralsCfg.ThresholdSConns,
utils.StatSConnsCfg: ralsCfg.StatSConns,
utils.CacheSConnsCfg: ralsCfg.CacheSConns,
utils.RpSubjectPrefixMatchingCfg: ralsCfg.RpSubjectPrefixMatching,
utils.RemoveExpiredCfg: ralsCfg.RemoveExpired,
utils.MaxComputedUsageCfg: maxComputed,
utils.BalanceRatingSubjectCfg: balanceRating,
utils.MaxIncrementsCfg: ralsCfg.MaxIncrements,
}
}

View File

@@ -52,3 +52,11 @@ func (schdcfg *SchedulerCfg) loadFromJsonCfg(jsnCfg *SchedulerJsonCfg) error {
}
return nil
}
func (schdcfg *SchedulerCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: schdcfg.Enabled,
utils.CDRsConnsCfg: schdcfg.CDRsConns,
utils.FiltersCfg: schdcfg.Filters,
}
}

View File

@@ -63,6 +63,15 @@ func (self *FsConnCfg) loadFromJsonCfg(jsnCfg *FsConnJsonCfg) error {
return nil
}
func (fs *FsConnCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.AddressCfg: fs.Address,
utils.Password: fs.Password,
utils.ReconnectsCfg: fs.Reconnects,
utils.AliasCfg: fs.Alias,
}
}
type SessionSCfg struct {
Enabled bool
ListenBijson string
@@ -268,6 +277,37 @@ func (scfg *SessionSCfg) loadFromJsonCfg(jsnCfg *SessionSJsonCfg) (err error) {
return nil
}
func (scfg *SessionSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: scfg.Enabled,
utils.ListenBijsonCfg: scfg.ListenBijson,
utils.ChargerSConnsCfg: scfg.ChargerSConns,
utils.RALsConnsCfg: scfg.RALsConns,
utils.ResSConnsCfg: scfg.ResSConns,
utils.ThreshSConnsCfg: scfg.ThreshSConns,
utils.StatSConnsCfg: scfg.StatSConns,
utils.SupplSConnsCfg: scfg.SupplSConns,
utils.AttrSConnsCfg: scfg.AttrSConns,
utils.CDRsConnsCfg: scfg.CDRsConns,
utils.ReplicationConnsCfg: scfg.ReplicationConns,
utils.DebitIntervalCfg: scfg.DebitInterval,
utils.StoreSCostsCfg: scfg.StoreSCosts,
utils.MinCallDurationCfg: scfg.MinCallDuration,
utils.MaxCallDurationCfg: scfg.MaxCallDuration,
utils.SessionTTLCfg: scfg.SessionTTL,
utils.SessionTTLMaxDelayCfg: scfg.SessionTTLMaxDelay,
utils.SessionTTLLastUsedCfg: scfg.SessionTTLLastUsed,
utils.SessionTTLUsageCfg: scfg.SessionTTLUsage,
utils.SessionIndexesCfg: scfg.SessionIndexes.GetSlice(),
utils.ClientProtocolCfg: scfg.ClientProtocol,
utils.ChannelSyncIntervalCfg: scfg.ChannelSyncInterval,
utils.TerminateAttemptsCfg: scfg.TerminateAttempts,
utils.AlterableFieldsCfg: scfg.AlterableFields.AsSlice(),
utils.MinDurLowBalanceCfg: scfg.MinDurLowBalance,
}
}
type FsAgentCfg struct {
Enabled bool
SessionSConns []string
@@ -336,6 +376,27 @@ func (fscfg *FsAgentCfg) loadFromJsonCfg(jsnCfg *FreeswitchAgentJsonCfg) error {
return nil
}
func (fscfg *FsAgentCfg) AsMapInterface() map[string]interface{} {
var eventSocketConns []map[string]interface{}
// eventSocketConns := make(map[string]interface{}, len(fscfg.EventSocketConns))
for _, item := range fscfg.EventSocketConns {
eventSocketConns = append(eventSocketConns, item.AsMapInterface())
}
return map[string]interface{}{
utils.EnabledCfg: fscfg.Enabled,
utils.SessionSConnsCfg: fscfg.SessionSConns,
utils.SubscribeParkCfg: fscfg.SubscribePark,
utils.CreateCdrCfg: fscfg.CreateCdr,
utils.ExtraFieldsCfg: fscfg.ExtraFields,
utils.LowBalanceAnnFileCfg: fscfg.LowBalanceAnnFile,
utils.EmptyBalanceContextCfg: fscfg.EmptyBalanceContext,
utils.EmptyBalanceAnnFileCfg: fscfg.EmptyBalanceAnnFile,
utils.MaxWaitConnectionCfg: fscfg.MaxWaitConnection,
utils.EventSocketConnsCfg: eventSocketConns,
}
}
// Returns the first cached default value for a FreeSWITCHAgent connection
func NewDfltKamConnConfig() *KamConnCfg {
if dfltKamConnConfig == nil {

View File

@@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package config
import "github.com/cgrates/cgrates/utils"
// AttributeSCfg is the configuration of attribute service
type TlsCfg struct {
ServerCerificate string
@@ -56,3 +58,16 @@ func (tls *TlsCfg) loadFromJsonCfg(jsnCfg *TlsJsonCfg) (err error) {
}
return
}
func (tls *TlsCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.ServerCerificateCfg: tls.ServerCerificate,
utils.ServerKeyCfg: tls.ServerKey,
utils.ServerPolicyCfg: tls.ServerPolicy,
utils.ServerNameCfg: tls.ServerName,
utils.ClientCerificateCfg: tls.ClientCerificate,
utils.ClientKeyCfg: tls.ClientKey,
utils.CaCertificateCfg: tls.CaCertificate,
}
}

View File

@@ -1691,6 +1691,117 @@ const (
StaticTTLCfg = "static_ttl"
)
// Tls
const (
ServerCerificateCfg = "server_certificate"
ServerKeyCfg = "server_key"
ServerPolicyCfg = "server_policy"
ServerNameCfg = "server_name"
ClientCerificateCfg = "client_certificate"
ClientKeyCfg = "client_key"
CaCertificateCfg = "ca_certificate"
)
// ListenCfg
const (
RPCJSONListenCfg = "rpc_json"
RPCGOBListenCfg = "rpc_gob"
HTTPListenCfg = "http"
RPCJSONTLSListenCfg = "rpc_json_tls"
RPCGOBTLSListenCfg = "rpc_gob_tls"
HTTPTLSListenCfg = "http_tls"
)
// HTTPCfg
const (
HTTPJsonRPCURLCfg = "json_rpc_url"
HTTPWSURLCfg = "ws_url"
HTTPFreeswitchCDRsURLCfg = "freeswitch_cdrs_url"
HTTPCDRsURLCfg = "http_cdrs"
HTTPUseBasicAuthCfg = "use_basic_auth"
HTTPAuthUsersCfg = "auth_users"
)
// FilterSCfg
const (
StatSConnsCfg = "stats_conns"
ResourceSConnsCfg = "resources_conns"
ApierSConnsCfg = "apiers_conns"
)
// RalsCfg
const (
EnabledCfg = "enabled"
ThresholdSConnsCfg = "thresholds_conns"
CacheSConnsCfg = "caches_conns"
RpSubjectPrefixMatchingCfg = "rp_subject_prefix_matching"
RemoveExpiredCfg = "remove_expired"
MaxComputedUsageCfg = "max_computed_usage"
BalanceRatingSubjectCfg = "balance_rating_subject"
MaxIncrementsCfg = "max_increments"
)
// SchedulerCfg
const (
CDRsConnsCfg = "cdrs_conns"
FiltersCfg = "filters"
)
// CdrsCfg
const (
ExtraFieldsCfg = "extra_fields"
StoreCdrsCfg = "store_cdrs"
SMCostRetriesCfg = "session_cost_retries"
ChargerSConnsCfg = "chargers_conns"
RaterConnsCfg = "rals_conns"
AttributeSConnsCfg = "attributes_conns"
OnlineCDRExportsCfg = "online_cdr_exports"
)
// SessionSCfg
const (
ListenBijsonCfg = "listen_bijson"
RALsConnsCfg = "rals_conns"
ResSConnsCfg = "resources_conns"
ThreshSConnsCfg = "thresholds_conns"
SupplSConnsCfg = "suppliers_conns"
AttrSConnsCfg = "attributes_conns"
ReplicationConnsCfg = "replication_conns"
DebitIntervalCfg = "debit_interval"
StoreSCostsCfg = "store_session_costs"
MinCallDurationCfg = "min_call_duration"
MaxCallDurationCfg = "max_call_duration"
SessionTTLCfg = "session_ttl"
SessionTTLMaxDelayCfg = "session_ttl_max_delay"
SessionTTLLastUsedCfg = "session_ttl_last_used"
SessionTTLUsageCfg = "session_ttl_usage"
SessionIndexesCfg = "session_indexes"
ClientProtocolCfg = "client_protocol"
ChannelSyncIntervalCfg = "channel_sync_interval"
TerminateAttemptsCfg = "terminate_attempts"
AlterableFieldsCfg = "alterable_fields"
MinDurLowBalanceCfg = "min_dur_low_balance"
)
// FsAgentCfg
const (
SessionSConnsCfg = "sessions_conns"
SubscribeParkCfg = "subscribe_park"
CreateCdrCfg = "create_cdr"
LowBalanceAnnFileCfg = "low_balance_ann_file"
EmptyBalanceContextCfg = "empty_balance_context"
EmptyBalanceAnnFileCfg = "empty_balance_ann_file"
MaxWaitConnectionCfg = "max_wait_connection"
EventSocketConnsCfg = "event_socket_conns"
)
// From Config
const (
AddressCfg = "address"
Password = "password"
AliasCfg = "alias"
)
// Strip/Padding strategy
var (
// common