Added AsMapInterface method for some config fields

This commit is contained in:
adragusin
2020-04-14 17:55:06 +03:00
committed by Dan Christian Bogos
parent 30f339247b
commit d5294b2a6f
18 changed files with 471 additions and 4 deletions

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 AnalyzerSCfg struct {
Enabled bool
@@ -32,3 +34,9 @@ func (alS *AnalyzerSCfg) loadFromJsonCfg(jsnCfg *AnalyzerSJsonCfg) (err error) {
}
return nil
}
func (alS *AnalyzerSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: alS.Enabled,
}
}

View File

@@ -71,3 +71,13 @@ func (aCfg *ApierCfg) loadFromJsonCfg(jsnCfg *ApierJsonCfg) (err error) {
return nil
}
func (aCfg *ApierCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: aCfg.Enabled,
utils.CachesConnsCfg: aCfg.CachesConns,
utils.SchedulerConnsCfg: aCfg.SchedulerConns,
utils.AttributeSConnsCfg: aCfg.AttributeSConns,
}
}

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 AttributeSCfg struct {
Enabled bool
@@ -60,3 +62,16 @@ func (alS *AttributeSCfg) loadFromJsonCfg(jsnCfg *AttributeSJsonCfg) (err error)
}
return
}
func (alS *AttributeSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: alS.Enabled,
utils.IndexedSelectsCfg: alS.IndexedSelects,
utils.StringIndexedFieldsCfg: alS.StringIndexedFields,
utils.PrefixIndexedFieldsCfg: alS.PrefixIndexedFields,
utils.ProcessRunsCfg: alS.ProcessRuns,
utils.NestedFieldsCfg: alS.NestedFields,
}
}

View File

@@ -130,7 +130,7 @@ func (cdrscfg *CdrsCfg) AsMapInterface() map[string]interface{} {
utils.StoreCdrsCfg: cdrscfg.StoreCdrs,
utils.SMCostRetriesCfg: cdrscfg.SMCostRetries,
utils.ChargerSConnsCfg: cdrscfg.ChargerSConns,
utils.RaterConnsCfg: cdrscfg.RaterConns,
utils.RALsConnsCfg: cdrscfg.RaterConns,
utils.AttributeSConnsCfg: cdrscfg.AttributeSConns,
utils.ThresholdSConnsCfg: cdrscfg.ThresholdSConns,
utils.StatSConnsCfg: cdrscfg.StatSConns,

View File

@@ -70,3 +70,14 @@ func (cS *ChargerSCfg) loadFromJsonCfg(jsnCfg *ChargerSJsonCfg) (err error) {
}
return
}
func (cS *ChargerSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: cS.Enabled,
utils.IndexedSelectsCfg: cS.IndexedSelects,
utils.AttributeSConnsCfg: cS.AttributeSConns,
utils.StringIndexedFieldsCfg: cS.StringIndexedFields,
utils.PrefixIndexedFieldsCfg: cS.PrefixIndexedFields,
utils.NestedFieldsCfg: cS.NestedFields,
}
}

View File

@@ -70,3 +70,15 @@ func (dps *DispatcherSCfg) loadFromJsonCfg(jsnCfg *DispatcherSJsonCfg) (err erro
}
return nil
}
func (dps *DispatcherSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: dps.Enabled,
utils.IndexedSelectsCfg: dps.IndexedSelects,
utils.StringIndexedFieldsCfg: dps.StringIndexedFields,
utils.PrefixIndexedFieldsCfg: dps.PrefixIndexedFields,
utils.AttributeSConnsCfg: dps.AttributeSConns,
utils.NestedFieldsCfg: dps.NestedFields,
}
}

View File

