Add constants with default values

- default values constants
- add conn_ttl `GW_CONN_TTL=duration` (gRPC connection time to live)
This commit is contained in:
Evgeniy Kulikov 2020-02-19 13:47:21 +03:00
parent 667a98d22f
commit 65a2da6995
No known key found for this signature in database
GPG key ID: BF6AEE0A2A699BF2

View file

@ -23,6 +23,16 @@ type empty int
const ( const (
devNull = empty(0) devNull = empty(0)
generated = "generated" generated = "generated"
minimumTTLInMinutes = 5
defaultTTL = minimumTTLInMinutes * time.Minute
defaultRequestTimeout = 15 * time.Second
defaultConnectTimeout = 30 * time.Second
defaultKeepaliveTime = 10 * time.Second
defaultKeepaliveTimeout = 10 * time.Second
) )
func (empty) Read([]byte) (int, error) { return 0, io.EOF } func (empty) Read([]byte) (int, error) { return 0, io.EOF }
@ -74,8 +84,9 @@ func settings() *viper.Viper {
flags.String("key", generated, `"`+generated+`" to generate key, path to private key file, hex string or wif`) flags.String("key", generated, `"`+generated+`" to generate key, path to private key file, hex string or wif`)
flags.Bool("verbose", false, "debug gRPC connections") flags.Bool("verbose", false, "debug gRPC connections")
flags.Duration("request_timeout", time.Second*5, "gRPC request timeout") flags.Duration("request_timeout", defaultRequestTimeout, "gRPC request timeout")
flags.Duration("connect_timeout", time.Second*30, "gRPC connect timeout") flags.Duration("connect_timeout", defaultConnectTimeout, "gRPC connect timeout")
ttl := flags.DurationP("conn_ttl", "t", defaultTTL, "gRPC connection time to live")
flags.String("listen_address", "0.0.0.0:8082", "HTTP Gateway listen address") flags.String("listen_address", "0.0.0.0:8082", "HTTP Gateway listen address")
peers := flags.StringArrayP("peers", "p", nil, "NeoFS nodes") peers := flags.StringArrayP("peers", "p", nil, "NeoFS nodes")
@ -95,8 +106,9 @@ func settings() *viper.Viper {
v.SetDefault("logger.sampling.thereafter", 1000) v.SetDefault("logger.sampling.thereafter", 1000)
// keepalive: // keepalive:
v.SetDefault("keepalive.timeout", time.Second*10) // If set below 10s, a minimum value of 10s will be used instead.
v.SetDefault("keepalive.time", time.Second*10) // If set below 10s, a minimum value of 10s will be used instead. v.SetDefault("keepalive.time", defaultKeepaliveTime)
v.SetDefault("keepalive.timeout", defaultKeepaliveTimeout)
v.SetDefault("keepalive.permit_without_stream", true) v.SetDefault("keepalive.permit_without_stream", true)
if err := v.BindPFlags(flags); err != nil { if err := v.BindPFlags(flags); err != nil {
@ -119,6 +131,8 @@ func settings() *viper.Viper {
case version != nil && *version: case version != nil && *version:
fmt.Printf("NeoFS HTTP Gateway %s (%s)\n", Version, Build) fmt.Printf("NeoFS HTTP Gateway %s (%s)\n", Version, Build)
os.Exit(0) os.Exit(0)
case ttl != nil && ttl.Minutes() < minimumTTLInMinutes:
fmt.Printf("connection ttl should not be less than %s", defaultTTL)
} }
if peers != nil && len(*peers) > 0 { if peers != nil && len(*peers) > 0 {