Skip to content

Commit 90678f0

Browse files
authored
chore(storage): remove fallback allowed option for direct connectivity (#13823)
1 parent e85d706 commit 90678f0

File tree

2 files changed

+21
-22
lines changed

2 files changed

+21
-22
lines changed

storage/grpc_client.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,11 @@ const (
6969
// which only does a single read per stream.
7070
defaultReadID = 1
7171

72-
forceDirectConnectivityFallbackAllowed = "FALLBACK_ALLOWED"
73-
forceDirectConnectivityEnforced = "ENFORCED"
74-
forceDirectConnectivityOptedOut = "OPTED_OUT"
75-
directConnectivityHeaderKey = "force_direct_connectivity"
76-
requestParamsHeaderKey = "x-goog-request-params"
77-
directPathEndpointPrefix = "google-c2p:///"
72+
forceDirectConnectivityEnforced = "ENFORCED"
73+
forceDirectConnectivityOptedOut = "OPTED_OUT"
74+
directConnectivityHeaderKey = "force_direct_connectivity"
75+
requestParamsHeaderKey = "x-goog-request-params"
76+
directPathEndpointPrefix = "google-c2p:///"
7877
)
7978

8079
// defaultGRPCOptions returns a set of the default client options
@@ -216,30 +215,31 @@ func (c *grpcStorageClient) prepareDirectPathMetadata(ctx context.Context, targe
216215
}
217216

218217
// Determine the intended mode based on user configuration.
219-
value := forceDirectConnectivityFallbackAllowed // Default
218+
value := ""
220219
if c.config.grpcDirectPathEnforced {
221220
value = forceDirectConnectivityEnforced
222221
}
223222

224223
// Downgrade based on connection status.
225224
if !isDirectPath {
226-
// TODO: Reject call if set to ENFORCED when supported.
227225
// Downgrade to OPTED_OUT for server-side monitoring.
228226
value = forceDirectConnectivityOptedOut
229227
}
230228

231229
dc := directConnectivityHeaderKey + "=" + value
232230

233-
// Inject header.
234231
md, ok := metadata.FromOutgoingContext(ctx)
235232
if !ok {
236233
md = metadata.MD{}
237234
}
238235

239-
if vals := md.Get(requestParamsHeaderKey); len(vals) > 0 {
240-
md.Set(requestParamsHeaderKey, vals[0]+"&"+dc)
241-
} else {
242-
md.Set(requestParamsHeaderKey, dc)
236+
// Inject the header only if we have a value to set.
237+
if value != "" {
238+
if vals := md.Get(requestParamsHeaderKey); len(vals) > 0 {
239+
md.Set(requestParamsHeaderKey, vals[0]+"&"+dc)
240+
} else {
241+
md.Set(requestParamsHeaderKey, dc)
242+
}
243243
}
244244

245245
return metadata.NewOutgoingContext(ctx, md), nil

storage/grpc_client_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -443,20 +443,19 @@ func TestPrepareDirectPathMetadata(t *testing.T) {
443443
want: "force_direct_connectivity=ENFORCED",
444444
},
445445
{
446-
desc: "DirectPath target with FALLBACK_ALLOWED",
446+
desc: "DirectPath target with NOT ENFORCED",
447447
enforced: false,
448448
target: "google-c2p:///storage.googleapis.com",
449-
want: "force_direct_connectivity=FALLBACK_ALLOWED",
449+
want: "",
450450
},
451451
{
452452
desc: "CloudPath target with ENFORCED",
453453
enforced: true,
454454
target: "dns:///storage.googleapis.com",
455-
// This currently downgrades to OPTED_OUT instead of rejecting.
456-
want: "force_direct_connectivity=OPTED_OUT",
455+
want: "force_direct_connectivity=OPTED_OUT",
457456
},
458457
{
459-
desc: "CloudPath target with FALLBACK_ALLOWED",
458+
desc: "CloudPath target with NOT ENFORCED",
460459
enforced: false,
461460
target: "dns:///storage.googleapis.com",
462461
want: "force_direct_connectivity=OPTED_OUT",
@@ -492,10 +491,10 @@ func TestPrepareDirectPathMetadata(t *testing.T) {
492491

493492
got := md.Get(requestParamsHeaderKey)
494493
if len(got) == 0 {
495-
t.Fatal("request params header not found")
496-
}
497-
498-
if got[0] != tc.want {
494+
if tc.want != "" {
495+
t.Fatal("request params header not found")
496+
}
497+
} else if got[0] != tc.want {
499498
t.Errorf("got metadata %q, want %q", got[0], tc.want)
500499
}
501500
})

0 commit comments

Comments
 (0)