mirror of https://github.com/status-im/consul.git
agent: Adding watches config
This commit is contained in:
parent
4d66b11c91
commit
5ee737b8d4
|
@ -229,6 +229,11 @@ type Config struct {
|
||||||
// this acts like deny.
|
// this acts like deny.
|
||||||
ACLDownPolicy string `mapstructure:"acl_down_policy"`
|
ACLDownPolicy string `mapstructure:"acl_down_policy"`
|
||||||
|
|
||||||
|
// Watches are used to monitor various endpoints and to invoke a
|
||||||
|
// handler to act appropriately. These are managed entirely in the
|
||||||
|
// agent layer using the standard APIs.
|
||||||
|
Watches []string `mapstructure:"watches"`
|
||||||
|
|
||||||
// AEInterval controls the anti-entropy interval. This is how often
|
// AEInterval controls the anti-entropy interval. This is how often
|
||||||
// the agent attempts to reconcile it's local state with the server'
|
// the agent attempts to reconcile it's local state with the server'
|
||||||
// representation of our state. Defaults to every 60s.
|
// representation of our state. Defaults to every 60s.
|
||||||
|
@ -648,6 +653,9 @@ func MergeConfig(a, b *Config) *Config {
|
||||||
if b.ACLDefaultPolicy != "" {
|
if b.ACLDefaultPolicy != "" {
|
||||||
result.ACLDefaultPolicy = b.ACLDefaultPolicy
|
result.ACLDefaultPolicy = b.ACLDefaultPolicy
|
||||||
}
|
}
|
||||||
|
if len(b.Watches) != 0 {
|
||||||
|
result.Watches = append(result.Watches, b.Watches...)
|
||||||
|
}
|
||||||
|
|
||||||
// Copy the start join addresses
|
// Copy the start join addresses
|
||||||
result.StartJoin = make([]string, 0, len(a.StartJoin)+len(b.StartJoin))
|
result.StartJoin = make([]string, 0, len(a.StartJoin)+len(b.StartJoin))
|
||||||
|
|
|
@ -384,6 +384,20 @@ func TestDecodeConfig(t *testing.T) {
|
||||||
if config.ACLDefaultPolicy != "deny" {
|
if config.ACLDefaultPolicy != "deny" {
|
||||||
t.Fatalf("bad: %#v", config)
|
t.Fatalf("bad: %#v", config)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Watches
|
||||||
|
input = `{"watches": ["type:keyprefix prefix:foo/ handler:foobar"]}`
|
||||||
|
config, err = DecodeConfig(bytes.NewReader([]byte(input)))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(config.Watches) != 1 {
|
||||||
|
t.Fatalf("bad: %#v", config)
|
||||||
|
}
|
||||||
|
if config.Watches[0] != "type:keyprefix prefix:foo/ handler:foobar" {
|
||||||
|
t.Fatalf("bad: %#v", config)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDecodeConfig_Service(t *testing.T) {
|
func TestDecodeConfig_Service(t *testing.T) {
|
||||||
|
@ -538,6 +552,7 @@ func TestMergeConfig(t *testing.T) {
|
||||||
ACLTTLRaw: "15s",
|
ACLTTLRaw: "15s",
|
||||||
ACLDownPolicy: "deny",
|
ACLDownPolicy: "deny",
|
||||||
ACLDefaultPolicy: "deny",
|
ACLDefaultPolicy: "deny",
|
||||||
|
Watches: []string{"type:keyprefix prefix:foobar/ handler:foo"},
|
||||||
}
|
}
|
||||||
|
|
||||||
c := MergeConfig(a, b)
|
c := MergeConfig(a, b)
|
||||||
|
|
Loading…
Reference in New Issue