Put a note for deprecating json fields
Put a note for deprecating json fields that they are only here to maintain compatibility and they will be removed in future Start using env vars starting with `CLUSTER_IPFSPROXY` License: MIT Signed-off-by: Kishan Mohanbhai Sagathiya <kishansagathiya@gmail.com>
This commit is contained in:
parent
2da12bc59a
commit
3b86a94418
|
@ -50,6 +50,8 @@ USER root
|
||||||
RUN mkdir -p $IPFS_CLUSTER_PATH && \
|
RUN mkdir -p $IPFS_CLUSTER_PATH && \
|
||||||
chown 1000:100 $IPFS_CLUSTER_PATH
|
chown 1000:100 $IPFS_CLUSTER_PATH
|
||||||
|
|
||||||
|
USER ipfs
|
||||||
|
|
||||||
VOLUME $IPFS_CLUSTER_PATH
|
VOLUME $IPFS_CLUSTER_PATH
|
||||||
ENTRYPOINT ["/usr/local/bin/start-daemons.sh"]
|
ENTRYPOINT ["/usr/local/bin/start-daemons.sh"]
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,16 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/kelseyhightower/envconfig"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
|
|
||||||
"github.com/ipfs/ipfs-cluster/config"
|
"github.com/ipfs/ipfs-cluster/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const configKey = "ipfsproxy"
|
const (
|
||||||
|
configKey = "ipfsproxy"
|
||||||
|
envConfigKey = "cluster_ipfsproxy"
|
||||||
|
)
|
||||||
|
|
||||||
// Default values for Config.
|
// Default values for Config.
|
||||||
const (
|
const (
|
||||||
|
@ -49,18 +53,45 @@ type Config struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type jsonConfig struct {
|
type jsonConfig struct {
|
||||||
ProxyListenMultiaddress string `json:"proxy_listen_multiaddress,omitempty"`
|
|
||||||
NodeMultiaddress string `json:"node_multiaddress"`
|
NodeMultiaddress string `json:"node_multiaddress"`
|
||||||
ProxyReadTimeout string `json:"proxy_read_timeout,omitempty"`
|
|
||||||
ProxyReadHeaderTimeout string `json:"proxy_read_header_timeout,omitempty"`
|
|
||||||
ProxyWriteTimeout string `json:"proxy_write_timeout,omitempty"`
|
|
||||||
ProxyIdleTimeout string `json:"proxy_idle_timeout,omitempty"`
|
|
||||||
|
|
||||||
ListenMultiaddress string `json:"listen_multiaddress"`
|
ListenMultiaddress string `json:"listen_multiaddress"`
|
||||||
ReadTimeout string `json:"read_timeout"`
|
ReadTimeout string `json:"read_timeout"`
|
||||||
ReadHeaderTimeout string `json:"read_header_timeout"`
|
ReadHeaderTimeout string `json:"read_header_timeout"`
|
||||||
WriteTimeout string `json:"write_timeout"`
|
WriteTimeout string `json:"write_timeout"`
|
||||||
IdleTimeout string `json:"idle_timeout"`
|
IdleTimeout string `json:"idle_timeout"`
|
||||||
|
|
||||||
|
// Below fields are only here to maintain backward compatibility
|
||||||
|
// They will be removed in future
|
||||||
|
ProxyListenMultiaddress string `json:"proxy_listen_multiaddress,omitempty"`
|
||||||
|
ProxyReadTimeout string `json:"proxy_read_timeout,omitempty"`
|
||||||
|
ProxyReadHeaderTimeout string `json:"proxy_read_header_timeout,omitempty"`
|
||||||
|
ProxyWriteTimeout string `json:"proxy_write_timeout,omitempty"`
|
||||||
|
ProxyIdleTimeout string `json:"proxy_idle_timeout,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// toNewFields converts json config written in old style (fields starting with `proxy_`)
|
||||||
|
// to new style (without `proxy_`)
|
||||||
|
func (jcfg *jsonConfig) toNewFields() {
|
||||||
|
if jcfg.ListenMultiaddress == "" {
|
||||||
|
jcfg.ListenMultiaddress = jcfg.ProxyListenMultiaddress
|
||||||
|
}
|
||||||
|
|
||||||
|
if jcfg.ReadTimeout == "" {
|
||||||
|
jcfg.ReadTimeout = jcfg.ProxyReadTimeout
|
||||||
|
}
|
||||||
|
|
||||||
|
if jcfg.ReadHeaderTimeout == "" {
|
||||||
|
jcfg.ReadHeaderTimeout = jcfg.ProxyReadHeaderTimeout
|
||||||
|
}
|
||||||
|
|
||||||
|
if jcfg.WriteTimeout == "" {
|
||||||
|
jcfg.WriteTimeout = jcfg.ProxyWriteTimeout
|
||||||
|
}
|
||||||
|
|
||||||
|
if jcfg.IdleTimeout == "" {
|
||||||
|
jcfg.IdleTimeout = jcfg.ProxyIdleTimeout
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ConfigKey provides a human-friendly identifier for this type of Config.
|
// ConfigKey provides a human-friendly identifier for this type of Config.
|
||||||
|
@ -128,31 +159,21 @@ func (cfg *Config) LoadJSON(raw []byte) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if jcfg.ListenMultiaddress == "" {
|
// This is here only here to maintain backward compatibility
|
||||||
jcfg.ListenMultiaddress = jcfg.ProxyListenMultiaddress
|
// This won't be needed after removing old style fields(starting with `proxy_`)
|
||||||
}
|
jcfg.toNewFields()
|
||||||
|
|
||||||
if jcfg.ReadTimeout == "" {
|
|
||||||
jcfg.ReadTimeout = jcfg.ProxyReadTimeout
|
|
||||||
}
|
|
||||||
|
|
||||||
if jcfg.ReadHeaderTimeout == "" {
|
|
||||||
jcfg.ReadHeaderTimeout = jcfg.ProxyReadHeaderTimeout
|
|
||||||
}
|
|
||||||
|
|
||||||
if jcfg.WriteTimeout == "" {
|
|
||||||
jcfg.WriteTimeout = jcfg.ProxyWriteTimeout
|
|
||||||
}
|
|
||||||
|
|
||||||
if jcfg.IdleTimeout == "" {
|
|
||||||
jcfg.IdleTimeout = jcfg.ProxyIdleTimeout
|
|
||||||
}
|
|
||||||
|
|
||||||
err = cfg.Default()
|
err = cfg.Default()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error setting config to default values: %s", err)
|
return fmt.Errorf("error setting config to default values: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// override json config with env var
|
||||||
|
err = envconfig.Process("cluster_ipfsproxy", jcfg)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
proxyAddr, err := ma.NewMultiaddr(jcfg.ListenMultiaddress)
|
proxyAddr, err := ma.NewMultiaddr(jcfg.ListenMultiaddress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error parsing proxy listen_multiaddress: %s", err)
|
return fmt.Errorf("error parsing proxy listen_multiaddress: %s", err)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user