From 442a8efc7fc7eb0121e27339e5322efef5ea6418 Mon Sep 17 00:00:00 2001 From: Mike Morris Date: Tue, 25 May 2021 21:15:19 -0400 Subject: [PATCH] Revert "Merge pull request #10277 from hashicorp/dnephin/backport-serf-tag-refactor" This reverts commit f45ab674ceae1c0cb19b9ca0a8d36d38b59b34db, reversing changes made to 985ca60d352ba14c274ba388fd9af191fab68263. --- .changelog/_917.txt | 3 --- agent/consul/client_serf.go | 7 +++---- agent/consul/enterprise_client_oss.go | 4 ++++ agent/consul/enterprise_server_oss.go | 7 +++---- agent/consul/replication.go | 4 +++- agent/consul/server_serf.go | 11 +++++------ agent/metadata/server.go | 18 +++--------------- agent/metadata/server_test.go | 8 +------- 8 files changed, 22 insertions(+), 40 deletions(-) delete mode 100644 .changelog/_917.txt diff --git a/.changelog/_917.txt b/.changelog/_917.txt deleted file mode 100644 index 1b55a554a5..0000000000 --- a/.changelog/_917.txt +++ /dev/null @@ -1,3 +0,0 @@ -```release-note:bug -namespaces: **(Enterprise only)** fixes a problem where the logs would contain many warnings about namespaces not being licensed. -``` diff --git a/agent/consul/client_serf.go b/agent/consul/client_serf.go index adea6d4931..fb0b999e14 100644 --- a/agent/consul/client_serf.go +++ b/agent/consul/client_serf.go @@ -5,14 +5,13 @@ import ( "path/filepath" "strings" - "github.com/hashicorp/go-hclog" - "github.com/hashicorp/serf/serf" - "github.com/hashicorp/consul/agent/metadata" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/logging" "github.com/hashicorp/consul/types" + "github.com/hashicorp/go-hclog" + "github.com/hashicorp/serf/serf" ) // setupSerf is used to setup and initialize a Serf @@ -64,7 +63,7 @@ func (c *Client) setupSerf(conf *serf.Config, ch chan serf.Event, path string) ( return nil, err } - addEnterpriseSerfTags(conf.Tags) + c.addEnterpriseSerfTags(conf.Tags) return serf.Create(conf) } diff --git a/agent/consul/enterprise_client_oss.go b/agent/consul/enterprise_client_oss.go index 290077ea89..2b73e6db86 100644 --- a/agent/consul/enterprise_client_oss.go +++ b/agent/consul/enterprise_client_oss.go @@ -23,3 +23,7 @@ func (c *Client) handleEnterpriseUserEvents(event serf.UserEvent) bool { func (c *Client) enterpriseStats() map[string]map[string]string { return nil } + +func (_ *Client) addEnterpriseSerfTags(_ map[string]string) { + // do nothing +} diff --git a/agent/consul/enterprise_server_oss.go b/agent/consul/enterprise_server_oss.go index 1b34441641..0ee39c9245 100644 --- a/agent/consul/enterprise_server_oss.go +++ b/agent/consul/enterprise_server_oss.go @@ -5,11 +5,10 @@ package consul import ( "net" - "github.com/hashicorp/go-version" - "github.com/hashicorp/serf/serf" - "github.com/hashicorp/consul/agent/pool" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/go-version" + "github.com/hashicorp/serf/serf" ) var ( @@ -60,7 +59,7 @@ func (s *Server) validateEnterpriseRequest(entMeta *structs.EnterpriseMeta, writ return nil } -func addEnterpriseSerfTags(_ map[string]string) { +func (_ *Server) addEnterpriseSerfTags(_ map[string]string) { // do nothing } diff --git a/agent/consul/replication.go b/agent/consul/replication.go index 13c91ad80c..194e011e68 100644 --- a/agent/consul/replication.go +++ b/agent/consul/replication.go @@ -205,7 +205,9 @@ func (r *IndexReplicator) Replicate(ctx context.Context, lastRemoteIndex uint64, return 0, false, fmt.Errorf("failed to retrieve %s: %w", r.Delegate.PluralNoun(), err) } - r.Logger.Debug("finished fetching remote objects", "amount", lenRemote) + r.Logger.Debug("finished fetching remote objects", + "amount", lenRemote, + ) // Need to check if we should be stopping. This will be common as the fetching process is a blocking // RPC which could have been hanging around for a long time and during that time leadership could diff --git a/agent/consul/server_serf.go b/agent/consul/server_serf.go index 5125a9b178..5c3cc7d71e 100644 --- a/agent/consul/server_serf.go +++ b/agent/consul/server_serf.go @@ -7,16 +7,15 @@ import ( "strings" "time" - "github.com/hashicorp/go-hclog" - "github.com/hashicorp/memberlist" - "github.com/hashicorp/raft" - "github.com/hashicorp/serf/serf" - "github.com/hashicorp/consul/agent/consul/wanfed" "github.com/hashicorp/consul/agent/metadata" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/logging" + "github.com/hashicorp/go-hclog" + "github.com/hashicorp/memberlist" + "github.com/hashicorp/raft" + "github.com/hashicorp/serf/serf" ) const ( @@ -166,7 +165,7 @@ func (s *Server) setupSerf(conf *serf.Config, ch chan serf.Event, path string, w return nil, err } - addEnterpriseSerfTags(conf.Tags) + s.addEnterpriseSerfTags(conf.Tags) return serf.Create(conf) } diff --git a/agent/metadata/server.go b/agent/metadata/server.go index 142edbba93..d145a9d266 100644 --- a/agent/metadata/server.go +++ b/agent/metadata/server.go @@ -7,10 +7,9 @@ import ( "strconv" "strings" + "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/go-version" "github.com/hashicorp/serf/serf" - - "github.com/hashicorp/consul/agent/structs" ) // Key is used in maps and for equality tests. A key is based on endpoints. @@ -121,8 +120,8 @@ func IsConsulServer(m serf.Member) (bool, *Server) { segmentName := strings.TrimPrefix(name, "sl_") segmentAddrs[segmentName] = addr segmentPorts[segmentName] = segmentPort - } else if strings.HasPrefix(name, featureFlagPrefix) { - featureName := strings.TrimPrefix(name, featureFlagPrefix) + } else if strings.HasPrefix(name, "ft_") { + featureName := strings.TrimPrefix(name, "ft_") featureState, err := strconv.Atoi(value) if err != nil { return false, nil @@ -189,14 +188,3 @@ func IsConsulServer(m serf.Member) (bool, *Server) { } return true, parts } - -const featureFlagPrefix = "ft_" - -// AddFeatureFlags to the tags. The tags map is expected to be a serf.Config.Tags. -// The feature flags are encoded in the tags so that IsConsulServer can decode them -// and populate the Server.FeatureFlags map. -func AddFeatureFlags(tags map[string]string, flags ...string) { - for _, flag := range flags { - tags[featureFlagPrefix+flag] = "1" - } -} diff --git a/agent/metadata/server_test.go b/agent/metadata/server_test.go index 17710746cf..6b96785ccf 100644 --- a/agent/metadata/server_test.go +++ b/agent/metadata/server_test.go @@ -4,10 +4,9 @@ import ( "net" "testing" + "github.com/hashicorp/consul/agent/metadata" "github.com/hashicorp/serf/serf" "github.com/stretchr/testify/require" - - "github.com/hashicorp/consul/agent/metadata" ) func TestServer_Key_params(t *testing.T) { @@ -182,10 +181,8 @@ func TestIsConsulServer_Optional(t *testing.T) { if parts.RaftVersion != 0 { t.Fatalf("bad: %v", parts.RaftVersion) } - m.Tags["bootstrap"] = "1" m.Tags["disabled"] = "1" - m.Tags["ft_ns"] = "1" ok, parts = metadata.IsConsulServer(m) if !ok { t.Fatalf("expected a valid consul server") @@ -199,9 +196,6 @@ func TestIsConsulServer_Optional(t *testing.T) { if parts.Version != 1 { t.Fatalf("bad: %v", parts) } - expectedFlags := map[string]int{"ns": 1} - require.Equal(t, expectedFlags, parts.FeatureFlags) - m.Tags["expect"] = "3" delete(m.Tags, "bootstrap") delete(m.Tags, "disabled")