Skip to content

Commit 698123b

Browse files
authored
Swap hashi mutlierror for native go implementation (#1042)
* Swap hashi mutlierror for native go implementation & Update TestSyncCustomRolesStatus to use new multierror output
1 parent a408efc commit 698123b

File tree

5 files changed

+18
-27
lines changed

5 files changed

+18
-27
lines changed

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ require (
1616
github.com/go-logr/zapr v1.2.4
1717
github.com/google/go-cmp v0.5.9
1818
github.com/google/uuid v1.3.0
19-
github.com/hashicorp/go-multierror v1.1.1
2019
github.com/mongodb-forks/digest v1.0.4
2120
github.com/onsi/ginkgo/v2 v2.11.0
2221
github.com/onsi/gomega v1.27.8
@@ -82,7 +81,6 @@ require (
8281
github.com/google/gofuzz v1.2.0 // indirect
8382
github.com/googleapis/enterprise-certificate-proxy v0.2.5 // indirect
8483
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
85-
github.com/hashicorp/errwrap v1.0.0 // indirect
8684
github.com/imdario/mergo v0.3.12 // indirect
8785
github.com/jmespath/go-jmespath v0.4.0 // indirect
8886
github.com/josharian/intern v1.0.0 // indirect

go.sum

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,10 +249,6 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m
249249
github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas=
250250
github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU=
251251
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
252-
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
253-
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
254-
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
255-
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
256252
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
257253
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
258254
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=

pkg/controller/atlasproject/custom_roles.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@ package atlasproject
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67

7-
"github.com/hashicorp/go-multierror"
8-
98
"github.com/mongodb/mongodb-atlas-kubernetes/pkg/api/v1/status"
109

1110
"github.com/google/go-cmp/cmp"
@@ -240,7 +239,7 @@ func syncCustomRolesStatus(ctx *workflow.Context, desiredCustomRoles []v1.Custom
240239
if ok {
241240
if stat.Status == status.CustomRoleStatusFailed {
242241
statuses = append(statuses, stat)
243-
err = multierror.Append(err, fmt.Errorf(stat.Error))
242+
err = errors.Join(err, fmt.Errorf(stat.Error))
244243
}
245244

246245
continue
@@ -250,7 +249,7 @@ func syncCustomRolesStatus(ctx *workflow.Context, desiredCustomRoles []v1.Custom
250249
statuses = append(statuses, stat)
251250

252251
if stat.Status == status.CustomRoleStatusFailed {
253-
err = multierror.Append(err, fmt.Errorf(stat.Error))
252+
err = errors.Join(err, fmt.Errorf(stat.Error))
254253
}
255254

256255
continue
@@ -260,7 +259,7 @@ func syncCustomRolesStatus(ctx *workflow.Context, desiredCustomRoles []v1.Custom
260259
statuses = append(statuses, stat)
261260

262261
if stat.Status == status.CustomRoleStatusFailed {
263-
err = multierror.Append(err, fmt.Errorf(stat.Error))
262+
err = errors.Join(err, fmt.Errorf(stat.Error))
264263
}
265264

266265
continue

pkg/controller/atlasproject/custom_roles_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func TestSyncCustomRolesStatus(t *testing.T) {
180180

181181
assert.Equal(
182182
t,
183-
workflow.Terminate(workflow.ProjectCustomRolesReady, "failed to apply changes to custom roles: 1 error occurred:\n\t* server failed\n\n"),
183+
workflow.Terminate(workflow.ProjectCustomRolesReady, "failed to apply changes to custom roles: server failed"),
184184
syncCustomRolesStatus(ctx, desired, created, updated, deleted),
185185
)
186186

pkg/controller/validate/validate.go

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import (
1313
"github.com/google/go-cmp/cmp"
1414
"github.com/google/go-cmp/cmp/cmpopts"
1515

16-
"github.com/hashicorp/go-multierror"
17-
1816
mdbv1 "github.com/mongodb/mongodb-atlas-kubernetes/pkg/api/v1"
1917
)
2018

@@ -36,31 +34,31 @@ func DeploymentSpec(deploymentSpec mdbv1.AtlasDeploymentSpec) error {
3634
var err error
3735

3836
if allAreNil(deploymentSpec.AdvancedDeploymentSpec, deploymentSpec.ServerlessSpec, deploymentSpec.DeploymentSpec) {
39-
err = multierror.Append(err, errors.New("expected exactly one of spec.deploymentSpec or spec.advancedDepploymentSpec or spec.serverlessSpec to be present, but none were"))
37+
err = errors.Join(err, errors.New("expected exactly one of spec.deploymentSpec or spec.advancedDepploymentSpec or spec.serverlessSpec to be present, but none were"))
4038
}
4139

4240
if moreThanOneIsNonNil(deploymentSpec.AdvancedDeploymentSpec, deploymentSpec.ServerlessSpec, deploymentSpec.DeploymentSpec) {
43-
err = multierror.Append(err, errors.New("expected exactly one of spec.deploymentSpec, spec.advancedDepploymentSpec or spec.serverlessSpec, more than one were present"))
41+
err = errors.Join(err, errors.New("expected exactly one of spec.deploymentSpec, spec.advancedDepploymentSpec or spec.serverlessSpec, more than one were present"))
4442
}
4543

4644
if deploymentSpec.DeploymentSpec != nil {
4745
if deploymentSpec.DeploymentSpec.ProviderSettings != nil && (deploymentSpec.DeploymentSpec.ProviderSettings.InstanceSizeName == "" && deploymentSpec.DeploymentSpec.ProviderSettings.ProviderName != "SERVERLESS") {
48-
err = multierror.Append(err, errors.New("must specify instanceSizeName if provider name is not SERVERLESS"))
46+
err = errors.Join(err, errors.New("must specify instanceSizeName if provider name is not SERVERLESS"))
4947
}
5048
if deploymentSpec.DeploymentSpec.ProviderSettings != nil && (deploymentSpec.DeploymentSpec.ProviderSettings.InstanceSizeName != "" && deploymentSpec.DeploymentSpec.ProviderSettings.ProviderName == "SERVERLESS") {
51-
err = multierror.Append(err, errors.New("must not specify instanceSizeName if provider name is SERVERLESS"))
49+
err = errors.Join(err, errors.New("must not specify instanceSizeName if provider name is SERVERLESS"))
5250
}
5351
}
5452

5553
if deploymentSpec.AdvancedDeploymentSpec != nil {
5654
instanceSizeErr := instanceSizeForAdvancedDeployment(deploymentSpec.AdvancedDeploymentSpec.ReplicationSpecs)
5755
if instanceSizeErr != nil {
58-
err = multierror.Append(err, instanceSizeErr)
56+
err = errors.Join(err, instanceSizeErr)
5957
}
6058

6159
autoscalingErr := autoscalingForAdvancedDeployment(deploymentSpec.AdvancedDeploymentSpec.ReplicationSpecs)
6260
if autoscalingErr != nil {
63-
err = multierror.Append(err, autoscalingErr)
61+
err = errors.Join(err, autoscalingErr)
6462
}
6563
}
6664

@@ -87,7 +85,7 @@ func BackupSchedule(bSchedule *mdbv1.AtlasBackupSchedule, deployment *mdbv1.Atla
8785
var err error
8886

8987
if bSchedule.Spec.Export == nil && bSchedule.Spec.AutoExportEnabled {
90-
err = multierror.Append(err, errors.New("you must specify export policy when auto export is enabled"))
88+
err = errors.Join(err, errors.New("you must specify export policy when auto export is enabled"))
9189
}
9290

9391
replicaSets := map[string]struct{}{}
@@ -99,26 +97,26 @@ func BackupSchedule(bSchedule *mdbv1.AtlasBackupSchedule, deployment *mdbv1.Atla
9997

10098
for position, copySetting := range bSchedule.Spec.CopySettings {
10199
if copySetting.RegionName == nil {
102-
err = multierror.Append(err, fmt.Errorf("copy setting at position %d: you must set a region name", position))
100+
err = errors.Join(err, fmt.Errorf("copy setting at position %d: you must set a region name", position))
103101
}
104102

105103
if copySetting.ReplicationSpecID == nil {
106-
err = multierror.Append(err, fmt.Errorf("copy setting at position %d: you must set a valid ReplicationSpecID", position))
104+
err = errors.Join(err, fmt.Errorf("copy setting at position %d: you must set a valid ReplicationSpecID", position))
107105
} else if _, ok := replicaSets[*copySetting.ReplicationSpecID]; !ok {
108-
err = multierror.Append(err, fmt.Errorf("copy setting at position %d: referenced ReplicationSpecID is invalid", position))
106+
err = errors.Join(err, fmt.Errorf("copy setting at position %d: referenced ReplicationSpecID is invalid", position))
109107
}
110108

111109
if copySetting.ShouldCopyOplogs != nil && *copySetting.ShouldCopyOplogs {
112110
if deployment.Spec.AdvancedDeploymentSpec != nil &&
113111
(deployment.Spec.AdvancedDeploymentSpec.PitEnabled == nil ||
114112
!*deployment.Spec.AdvancedDeploymentSpec.PitEnabled) {
115-
err = multierror.Append(err, fmt.Errorf("copy setting at position %d: you must enable pit before enable copyOplogs", position))
113+
err = errors.Join(err, fmt.Errorf("copy setting at position %d: you must enable pit before enable copyOplogs", position))
116114
}
117115

118116
if deployment.Spec.DeploymentSpec != nil &&
119117
(deployment.Spec.DeploymentSpec.PitEnabled == nil ||
120118
!*deployment.Spec.DeploymentSpec.PitEnabled) {
121-
err = multierror.Append(err, fmt.Errorf("copy setting at position %d: you must enable pit before enable copyOplogs", position))
119+
err = errors.Join(err, fmt.Errorf("copy setting at position %d: you must enable pit before enable copyOplogs", position))
122120
}
123121
}
124122
}
@@ -211,7 +209,7 @@ func projectCustomRoles(customRoles []mdbv1.CustomRole) error {
211209

212210
for _, customRole := range customRoles {
213211
if _, ok := customRolesMap[customRole.Name]; ok {
214-
err = multierror.Append(err, fmt.Errorf("the custom rone \"%s\" is duplicate. custom role name must be unique", customRole.Name))
212+
err = errors.Join(err, fmt.Errorf("the custom rone \"%s\" is duplicate. custom role name must be unique", customRole.Name))
215213
}
216214

217215
customRolesMap[customRole.Name] = struct{}{}

0 commit comments

Comments
 (0)