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", "address",
"endpoint", "endpoint",
"infrastructure", "infrastructure",
"node_id",
"tls_disable", "tls_disable",
"tls_cert_file", "tls_cert_file",
"tls_key_file", "tls_key_file",
@@ -456,6 +457,9 @@ func parseListeners(result *Config, list *ast.ObjectList) error {
if m["infrastructure"] == "" { if m["infrastructure"] == "" {
return multierror.Prefix(fmt.Errorf("'infrastructure' must be specified for an Atlas listener"), fmt.Sprintf("listeners.%s", key)) 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{ expected := &Config{
Listeners: []*Listener{ Listeners: []*Listener{
&Listener{ &Listener{
Type: "tcp", Type: "atlas",
Config: map[string]string{ 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{ &Listener{
Type: "atlas", Type: "tcp",
Config: map[string]string{ Config: map[string]string{
Token: "foobar", "address": "127.0.0.1:443",
Infrastructure: "foo/bar",
Endpoint: "https://foo.bar:1111",
}, },
}, },
}, },
@@ -83,9 +84,10 @@ func TestLoadConfigFile_json(t *testing.T) {
&Listener{ &Listener{
Type: "atlas", Type: "atlas",
Config: map[string]string{ Config: map[string]string{
Token: "foobar", "token": "foobar",
Infrastructure: "foo/bar", "infrastructure": "foo/bar",
Endpoint: "https://foo.bar:1111", "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", Service: "vault",
Version: version.GetVersion().String(), Version: version.GetVersion().String(),
ResourceType: "vault-cluster", ResourceType: "vault-cluster",
Meta: map[string]string{}, Meta: map[string]string{
"node_id": config["node_id"],
},
Atlas: scada.AtlasConfig{ Atlas: scada.AtlasConfig{
Endpoint: config["endpoint"], Endpoint: config["endpoint"],
Infrastructure: config["infrastructure"], Infrastructure: config["infrastructure"],

View File

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

View File

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