mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-27 15:30:45 +01:00
fix(admin): carry filer addresses as ServerAddress in plugin cluster context (#9600)
The plugin cluster context forwarded filers as gRPC-only addresses (host:grpcPort). The admin-script worker stored that in ShellOptions.FilerAddress, whose shell commands re-derive the gRPC port via ToGrpcAddress() and re-add the +10000 offset, dialing a non-existent host:28888. Carry filers in pb.ServerAddress form (host:httpPort.grpcPort) and let each consumer convert when it dials: the admin shell uses it verbatim, while the s3_lifecycle and iceberg workers collapse it to a gRPC address. Rename the proto field filer_grpc_addresses -> filer_addresses so the name matches the content.
This commit is contained in:
1 parent
303c2be38d
commit
87fdea5330
10 files changed
+110
-56
No files matched your search
@@ -175,7 +175,7 @@ func TestDetect_NoFilerAddressesCompletesWithSkipActivity(t *testing.T) {
|
||||
JobType: jobType,
|
||||
ClusterContext: &plugin_pb.ClusterContext{
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
// no FilerGrpcAddresses
|
||||
// no FilerAddresses
|
||||
},
|
||||
}, r)
|
||||
require.NoError(t, err)
|
||||
@@ -196,8 +196,10 @@ func TestDetect_HappyPathProposesOneJobWithFirstFilerAddress(t *testing.T) {
|
||||
err := h.Detect(context.Background(), &plugin_pb.RunDetectionRequest{
|
||||
JobType: jobType,
|
||||
ClusterContext: &plugin_pb.ClusterContext{
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
FilerGrpcAddresses: []string{"filer-a:18888", "filer-b:18888"},
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
// pb.ServerAddress dual-port form; the gRPC port is pinned off the
|
||||
// +10000 convention so a raw-forwarding regression resurfaces here.
|
||||
FilerAddresses: []string{"filer-a:8888.18890", "filer-b:8888.18890"},
|
||||
},
|
||||
}, r)
|
||||
require.NoError(t, err)
|
||||
@@ -210,7 +212,7 @@ func TestDetect_HappyPathProposesOneJobWithFirstFilerAddress(t *testing.T) {
|
||||
assert.NotEmpty(t, prop.ProposalId, "proposal id must be unique-per-run")
|
||||
require.Contains(t, prop.Parameters, "filer_grpc_address")
|
||||
val := prop.Parameters["filer_grpc_address"].GetStringValue()
|
||||
assert.Equal(t, "filer-a:18888", val, "first reachable filer is dialed")
|
||||
assert.Equal(t, "filer-a:18890", val, "first filer resolved to its gRPC port, not host:28890")
|
||||
|
||||
require.Len(t, r.completes, 1)
|
||||
assert.True(t, r.completes[0].Success)
|
||||
@@ -224,8 +226,8 @@ func TestDetect_EmptyJobTypeAccepted(t *testing.T) {
|
||||
r := &recordingSender{}
|
||||
err := h.Detect(context.Background(), &plugin_pb.RunDetectionRequest{
|
||||
ClusterContext: &plugin_pb.ClusterContext{
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
FilerGrpcAddresses: []string{"f:18888"},
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
FilerAddresses: []string{"f:8888.18890"},
|
||||
},
|
||||
}, r)
|
||||
require.NoError(t, err)
|
||||
@@ -241,8 +243,8 @@ func TestDetect_PropagatesProposalsSendError(t *testing.T) {
|
||||
err := h.Detect(context.Background(), &plugin_pb.RunDetectionRequest{
|
||||
JobType: jobType,
|
||||
ClusterContext: &plugin_pb.ClusterContext{
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
FilerGrpcAddresses: []string{"f:18888"},
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
FilerAddresses: []string{"f:8888.18890"},
|
||||
},
|
||||
}, r)
|
||||
assert.ErrorIs(t, err, want)
|
||||
@@ -261,8 +263,8 @@ func TestDetect_PropagatesCompleteSendError(t *testing.T) {
|
||||
err := h.Detect(context.Background(), &plugin_pb.RunDetectionRequest{
|
||||
JobType: jobType,
|
||||
ClusterContext: &plugin_pb.ClusterContext{
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
FilerGrpcAddresses: []string{"f:18888"},
|
||||
S3GrpcAddresses: []string{"s3a:8333"},
|
||||
FilerAddresses: []string{"f:8888.18890"},
|
||||
},
|
||||
}, r)
|
||||
assert.ErrorIs(t, err, want)
|
||||
|
||||
Reference in new issue
Block a user