@@ -80,6 +80,23 @@ func (da *DNSAgentCfg) loadFromJsonCfg(jsnCfg *DNSAgentJsonCfg, sep string) (err
return nil
}
func (da *DNSAgentCfg) AsMapInterface() map[string]interface{} {
requestProcessors := make([]map[string]interface{}, len(da.RequestProcessors))
for i, item := range da.RequestProcessors {
requestProcessors[i] = item.AsMapInterface()
}
return map[string]interface{}{
utils.EnabledCfg: da.Enabled,
utils.ListenCfg: da.Listen,
utils.ListenNetCfg: da.ListenNet,
utils.SessionSConnsCfg: da.SessionSConns,
utils.TimezoneCfg: da.Timezone,
utils.RequestProcessorsCfg: requestProcessors,
}
}
// RequestProcessor is the request processor configuration
type RequestProcessor struct {
ID string

View File

@@ -98,6 +98,20 @@ func (erS *ERsCfg) Clone() (cln *ERsCfg) {
return
}
func (erS *ERsCfg) AsMapInterface() map[string]interface{} {
readers := make([]map[string]interface{}, len(erS.Readers))
for i, item := range erS.Readers {
readers[i] = item.AsMapInterface()
}
return map[string]interface{}{
utils.EnabledCfg: erS.Enabled,
utils.SessionSConnsCfg: erS.SessionSConns,
utils.ReadersCfg: readers,
}
}
type EventReaderCfg struct {
ID string
Type string
@@ -232,3 +246,47 @@ func (er *EventReaderCfg) Clone() (cln *EventReaderCfg) {
}
return
}
func (er *EventReaderCfg) AsMapInterface() map[string]interface{} {
xmlRootPath := make([]string, len(er.XmlRootPath))
for i, item := range er.XmlRootPath {
xmlRootPath[i] = item
}
tenant := make([]string, len(er.Tenant))
for i, item := range er.Tenant {
tenant[i] = item.Rules
}
flags := make(map[string][]string, len(er.Flags))
for key, val := range er.Flags {
flags[key] = val
}
fields := make([]map[string]interface{}, len(er.Fields))
for i, item := range er.Fields {
fields[i] = item.AsMapInterface()
}
cacheDumpFields := make([]map[string]interface{}, len(er.CacheDumpFields))
for i, item := range er.CacheDumpFields {
cacheDumpFields[i] = item.AsMapInterface()
}
return map[string]interface{}{
utils.IDCfg: er.ID,
utils.TypeCfg: er.Type,
utils.RowLengthCfg: er.RowLength,
utils.FieldSepCfg: er.FieldSep,
utils.RunDelayCfg: er.RunDelay,
utils.ConcurrentReqsCfg: er.ConcurrentReqs,
utils.SourcePathCfg: er.SourcePath,
utils.ProcessedPathCfg: er.ProcessedPath,
utils.XmlRootPathCfg: xmlRootPath,
utils.TenantCfg: tenant,
utils.TimezoneCfg: er.Timezone,
utils.FiltersCfg: er.Filters,
utils.FlagsCfg: flags,
utils.FailedCallsPrefixCfg: er.FailedCallsPrefix,
utils.PartialRecordCacheCfg: er.PartialRecordCache,
utils.PartialCacheExpiryActionCfg: er.PartialCacheExpiryAction,
utils.FieldsCfg: fields,
utils.CacheDumpFieldsCfg: cacheDumpFields,
}
}

View File

@@ -82,3 +82,26 @@ func (ld *LoaderCgrCfg) loadFromJsonCfg(jsnCfg *LoaderCfgJson) (err error) {
}
return nil
}
func (ld *LoaderCgrCfg) AsMapInterface() map[string]interface{} {
gapiCredentials := make([]byte, len(ld.GapiCredentials))
for i, item := range ld.GapiCredentials {
gapiCredentials[i] = item
}
gapiToken := make([]byte, len(ld.GapiToken))
for i, item := range ld.GapiToken {
gapiToken[i] = item
}
return map[string]interface{}{
utils.TpIDCfg: ld.TpID,
utils.DataPathCfg: ld.DataPath,
utils.DisableReverseCfg: ld.DisableReverse,
utils.FieldSeparatorCfg: ld.FieldSeparator,
utils.CachesConnsCfg: ld.CachesConns,
utils.SchedulerConnsCfg: ld.SchedulerConns,
utils.GapiCredentialsCfg: gapiCredentials,
utils.GapiTokenCfg: gapiToken,
}
}

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"
// Mailer config section
type MailerCfg struct {
MailerServer string // The server to use when sending emails out
@@ -46,3 +48,13 @@ func (mailcfg *MailerCfg) loadFromJsonCfg(jsnMailerCfg *MailerJsonCfg) (err erro
return nil
}
func (mailcfg *MailerCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.MailerServerCfg: mailcfg.MailerServer,
utils.MailerAuthUserCfg: mailcfg.MailerAuthUser,
utils.MailerAuthPassCfg: mailcfg.MailerAuthPass,
utils.MailerFromAddrCfg: mailcfg.MailerFromAddr,
}
}

