github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/worker/apiserver/config.go (about) 1 // Copyright 2017 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package apiserver 5 6 import ( 7 "strconv" 8 "time" 9 10 "github.com/juju/errors" 11 12 "github.com/juju/juju/agent" 13 "github.com/juju/juju/apiserver" 14 ) 15 16 func getLogSinkConfig(cfg agent.Config) (apiserver.LogSinkConfig, error) { 17 result := apiserver.DefaultLogSinkConfig() 18 var err error 19 if v := cfg.Value(agent.LogSinkDBLoggerBufferSize); v != "" { 20 result.DBLoggerBufferSize, err = strconv.Atoi(v) 21 if err != nil { 22 return result, errors.Annotatef( 23 err, "parsing %s", agent.LogSinkDBLoggerBufferSize, 24 ) 25 } 26 } 27 if v := cfg.Value(agent.LogSinkDBLoggerFlushInterval); v != "" { 28 if result.DBLoggerFlushInterval, err = time.ParseDuration(v); err != nil { 29 return result, errors.Annotatef( 30 err, "parsing %s", agent.LogSinkDBLoggerFlushInterval, 31 ) 32 } 33 } 34 if v := cfg.Value(agent.LogSinkRateLimitBurst); v != "" { 35 result.RateLimitBurst, err = strconv.ParseInt(v, 10, 64) 36 if err != nil { 37 return result, errors.Annotatef( 38 err, "parsing %s", agent.LogSinkRateLimitBurst, 39 ) 40 } 41 } 42 if v := cfg.Value(agent.LogSinkRateLimitRefill); v != "" { 43 result.RateLimitRefill, err = time.ParseDuration(v) 44 if err != nil { 45 return result, errors.Annotatef( 46 err, "parsing %s", agent.LogSinkRateLimitRefill, 47 ) 48 } 49 } 50 return result, nil 51 }