Added AsMapInterface method for some config fields

This commit is contained in:
adragusin
2020-04-09 18:00:24 +03:00
committed by Dan Christian Bogos
parent 093f558d09
commit bd86c906a6
4 changed files with 152 additions and 0 deletions

View File

@@ -129,6 +129,27 @@ func (dbcfg *DataDbCfg) Clone() *DataDbCfg {
}
}
func (dbcfg *DataDbCfg) AsMapInterface() map[string]interface{} {
items := make(map[string]interface{})
for key, item := range dbcfg.Items {
items[key] = item.AsMapInterface()
}
return map[string]interface{}{
utils.DataDbTypeCfg: dbcfg.DataDbType,
utils.DataDbHostCfg: dbcfg.DataDbHost,
utils.DataDbPortCfg: dbcfg.DataDbPort,
utils.DataDbNameCfg: dbcfg.DataDbName,
utils.DataDbUserCfg: dbcfg.DataDbUser,
utils.DataDbPassCfg: dbcfg.DataDbPass,
utils.DataDbSentinelNameCfg: dbcfg.DataDbSentinelName,
utils.QueryTimeoutCfg: dbcfg.QueryTimeout,
utils.RmtConnsCfg: dbcfg.RmtConns,
utils.RplConnsCfg: dbcfg.RplConns,
utils.ItemsCfg: items,
}
}
type ItemOpt struct {
Remote bool
Replicate bool
@@ -140,6 +161,16 @@ type ItemOpt struct {
APIKey string
}
func (itm *ItemOpt) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.RemoteCfg: itm.Remote,
utils.ReplicateCfg: itm.Replicate,
utils.LimitCfg: itm.Limit,
utils.TTLCfg: itm.TTL,
utils.StaticTTLCfg: itm.StaticTTL,
}
}
func (itm *ItemOpt) loadFromJsonCfg(jsonItm *ItemOptJson) (err error) {
if jsonItm == nil {
return

View File

@@ -142,3 +142,32 @@ func (gencfg *GeneralCfg) loadFromJsonCfg(jsnGeneralCfg *GeneralJsonCfg) (err er
return nil
}
func (gencfg *GeneralCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.NodeIDCfg: gencfg.NodeID,
utils.LoggerCfg: gencfg.Logger,
utils.LogLevelCfg: gencfg.LogLevel,
utils.HttpSkipTlsVerifyCfg: gencfg.HttpSkipTlsVerify,
utils.RoundingDecimalsCfg: gencfg.RoundingDecimals,
utils.DBDataEncodingCfg: gencfg.DBDataEncoding,
utils.TpExportPathCfg: gencfg.TpExportPath,
utils.PosterAttemptsCfg: gencfg.PosterAttempts,
utils.FailedPostsDirCfg: gencfg.FailedPostsDir,
utils.FailedPostsTTLCfg: gencfg.FailedPostsTTL,
utils.DefaultReqTypeCfg: gencfg.DefaultReqType,
utils.DefaultCategoryCfg: gencfg.DefaultCategory,
utils.DefaultTenantCfg: gencfg.DefaultTenant,
utils.DefaultTimezoneCfg: gencfg.DefaultTimezone,
utils.DefaultCachingCfg: gencfg.DefaultCaching,
utils.ConnectAttemptsCfg: gencfg.ConnectAttempts,
utils.ReconnectsCfg: gencfg.Reconnects,
utils.ConnectTimeoutCfg: gencfg.ConnectTimeout,
utils.ReplyTimeoutCfg: gencfg.ReplyTimeout,
utils.LockingTimeoutCfg: gencfg.LockingTimeout,
utils.DigestSeparatorCfg: gencfg.DigestSeparator,
utils.DigestEqualCfg: gencfg.DigestEqual,
utils.RSRSepCfg: gencfg.RSRSep,
utils.MaxParralelConnsCfg: gencfg.MaxParralelConns,
}
}

View File

@@ -125,3 +125,27 @@ func (dbcfg *StorDbCfg) Clone() *StorDbCfg {
Items: dbcfg.Items,
}
}
func (dbcfg *StorDbCfg) AsMapInterface() map[string]interface{} {
items := make(map[string]interface{})
for key, item := range dbcfg.Items {
items[key] = item.AsMapInterface()
}
return map[string]interface{}{
utils.TypeCfg: dbcfg.Type,
utils.HostCfg: dbcfg.Host,
utils.PortCfg: dbcfg.Port,
utils.NameCfg: dbcfg.Name,
utils.UserCfg: dbcfg.User,
utils.PasswordCfg: dbcfg.Password,
utils.MaxOpenConnsCfg: dbcfg.MaxOpenConns,
utils.MaxIdleConnsCfg: dbcfg.MaxIdleConns,
utils.ConnMaxLifetimeCfg: dbcfg.ConnMaxLifetime,
utils.StringIndexedFieldsCfg: dbcfg.StringIndexedFields,
utils.PrefixIndexedFieldsCfg: dbcfg.PrefixIndexedFields,
utils.QueryTimeoutCfg: dbcfg.QueryTimeout,
utils.SSLModeCfg: dbcfg.SSLMode,
utils.ItemsCfg: items,
}
}