View File

@@ -20,6 +20,8 @@ package config
import (
"strings"
"github.com/cgrates/cgrates/utils"
)
type MigratorCgrCfg struct {
@@ -94,3 +96,24 @@ func (mg *MigratorCgrCfg) loadFromJsonCfg(jsnCfg *MigratorCfgJson) (err error) {
}
return nil
}
func (mg *MigratorCgrCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.OutDataDBTypeCfg: mg.OutDataDBType,
utils.OutDataDBHostCfg: mg.OutDataDBHost,
utils.OutDataDBPortCfg: mg.OutDataDBPort,
utils.OutDataDBNameCfg: mg.OutDataDBName,
utils.OutDataDBUserCfg: mg.OutDataDBUser,
utils.OutDataDBPasswordCfg: mg.OutDataDBPassword,
utils.OutDataDBEncodingCfg: mg.OutDataDBEncoding,
utils.OutDataDBRedisSentinelCfg: mg.OutDataDBRedisSentinel,
utils.OutStorDBTypeCfg: mg.OutStorDBType,
utils.OutStorDBHostCfg: mg.OutStorDBHost,
utils.OutStorDBPortCfg: mg.OutStorDBPort,
utils.OutStorDBNameCfg: mg.OutStorDBName,
utils.OutStorDBUserCfg: mg.OutStorDBUser,
utils.OutStorDBPasswordCfg: mg.OutStorDBPassword,
utils.UsersFiltersCfg: mg.UsersFilters,
}
}

View File

@@ -97,6 +97,15 @@ func (self *RadiusAgentCfg) loadFromJsonCfg(jsnCfg *RadiusAgentJsonCfg, separato
}
func (ra *RadiusAgentCfg) AsMapInterface() map[string]interface{} {
clientSecrets := make(map[string]interface{}, len(ra.ClientSecrets))
for key, val := range ra.ClientSecrets {
clientSecrets[key] = val
}
clientDictionaries := make(map[string]interface{}, len(ra.ClientDictionaries))
for key, val := range ra.ClientDictionaries {
clientDictionaries[key] = val
}
requestProcessors := make([]map[string]interface{}, len(ra.RequestProcessors))
for i, item := range ra.RequestProcessors {
@@ -108,8 +117,8 @@ func (ra *RadiusAgentCfg) AsMapInterface() map[string]interface{} {
utils.ListenNetCfg: ra.ListenNet,
utils.ListenAuthCfg: ra.ListenAuth,
utils.ListenAcctCfg: ra.ListenAcct,
utils.ClientSecretsCfg: ra.ClientSecrets,
utils.ClientDictionariesCfg: ra.ClientDictionaries,
utils.ClientSecretsCfg: clientSecrets,
utils.ClientDictionariesCfg: clientDictionaries,
utils.SessionSConnsCfg: ra.SessionSConns,
utils.RequestProcessorsCfg: requestProcessors,
}

View File

@@ -79,3 +79,17 @@ func (rlcfg *ResourceSConfig) loadFromJsonCfg(jsnCfg *ResourceSJsonCfg) (err err
}
return nil
}
func (rlcfg *ResourceSConfig) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: rlcfg.Enabled,
utils.IndexedSelectsCfg: rlcfg.IndexedSelects,
utils.ThresholdSConnsCfg: rlcfg.ThresholdSConns,
utils.StoreIntervalCfg: rlcfg.StoreInterval,
utils.StringIndexedFieldsCfg: rlcfg.StringIndexedFields,
utils.PrefixIndexedFieldsCfg: rlcfg.PrefixIndexedFields,
utils.NestedFieldsCfg: rlcfg.NestedFields,
}
}

