Skip to content

Commit 25d0361

Browse files
committed
remove Status.RPCServers endpoint
1 parent 094d3ba commit 25d0361

File tree

4 files changed

+2
-87
lines changed

4 files changed

+2
-87
lines changed

.semgrep/rpc_endpoint.yml

-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ rules:
103103
- pattern-not: '"CSIPlugin.List"'
104104
- pattern-not: '"Status.Leader"'
105105
- pattern-not: '"Status.Peers"'
106-
- pattern-not: '"Status.RPCServers"'
107106
- pattern-not: '"Status.Version"'
108107
message: "RPC method $METHOD appears to be unauthenticated"
109108
languages:

nomad/status_endpoint.go

-27
Original file line numberDiff line numberDiff line change
@@ -78,33 +78,6 @@ func (s *Status) Peers(args *structs.GenericRequest, reply *[]string) error {
7878
return nil
7979
}
8080

81-
// RPCServers is used to get all the RPC server addresses in a region
82-
func (s *Status) RPCServers(args *structs.GenericRequest, reply *structs.RPCServersResponse) error {
83-
// note: we're intentionally throwing away any auth error here and only
84-
// authenticate so that we can measure rate metrics
85-
s.srv.Authenticate(s.ctx, args)
86-
s.srv.MeasureRPCRate("status", structs.RateMetricList, args)
87-
88-
if args.Region == "" {
89-
args.Region = s.srv.config.Region
90-
}
91-
if done, err := s.srv.forward("Status.RPCServers", args, args, reply); done {
92-
return err
93-
}
94-
95-
future := s.srv.raft.GetConfiguration()
96-
if err := future.Error(); err != nil {
97-
return err
98-
}
99-
100-
for _, server := range future.Configuration().Servers {
101-
if peer, ok := s.srv.localPeers[server.Address]; ok {
102-
reply.Addresses = append(reply.Addresses, peer.RPCAddr.String())
103-
}
104-
}
105-
return nil
106-
}
107-
10881
// Members return the list of servers in a cluster that a particular server is
10982
// aware of
11083
func (s *Status) Members(args *structs.GenericRequest, reply *structs.ServerMembersResponse) error {

nomad/status_endpoint_test.go

+2-54
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
package nomad
22

33
import (
4-
"fmt"
5-
"net"
64
"testing"
75

86
msgpackrpc "github.com/hashicorp/net-rpc-msgpackrpc"
9-
"github.com/shoenig/test/must"
10-
"github.com/stretchr/testify/assert"
11-
"github.com/stretchr/testify/require"
12-
137
"github.com/hashicorp/nomad/acl"
148
"github.com/hashicorp/nomad/ci"
159
"github.com/hashicorp/nomad/helper/uuid"
1610
"github.com/hashicorp/nomad/nomad/mock"
1711
"github.com/hashicorp/nomad/nomad/structs"
1812
"github.com/hashicorp/nomad/testutil"
13+
"github.com/stretchr/testify/assert"
14+
"github.com/stretchr/testify/require"
1915
)
2016

2117
func TestStatusPing(t *testing.T) {
@@ -77,54 +73,6 @@ func TestStatusPeers(t *testing.T) {
7773
}
7874
}
7975

80-
func TestStatus_RPCServers(t *testing.T) {
81-
ci.Parallel(t)
82-
83-
advAddr1 := "127.0.1.1:1234"
84-
adv1, err := net.ResolveTCPAddr("tcp", advAddr1)
85-
must.NoError(t, err)
86-
87-
s1, cleanupS1 := TestServer(t, func(c *Config) {
88-
c.Region = "region1"
89-
c.ClientRPCAdvertise = adv1
90-
})
91-
defer cleanupS1()
92-
93-
s2, cleanupS2 := TestServer(t, func(c *Config) {
94-
c.Region = "region2"
95-
})
96-
defer cleanupS2()
97-
98-
// Join them together
99-
s2Addr := fmt.Sprintf("127.0.0.1:%d", s2.config.SerfConfig.MemberlistConfig.BindPort)
100-
n, err := s1.Join([]string{s2Addr})
101-
must.NoError(t, err, must.Sprintf("Failed joining: %v (%d joined)", err, n))
102-
103-
codec := rpcClient(t, s1)
104-
105-
t.Run("own region", func(t *testing.T) {
106-
arg := &structs.GenericRequest{
107-
QueryOptions: structs.QueryOptions{Region: "region1"},
108-
}
109-
var resp *structs.RPCServersResponse
110-
must.NoError(t, msgpackrpc.CallWithCodec(codec, "Status.RPCServers", arg, &resp))
111-
must.NotNil(t, resp)
112-
must.Len(t, 1, resp.Addresses)
113-
must.Eq(t, advAddr1, resp.Addresses[0])
114-
})
115-
116-
t.Run("other region", func(t *testing.T) {
117-
arg := &structs.GenericRequest{
118-
QueryOptions: structs.QueryOptions{Region: "region2"},
119-
}
120-
var resp *structs.RPCServersResponse
121-
must.NoError(t, msgpackrpc.CallWithCodec(codec, "Status.RPCServers", arg, &resp))
122-
must.NotNil(t, resp)
123-
must.Len(t, 1, resp.Addresses)
124-
must.Eq(t, s2.clientRpcAdvertise.String(), resp.Addresses[0])
125-
})
126-
}
127-
12876
func TestStatusMembers(t *testing.T) {
12977
ci.Parallel(t)
13078

nomad/structs/structs.go

-5
Original file line numberDiff line numberDiff line change
@@ -1171,11 +1171,6 @@ type PeriodicForceRequest struct {
11711171
WriteRequest
11721172
}
11731173

1174-
// RPCServersResponse contains the list of RPC addresses for servers in this region
1175-
type RPCServersResponse struct {
1176-
Addresses []string
1177-
}
1178-
11791174
// ServerMembersResponse has the list of servers in a cluster
11801175
type ServerMembersResponse struct {
11811176
ServerName string

0 commit comments

Comments
 (0)