Skip to content

Commit 9063fa6

Browse files
authored
Merge pull request #1808 from mrueg/drop-pkg-errors
Replace pkg/errors with stdlib errors
2 parents 767af98 + 2f20203 commit 9063fa6

File tree

9 files changed

+23
-25
lines changed

9 files changed

+23
-25
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ require (
99
github.com/google/go-jsonnet v0.18.0
1010
github.com/jsonnet-bundler/jsonnet-bundler v0.4.1-0.20200708074244-ada055a225fa
1111
github.com/oklog/run v1.1.0
12-
github.com/pkg/errors v0.9.1
1312
github.com/prometheus/client_golang v1.12.2
1413
github.com/prometheus/client_model v0.2.0
1514
github.com/prometheus/common v0.34.0
@@ -73,6 +72,7 @@ require (
7372
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
7473
github.com/onsi/ginkgo v1.16.5 // indirect
7574
github.com/onsi/gomega v1.17.0 // indirect
75+
github.com/pkg/errors v0.9.1 // indirect
7676
github.com/pmezard/go-difflib v1.0.0 // indirect
7777
github.com/prometheus/procfs v0.7.3 // indirect
7878
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd // indirect

internal/store/builder.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ package store
1818

1919
import (
2020
"context"
21+
"fmt"
2122
"reflect"
2223
"sort"
2324
"strconv"
2425
"strings"
2526

26-
"github.com/pkg/errors"
2727
"github.com/prometheus/client_golang/prometheus"
2828
admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
2929
appsv1 "k8s.io/api/apps/v1"
@@ -93,7 +93,7 @@ func (b *Builder) WithMetrics(r prometheus.Registerer) {
9393
func (b *Builder) WithEnabledResources(r []string) error {
9494
for _, col := range r {
9595
if !resourceExists(col) {
96-
return errors.Errorf("resource %s does not exist. Available resources: %s", col, strings.Join(availableResources(), ","))
96+
return fmt.Errorf("resource %s does not exist. Available resources: %s", col, strings.Join(availableResources(), ","))
9797
}
9898
}
9999

internal/store/cronjob.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ package store
1818

1919
import (
2020
"context"
21+
"errors"
22+
"fmt"
2123
"time"
2224

23-
"github.com/pkg/errors"
2425
"github.com/robfig/cron/v3"
2526
batchv1 "k8s.io/api/batch/v1"
2627
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -329,7 +330,7 @@ func createCronJobListWatch(kubeClient clientset.Interface, ns string, fieldSele
329330
func getNextScheduledTime(schedule string, lastScheduleTime *metav1.Time, createdTime metav1.Time) (time.Time, error) {
330331
sched, err := cron.ParseStandard(schedule)
331332
if err != nil {
332-
return time.Time{}, errors.Wrapf(err, "Failed to parse cron job schedule '%s'", schedule)
333+
return time.Time{}, fmt.Errorf("Failed to parse cron job schedule '%s': %w", schedule, err)
333334
}
334335
if !lastScheduleTime.IsZero() {
335336
return sched.Next(lastScheduleTime.Time), nil

internal/store/testutils.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"strings"
2626

2727
"github.com/google/go-cmp/cmp"
28-
"github.com/pkg/errors"
2928

3029
"k8s.io/kube-state-metrics/v2/pkg/metric"
3130
)
@@ -54,7 +53,7 @@ func (testCase *generateMetricsTestCase) run() error {
5453
out := headers + "\n" + metrics
5554

5655
if err := compareOutput(testCase.Want, out); err != nil {
57-
return errors.Wrap(err, "expected wanted output to equal output")
56+
return fmt.Errorf("expected wanted output to equal output: %w", err)
5857
}
5958

6059
return nil
@@ -70,7 +69,7 @@ func compareOutput(expected, actual string) error {
7069
}
7170

7271
if diff := cmp.Diff(entities[0], entities[1]); diff != "" {
73-
return errors.Errorf("(-want, +got):\n%s", diff)
72+
return fmt.Errorf("(-want, +got):\n%s", diff)
7473
}
7574

7675
return nil

pkg/allowdenylist/allowdenylist.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ limitations under the License.
1717
package allowdenylist
1818

1919
import (
20+
"errors"
2021
"regexp"
2122
"strings"
2223

2324
generator "k8s.io/kube-state-metrics/v2/pkg/metric_generator"
24-
25-
"github.com/pkg/errors"
2625
)
2726

2827
// AllowDenyList encapsulates the logic needed to filter based on a string.

pkg/app/server.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import (
2626
"time"
2727

2828
"github.com/oklog/run"
29-
"github.com/pkg/errors"
3029
"github.com/prometheus/client_golang/prometheus"
3130
"github.com/prometheus/client_golang/prometheus/collectors"
3231
"github.com/prometheus/client_golang/prometheus/promauto"
@@ -250,7 +249,7 @@ func createKubeClient(apiserver string, kubeconfig string, factories ...customre
250249
klog.Infof("Testing communication with server")
251250
v, err := kubeClient.Discovery().ServerVersion()
252251
if err != nil {
253-
return nil, nil, nil, errors.Wrap(err, "error while trying to communicate with apiserver")
252+
return nil, nil, nil, fmt.Errorf("error while trying to communicate with apiserver: %w", err)
254253
}
255254
klog.Infof("Running with Kubernetes cluster version: v%s.%s. git version: %s. git tree state: %s. commit: %s. platform: %s",
256255
v.Major, v.Minor, v.GitVersion, v.GitTreeState, v.GitCommit, v.Platform)

pkg/metricshandler/metrics_handler.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ package metricshandler
1919
import (
2020
"compress/gzip"
2121
"context"
22+
"errors"
23+
"fmt"
2224
"io"
2325
"net/http"
2426
"strconv"
2527
"strings"
2628
"sync"
2729

28-
"github.com/pkg/errors"
2930
appsv1 "k8s.io/api/apps/v1"
3031
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3132
"k8s.io/apimachinery/pkg/fields"
@@ -103,7 +104,7 @@ func (m *MetricsHandler) Run(ctx context.Context) error {
103104
klog.Infof("Auto detecting sharding settings.")
104105
ss, err := detectStatefulSet(m.kubeClient, m.opts.Pod, m.opts.Namespace)
105106
if err != nil {
106-
return errors.Wrap(err, "detect StatefulSet")
107+
return fmt.Errorf("detect StatefulSet: %w", err)
107108
}
108109
statefulSetName := ss.Name
109110

@@ -211,7 +212,7 @@ func (m *MetricsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
211212
func shardingSettingsFromStatefulSet(ss *appsv1.StatefulSet, podName string) (nominal int32, totalReplicas int, err error) {
212213
nominal, err = detectNominalFromPod(ss.Name, podName)
213214
if err != nil {
214-
return 0, 0, errors.Wrap(err, "detecting Pod nominal")
215+
return 0, 0, fmt.Errorf("detecting Pod nominal: %w", err)
215216
}
216217

217218
totalReplicas = 1
@@ -227,7 +228,7 @@ func detectNominalFromPod(statefulSetName, podName string) (int32, error) {
227228
nominalString := strings.TrimPrefix(podName, statefulSetName+"-")
228229
nominal, err := strconv.Atoi(nominalString)
229230
if err != nil {
230-
return 0, errors.Wrapf(err, "failed to detect shard index for Pod %s of StatefulSet %s, parsed %s", podName, statefulSetName, nominalString)
231+
return 0, fmt.Errorf("failed to detect shard index for Pod %s of StatefulSet %s, parsed %s: %w", podName, statefulSetName, nominalString, err)
231232
}
232233

233234
return int32(nominal), nil
@@ -236,7 +237,7 @@ func detectNominalFromPod(statefulSetName, podName string) (int32, error) {
236237
func detectStatefulSet(kubeClient kubernetes.Interface, podName, namespaceName string) (*appsv1.StatefulSet, error) {
237238
p, err := kubeClient.CoreV1().Pods(namespaceName).Get(context.TODO(), podName, metav1.GetOptions{})
238239
if err != nil {
239-
return nil, errors.Wrapf(err, "retrieve pod %s for sharding", podName)
240+
return nil, fmt.Errorf("retrieve pod %s for sharding: %w", podName, err)
240241
}
241242

242243
owners := p.GetOwnerReferences()
@@ -247,11 +248,11 @@ func detectStatefulSet(kubeClient kubernetes.Interface, podName, namespaceName s
247248

248249
ss, err := kubeClient.AppsV1().StatefulSets(namespaceName).Get(context.TODO(), o.Name, metav1.GetOptions{})
249250
if err != nil {
250-
return nil, errors.Wrapf(err, "retrieve shard's StatefulSet: %s/%s", namespaceName, o.Name)
251+
return nil, fmt.Errorf("retrieve shard's StatefulSet: %s/%s: %w", namespaceName, o.Name, err)
251252
}
252253

253254
return ss, nil
254255
}
255256

256-
return nil, errors.Errorf("no suitable statefulset found for auto detecting sharding for Pod %s/%s", namespaceName, podName)
257+
return nil, fmt.Errorf("no suitable statefulset found for auto detecting sharding for Pod %s/%s", namespaceName, podName)
257258
}

tests/e2e/framework/framework.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ package framework
1818

1919
import (
2020
"bytes"
21+
"errors"
2122
"fmt"
2223
"io"
2324
"net/http"
2425
"net/url"
2526
"path"
2627
"strings"
2728

28-
"github.com/pkg/errors"
2929
dto "github.com/prometheus/client_model/go"
3030
"github.com/prometheus/common/expfmt"
3131
)
@@ -165,7 +165,7 @@ func (f *Framework) ParseMetrics(metrics func(io.Writer) error) (map[string]*dto
165165
buf := &bytes.Buffer{}
166166
err := metrics(buf)
167167
if err != nil {
168-
return nil, errors.Wrap(err, "Failed to get metrics")
168+
return nil, fmt.Errorf("Failed to get metrics: %w", err)
169169
}
170170

171171
parser := &expfmt.TextParser{}

tests/e2e/main_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import (
2929
"strings"
3030
"testing"
3131

32-
"github.com/pkg/errors"
3332
"github.com/prometheus/client_golang/prometheus/testutil/promlint"
3433
dto "github.com/prometheus/client_model/go"
3534

@@ -148,7 +147,7 @@ func getLabelsDocumentation() (map[string][]string, error) {
148147
docPath := "../../docs/"
149148
docFiles, err := os.ReadDir(docPath)
150149
if err != nil {
151-
return nil, errors.Wrap(err, "failed to read documentation directory")
150+
return nil, fmt.Errorf("failed to read documentation directory: %w", err)
152151
}
153152

154153
// Match file names such as daemonset-metrics.md
@@ -168,7 +167,7 @@ func getLabelsDocumentation() (map[string][]string, error) {
168167
filePath := path.Join(docPath, file.Name())
169168
f, err := os.Open(filePath)
170169
if err != nil {
171-
return nil, errors.Wrapf(err, "cannot read file %s", filePath)
170+
return nil, fmt.Errorf("cannot read file %s: %w", filePath, err)
172171
}
173172
scanner := bufio.NewScanner(f)
174173
for scanner.Scan() {
@@ -183,7 +182,7 @@ func getLabelsDocumentation() (map[string][]string, error) {
183182
labelPatterns := make([]string, len(labels))
184183
for i, l := range labels {
185184
if len(l) <= 1 {
186-
return nil, errors.Errorf("Label documentation %s did not match regex", labelsDoc)
185+
return nil, fmt.Errorf("Label documentation %s did not match regex", labelsDoc)
187186
}
188187
labelPatterns[i] = patternRe.ReplaceAllString(l[1], "_.*")
189188
}

0 commit comments

Comments
 (0)