Change ApplyEnvVars strategy for all config components
Get jsonConfig from Config, apply env vars to it, load jsonConfig back into Config. License: MIT Signed-off-by: Robert Ignat <robert.ignat91@gmail.com>
This commit is contained in:
parent
47252f8e62
commit
168cf76224
|
@ -157,9 +157,12 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg, err := cfg.toJSONConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
err = envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -262,6 +265,16 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *Config) ToJSON() (raw []byte, err error) {
|
||||
jcfg, err := cfg.toJSONConfig()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
raw, err = config.DefaultJSONMarshal(jcfg)
|
||||
return
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() (jcfg *jsonConfig, err error) {
|
||||
// Multiaddress String() may panic
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
|
@ -269,7 +282,7 @@ func (cfg *Config) ToJSON() (raw []byte, err error) {
|
|||
}
|
||||
}()
|
||||
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg = &jsonConfig{}
|
||||
|
||||
// Set all configuration fields
|
||||
jcfg.ListenMultiaddress = cfg.ListenAddr.String()
|
||||
|
@ -284,6 +297,5 @@ func (cfg *Config) ToJSON() (raw []byte, err error) {
|
|||
jcfg.ExtractHeadersPath = cfg.ExtractHeadersPath
|
||||
jcfg.ExtractHeadersTTL = cfg.ExtractHeadersTTL.String()
|
||||
|
||||
raw, err = config.DefaultJSONMarshal(jcfg)
|
||||
return
|
||||
}
|
||||
|
|
|
@ -184,9 +184,12 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg, err := cfg.toJSONConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
err = envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -372,6 +375,16 @@ func (cfg *Config) loadLibp2pOptions(jcfg *jsonConfig) error {
|
|||
// ToJSON produce a human-friendly JSON representation of the Config
|
||||
// object.
|
||||
func (cfg *Config) ToJSON() (raw []byte, err error) {
|
||||
jcfg, err := cfg.toJSONConfig()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
raw, err = config.DefaultJSONMarshal(jcfg)
|
||||
return
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() (jcfg *jsonConfig, err error) {
|
||||
// Multiaddress String() may panic
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
|
@ -379,7 +392,7 @@ func (cfg *Config) ToJSON() (raw []byte, err error) {
|
|||
}
|
||||
}()
|
||||
|
||||
jcfg := &jsonConfig{
|
||||
jcfg = &jsonConfig{
|
||||
HTTPListenMultiaddress: cfg.HTTPListenAddr.String(),
|
||||
SSLCertFile: cfg.pathSSLCertFile,
|
||||
SSLKeyFile: cfg.pathSSLKeyFile,
|
||||
|
@ -411,7 +424,6 @@ func (cfg *Config) ToJSON() (raw []byte, err error) {
|
|||
jcfg.Libp2pListenMultiaddress = cfg.Libp2pListenAddr.String()
|
||||
}
|
||||
|
||||
raw, err = config.DefaultJSONMarshal(jcfg)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -189,9 +189,12 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &configJSON{}
|
||||
jcfg, err := cfg.toConfigJSON()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err := envconfig.Process(cfg.ConfigKey(), jcfg)
|
||||
err = envconfig.Process(cfg.ConfigKey(), jcfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -386,6 +389,16 @@ func (cfg *Config) applyConfigJSON(jcfg *configJSON) error {
|
|||
|
||||
// ToJSON generates a human-friendly version of Config.
|
||||
func (cfg *Config) ToJSON() (raw []byte, err error) {
|
||||
jcfg, err := cfg.toConfigJSON()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
raw, err = json.MarshalIndent(jcfg, "", " ")
|
||||
return
|
||||
}
|
||||
|
||||
func (cfg *Config) toConfigJSON() (jcfg *configJSON, err error) {
|
||||
// Multiaddress String() may panic
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
|
@ -393,7 +406,7 @@ func (cfg *Config) ToJSON() (raw []byte, err error) {
|
|||
}
|
||||
}()
|
||||
|
||||
jcfg := &configJSON{}
|
||||
jcfg = &configJSON{}
|
||||
|
||||
// Private Key
|
||||
pkeyBytes, err := cfg.PrivateKey.Bytes()
|
||||
|
@ -418,7 +431,6 @@ func (cfg *Config) ToJSON() (raw []byte, err error) {
|
|||
jcfg.DisableRepinning = cfg.DisableRepinning
|
||||
jcfg.PeerstoreFile = cfg.PeerstoreFile
|
||||
|
||||
raw, err = json.MarshalIndent(jcfg, "", " ")
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -236,7 +236,13 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
|
||||
// ToJSON returns the pretty JSON representation of a Config.
|
||||
func (cfg *Config) ToJSON() ([]byte, error) {
|
||||
jcfg := &jsonConfig{
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() *jsonConfig {
|
||||
return &jsonConfig{
|
||||
DataFolder: cfg.DataFolder,
|
||||
InitPeerset: api.PeersToStrings(cfg.InitPeerset),
|
||||
WaitForLeaderTimeout: cfg.WaitForLeaderTimeout.String(),
|
||||
|
@ -253,8 +259,6 @@ func (cfg *Config) ToJSON() ([]byte, error) {
|
|||
SnapshotThreshold: cfg.RaftConfig.SnapshotThreshold,
|
||||
LeaderLeaseTimeout: cfg.RaftConfig.LeaderLeaseTimeout.String(),
|
||||
}
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
||||
// Default initializes this configuration with working defaults.
|
||||
|
@ -281,7 +285,7 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
|
|
@ -58,7 +58,7 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
@ -115,11 +115,15 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
// ToJSON generates a JSON-formatted human-friendly representation of this
|
||||
// Config.
|
||||
func (cfg *Config) ToJSON() (raw []byte, err error) {
|
||||
jcfg := &jsonConfig{}
|
||||
|
||||
jcfg.MetricTTL = cfg.MetricTTL.String()
|
||||
jcfg.Type = cfg.Type.String()
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
raw, err = config.DefaultJSONMarshal(jcfg)
|
||||
return
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() *jsonConfig {
|
||||
return &jsonConfig{
|
||||
MetricTTL: cfg.MetricTTL.String(),
|
||||
Type: cfg.Type.String(),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
@ -85,9 +85,13 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *Config) ToJSON() ([]byte, error) {
|
||||
jcfg := &jsonConfig{}
|
||||
|
||||
jcfg.MetricTTL = cfg.MetricTTL.String()
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() *jsonConfig {
|
||||
return &jsonConfig{
|
||||
MetricTTL: cfg.MetricTTL.String(),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -95,9 +95,12 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg, err := cfg.toJSONConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
err = envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -178,6 +181,16 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *Config) ToJSON() (raw []byte, err error) {
|
||||
jcfg, err := cfg.toJSONConfig()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
raw, err = config.DefaultJSONMarshal(jcfg)
|
||||
return
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() (jcfg *jsonConfig, err error) {
|
||||
// Multiaddress String() may panic
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
|
@ -185,7 +198,7 @@ func (cfg *Config) ToJSON() (raw []byte, err error) {
|
|||
}
|
||||
}()
|
||||
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg = &jsonConfig{}
|
||||
|
||||
// Set all configuration fields
|
||||
jcfg.NodeMultiaddress = cfg.NodeAddr.String()
|
||||
|
@ -195,6 +208,5 @@ func (cfg *Config) ToJSON() (raw []byte, err error) {
|
|||
jcfg.PinTimeout = cfg.PinTimeout.String()
|
||||
jcfg.UnpinTimeout = cfg.UnpinTimeout.String()
|
||||
|
||||
raw, err = config.DefaultJSONMarshal(jcfg)
|
||||
return
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
@ -85,9 +85,13 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *Config) ToJSON() ([]byte, error) {
|
||||
jcfg := &jsonConfig{}
|
||||
|
||||
jcfg.CheckInterval = cfg.CheckInterval.String()
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
return json.MarshalIndent(jcfg, "", " ")
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() *jsonConfig {
|
||||
return &jsonConfig{
|
||||
CheckInterval: cfg.CheckInterval.String(),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
@ -85,9 +85,13 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *Config) ToJSON() ([]byte, error) {
|
||||
jcfg := &jsonConfig{}
|
||||
|
||||
jcfg.CheckInterval = cfg.CheckInterval.String()
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
return json.MarshalIndent(jcfg, "", " ")
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() *jsonConfig {
|
||||
return &jsonConfig{
|
||||
CheckInterval: cfg.CheckInterval.String(),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,7 +62,7 @@ func (cfg *MetricsConfig) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *MetricsConfig) ApplyEnvVars() error {
|
||||
jcfg := &jsonMetricsConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(metricsEnvConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
@ -130,13 +130,17 @@ func (cfg *MetricsConfig) loadMetricsOptions(jcfg *jsonMetricsConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *MetricsConfig) ToJSON() ([]byte, error) {
|
||||
jcfg := &jsonMetricsConfig{
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
||||
func (cfg *MetricsConfig) toJSONConfig() *jsonMetricsConfig {
|
||||
return &jsonMetricsConfig{
|
||||
EnableStats: cfg.EnableStats,
|
||||
PrometheusEndpoint: cfg.PrometheusEndpoint.String(),
|
||||
ReportingInterval: cfg.ReportingInterval.String(),
|
||||
}
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
||||
// TracingConfig configures tracing.
|
||||
|
@ -174,7 +178,7 @@ func (cfg *TracingConfig) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *TracingConfig) ApplyEnvVars() error {
|
||||
jcfg := &jsonTracingConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(tracingEnvConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
@ -237,12 +241,16 @@ func (cfg *TracingConfig) loadTracingOptions(jcfg *jsonTracingConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *TracingConfig) ToJSON() ([]byte, error) {
|
||||
jcfg := &jsonTracingConfig{
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
||||
func (cfg *TracingConfig) toJSONConfig() *jsonTracingConfig {
|
||||
return &jsonTracingConfig{
|
||||
EnableTracing: cfg.EnableTracing,
|
||||
JaegerAgentEndpoint: cfg.JaegerAgentEndpoint.String(),
|
||||
SamplingProb: cfg.SamplingProb,
|
||||
ServiceName: cfg.ServiceName,
|
||||
}
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
@ -97,10 +97,14 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *Config) ToJSON() ([]byte, error) {
|
||||
jcfg := &jsonConfig{}
|
||||
|
||||
jcfg.MaxPinQueueSize = cfg.MaxPinQueueSize
|
||||
jcfg.ConcurrentPins = cfg.ConcurrentPins
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() *jsonConfig {
|
||||
return &jsonConfig{
|
||||
MaxPinQueueSize: cfg.MaxPinQueueSize,
|
||||
ConcurrentPins: cfg.ConcurrentPins,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ func (cfg *Config) Default() error {
|
|||
// ApplyEnvVars fills in any Config fields found
|
||||
// as environment variables.
|
||||
func (cfg *Config) ApplyEnvVars() error {
|
||||
jcfg := &jsonConfig{}
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
err := envconfig.Process(envConfigKey, jcfg)
|
||||
if err != nil {
|
||||
|
@ -97,10 +97,14 @@ func (cfg *Config) applyJSONConfig(jcfg *jsonConfig) error {
|
|||
|
||||
// ToJSON generates a human-friendly JSON representation of this Config.
|
||||
func (cfg *Config) ToJSON() ([]byte, error) {
|
||||
jcfg := &jsonConfig{}
|
||||
|
||||
jcfg.MaxPinQueueSize = cfg.MaxPinQueueSize
|
||||
jcfg.ConcurrentPins = cfg.ConcurrentPins
|
||||
jcfg := cfg.toJSONConfig()
|
||||
|
||||
return config.DefaultJSONMarshal(jcfg)
|
||||
}
|
||||
|
||||
func (cfg *Config) toJSONConfig() *jsonConfig {
|
||||
return &jsonConfig{
|
||||
MaxPinQueueSize: cfg.MaxPinQueueSize,
|
||||
ConcurrentPins: cfg.ConcurrentPins,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user