Add support for parameterizing the ACL config used with a TestA… (#6559)
* Add support for parameterizing the ACL config used with a TestAgent Using tokens that are UUIDs will get rid of some warnings * Refactor to allow setting all tokens and change the template to ignore unset values.
This commit is contained in:
parent
3434c8289d
commit
04dbd48ce5
|
@ -1,6 +1,7 @@
|
||||||
package agent
|
package agent
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
@ -12,6 +13,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
"text/template"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
metrics "github.com/armon/go-metrics"
|
metrics "github.com/armon/go-metrics"
|
||||||
|
@ -472,17 +474,92 @@ func TestACLConfig() string {
|
||||||
`
|
`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
TestDefaultMasterToken = "d9f05e83-a7ae-47ce-839e-c0d53a68c00a"
|
||||||
|
TestDefaultAgentMasterToken = "bca580d4-db07-4074-b766-48acc9676955'"
|
||||||
|
)
|
||||||
|
|
||||||
|
type TestACLConfigParams struct {
|
||||||
|
PrimaryDatacenter string
|
||||||
|
DefaultPolicy string
|
||||||
|
MasterToken string
|
||||||
|
AgentToken string
|
||||||
|
DefaultToken string
|
||||||
|
AgentMasterToken string
|
||||||
|
ReplicationToken string
|
||||||
|
}
|
||||||
|
|
||||||
|
func DefaulTestACLConfigParams() *TestACLConfigParams {
|
||||||
|
return &TestACLConfigParams{
|
||||||
|
PrimaryDatacenter: "dc1",
|
||||||
|
DefaultPolicy: "deny",
|
||||||
|
MasterToken: TestDefaultMasterToken,
|
||||||
|
AgentToken: TestDefaultMasterToken,
|
||||||
|
AgentMasterToken: TestDefaultAgentMasterToken,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *TestACLConfigParams) HasConfiguredTokens() bool {
|
||||||
|
return p.MasterToken != "" ||
|
||||||
|
p.AgentToken != "" ||
|
||||||
|
p.DefaultToken != "" ||
|
||||||
|
p.AgentMasterToken != "" ||
|
||||||
|
p.ReplicationToken != ""
|
||||||
|
}
|
||||||
|
|
||||||
func TestACLConfigNew() string {
|
func TestACLConfigNew() string {
|
||||||
return `
|
return TestACLConfigWithParams(&TestACLConfigParams{
|
||||||
primary_datacenter = "dc1"
|
PrimaryDatacenter: "dc1",
|
||||||
|
DefaultPolicy: "deny",
|
||||||
|
MasterToken: "root",
|
||||||
|
AgentToken: "root",
|
||||||
|
AgentMasterToken: "towel",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
var aclConfigTpl = template.Must(template.New("ACL Config").Parse(`
|
||||||
|
{{if ne .PrimaryDatacenter ""}}
|
||||||
|
primary_datacenter = "{{ .PrimaryDatacenter }}"
|
||||||
|
{{end}}
|
||||||
acl {
|
acl {
|
||||||
enabled = true
|
enabled = true
|
||||||
default_policy = "deny"
|
{{if ne .DefaultPolicy ""}}
|
||||||
|
default_policy = "{{ .DefaultPolicy }}"
|
||||||
|
{{end}}
|
||||||
|
{{if .HasConfiguredTokens }}
|
||||||
tokens {
|
tokens {
|
||||||
master = "root"
|
{{if ne .MasterToken ""}}
|
||||||
agent = "root"
|
master = "{{ .MasterToken }}"
|
||||||
agent_master = "towel"
|
{{end}}
|
||||||
|
{{if ne .AgentToken ""}}
|
||||||
|
agent = "{{ .AgentToken }}"
|
||||||
|
{{end}}
|
||||||
|
{{if ne .AgentMasterToken "" }}
|
||||||
|
agent_master = "{{ .AgentMasterToken }}"
|
||||||
|
{{end}}
|
||||||
|
{{if ne .DefaultToken "" }}
|
||||||
|
default = "{{ .DefaultToken }}"
|
||||||
|
{{end}}
|
||||||
|
{{if ne .ReplicationToken "" }}
|
||||||
|
replication = "{{ .ReplicationToken }}"
|
||||||
|
{{end}}
|
||||||
}
|
}
|
||||||
|
{{end}}
|
||||||
}
|
}
|
||||||
`
|
`))
|
||||||
|
|
||||||
|
func TestACLConfigWithParams(params *TestACLConfigParams) string {
|
||||||
|
var buf bytes.Buffer
|
||||||
|
|
||||||
|
cfg := params
|
||||||
|
if params == nil {
|
||||||
|
cfg = DefaulTestACLConfigParams()
|
||||||
|
}
|
||||||
|
|
||||||
|
err := aclConfigTpl.Execute(&buf, &cfg)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("Failed to generate test ACL config: %v", err))
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf.String()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue