Skip to content

Commit 0728bbc

Browse files
fix e2e job
1 parent 86dd894 commit 0728bbc

File tree

6 files changed

+27
-16
lines changed

6 files changed

+27
-16
lines changed

pkg/cloud/services/network/eips_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/aws/aws-sdk-go-v2/service/ec2/types"
2525
"github.com/aws/aws-sdk-go/aws"
2626
"github.com/aws/aws-sdk-go/aws/awserr"
27+
"github.com/aws/smithy-go"
2728
"github.com/golang/mock/gomock"
2829
. "github.com/onsi/gomega"
2930
"github.com/pkg/errors"
@@ -138,7 +139,7 @@ func TestServiceReleaseAddresses(t *testing.T) {
138139
},
139140
}, nil)
140141
m.DisassociateAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.DisassociateAddressInput{})).Return(nil, nil).Times(2)
141-
m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, awserr.New("dependency-failure", "dependency-failure", errors.Errorf("dependency-failure")))
142+
m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, &smithy.GenericAPIError{Code: "dependency-failure", Message: "dependency-failure"})
142143
},
143144
wantErr: true,
144145
},

pkg/cloud/services/network/vpc.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,10 @@ func (s *Service) ensureManagedVPCAttributes(vpc *infrav1.VPCSpec) error {
326326
if code, ok := awserrors.Code(errors.Cause(err)); ok && code == awserrors.VPCNotFound {
327327
return err
328328
}
329+
// Also check for smithy errors
330+
if smithyErr := awserrors.ParseSmithyError(err); smithyErr != nil && smithyErr.ErrorCode() == awserrors.VPCNotFound {
331+
return err
332+
}
329333
errs = append(errs, errors.Wrap(err, "failed to describe enableDnsHostnames vpc attribute"))
330334
} else if !aws.BoolValue(vpcAttr.EnableDnsHostnames.Value) {
331335
attrInput := &ec2.ModifyVpcAttributeInput{
@@ -349,6 +353,10 @@ func (s *Service) ensureManagedVPCAttributes(vpc *infrav1.VPCSpec) error {
349353
if code, ok := awserrors.Code(errors.Cause(err)); ok && code == awserrors.VPCNotFound {
350354
return err
351355
}
356+
// Also check for smithy errors
357+
if smithyErr := awserrors.ParseSmithyError(err); smithyErr != nil && smithyErr.ErrorCode() == awserrors.VPCNotFound {
358+
return err
359+
}
352360
errs = append(errs, errors.Wrap(err, "failed to describe enableDnsSupport vpc attribute"))
353361
} else if !aws.BoolValue(vpcAttr.EnableDnsSupport.Value) {
354362
attrInput := &ec2.ModifyVpcAttributeInput{

pkg/cloud/services/network/vpc_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"github.com/aws/aws-sdk-go/aws"
2626
"github.com/aws/aws-sdk-go/aws/awserr"
2727
"github.com/aws/aws-sdk-go/aws/request"
28+
"github.com/aws/smithy-go"
2829
"github.com/golang/mock/gomock"
2930
. "github.com/onsi/gomega"
3031
"github.com/pkg/errors"
@@ -33,7 +34,6 @@ import (
3334
"sigs.k8s.io/controller-runtime/pkg/client/fake"
3435

3536
infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2"
36-
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/awserrors"
3737
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope"
3838
"sigs.k8s.io/cluster-api-provider-aws/v2/test/mocks"
3939
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
@@ -414,7 +414,7 @@ func TestReconcileVPC(t *testing.T) {
414414
Values: []string{string(types.VpcStatePending), string(types.VpcStateAvailable)},
415415
},
416416
},
417-
})).Return(nil, awserr.New("404", "http not found err", errors.New("err")))
417+
})).Return(nil, &smithy.GenericAPIError{Code: "404", Message: "http not found err"})
418418
},
419419
},
420420
{
@@ -494,7 +494,7 @@ func TestReconcileVPC(t *testing.T) {
494494
},
495495
},
496496
}, nil)
497-
m.DescribeVpcAttribute(context.TODO(), gomock.AssignableToTypeOf(&ec2.DescribeVpcAttributeInput{})).AnyTimes().Return(nil, awserrors.NewFailedDependency("failed dependency"))
497+
m.DescribeVpcAttribute(context.TODO(), gomock.AssignableToTypeOf(&ec2.DescribeVpcAttributeInput{})).AnyTimes().Return(nil, &smithy.GenericAPIError{Code: "FailedDependency", Message: "failed dependency"})
498498
},
499499
},
500500
{
@@ -510,7 +510,7 @@ func TestReconcileVPC(t *testing.T) {
510510
},
511511
},
512512
})).Return(&ec2.DescribeVpcsOutput{Vpcs: []types.Vpc{}}, nil)
513-
m.CreateVpc(context.TODO(), gomock.AssignableToTypeOf(&ec2.CreateVpcInput{})).After(describeVPCByNameCall).Return(nil, awserrors.NewFailedDependency("failed dependency"))
513+
m.CreateVpc(context.TODO(), gomock.AssignableToTypeOf(&ec2.CreateVpcInput{})).After(describeVPCByNameCall).Return(nil, &smithy.GenericAPIError{Code: "FailedDependency", Message: "failed dependency"})
514514
},
515515
},
516516
{
@@ -610,7 +610,7 @@ func TestDeleteVPC(t *testing.T) {
610610
expect: func(m *mocks.MockEC2APIMockRecorder) {
611611
m.DeleteVpc(context.TODO(), gomock.Eq(&ec2.DeleteVpcInput{
612612
VpcId: aws.String("managed-vpc"),
613-
})).Return(nil, awserrors.NewFailedDependency("failed dependency"))
613+
})).Return(nil, &smithy.GenericAPIError{Code: "FailedDependency", Message: "failed dependency"})
614614
},
615615
},
616616
{
@@ -636,7 +636,7 @@ func TestDeleteVPC(t *testing.T) {
636636
expect: func(m *mocks.MockEC2APIMockRecorder) {
637637
m.DeleteVpc(context.TODO(), gomock.Eq(&ec2.DeleteVpcInput{
638638
VpcId: aws.String("managed-vpc"),
639-
})).Return(nil, awserr.New("InvalidVpcID.NotFound", "not found", nil))
639+
})).Return(nil, &smithy.GenericAPIError{Code: "InvalidVpcID.NotFound", Message: "not found"})
640640
},
641641
},
642642
}