View File

@@ -83,3 +83,18 @@ func (st *StatSCfg) loadFromJsonCfg(jsnCfg *StatServJsonCfg) (err error) {
}
return nil
}
func (st *StatSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: st.Enabled,
utils.IndexedSelectsCfg: st.IndexedSelects,
utils.StoreIntervalCfg: st.StoreInterval,
utils.StoreUncompressedLimitCfg: st.StoreUncompressedLimit,
utils.ThresholdSConnsCfg: st.ThresholdSConns,
utils.StringIndexedFieldsCfg: st.StringIndexedFields,
utils.PrefixIndexedFieldsCfg: st.PrefixIndexedFields,
utils.NestedFieldsCfg: st.NestedFields,
}
}

View File

@@ -110,3 +110,20 @@ func (spl *SupplierSCfg) loadFromJsonCfg(jsnCfg *SupplierSJsonCfg) (err error) {
}
return nil
}
func (spl *SupplierSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: spl.Enabled,
utils.IndexedSelectsCfg: spl.IndexedSelects,
utils.StringIndexedFieldsCfg: spl.StringIndexedFields,
utils.PrefixIndexedFieldsCfg: spl.PrefixIndexedFields,
utils.AttributeSConnsCfg: spl.AttributeSConns,
utils.ResourceSConnsCfg: spl.ResourceSConns,
utils.StatSConnsCfg: spl.StatSConns,
utils.RALsConnsCfg: spl.ResponderSConns,
utils.DefaultRatioCfg: spl.DefaultRatio,
utils.NestedFieldsCfg: spl.NestedFields,
}
}

View File

