@@ -58,6 +58,7 @@ import (
58
58
vaultapi "github.com/hashicorp/vault/api"
59
59
"github.com/shirou/gopsutil/v3/host"
60
60
"golang.org/x/exp/maps"
61
+ "golang.org/x/exp/slices"
61
62
)
62
63
63
64
const (
@@ -2906,14 +2907,8 @@ func (c *Client) consulDiscoveryImpl() error {
2906
2907
dcs = dcs [0 :helper .Min (len (dcs ), datacenterQueryLimit )]
2907
2908
}
2908
2909
2909
- // Query for servers in this client's region only. Note this has to be an
2910
- // unauthenticated request because we haven't registered yet.
2910
+ // Query for servers in this client's region only
2911
2911
region := c .Region ()
2912
- rpcargs := structs.GenericRequest {
2913
- QueryOptions : structs.QueryOptions {
2914
- Region : region ,
2915
- },
2916
- }
2917
2912
2918
2913
serviceName := c .GetConfig ().ConsulConfig .ServerServiceName
2919
2914
var mErr multierror.Error
@@ -2934,41 +2929,27 @@ DISCOLOOP:
2934
2929
}
2935
2930
2936
2931
for _ , s := range consulServices {
2937
- port := strconv .Itoa (s .ServicePort )
2938
- addrstr := s .ServiceAddress
2939
- if addrstr == "" {
2940
- addrstr = s .Address
2941
- }
2942
- addr , err := net .ResolveTCPAddr ("tcp" , net .JoinHostPort (addrstr , port ))
2943
- if err != nil {
2944
- mErr .Errors = append (mErr .Errors , err )
2945
- continue
2946
- }
2947
-
2948
- srv := & servers.Server {Addr : addr }
2949
- nomadServers = append (nomadServers , srv )
2950
-
2951
- // Query the client-advertise RPC addresses from the region that
2952
- // Consul gave us
2953
- var resp * structs.RPCServersResponse
2954
- if err := c .connPool .RPC (region , addr , "Status.RPCServers" , rpcargs , & resp ); err != nil {
2955
- mErr .Errors = append (mErr .Errors , err )
2956
- continue
2957
- }
2958
- for _ , member := range resp .Addresses {
2959
- addr , err := net .ResolveTCPAddr ("tcp" , member )
2932
+ if slices .Contains (s .ServiceTags , region ) {
2933
+ port := strconv .Itoa (s .ServicePort )
2934
+ addrstr := s .ServiceAddress
2935
+ if addrstr == "" {
2936
+ addrstr = s .Address
2937
+ }
2938
+ addr , err := net .ResolveTCPAddr ("tcp" , net .JoinHostPort (addrstr , port ))
2960
2939
if err != nil {
2961
2940
mErr .Errors = append (mErr .Errors , err )
2962
2941
continue
2963
2942
}
2943
+
2964
2944
srv := & servers.Server {Addr : addr }
2965
2945
nomadServers = append (nomadServers , srv )
2966
2946
}
2947
+ }
2967
2948
2968
- if len (nomadServers ) > 0 {
2969
- break DISCOLOOP
2970
- }
2949
+ if len (nomadServers ) > 0 {
2950
+ break DISCOLOOP
2971
2951
}
2952
+
2972
2953
}
2973
2954
if len (nomadServers ) == 0 {
2974
2955
if len (mErr .Errors ) > 0 {
0 commit comments