Documentation ¶
Overview ¶
Package config provides configuration for `supraworker` application.
Index ¶
- Constants
- Variables
- func GetBool(section string) bool
- func GetIntSlice(section string, param string, def []int) []int
- func GetMapStringMapStringTemplatedDefault(section string, param string, def map[string]string) map[string]map[string]string
- func GetStringDefault(section string, def string) string
- func GetStringMapStringTemplated(section string, param string) map[string]string
- func GetStringMapStringTemplatedDefault(section string, param string, def map[string]string) map[string]string
- func GetStringMapStringTemplatedFromMap(section string, param string, from map[string]string) map[string]string
- func GetStringMapStringTemplatedFromMapDefault(section string, param string, from map[string]string, def map[string]string) map[string]string
- func GetStringTemplatedDefault(section string, def string) string
- func GetTimeDurationDefault(section string, param string, def time.Duration) (interval time.Duration)
- func LoadCfgForTests(t *testing.T, CfgFile string) (Config, Config)
- func NewFlakyTestServer(t *testing.T, out <-chan string, isFlakyNow <-chan bool, ...) *httptest.Server
- func NewTestServer(t *testing.T, in func() interface{}, out func(string)) *httptest.Server
- func ReinitializeConfig()
- func StringToCfgForTests(t *testing.T, yaml []byte) (Config, Config)
- func TestMain(m *testing.M)
- type Config
Constants ¶
View Source
const ( // ProjectName defines project name ProjectName = "supraworker" // Default number of workers DefaultNumWorkers = 5 )
View Source
const StopReadJobsOutputAfter5Min = 5 * time.Minute
View Source
const TimeoutJobsAfter5MinInTerminalState = 5 * time.Minute
Variables ¶
View Source
var ( // CfgFile defines Path to the config. CfgFile string // ClientId defines Identification for the instance. ClientId string // NumWorkers parallel threads for processing jobs. NumWorkers int // C defines main configuration structure. C = Config{ CallAPIDelaySec: int(2), NumActiveJobs: 0, NumFreeSlots: 0, NumWorkers: 0, } )
View Source
var ( // Set of constants for fetching Job's REST API CFG_PREFIX_JOBS = "jobs" CFG_PREFIX_JOBS_TIMEOUT = "timeout" CFG_PREFIX_JOB_TIMEOUT_DURATION = "job_max_duration" CFG_PREFIX_JOBS_FETCHER = "fetch" //CFG_PREFIX_COMMUNICATOR defines parameter in the config for Communicators CFG_PREFIX_COMMUNICATOR = "communicator" CFG_PREFIX_COMMUNICATORS = "communicators" // HTTP Communicator tuning // User for allowed response codes definmition. CFG_PREFIX_ALLOWED_RESPONSE_CODES = "codes" // Defines backoff prefixes // More information at // https://github.com/cenkalti/backoff/blob/v4.0.2/exponential.go#L9 CFG_PREFIX_BACKOFF = "backoff" // MaxInterval caps the RetryInterval and not the randomized interval. CFG_PREFIX_BACKOFF_MAXINTERVAL = "maxinterval" // After MaxElapsedTime the ExponentialBackOff returns Stop. // It never stops if MaxElapsedTime == 0. CFG_PREFIX_BACKOFF_MAXELAPSEDTIME = "maxelapsedtime" CFG_PREFIX_BACKOFF_INITIALINTERVAL = "initialinterval" CFG_COMMUNICATOR_PARAMS_KEY = "params" CFG_INTERVAL_PARAMETER = "interval" )
Functions ¶
func GetIntSlice ¶ added in v0.2.3
GetIntSlice returns []int or default.
func GetMapStringMapStringTemplatedDefault ¶ added in v0.2.3
func GetMapStringMapStringTemplatedDefault(section string, param string, def map[string]string) map[string]map[string]string
GetMapStringMapStringTemplatedDefault returns map of [string]string maps templated & enriched by default.
func GetStringDefault ¶ added in v0.2.3
GetStringDefault return section string or default.
func GetStringMapStringTemplated ¶ added in v0.2.3
func GetStringMapStringTemplatedDefault ¶ added in v0.2.3
func GetStringMapStringTemplatedFromMap ¶ added in v0.2.3
func GetStringMapStringTemplatedFromMapDefault ¶ added in v0.2.3
func GetStringTemplatedDefault ¶ added in v0.2.0
func GetTimeDurationDefault ¶ added in v0.2.3
func GetTimeDurationDefault(section string, param string, def time.Duration) (interval time.Duration)
GetTimeDuration return delay for the section with default of 1 second. Example config: section:
interval: 5s
func LoadCfgForTests ¶ added in v0.2.3
func NewFlakyTestServer ¶ added in v0.4.0
func NewTestServer ¶ added in v0.2.3
func StringToCfgForTests ¶ added in v0.4.0
Types ¶
type Config ¶
type Config struct { // Identification for the process ClientId string `mapstructure:"clientId"` NumActiveJobs int64 // Number of jobs NumFreeSlots int // Number of free jobs slots NumWorkers int `mapstructure:"workers"` PrometheusNamespace string PrometheusService string ClusterId string `mapstructure:"clusterId"` ClusterPool string `mapstructure:"clusterPool"` URL string // Used for overload URL for Tests "{{.URL}}" // delay between API calls to prevent Denial-of-service CallAPIDelaySec int `mapstructure:"api_delay_sec"` // Config version ConfigVersion string `mapstructure:"version"` }
Config is top level Configuration structure
Click to show internal directories.
Click to hide internal directories.