@@ -173,3 +173,116 @@ func (self *SureTaxCfg) loadFromJsonCfg(jsnCfg *SureTaxJsonCfg) (err error) {
}
return nil
}
func (st *SureTaxCfg) AsMapInterface() map[string]interface{} {
clientTracking := make([]string, len(st.ClientTracking))
for i, item := range st.ClientTracking {
clientTracking[i] = item.Rules
}
customerNumber := make([]string, len(st.CustomerNumber))
for i, item := range st.CustomerNumber {
customerNumber[i] = item.Rules
}
origNumber := make([]string, len(st.OrigNumber))
for i, item := range st.OrigNumber {
origNumber[i] = item.Rules
}
termNumber := make([]string, len(st.TermNumber))
for i, item := range st.TermNumber {
termNumber[i] = item.Rules
}
billToNumber := make([]string, len(st.BillToNumber))
for i, item := range st.BillToNumber {
billToNumber[i] = item.Rules
}
zipcode := make([]string, len(st.Zipcode))
for i, item := range st.Zipcode {
zipcode[i] = item.Rules
}
plus4 := make([]string, len(st.Plus4))
for i, item := range st.Plus4 {
plus4[i] = item.Rules
}
p2PZipcode := make([]string, len(st.P2PZipcode))
for i, item := range st.P2PZipcode {
p2PZipcode[i] = item.Rules
}
p2PPlus4 := make([]string, len(st.P2PPlus4))
for i, item := range st.P2PPlus4 {
p2PPlus4[i] = item.Rules
}
units := make([]string, len(st.Units))
for i, item := range st.Units {
units[i] = item.Rules
}
unitType := make([]string, len(st.UnitType))
for i, item := range st.UnitType {
unitType[i] = item.Rules
}
taxIncluded := make([]string, len(st.TaxIncluded))
for i, item := range st.TaxIncluded {
taxIncluded[i] = item.Rules
}
taxSitusRule := make([]string, len(st.TaxSitusRule))
for i, item := range st.TaxSitusRule {
taxSitusRule[i] = item.Rules
}
transTypeCode := make([]string, len(st.TransTypeCode))
for i, item := range st.TransTypeCode {
transTypeCode[i] = item.Rules
}
salesTypeCode := make([]string, len(st.SalesTypeCode))
for i, item := range st.SalesTypeCode {
salesTypeCode[i] = item.Rules
}
taxExemptionCodeList := make([]string, len(st.TaxExemptionCodeList))
for i, item := range st.TaxExemptionCodeList {
taxExemptionCodeList[i] = item.Rules
}
return map[string]interface{}{
utils.UrlCfg: st.Url,
utils.ClientNumberCfg: st.ClientNumber,
utils.ValidationKeyCfg: st.ValidationKey,
utils.BusinessUnitCfg: st.BusinessUnit,
utils.TimezoneCfg: st.Timezone,
utils.IncludeLocalCostCfg: st.IncludeLocalCost,
utils.ReturnFileCodeCfg: st.ReturnFileCode,
utils.ResponseGroupCfg: st.ResponseGroup,
utils.ResponseTypeCfg: st.ResponseType,
utils.RegulatoryCodeCfg: st.RegulatoryCode,
utils.ClientTrackingCfg: st.ClientTracking,
utils.CustomerNumberCfg: st.CustomerNumber,
utils.OrigNumberCfg: st.OrigNumber,
utils.TermNumberCfg: st.TermNumber,
utils.BillToNumberCfg: st.BillToNumber,
utils.ZipcodeCfg: st.Zipcode,
utils.Plus4Cfg: st.Plus4,
utils.P2PZipcodeCfg: st.P2PZipcode,
utils.P2PPlus4Cfg: st.P2PPlus4,
utils.UnitsCfg: st.Units,
utils.UnitTypeCfg: st.UnitType,
utils.TaxIncludedCfg: st.TaxIncluded,
utils.TaxSitusRuleCfg: st.TaxSitusRule,
utils.TransTypeCodeCfg: st.TransTypeCode,
utils.SalesTypeCodeCfg: st.SalesTypeCode,
utils.TaxExemptionCodeListCfg: st.TaxExemptionCodeList,
}
}

View File

@@ -67,3 +67,14 @@ func (t *ThresholdSCfg) loadFromJsonCfg(jsnCfg *ThresholdSJsonCfg) (err error) {
}
return nil
}
func (t *ThresholdSCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: t.Enabled,
utils.IndexedSelectsCfg: t.IndexedSelects,
utils.StoreIntervalCfg: t.StoreInterval,
utils.StringIndexedFieldsCfg: t.StringIndexedFields,
utils.PrefixIndexedFieldsCfg: t.PrefixIndexedFields,
utils.NestedFieldsCfg: t.NestedFields,
}
}

View File

