in internal/agentcfg/fetch.go [69:107]
func matchAgentConfig(query Query, cfgs []AgentConfig) Result {
name, env := query.Service.Name, query.Service.Environment
result := zeroResult()
var nameConf, envConf, defaultConf *AgentConfig
for i, cfg := range cfgs {
if cfg.ServiceName == name && cfg.ServiceEnvironment == env {
nameConf = &cfgs[i]
break
} else if cfg.ServiceName == name && cfg.ServiceEnvironment == "" {
nameConf = &cfgs[i]
} else if cfg.ServiceName == "" && cfg.ServiceEnvironment == env {
envConf = &cfgs[i]
} else if cfg.ServiceName == "" && cfg.ServiceEnvironment == "" {
defaultConf = &cfgs[i]
}
}
if nameConf != nil {
result = Result{Source{
Settings: nameConf.Config,
Etag: nameConf.Etag,
Agent: nameConf.AgentName,
}}
} else if envConf != nil {
result = Result{Source{
Settings: envConf.Config,
Etag: envConf.Etag,
Agent: envConf.AgentName,
}}
} else if defaultConf != nil {
result = Result{Source{
Settings: defaultConf.Config,
Etag: defaultConf.Etag,
Agent: defaultConf.AgentName,
}}
}
return result
}