View File

@@ -1623,6 +1623,74 @@ var (
PostgressSSLModeVerifyFull = "verify-full"
)
// GeneralCfg
const (
NodeIDCfg = "node_id"
LoggerCfg = "logger"
LogLevelCfg = "log_level"
HttpSkipTlsVerifyCfg = "http_skip_tls_verify"
RoundingDecimalsCfg = "rounding_decimals"
DBDataEncodingCfg = "dbdata_encoding"
TpExportPathCfg = "tpexport_dir"
PosterAttemptsCfg = "poster_attempts"
FailedPostsDirCfg = "failed_posts_dir"
FailedPostsTTLCfg = "failed_posts_ttl"
DefaultReqTypeCfg = "default_request_type"
DefaultCategoryCfg = "default_category"
DefaultTenantCfg = "default_tenant"
DefaultTimezoneCfg = "default_timezone"
DefaultCachingCfg = "default_caching"
ConnectAttemptsCfg = "connect_attempts"
ReconnectsCfg = "reconnects"
ConnectTimeoutCfg = "connect_timeout"
ReplyTimeoutCfg = "reply_timeout"
LockingTimeoutCfg = "locking_timeout"
DigestSeparatorCfg = "digest_separator"
DigestEqualCfg = "digest_equal"
RSRSepCfg = "rsr_separator"
MaxParralelConnsCfg = "max_parralel_conns"
)
// StorDbCfg
const (
TypeCfg = "db_type"
HostCfg = "db_host"
PortCfg = "db_port"
NameCfg = "db_name"
UserCfg = "db_user"
PasswordCfg = "db_password"
MaxOpenConnsCfg = "max_open_conns"
MaxIdleConnsCfg = "max_idle_conns"
ConnMaxLifetimeCfg = "conn_max_lifetime"
StringIndexedFieldsCfg = "string_indexed_fields"
PrefixIndexedFieldsCfg = "prefix_indexed_fields"
QueryTimeoutCfg = "query_timeout"
SSLModeCfg = "sslmode"
ItemsCfg = "items"
)
// DataDbCfg
const (
DataDbTypeCfg = "db_type"
DataDbHostCfg = "db_host"
DataDbPortCfg = "db_port"
DataDbNameCfg = "db_name"
DataDbUserCfg = "db_user"
DataDbPassCfg = "db_password"
DataDbSentinelNameCfg = "redis_sentinel"
RmtConnsCfg = "remote_conns"
RplConnsCfg = "replication_conns"
)
// ItemOpt
const (
RemoteCfg = "remote"
ReplicateCfg = "replicate"
TTLCfg = "ttl"
LimitCfg = "limit"
StaticTTLCfg = "static_ttl"
)
// Strip/Padding strategy
var (
// common