pkg/cloud/services/ssm/secret_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import (
3636
"sigs.k8s.io/controller-runtime/pkg/client/fake"
3737

3838
infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2"
39-
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/awserrors"
4039
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope"
4140
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/ssm/mock_ssmiface"
4241
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
@@ -275,7 +274,7 @@ func TestServiceDelete(t *testing.T) {
275274
expect: func(m *mock_ssmiface.MockSSMAPIMockRecorder) {
276275
m.DeleteParameter(context.TODO(), gomock.Eq(&ssm.DeleteParameterInput{
277276
Name: aws.String("prefix/0"),
278-
})).Return(nil, awserrors.NewFailedDependency("failed dependency"))
277+
})).Return(nil, &smithy.GenericAPIError{Code: "FailedDependency", Message: "failed dependency"})
279278
m.DeleteParameter(context.TODO(), gomock.Eq(&ssm.DeleteParameterInput{
280279
Name: aws.String("prefix/1"),
281280
})).Return(nil, &mockAPIError{
@@ -284,11 +283,11 @@ func TestServiceDelete(t *testing.T) {
284283
})
285284
m.DeleteParameter(context.TODO(), gomock.Eq(&ssm.DeleteParameterInput{
286285
Name: aws.String("prefix/2"),
287-
})).Return(nil, awserrors.NewConflict("new conflict"))
286+
})).Return(nil, &smithy.GenericAPIError{Code: "Conflict", Message: "new conflict"})
288287
},
289288
wantErr: true,
290289
check: func(err error) {
291-
if err.Error() != "[failed dependency, new conflict]" {
290+
if err.Error() != "[api error FailedDependency: failed dependency, api error Conflict: new conflict]" {
292291
t.Fatalf("Unexpected error: %v", err)
293292
}
294293
},

pkg/cloud/services/wait/wait.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,15 @@ func WaitForWithRetryable(backoff wait.Backoff, condition wait.ConditionFunc, re
6868

6969
// If the returned error isn't empty, check if the error is a retryable one,
7070
// or return immediately.
71-
smithyErr := awserrors.ParseSmithyError(err)
72-
if smithyErr == nil {
71+
code, ok := awserrors.Code(errors.Cause(err))
72+
if !ok {
7373
return false, err
7474
}
75+
// Also check for smithy errors
76+
if smithyErr := awserrors.ParseSmithyError(err); smithyErr != nil {
77+
code = smithyErr.ErrorCode()
78+
}
7579

76-
code := smithyErr.ErrorCode()
7780
for _, r := range retryableErrors {
7881
if code == r {
7982
// We should retry.

test/e2e/suites/managed/gc_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ var _ = ginkgo.Describe("[managed] [gc] EKS Cluster external resource GC tests",
5555
clusterName = fmt.Sprintf("%s-%s", specName, util.RandomString(6))
5656

5757
ginkgo.By("default iam role should exist")
58-
VerifyRoleExistsAndOwned(ctx, ekscontrolplanev1.DefaultEKSControlPlaneRole, clusterName, false, e2eCtx.BootstrapUserAWSSessionV2)
58+
VerifyRoleExistsAndOwned(ctx, ekscontrolplanev1.DefaultEKSControlPlaneRole, clusterName, false, e2eCtx.AWSSessionV2)
5959

6060
ginkgo.By("should create an EKS control plane")
6161
ManagedClusterSpec(ctx, func() ManagedClusterSpecInput {
@@ -178,7 +178,7 @@ var _ = ginkgo.Describe("[managed] [gc] EKS Cluster external resource GC tests",
178178
clusterName = fmt.Sprintf("%s-%s", specName, util.RandomString(6))
179179

180180
ginkgo.By("default iam role should exist")
181-
VerifyRoleExistsAndOwned(ctx, ekscontrolplanev1.DefaultEKSControlPlaneRole, clusterName, false, e2eCtx.BootstrapUserAWSSessionV2)
181+
VerifyRoleExistsAndOwned(ctx, ekscontrolplanev1.DefaultEKSControlPlaneRole, clusterName, false, e2eCtx.AWSSessionV2)
182182

183183
ginkgo.By("should create an EKS control plane")
184184
ManagedClusterSpec(ctx, func() ManagedClusterSpecInput {

0 commit comments

Comments
 (0)