Skip to content

Commit

Permalink
fix(all): always call client.Close when creating a client (GoogleClou…
Browse files Browse the repository at this point in the history
…dPlatform#2080)

Generated with:

```
$ grep -L Close $(grep -El 'New[^(]*Client' **/*.go) | grep -v test | xargs sed -i '/New[^(]*Client/,/}/s/}/}\ndefer client.Close()/'
$ goimports -w .
```

There were ~30 places where `defer client.Close()` was not correct (e.g. when you want to keep a client around in a Cloud Function), so I didn't update those.

I verified `goimports` and `go vet` are happy:
```
$ find . -name go.mod -execdir go vet ./... \;
```

Fixes GoogleCloudPlatform#2078.
  • Loading branch information
tbpg authored May 13, 2021
1 parent d989a7b commit d06287e
Show file tree
Hide file tree
Showing 180 changed files with 204 additions and 1 deletion.
1 change: 1 addition & 0 deletions appengine_flexible/pubsub/pubsub.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ func main() {
if err != nil {
log.Fatal(err)
}
defer client.Close()

topicName := mustGetenv("PUBSUB_TOPIC")
topic = client.Topic(topicName)
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/batch-get-assets-history/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func main() {
if err != nil {
log.Fatal(err)
}
defer client.Close()

projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
bucketResourceName := fmt.Sprintf("//storage.googleapis.com/%s-for-assets", projectID)
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/create-feed/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func main() {
if err != nil {
log.Fatalf("asset.NewClient: %v", err)
}
defer client.Close()

projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
feedParent := fmt.Sprintf("projects/%s", projectID)
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/delete-feed/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ func main() {
if err != nil {
log.Fatalf("asset.NewClient: %v", err)
}
defer client.Close()

projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
cloudresourcemanagerClient, err := cloudresourcemanager.NewService(ctx)
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/export-assets-bigquery/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func main() {
if err != nil {
log.Fatalf("asset.NewClient: %v", err)
}
defer client.Close()
datasetID := strings.Replace(fmt.Sprintf("%s-for-assets", projectID), "-", "_", -1)
dataset := fmt.Sprintf("projects/%s/datasets/%s", projectID, datasetID)
req := &assetpb.ExportAssetsRequest{
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/export-assets/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func main() {
if err != nil {
log.Fatal(err)
}
defer client.Close()
bucketName := fmt.Sprintf("%s-for-assets", projectID)
assetDumpFile := fmt.Sprintf("gs://%s/my-assets.txt", bucketName)
req := &assetpb.ExportAssetsRequest{
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/get-feed/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ func main() {
if err != nil {
log.Fatalf("asset.NewClient: %v", err)
}
defer client.Close()

projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
cloudresourcemanagerClient, err := cloudresourcemanager.NewService(ctx)
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/list-assets/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func main() {
if err != nil {
log.Fatal(err)
}
defer client.Close()

projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
assetType := "storage.googleapis.com/Bucket"
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/list-feeds/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func main() {
if err != nil {
log.Fatalf("asset.NewClient: %v", err)
}
defer client.Close()

projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
cloudresourcemanagerClient, err := cloudresourcemanager.NewService(ctx)
Expand Down
1 change: 1 addition & 0 deletions asset/quickstart/update-feed/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func main() {
if err != nil {
log.Fatalf("asset.NewClient: %v", err)
}
defer client.Close()

projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
cloudresourcemanagerClient, err := cloudresourcemanager.NewService(ctx)
Expand Down
1 change: 1 addition & 0 deletions auth/overview/api_key.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ func apiKey() error {
if err != nil {
return fmt.Errorf("pubsub.NewClient: %v", err)
}
defer client.Close()
// Use the authenticated client.
_ = client

Expand Down
1 change: 1 addition & 0 deletions auth/overview/env_service_account.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ func envServiceAccount() error {
if err != nil {
return fmt.Errorf("pubsub.NewClient: %v", err)
}
defer client.Close()
// Use the authenticated client.
_ = client

Expand Down
4 changes: 4 additions & 0 deletions auth/overview/oauth_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ func oauthClient() error {
return fmt.Errorf("config.Exchange: %v", err)
}
client, err := pubsub.NewClient(ctx, "your-project-id", option.WithTokenSource(config.TokenSource(ctx, token)))
if err != nil {
return fmt.Errorf("pubsub.NewClient: %v", err)
}
defer client.Close()

// Use the authenticated client.
_ = client
Expand Down
1 change: 1 addition & 0 deletions auth/overview/service_account.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ func serviceAccount() error {
if err != nil {
return fmt.Errorf("pubsub.NewClient: %v", err)
}
defer client.Close()
// Use the authenticated client.
_ = client

Expand Down
3 changes: 3 additions & 0 deletions auth/snippets.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func implicit() {
if err != nil {
log.Fatal(err)
}
defer storageClient.Close()

it := storageClient.Buckets(ctx, "project-id")
for {
Expand Down Expand Up @@ -74,6 +75,7 @@ func explicit(jsonPath, projectID string) {
if err != nil {
log.Fatal(err)
}
defer client.Close()
fmt.Println("Buckets:")
it := client.Buckets(ctx, projectID)
for {
Expand Down Expand Up @@ -109,6 +111,7 @@ func explicitDefault(projectID string) {
if err != nil {
log.Fatal(err)
}
defer client.Close()
fmt.Println("Buckets:")
it := client.Buckets(ctx, projectID)
for {
Expand Down
1 change: 1 addition & 0 deletions bigtable/garbagecollection/create_family_gc_intersect.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func createFamilyGCIntersect(w io.Writer, projectID, instanceID string, tableNam
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer adminClient.Close()

columnFamilyName := "cf4"
if err := adminClient.CreateColumnFamily(ctx, tableName, columnFamilyName); err != nil {
Expand Down
1 change: 1 addition & 0 deletions bigtable/garbagecollection/create_family_gc_max_age.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func createFamilyGCMaxAge(w io.Writer, projectID, instanceID string, tableName s
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer adminClient.Close()

columnFamilyName := "cf1"
if err := adminClient.CreateColumnFamily(ctx, tableName, columnFamilyName); err != nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ func createFamilyGCMaxVersions(w io.Writer, projectID, instanceID string, tableN
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer adminClient.Close()

columnFamilyName := "cf2"
if err := adminClient.CreateColumnFamily(ctx, tableName, columnFamilyName); err != nil {
Expand Down
1 change: 1 addition & 0 deletions bigtable/garbagecollection/create_family_gc_nested.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func createFamilyGCNested(w io.Writer, projectID, instanceID string, tableName s
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer adminClient.Close()

columnFamilyName := "cf5"
if err := adminClient.CreateColumnFamily(ctx, tableName, columnFamilyName); err != nil {
Expand Down
1 change: 1 addition & 0 deletions bigtable/garbagecollection/create_family_gc_union.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func createFamilyGCUnion(w io.Writer, projectID, instanceID string, tableName st
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer adminClient.Close()

columnFamilyName := "cf3"
if err := adminClient.CreateColumnFamily(ctx, tableName, columnFamilyName); err != nil {
Expand Down
1 change: 1 addition & 0 deletions bigtable/garbagecollection/update_gc_rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func updateGCRule(w io.Writer, projectID, instanceID string, tableName string) e
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer adminClient.Close()

columnFamilyName := "cf1"
// Update the column family cf1 to update the GC rule.
Expand Down
1 change: 1 addition & 0 deletions bigtable/writes/write_batch.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func writeBatch(w io.Writer, projectID, instanceID string, tableName string) err
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer client.Close()
tbl := client.Open(tableName)
columnFamilyName := "stats_summary"
timestamp := bigtable.Now()
Expand Down
1 change: 1 addition & 0 deletions bigtable/writes/write_conditionally.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ func writeConditionally(w io.Writer, projectID, instanceID string, tableName str
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer client.Close()
tbl := client.Open(tableName)
columnFamilyName := "stats_summary"
timestamp := bigtable.Now()
Expand Down
1 change: 1 addition & 0 deletions bigtable/writes/write_increment.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ func writeIncrement(w io.Writer, projectID, instanceID string, tableName string)
if err != nil {
return fmt.Errorf("bigtable.NewAdminClient: %v", err)
}
defer client.Close()
tbl := client.Open(tableName)
columnFamilyName := "stats_summary"

Expand Down
1 change: 1 addition & 0 deletions bigtable/writes/write_simple.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func writeSimple(w io.Writer, projectID, instanceID string, tableName string) er
if err != nil {
return fmt.Errorf("bigtable.NewClient: %v", err)
}
defer client.Close()
tbl := client.Open(tableName)
columnFamilyName := "stats_summary"
timestamp := bigtable.Now()
Expand Down
1 change: 1 addition & 0 deletions dataproc/create_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ func createCluster(w io.Writer, projectID, region, clusterName string) error {
if err != nil {
return fmt.Errorf("dataproc.NewClusterControllerClient: %v", err)
}
defer clusterClient.Close()

// Create the cluster config.
req := &dataprocpb.CreateClusterRequest{
Expand Down
1 change: 1 addition & 0 deletions dataproc/instantiate_inline_workflow_template.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func instantiateInlineWorkflowTemplate(w io.Writer, projectID, region string) er
if err != nil {
return fmt.Errorf("dataproc.NewWorkflowTemplateClient: %v", err)
}
defer workflowTemplateClient.Close()

// Create jobs for the workflow.
teragenJob := &dataprocpb.OrderedJob{
Expand Down
1 change: 1 addition & 0 deletions datastore/datastore_quickstart/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func main() {
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
defer client.Close()

// Sets the kind for the new entity.
kind := "Task"
Expand Down
1 change: 1 addition & 0 deletions datastore/tasks/tasks.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func main() {
if err != nil {
log.Fatalf("Could not create datastore client: %v", err)
}
defer client.Close()

// Print welcome message.
fmt.Println("Cloud Datastore Task List")
Expand Down
1 change: 1 addition & 0 deletions dlp/quickstart/quickstart.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ func main() {
if err != nil {
log.Fatalf("error creating DLP client: %v", err)
}
defer client.Close()

// The string to inspect.
input := "Robert Frost"
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/deid/date_shift.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func deidentifyDateShift(w io.Writer, projectID string, lowerBoundDays, upperBou
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()
// Create a configured request.
req := &dlppb.DeidentifyContentRequest{
Parent: fmt.Sprintf("projects/%s/locations/global", projectID),
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/deid/deid_fpe.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func deidentifyFPE(w io.Writer, projectID, input string, infoTypeNames []string,
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()
// Convert the info type strings to a list of InfoTypes.
var infoTypes []*dlppb.InfoType
for _, it := range infoTypeNames {
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/deid/mask.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ func mask(w io.Writer, projectID, input string, infoTypeNames []string, maskingC
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()
// Convert the info type strings to a list of InfoTypes.
var infoTypes []*dlppb.InfoType
for _, it := range infoTypeNames {
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/deid/reid_fpe.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ func reidentifyFPE(w io.Writer, projectID, input, keyFileName, cryptoKeyName, su
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()
// Read the key file.
keyBytes, err := ioutil.ReadFile(keyFileName)
if err != nil {
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/jobs/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ func deleteJob(w io.Writer, jobName string) error {
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()
req := &dlppb.DeleteDlpJobRequest{
Name: jobName,
}
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/jobs/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func listJobs(w io.Writer, projectID, filter, jobType string) error {
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

// Create a configured request.
req := &dlppb.ListDlpJobsRequest{
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/metadata/info_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ func infoTypes(w io.Writer, languageCode, filter string) error {
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

req := &dlppb.ListInfoTypesRequest{
LanguageCode: languageCode,
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/redact/redact.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func redactImage(w io.Writer, projectID string, infoTypeNames []string, bytesTyp
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

// Convert the info type strings to a list of InfoTypes.
var infoTypes []*dlppb.InfoType
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/risk/risk.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ func setupPubSub(projectID, topic, sub string) (*pubsub.Subscription, error) {
if err != nil {
return nil, fmt.Errorf("pubsub.NewClient: %v", err)
}
defer client.Close()
// Create the Topic if it doesn't exist.
t := client.Topic(topic)
if exists, err := t.Exists(ctx); err != nil {
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/template/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func createInspectTemplate(w io.Writer, projectID string, templateID, displayNam
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

// Convert the info type strings to a list of InfoTypes.
var infoTypes []*dlppb.InfoType
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/template/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func deleteInspectTemplate(w io.Writer, templateID string) error {
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

req := &dlppb.DeleteInspectTemplateRequest{
Name: templateID,
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/template/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func listInspectTemplates(w io.Writer, projectID string) error {
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

// Create a configured request.
req := &dlppb.ListInspectTemplatesRequest{
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/trigger/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func createTrigger(w io.Writer, projectID string, triggerID, displayName, descri
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

// Convert the info type strings to a list of InfoTypes.
var infoTypes []*dlppb.InfoType
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/trigger/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func deleteTrigger(w io.Writer, triggerID string) error {
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

req := &dlppb.DeleteJobTriggerRequest{
Name: triggerID,
Expand Down
1 change: 1 addition & 0 deletions dlp/snippets/trigger/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func listTriggers(w io.Writer, projectID string) error {
if err != nil {
return fmt.Errorf("dlp.NewClient: %v", err)
}
defer client.Close()

// Create a configured request.
req := &dlppb.ListJobTriggersRequest{
Expand Down
1 change: 1 addition & 0 deletions firestore/firestore_snippets/increment.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func updateDocumentIncrement(projectID, city string) error {
if err != nil {
return fmt.Errorf("firestore.NewClient: %v", err)
}
defer client.Close()

dc := client.Collection("cities").Doc(city)
_, err = dc.Update(ctx, []firestore.Update{
Expand Down
2 changes: 1 addition & 1 deletion functions/slack/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func setup(ctx context.Context) {
if entitiesService == nil {
kgService, err := kgsearch.NewService(ctx, option.WithAPIKey(kgKey))
if err != nil {
log.Fatalf("kgsearch.NewClient: %v", err)
log.Fatalf("kgsearch.NewService: %v", err)
}
entitiesService = kgsearch.NewEntitiesService(kgService)
}
Expand Down
Loading

0 comments on commit d06287e

Please sign in to comment.