diff --git a/.changelog/26787.txt b/.changelog/26787.txt new file mode 100644 index 000000000..e325a561d --- /dev/null +++ b/.changelog/26787.txt @@ -0,0 +1,3 @@ +```release-note:bug +consul (Enterprise): Fixed a bug where Consul fingerprinting would generate warning logs if there was no default cluster +``` diff --git a/client/fingerprint/consul.go b/client/fingerprint/consul.go index 2ff906857..339b8f5df 100644 --- a/client/fingerprint/consul.go +++ b/client/fingerprint/consul.go @@ -242,12 +242,12 @@ func (cfs *consulState) query(logger hclog.Logger) agentconsul.Self { } func (f *ConsulFingerprint) link(resp *FingerprintResponse) { - if dc, ok := resp.Attributes["consul.datacenter"]; ok { - if name, ok2 := resp.Attributes["unique.consul.name"]; ok2 { - resp.AddLink("consul", fmt.Sprintf("%s.%s", dc, name)) + if uniqueName, ok := resp.Attributes["unique.consul.name"]; ok { + if dc, ok := resp.Attributes["consul.datacenter"]; ok { + resp.AddLink("consul", fmt.Sprintf("%s.%s", dc, uniqueName)) + } else { + f.logger.Debug("malformed Consul response prevented adding link") } - } else { - f.logger.Warn("malformed Consul response prevented linking") } } diff --git a/client/fingerprint/consul_test.go b/client/fingerprint/consul_test.go index 078c93bf3..69935c33f 100644 --- a/client/fingerprint/consul_test.go +++ b/client/fingerprint/consul_test.go @@ -620,6 +620,7 @@ func TestConsulFingerprint_Fingerprint_oss(t *testing.T) { "unique.consul.name": "HAL9000", }, resp.Attributes) must.True(t, resp.Detected) + must.Eq(t, "dc1.HAL9000", resp.Links["consul"]) // consul now available must.NotNil(t, cf.clusters[structs.ConsulDefaultCluster]) @@ -711,6 +712,7 @@ func TestConsulFingerprint_Fingerprint_ent(t *testing.T) { "unique.consul.name": "HAL9000", }, resp.Attributes) must.True(t, resp.Detected) + must.Eq(t, "dc1.HAL9000", resp.Links["consul"]) // consul now available must.NotNil(t, cf.clusters[structs.ConsulDefaultCluster])