Add a metadata node_id field for Atlas usage and fix tests

This commit is contained in:
Jeff Mitchell
2016-06-02 18:19:51 -04:00
parent d32283ba49
commit 32b4f48e66
5 changed files with 41 additions and 30 deletions

View File

@@ -428,6 +428,7 @@ func parseListeners(result *Config, list *ast.ObjectList) error {
"address",
"endpoint",
"infrastructure",
"node_id",
"tls_disable",
"tls_cert_file",
"tls_key_file",
@@ -456,6 +457,9 @@ func parseListeners(result *Config, list *ast.ObjectList) error {
if m["infrastructure"] == "" {
return multierror.Prefix(fmt.Errorf("'infrastructure' must be specified for an Atlas listener"), fmt.Sprintf("listeners.%s", key))
}
if m["node_id"] == "" {
return multierror.Prefix(fmt.Errorf("'node_id' must be specified for an Atlas listener"), fmt.Sprintf("listeners.%s", key))
}
}
}

View File

@@ -16,17 +16,18 @@ func TestLoadConfigFile(t *testing.T) {
expected := &Config{
Listeners: []*Listener{
&Listener{
Type: "tcp",
Type: "atlas",
Config: map[string]string{
"address": "127.0.0.1:443",
"token": "foobar",
"infrastructure": "foo/bar",
"endpoint": "https://foo.bar:1111",
"node_id": "foo_node",
},
},
&Listener{
Type: "atlas",
Type: "tcp",
Config: map[string]string{
Token: "foobar",
Infrastructure: "foo/bar",
Endpoint: "https://foo.bar:1111",
"address": "127.0.0.1:443",
},
},
},
@@ -83,9 +84,10 @@ func TestLoadConfigFile_json(t *testing.T) {
&Listener{
Type: "atlas",
Config: map[string]string{
Token: "foobar",
Infrastructure: "foo/bar",
Endpoint: "https://foo.bar:1111",
"token": "foobar",
"infrastructure": "foo/bar",
"endpoint": "https://foo.bar:1111",
"node_id": "foo_node",
},
},
},

View File

@@ -31,7 +31,9 @@ func atlasListenerFactory(config map[string]string, logger io.Writer) (net.Liste
Service: "vault",
Version: version.GetVersion().String(),
ResourceType: "vault-cluster",
Meta: map[string]string{},
Meta: map[string]string{
"node_id": config["node_id"],
},
Atlas: scada.AtlasConfig{
Endpoint: config["endpoint"],
Infrastructure: config["infrastructure"],

View File

@@ -7,6 +7,7 @@ listener "atlas" {
token = "foobar"
infrastructure = "foo/bar"
endpoint = "https://foo.bar:1111"
node_id = "foo_node"
}
listener "tcp" {

View File

@@ -1,22 +1,24 @@
{
"listener":{
"tcp":{
"address":"127.0.0.1:443"
}
},
"atlas":{
"token":"foobar",
"infrastructure":"foo/bar",
"endpoint":"https://foo.bar:1111"
},
"backend":{
"consul":{
"foo":"bar"
}
},
"telemetry":{
"statsite_address":"baz"
},
"max_lease_ttl":"10h",
"default_lease_ttl":"10h"
"listener": [{
"tcp": {
"address": "127.0.0.1:443"
}
}, {
"atlas": {
"token": "foobar",
"infrastructure": "foo/bar",
"endpoint": "https://foo.bar:1111",
"node_id": "foo_node"
}
}],
"backend": {
"consul": {
"foo": "bar"
}
},
"telemetry": {
"statsite_address": "baz"
},
"max_lease_ttl": "10h",
"default_lease_ttl": "10h"
}