@@ -1756,7 +1756,6 @@ const (
StoreCdrsCfg = "store_cdrs"
SMCostRetriesCfg = "session_cost_retries"
ChargerSConnsCfg = "chargers_conns"
RaterConnsCfg = "rals_conns"
AttributeSConnsCfg = "attributes_conns"
OnlineCDRExportsCfg = "online_cdr_exports"
)
@@ -1840,6 +1839,20 @@ const (
ListenAcctCfg = "listen_acct"
ClientSecretsCfg = "client_secrets"
ClientDictionariesCfg = "client_dictionaries"
// AttributeSCfg
IndexedSelectsCfg = "indexed_selects"
ProcessRunsCfg = "process_runs"
NestedFieldsCfg = "nested_fields"
// ChargerSCfg
StoreIntervalCfg = "store_interval"
// StatSCfg
StoreUncompressedLimitCfg = "store_uncompressed_limit"
DefaultRatioCfg = "default_ratio"
ReadersCfg = "readers"
)
// FC Template
@@ -1863,6 +1876,92 @@ const (
MaskLenCfg = "mask_length"
)
// SureTax
const (
UrlCfg = "url"
ClientNumberCfg = "client_number"
ValidationKeyCfg = "validation_key"
BusinessUnitCfg = "business_unit"
IncludeLocalCostCfg = "include_local_cost"
ReturnFileCodeCfg = "return_file_code"
ResponseGroupCfg = "response_group"
ResponseTypeCfg = "response_type"
RegulatoryCodeCfg = "regulatory_code"
ClientTrackingCfg = "client_tracking"
CustomerNumberCfg = "customer_number"
OrigNumberCfg = "orig_number"
TermNumberCfg = "term_number"
BillToNumberCfg = "bill_to_number"
ZipcodeCfg = "zipcode"
Plus4Cfg = "plus4"
P2PZipcodeCfg = "p2PZipcode"
P2PPlus4Cfg = "p2PPlus4"
UnitsCfg = "units"
UnitTypeCfg = "unit_type"
TaxIncludedCfg = "tax_included"
TaxSitusRuleCfg = "tax_situs_rule"
TransTypeCodeCfg = "trans_type_code"
SalesTypeCodeCfg = "sales_type_code"
TaxExemptionCodeListCfg = "tax_exemption_code_list"
)
// LoaderCgrCfg
const (
TpIDCfg = "tpid"
DataPathCfg = "data_path"
DisableReverseCfg = "disable_reverse"
FieldSeparatorCfg = "field_separator"
CachesConnsCfg = "caches_conns"
SchedulerConnsCfg = "scheduler_conns"
GapiCredentialsCfg = "gapi_credentials"
GapiTokenCfg = "gapi_token"
)
// MigratorCgrCfg
const (
OutDataDBTypeCfg = "Out_dataDB_type"
OutDataDBHostCfg = "Out_dataDB_host"
OutDataDBPortCfg = "Out_dataDB_port"
OutDataDBNameCfg = "Out_dataDB_name"
OutDataDBUserCfg = "Out_dataDB_user"
OutDataDBPasswordCfg = "Out_dataDB_password"
OutDataDBEncodingCfg = "Out_dataDB_encoding"
OutDataDBRedisSentinelCfg = "Out_dataDB_redis_sentinel"
OutStorDBTypeCfg = "Out_storDB_type"
OutStorDBHostCfg = "Out_storDB_host"
OutStorDBPortCfg = "Out_storDB_port"
OutStorDBNameCfg = "Out_storDB_name"
OutStorDBUserCfg = "Out_storDB_user"
OutStorDBPasswordCfg = "Out_storDB_password"
UsersFiltersCfg = "Users_filters"
)
// MailerCfg
const (
MailerServerCfg = "Server"
MailerAuthUserCfg = "Auth_user"
MailerAuthPassCfg = "Auth_password"
MailerFromAddrCfg = "From_address"
)
// EventReaderCfg
const (
IDCfg = "id"
RowLengthCfg = "row_length"
FieldSepCfg = "field_separator"
RunDelayCfg = "run_delay"
SourcePathCfg = "source_path"
ProcessedPathCfg = "processed_path"
XmlRootPathCfg = "xml_root_path"
TenantCfg = "tenant"
FlagsCfg = "flags"
FailedCallsPrefixCfg = "failed_calls_prefix"
PartialRecordCacheCfg = "partial_record_cache"
PartialCacheExpiryActionCfg = "soome"
FieldsCfg = "fields"
CacheDumpFieldsCfg = "cache_dump_fields"
)
// Strip/Padding strategy
var (
// common