adds Go durations for timeout configs

Signed-off-by: Vivek Singh <vivekkmr45@yahoo.in>

applied go fmt on config_test file

Signed-off-by: Vivek Singh <vivekkmr45@yahoo.in>

removes extra line in config_test

Signed-off-by: Vivek Singh <vivekkmr45@yahoo.in>
This commit is contained in:
Vivek Singh 2018-02-07 22:11:55 +05:30 committed by Alex Ellis
parent c601a6761f
commit b12a4d0bf2
2 changed files with 30 additions and 7 deletions

View File

@ -74,6 +74,24 @@ func TestRead_ReadAndWriteTimeoutConfig(t *testing.T) {
}
}
func TestRead_ReadAndWriteTimeoutDurationConfig(t *testing.T) {
defaults := NewEnvBucket()
defaults.Setenv("read_timeout", "20s")
defaults.Setenv("write_timeout", "1m30s")
readConfig := types.ReadConfig{}
config := readConfig.Read(defaults)
if (config.ReadTimeout) != time.Duration(20)*time.Second {
t.Logf("ReadTimeout incorrect, got: %d\n", config.ReadTimeout)
t.Fail()
}
if (config.WriteTimeout) != time.Duration(90)*time.Second {
t.Logf("WriteTimeout incorrect, got: %d\n", config.WriteTimeout)
t.Fail()
}
}
func TestRead_UseNATSDefaultsToOff(t *testing.T) {
defaults := NewEnvBucket()
readConfig := types.ReadConfig{}

View File

@ -36,14 +36,19 @@ func parseBoolValue(val string) bool {
return false
}
func parseIntValue(val string, fallback int) int {
func parseIntOrDurationValue(val string, fallback time.Duration) time.Duration {
if len(val) > 0 {
parsedVal, parseErr := strconv.Atoi(val)
if parseErr == nil && parsedVal >= 0 {
return parsedVal
return time.Duration(parsedVal) * time.Second
}
}
return fallback
duration, durationErr := time.ParseDuration(val)
if durationErr != nil {
return fallback
}
return duration
}
// Read fetches config from environmental variables.
@ -53,11 +58,11 @@ func (ReadConfig) Read(hasEnv HasEnv) GatewayConfig {
PrometheusPort: 9090,
}
readTimeout := parseIntValue(hasEnv.Getenv("read_timeout"), 8)
writeTimeout := parseIntValue(hasEnv.Getenv("write_timeout"), 8)
readTimeout := parseIntOrDurationValue(hasEnv.Getenv("read_timeout"), time.Second*8)
writeTimeout := parseIntOrDurationValue(hasEnv.Getenv("write_timeout"), time.Second*8)
cfg.ReadTimeout = time.Duration(readTimeout) * time.Second
cfg.WriteTimeout = time.Duration(writeTimeout) * time.Second
cfg.ReadTimeout = readTimeout
cfg.WriteTimeout = writeTimeout
if len(hasEnv.Getenv("functions_provider_url")) > 0 {
var err error