Skip to content

Commit 29364b9

Browse files
committed
Use %w when wrapping errors
Genereated through find -name '*.go' -type f -print0 | xargs -0 sed -i -E 's#(fmt.Errorf\(".*)%v"#\1%w"#g followed by a couple of manual fixups where that incorrectly matched.
1 parent 1f159b5 commit 29364b9

File tree

193 files changed

+989
-987
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

193 files changed

+989
-987
lines changed

def/configmap/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ func buildConfigMap(name, namespace string, labels map[string]string, data map[s
9494
buf, err := ioutil.ReadFile(value)
9595
if err != nil {
9696
wd, _ := os.Getwd()
97-
return nil, fmt.Errorf("could not read %s/%s: %v", wd, value, err)
97+
return nil, fmt.Errorf("could not read %s/%s: %w", wd, value, err)
9898
}
9999
cm.Data[key] = string(buf)
100100
}

experiment/aws-stockout/main.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func run() error {
7272

7373
o, err := json.MarshalIndent(avail, "", " ")
7474
if err != nil {
75-
return fmt.Errorf("error marshaling json: %v", err)
75+
return fmt.Errorf("error marshaling json: %w", err)
7676
}
7777

7878
fmt.Printf("\n%s\n", string(o))
@@ -84,7 +84,7 @@ func findRegions() ([]string, error) {
8484
config := &aws.Config{}
8585
sess, err := session.NewSession(config)
8686
if err != nil {
87-
return nil, fmt.Errorf("error creating aws session: %v", err)
87+
return nil, fmt.Errorf("error creating aws session: %w", err)
8888
}
8989

9090
svc := ec2.New(sess)
@@ -93,7 +93,7 @@ func findRegions() ([]string, error) {
9393
{
9494
response, err := svc.DescribeRegions(&ec2.DescribeRegionsInput{})
9595
if err != nil {
96-
return nil, fmt.Errorf("error from DescribeRegions: %v", err)
96+
return nil, fmt.Errorf("error from DescribeRegions: %w", err)
9797
}
9898
for _, r := range response.Regions {
9999
regions = append(regions, aws.StringValue(r.RegionName))
@@ -139,7 +139,7 @@ func cleanupInstances(region string) error {
139139
config := &aws.Config{Region: aws.String(region)}
140140
sess, err := session.NewSession(config)
141141
if err != nil {
142-
return fmt.Errorf("error creating aws session: %v", err)
142+
return fmt.Errorf("error creating aws session: %w", err)
143143
}
144144

145145
svc := ec2.New(sess)
@@ -150,7 +150,7 @@ func cleanupInstances(region string) error {
150150
},
151151
})
152152
if err != nil {
153-
return fmt.Errorf("error from DescribeInstances: %v", err)
153+
return fmt.Errorf("error from DescribeInstances: %w", err)
154154
}
155155

156156
for _, r := range instancesResponse.Reservations {
@@ -184,7 +184,7 @@ func launchInstance(region string, instanceType string) (string, error) {
184184
config := &aws.Config{Region: aws.String(region)}
185185
sess, err := session.NewSession(config)
186186
if err != nil {
187-
return "", fmt.Errorf("error creating aws session: %v", err)
187+
return "", fmt.Errorf("error creating aws session: %w", err)
188188
}
189189

190190
svc := ec2.New(sess)
@@ -196,7 +196,7 @@ func launchInstance(region string, instanceType string) (string, error) {
196196
},
197197
})
198198
if err != nil {
199-
return "", fmt.Errorf("error describing images: %v", err)
199+
return "", fmt.Errorf("error describing images: %w", err)
200200
}
201201

202202
if len(images.Images) == 0 {
@@ -233,7 +233,7 @@ func launchInstance(region string, instanceType string) (string, error) {
233233
return "", nil
234234
}
235235

236-
return "", fmt.Errorf("error from RunInstances: %v", err)
236+
return "", fmt.Errorf("error from RunInstances: %w", err)
237237
}
238238

239239
zone := aws.StringValue(createResponse.Instances[0].Placement.AvailabilityZone)

experiment/bumpmonitoring/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func (c *client) findConfigToUpdate() error {
138138

139139
if _, err := os.Stat(fullPath); err != nil {
140140
if !os.IsNotExist(err) {
141-
return fmt.Errorf("failed to get the file info for %q: %v", fullPath, err)
141+
return fmt.Errorf("failed to get the file info for %q: %w", fullPath, err)
142142
}
143143
logrus.Infof("Skipping %s as it doesn't exist from dst", fullPath)
144144
}

experiment/clustersecretbackup/secretmanager/secretmanager.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func NewClient(projectID string, dryrun bool) (*Client, error) {
5050
ctx := context.Background()
5151
client, err := secretmanager.NewClient(ctx)
5252
if err != nil {
53-
return nil, fmt.Errorf("failed to setup client: %v", err)
53+
return nil, fmt.Errorf("failed to setup client: %w", err)
5454
}
5555
return &Client{ProjectID: projectID, client: client, dryrun: dryrun}, nil
5656
}
@@ -168,7 +168,7 @@ func (c *Client) GetSecretValue(ctx context.Context, secretName, versionName str
168168
// Call the API.
169169
result, err := c.client.AccessSecretVersion(ctx, accessRequest)
170170
if err != nil {
171-
return nil, fmt.Errorf("failed to access secret version: %v", err)
171+
return nil, fmt.Errorf("failed to access secret version: %w", err)
172172
}
173173
return result.Payload.Data, nil
174174
}

experiment/image-bumper/bumper/bumper.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func DeconstructTag(tag string) (date, commit, variant string) {
106106
func (cli *Client) getManifest(imageHost, imageName string) (manifest, error) {
107107
resp, err := cli.httpClient.Get("https://" + imageHost + "/v2/" + imageName + "/tags/list")
108108
if err != nil {
109-
return nil, fmt.Errorf("couldn't fetch tag list: %v", err)
109+
return nil, fmt.Errorf("couldn't fetch tag list: %w", err)
110110
}
111111
defer resp.Body.Close()
112112

@@ -115,7 +115,7 @@ func (cli *Client) getManifest(imageHost, imageName string) (manifest, error) {
115115
}{}
116116

117117
if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
118-
return nil, fmt.Errorf("couldn't parse tag information from registry: %v", err)
118+
return nil, fmt.Errorf("couldn't parse tag information from registry: %w", err)
119119
}
120120

121121
return result.Manifest, nil
@@ -198,7 +198,7 @@ func pickBestTag(currentTagParts []string, manifest manifest) (string, error) {
198198
}
199199
t, err := strconv.ParseInt(v.TimeCreatedMs, 10, 64)
200200
if err != nil {
201-
return "", fmt.Errorf("couldn't parse timestamp %q: %v", v.TimeCreatedMs, err)
201+
return "", fmt.Errorf("couldn't parse timestamp %q: %w", v.TimeCreatedMs, err)
202202
}
203203
if override || t > latestTime {
204204
latestTime = t
@@ -260,13 +260,13 @@ func (cli *Client) UpdateFile(tagPicker func(imageHost, imageName, currentTag st
260260
path string, imageFilter *regexp.Regexp) error {
261261
content, err := ioutil.ReadFile(path)
262262
if err != nil {
263-
return fmt.Errorf("failed to read %s: %v", path, err)
263+
return fmt.Errorf("failed to read %s: %w", path, err)
264264
}
265265

266266
newContent := updateAllTags(tagPicker, content, imageFilter)
267267

268268
if err := ioutil.WriteFile(path, newContent, 0644); err != nil {
269-
return fmt.Errorf("failed to write %s: %v", path, err)
269+
return fmt.Errorf("failed to write %s: %w", path, err)
270270
}
271271
return nil
272272
}

experiment/manual-trigger/manual-trigger.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -92,19 +92,19 @@ func sanityCheckFlags(o options) error {
9292
if o.githubEndpoint == "" {
9393
return fmt.Errorf("empty --github-endpoint")
9494
} else if _, err := url.Parse(o.githubEndpoint); err != nil {
95-
return fmt.Errorf("bad --github-endpoint provided: %v", err)
95+
return fmt.Errorf("bad --github-endpoint provided: %w", err)
9696
}
9797

9898
if o.graphqlEndpoint == "" {
9999
return fmt.Errorf("empty --graphql-endpoint")
100100
} else if _, err := url.Parse(o.graphqlEndpoint); err != nil {
101-
return fmt.Errorf("bad --graphql-endpoint provided: %v", err)
101+
return fmt.Errorf("bad --graphql-endpoint provided: %w", err)
102102
}
103103

104104
if o.jenkinsURL == "" {
105105
return fmt.Errorf("empty --jenkins-url")
106106
} else if _, err := url.Parse(o.jenkinsURL); err != nil {
107-
return fmt.Errorf("bad --jenkins-url provided: %v", err)
107+
return fmt.Errorf("bad --jenkins-url provided: %w", err)
108108
}
109109

110110
return nil

experiment/service-account-creator/main.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func create(project, prefix string) error {
9292
create := exec.Command("gcloud", "iam", "service-accounts", "create", "-f", "--project="+project, prefix)
9393
create.Stderr = os.Stderr
9494
if err := create.Start(); err != nil {
95-
return fmt.Errorf("start: %v", err)
95+
return fmt.Errorf("start: %w", err)
9696
}
9797
return create.Wait()
9898
}
@@ -102,7 +102,7 @@ func describe(user string) error {
102102
desc := exec.Command("gcloud", "iam", "service-accounts", "describe", user)
103103
desc.Stderr = os.Stderr
104104
if err := desc.Start(); err != nil {
105-
return fmt.Errorf("start: %v", err)
105+
return fmt.Errorf("start: %w", err)
106106
}
107107
return desc.Wait()
108108
}
@@ -112,7 +112,7 @@ func addPolicy(project, member, role string) error {
112112
add := exec.Command("gcloud", "projects", project, "add-iam-policy-binding", "--member="+member, "--role="+role)
113113
add.Stderr = os.Stderr
114114
if err := add.Start(); err != nil {
115-
return fmt.Errorf("start: %v", err)
115+
return fmt.Errorf("start: %w", err)
116116
}
117117
return add.Wait()
118118
}
@@ -122,7 +122,7 @@ func removePolicy(project, member, role string) error {
122122
remove := exec.Command("gcloud", "projects", project, "remove-iam-policy-binding", "--member="+member, "--role="+role)
123123
remove.Stderr = os.Stderr
124124
if err := remove.Start(); err != nil {
125-
return fmt.Errorf("start: %v", err)
125+
return fmt.Errorf("start: %w", err)
126126
}
127127
return remove.Wait()
128128
}
@@ -150,14 +150,14 @@ func run(o options) error {
150150
if err := describe(user); err != nil {
151151
if o.serviceAccountProject == "" {
152152
logrus.WithField("serviceAccount", user).Warn("Cannot parse prefix and project from service account")
153-
return fmt.Errorf("validate account pre-existence: %v", err)
153+
return fmt.Errorf("validate account pre-existence: %w", err)
154154
}
155155
if cerr := create(o.serviceAccountProject, o.serviceAccountPrefix); err != nil {
156-
return fmt.Errorf("create account: %v", cerr)
156+
return fmt.Errorf("create account: %w", cerr)
157157
}
158158
}
159159
if err := describe(user); err != nil {
160-
return fmt.Errorf("validate account: %v", err)
160+
return fmt.Errorf("validate account: %w", err)
161161
}
162162

163163
member := "serviceAccount:" + user

experiment/slack-oncall-updater/main.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ var rotationToSlackGroup = map[string]string{
5959
func getJSON(url string, v interface{}) error {
6060
resp, err := http.Get(url)
6161
if err != nil {
62-
return fmt.Errorf("failed to fetch %q: %v", url, err)
62+
return fmt.Errorf("failed to fetch %q: %w", url, err)
6363
}
6464
defer resp.Body.Close()
6565
decoder := json.NewDecoder(resp.Body)
6666
err = decoder.Decode(v)
6767
if err != nil {
68-
return fmt.Errorf("failed to decode json from %q: %v", url, err)
68+
return fmt.Errorf("failed to decode json from %q: %w", url, err)
6969
}
7070
return nil
7171
}
@@ -91,7 +91,7 @@ func updateGroupMembership(token, groupID, userID string) error {
9191

9292
err := getJSON("https://slack.com/api/usergroups.users.update?token="+token+"&users="+userID+"&usergroup="+groupID, &result)
9393
if err != nil {
94-
return fmt.Errorf("couldn't make membership request: %v", err)
94+
return fmt.Errorf("couldn't make membership request: %w", err)
9595
}
9696

9797
if !result.Ok {
@@ -104,7 +104,7 @@ func updateGroupMembership(token, groupID, userID string) error {
104104
func getTokenFromPath(path string) (string, error) {
105105
content, err := ioutil.ReadFile(path)
106106
if err != nil {
107-
return "", fmt.Errorf("couldn't open file: %v", err)
107+
return "", fmt.Errorf("couldn't open file: %w", err)
108108
}
109109
return strings.TrimSpace(string(content)), nil
110110
}

gcsweb/cmd/gcsweb/gcsweb.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func getStorageClient(o options) (*storage.Client, error) {
140140
if o.oauthTokenFile != "" {
141141
b, err := ioutil.ReadFile(o.oauthTokenFile)
142142
if err != nil {
143-
return nil, fmt.Errorf("error reading oauth token file %s: %v", o.oauthTokenFile, err)
143+
return nil, fmt.Errorf("error reading oauth token file %s: %w", o.oauthTokenFile, err)
144144
}
145145
clientOption = option.WithAPIKey(string(bytes.TrimSpace(b)))
146146
}
@@ -151,7 +151,7 @@ func getStorageClient(o options) (*storage.Client, error) {
151151

152152
storageClient, err := storage.NewClient(ctx, clientOption)
153153
if err != nil {
154-
return nil, fmt.Errorf("couldn't create the gcs storage client: %v", err)
154+
return nil, fmt.Errorf("couldn't create the gcs storage client: %w", err)
155155
}
156156

157157
return storageClient, nil
@@ -294,7 +294,7 @@ func (s *server) handleObject(w http.ResponseWriter, bucket, object string, head
294294

295295
objReader, err := obj.NewReader(context.Background())
296296
if err != nil {
297-
return fmt.Errorf("couldn't create the object reader: %v", err)
297+
return fmt.Errorf("couldn't create the object reader: %w", err)
298298
}
299299
defer objReader.Close()
300300

@@ -314,7 +314,7 @@ func (s *server) handleObject(w http.ResponseWriter, bucket, object string, head
314314
}
315315

316316
if _, err := io.Copy(w, objReader); err != nil {
317-
return fmt.Errorf("coudln't copy data to the response writer: %v", err)
317+
return fmt.Errorf("coudln't copy data to the response writer: %w", err)
318318
}
319319

320320
return nil
@@ -338,7 +338,7 @@ func (s *server) handleDirectory(w http.ResponseWriter, bucket, object, path str
338338
break
339339
}
340340
if err != nil {
341-
return fmt.Errorf("error while processing object: %v", err)
341+
return fmt.Errorf("error while processing object: %w", err)
342342
}
343343

344344
// That means that the object is a file

gencred/pkg/certificate/certificate.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ func generateCSR() (*certificates.CertificateSigningRequest, []byte, error) {
5454
// Generate a new private key.
5555
pk, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
5656
if err != nil {
57-
return nil, nil, fmt.Errorf("generate key: %v", err)
57+
return nil, nil, fmt.Errorf("generate key: %w", err)
5858
}
5959

6060
// Marshal pk -> der.
6161
der, err := x509.MarshalECPrivateKey(pk)
6262
if err != nil {
63-
return nil, nil, fmt.Errorf("marshal key to DER: %v", err)
63+
return nil, nil, fmt.Errorf("marshal key to DER: %w", err)
6464
}
6565

6666
// Generate PEM key.
@@ -69,7 +69,7 @@ func generateCSR() (*certificates.CertificateSigningRequest, []byte, error) {
6969
// Generate a x509 certificate signing request.
7070
csrPEM, err := cert.MakeCSR(pk, &pkix.Name{CommonName: "client", Organization: []string{systemPrivilegedGroup}}, nil, nil)
7171
if err != nil {
72-
return nil, nil, fmt.Errorf("create CSR from key: %v", err)
72+
return nil, nil, fmt.Errorf("create CSR from key: %w", err)
7373
}
7474

7575
// Generate a Kubernetes CSR object.
@@ -99,7 +99,7 @@ func requestCSR(clientset kubernetes.Interface, csrObj *certificates.Certificate
9999
// Create CSR.
100100
csrObj, err := client.Create(context.TODO(), csrObj, metav1.CreateOptions{})
101101
if err != nil {
102-
return nil, fmt.Errorf("create CSR: %v", err)
102+
return nil, fmt.Errorf("create CSR: %w", err)
103103
}
104104

105105
csrName := csrObj.Name
@@ -115,7 +115,7 @@ func requestCSR(clientset kubernetes.Interface, csrObj *certificates.Certificate
115115
return true, nil
116116
})
117117
if err != nil {
118-
return nil, fmt.Errorf("approve CSR: %v", err)
118+
return nil, fmt.Errorf("approve CSR: %w", err)
119119
}
120120

121121
// Get CSR.
@@ -128,7 +128,7 @@ func requestCSR(clientset kubernetes.Interface, csrObj *certificates.Certificate
128128
return true, nil
129129
})
130130
if err != nil {
131-
return nil, fmt.Errorf("get CSR: %v", err)
131+
return nil, fmt.Errorf("get CSR: %w", err)
132132
}
133133

134134
return csrObj.Status.Certificate, nil
@@ -166,17 +166,17 @@ func appendApprovalCondition(csr *certificates.CertificateSigningRequest) {
166166
func CreateClusterCertificateCredentials(clientset kubernetes.Interface) (certPEM []byte, keyPEM []byte, caPEM []byte, err error) {
167167
csrObj, keyPEM, err := generateCSR()
168168
if err != nil {
169-
return nil, nil, nil, fmt.Errorf("generate CSR: %v", err)
169+
return nil, nil, nil, fmt.Errorf("generate CSR: %w", err)
170170
}
171171

172172
certPEM, err = requestCSR(clientset, csrObj)
173173
if err != nil {
174-
return nil, nil, nil, fmt.Errorf("request CSR: %v", err)
174+
return nil, nil, nil, fmt.Errorf("request CSR: %w", err)
175175
}
176176

177177
caPEM, err = getRootCA(clientset)
178178
if err != nil {
179-
return nil, nil, nil, fmt.Errorf("get root CA: %v", err)
179+
return nil, nil, nil, fmt.Errorf("get root CA: %w", err)
180180
}
181181

182182
return certPEM, keyPEM, caPEM, nil

0 commit comments

Comments
 (0)