Skip to content

Commit 5384d54

Browse files
Fixes GCP components failing to authenticate (#3169)
Signed-off-by: Elena Kolevska <[email protected]>
1 parent d4527f8 commit 5384d54

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

pubsub/gcp/pubsub/pubsub.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ func (g *GCPPubSub) getPubSubClient(ctx context.Context, metadata *metadata) (*g
124124
var pubsubClient *gcppubsub.Client
125125
var err error
126126

127+
// context.Background is used here, as the context used to Dial the
128+
// server in the gRPC DialPool. Callers should always call `Close` on the
129+
// component to ensure all resources are released.
127130
if metadata.PrivateKeyID != "" {
128131
// TODO: validate that all auth json fields are filled
129132
authJSON := &GCPAuthJSON{
@@ -141,7 +144,7 @@ func (g *GCPPubSub) getPubSubClient(ctx context.Context, metadata *metadata) (*g
141144
gcpCompatibleJSON, _ := json.Marshal(authJSON)
142145
g.logger.Debugf("Using explicit credentials for GCP")
143146
clientOptions := option.WithCredentialsJSON(gcpCompatibleJSON)
144-
pubsubClient, err = gcppubsub.NewClient(ctx, metadata.ProjectID, clientOptions)
147+
pubsubClient, err = gcppubsub.NewClient(context.Background(), metadata.ProjectID, clientOptions)
145148
if err != nil {
146149
return pubsubClient, err
147150
}
@@ -156,7 +159,7 @@ func (g *GCPPubSub) getPubSubClient(ctx context.Context, metadata *metadata) (*g
156159
g.logger.Debugf("setting GCP PubSub Emulator environment variable to 'PUBSUB_EMULATOR_HOST=%s'", metadata.ConnectionEndpoint)
157160
os.Setenv("PUBSUB_EMULATOR_HOST", metadata.ConnectionEndpoint)
158161
}
159-
pubsubClient, err = gcppubsub.NewClient(ctx, metadata.ProjectID)
162+
pubsubClient, err = gcppubsub.NewClient(context.Background(), metadata.ProjectID)
160163
if err != nil {
161164
return pubsubClient, err
162165
}

state/gcp/firestore/firestore.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,21 @@ func getFirestoreMetadata(meta state.Metadata) (*firestoreMetadata, error) {
211211
return &m, nil
212212
}
213213

214+
func (f *Firestore) Close() error {
215+
if f.client != nil {
216+
return f.client.Close()
217+
}
218+
219+
return nil
220+
}
221+
214222
func getGCPClient(ctx context.Context, metadata *firestoreMetadata, l logger.Logger) (*datastore.Client, error) {
215223
var gcpClient *datastore.Client
216224
var err error
217225

226+
// context.Background is used here, as the context used to Dial the
227+
// server in the gRPC DialPool. Callers should always call `Close` on the
228+
// component to ensure all resources are released.
218229
if metadata.PrivateKeyID != "" {
219230
var b []byte
220231
b, err = json.Marshal(metadata)
@@ -223,7 +234,7 @@ func getGCPClient(ctx context.Context, metadata *firestoreMetadata, l logger.Log
223234
}
224235

225236
opt := option.WithCredentialsJSON(b)
226-
gcpClient, err = datastore.NewClient(ctx, metadata.ProjectID, opt)
237+
gcpClient, err = datastore.NewClient(context.Background(), metadata.ProjectID, opt)
227238
if err != nil {
228239
return nil, err
229240
}
@@ -238,7 +249,7 @@ func getGCPClient(ctx context.Context, metadata *firestoreMetadata, l logger.Log
238249
l.Debugf("setting GCP Datastore Emulator environment variable to 'DATASTORE_EMULATOR_HOST=%s'", metadata.ConnectionEndpoint)
239250
os.Setenv("DATASTORE_EMULATOR_HOST", metadata.ConnectionEndpoint)
240251
}
241-
gcpClient, err = datastore.NewClient(ctx, metadata.ProjectID)
252+
gcpClient, err = datastore.NewClient(context.Background(), metadata.ProjectID)
242253
if err != nil {
243254
return nil, err
244255
}

0 commit comments

Comments
 (0)