internal/secret: add a must constructor for the secret client
Multiple packages have a need for a secret client which exits when the
creation of the client failed. This change adds a must constructor
which would eliminate the code being duplicated.
For golang/go#37171
Change-Id: I7f56ee681e66c42e290fa00861cb00abb56a2f47
Reviewed-on: https://go-review.googlesource.com/c/build/+/255941
Trust: Carlos Amedee <carlos@golang.org>
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
diff --git a/cmd/coordinator/coordinator.go b/cmd/coordinator/coordinator.go
index d3b3b3d..0af9adc 100644
--- a/cmd/coordinator/coordinator.go
+++ b/cmd/coordinator/coordinator.go
@@ -4064,11 +4064,7 @@
if !metadata.OnGCE() {
return nil
}
- client, err := secret.NewClient()
- if err != nil {
- log.Fatalf("unable to create secret client %v", err)
- }
- return client
+ return secret.MustNewClient()
}
func mustCreateEC2BuildletPool(sc *secret.Client) *pool.EC2Buildlet {
diff --git a/cmd/gerritbot/gerritbot.go b/cmd/gerritbot/gerritbot.go
index b391828..45b9a49 100644
--- a/cmd/gerritbot/gerritbot.go
+++ b/cmd/gerritbot/gerritbot.go
@@ -56,13 +56,8 @@
var secretClient *secret.Client
if metadata.OnGCE() {
- var err error
- secretClient, err = secret.NewClient()
- if err != nil {
- log.Fatalf("unable to create a secret manager client: %v", err)
- }
+ secretClient = secret.MustNewClient()
}
-
if err := writeCookiesFile(secretClient); err != nil {
log.Fatalf("writeCookiesFile(): %v", err)
}
diff --git a/cmd/gitmirror/gitmirror.go b/cmd/gitmirror/gitmirror.go
index 6d6fc77..2dfe4b3 100644
--- a/cmd/gitmirror/gitmirror.go
+++ b/cmd/gitmirror/gitmirror.go
@@ -57,7 +57,7 @@
log.Printf("gitmirror running.")
- sc := mustCreateSecretClient()
+ sc := secret.MustNewClient()
defer sc.Close()
go pollGerritAndTickle()
@@ -769,11 +769,3 @@
fmt.Fprintf(w, "%s\n", kv)
}
}
-
-func mustCreateSecretClient() *secret.Client {
- client, err := secret.NewClient()
- if err != nil {
- log.Fatalf("unable to create secret client %v", err)
- }
- return client
-}
diff --git a/cmd/gopherbot/gopherbot.go b/cmd/gopherbot/gopherbot.go
index f552b35..7131da8 100644
--- a/cmd/gopherbot/gopherbot.go
+++ b/cmd/gopherbot/gopherbot.go
@@ -197,7 +197,7 @@
var sc *secret.Client
if metadata.OnGCE() {
- sc = mustCreateSecretClient()
+ sc = secret.MustNewClient()
}
ctx := context.Background()
@@ -2311,11 +2311,3 @@
fmt.Printf("\thttps://golang.org/issue/%v %s\n", gi.Number, gi.Title)
}
}
-
-func mustCreateSecretClient() *secret.Client {
- client, err := secret.NewClient()
- if err != nil {
- log.Fatalf("unable to create secret client %v", err)
- }
- return client
-}
diff --git a/cmd/pubsubhelper/pubsubhelper.go b/cmd/pubsubhelper/pubsubhelper.go
index 91de894..1f6ea98 100644
--- a/cmd/pubsubhelper/pubsubhelper.go
+++ b/cmd/pubsubhelper/pubsubhelper.go
@@ -58,7 +58,7 @@
// webhooksecret should not be set in production
if *webhookSecret == "" {
- sc := mustCreateSecretClient()
+ sc := secret.MustNewClient()
defer sc.Close()
ctxSc, cancel := context.WithTimeout(ctx, 10*time.Second)
@@ -428,11 +428,3 @@
log.Printf("smtpd: new connection from %v", c.Addr())
return nil
}
-
-func mustCreateSecretClient() *secret.Client {
- client, err := secret.NewClient()
- if err != nil {
- log.Fatalf("unable to create secret client %v", err)
- }
- return client
-}
diff --git a/cmd/scaleway/scaleway.go b/cmd/scaleway/scaleway.go
index d0ab0fc..f8e085e 100644
--- a/cmd/scaleway/scaleway.go
+++ b/cmd/scaleway/scaleway.go
@@ -55,7 +55,7 @@
func main() {
flag.Parse()
- secretClient := mustCreateSecretClient()
+ secretClient := secret.MustNewClient()
defer secretClient.Close()
if *tags == "" && !*listAll { // Tags aren't needed if -list-all flag is set.
@@ -413,11 +413,3 @@
}
return st.Machines
}
-
-func mustCreateSecretClient() *secret.Client {
- client, err := secret.NewClient()
- if err != nil {
- log.Fatalf("unable to create secret client %v", err)
- }
- return client
-}
diff --git a/internal/gitauth/gitauth.go b/internal/gitauth/gitauth.go
index fc5e083..314cc24 100644
--- a/internal/gitauth/gitauth.go
+++ b/internal/gitauth/gitauth.go
@@ -32,7 +32,7 @@
return nil
}
- sc := mustCreateSecretClient()
+ sc := secret.MustNewClient()
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
@@ -59,11 +59,3 @@
log.Fatalf("No HOME set in environment.")
panic("unreachable")
}
-
-func mustCreateSecretClient() *secret.Client {
- client, err := secret.NewClient()
- if err != nil {
- log.Fatalf("unable to create secret client %v", err)
- }
- return client
-}
diff --git a/internal/secret/gcp_secret_manager.go b/internal/secret/gcp_secret_manager.go
index ff1e589..1e0717a 100644
--- a/internal/secret/gcp_secret_manager.go
+++ b/internal/secret/gcp_secret_manager.go
@@ -9,6 +9,7 @@
import (
"context"
"io"
+ "log"
"path"
"cloud.google.com/go/compute/metadata"
@@ -105,3 +106,13 @@
func buildNamePath(projectID, name, version string) string {
return path.Join("projects", projectID, "secrets", name, "versions", version)
}
+
+// MustNewClient instantiates an instance of the Secret Manager Client. If there is an error
+// this fuction will exit.
+func MustNewClient() *Client {
+ c, err := NewClient()
+ if err != nil {
+ log.Fatalf("unable to create secret client %v", err)
+ }
+ return c
+}
diff --git a/maintner/maintnerd/maintnerd.go b/maintner/maintnerd/maintnerd.go
index 7f7c3a6..0caaf50 100644
--- a/maintner/maintnerd/maintnerd.go
+++ b/maintner/maintnerd/maintnerd.go
@@ -366,7 +366,7 @@
func getGithubToken(ctx context.Context) (string, error) {
if metadata.OnGCE() {
- sc := mustCreateSecretClient()
+ sc := secret.MustNewClient()
ctxSc, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()
@@ -503,11 +503,3 @@
}
}
}
-
-func mustCreateSecretClient() *secret.Client {
- client, err := secret.NewClient()
- if err != nil {
- log.Fatalf("unable to create secret client %v", err)
- }
- return client
-}