43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package config
|
|
|
|
import "fmt"
|
|
|
|
type DeprecatedConfig struct {
|
|
// DEPRECATED (ACL-Legacy-Compat) - moved into the "acl.tokens" stanza
|
|
ACLAgentMasterToken *string `mapstructure:"acl_agent_master_token"`
|
|
// DEPRECATED (ACL-Legacy-Compat) - moved to "primary_datacenter"
|
|
ACLDatacenter *string `mapstructure:"acl_datacenter"`
|
|
}
|
|
|
|
func applyDeprecatedConfig(d *decodeTarget) (Config, []string) {
|
|
dep := d.DeprecatedConfig
|
|
var warns []string
|
|
|
|
if dep.ACLAgentMasterToken != nil {
|
|
if d.Config.ACL.Tokens.AgentMaster == nil {
|
|
d.Config.ACL.Tokens.AgentMaster = dep.ACLAgentMasterToken
|
|
}
|
|
warns = append(warns, deprecationWarning("acl_agent_master_token", "acl.tokens.agent_master"))
|
|
}
|
|
|
|
if dep.ACLDatacenter != nil {
|
|
if d.Config.PrimaryDatacenter == nil {
|
|
d.Config.PrimaryDatacenter = dep.ACLDatacenter
|
|
}
|
|
|
|
// when the acl_datacenter config is used it implicitly enables acls
|
|
d.Config.ACL.Enabled = pBool(true)
|
|
warns = append(warns, deprecationWarning("acl_datacenter", "primary_datacenter"))
|
|
}
|
|
|
|
return d.Config, warns
|
|
}
|
|
|
|
func deprecationWarning(old, new string) string {
|
|
return fmt.Sprintf("The '%v' field is deprecated. Use the '%v' field instead.", old, new)
|
|
}
|
|
|
|
func pBool(v bool) *bool {
|
|
return &v
|
|
}
|