diff --git a/bootstrap/eks/internal/userdata/node_test.go b/bootstrap/eks/internal/userdata/node_test.go index 0b1e6af894..a5e314c115 100644 --- a/bootstrap/eks/internal/userdata/node_test.go +++ b/bootstrap/eks/internal/userdata/node_test.go @@ -19,7 +19,7 @@ package userdata import ( "testing" - "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go-v2/aws" . "github.com/onsi/gomega" "github.com/onsi/gomega/format" "k8s.io/utils/ptr" diff --git a/pkg/cloud/awserrors/errors.go b/pkg/cloud/awserrors/errors.go index 70e708c02c..aa8e644e60 100644 --- a/pkg/cloud/awserrors/errors.go +++ b/pkg/cloud/awserrors/errors.go @@ -69,6 +69,12 @@ func Code(err error) (string, bool) { if awserr, ok := err.(awserr.Error); ok { return awserr.Code(), true } + + // Handle smithy errors from AWS SDK v2 + if smithyErr := ParseSmithyError(err); smithyErr != nil && smithyErr.ErrorCode() != "" { + return smithyErr.ErrorCode(), true + } + return "", false } @@ -77,6 +83,12 @@ func Message(err error) string { if awserr, ok := err.(awserr.Error); ok { return awserr.Message() } + + // Handle smithy errors from AWS SDK v2 + if smithyErr := ParseSmithyError(err); smithyErr != nil { + return smithyErr.ErrorMessage() + } + return "" } diff --git a/pkg/cloud/interfaces.go b/pkg/cloud/interfaces.go index 4fd9be6f04..82c671e2c1 100644 --- a/pkg/cloud/interfaces.go +++ b/pkg/cloud/interfaces.go @@ -21,7 +21,6 @@ import ( "time" awsv2 "github.com/aws/aws-sdk-go-v2/aws" - awsclient "github.com/aws/aws-sdk-go/aws/client" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "sigs.k8s.io/controller-runtime/pkg/client" @@ -34,8 +33,7 @@ import ( // Session represents an AWS session. type Session interface { - Session() awsclient.ConfigProvider - SessionV2() awsv2.Config + Session() awsv2.Config ServiceLimiter(service string) *throttle.ServiceLimiter } diff --git a/pkg/cloud/scope/clients.go b/pkg/cloud/scope/clients.go index d00123b966..721dacd99a 100644 --- a/pkg/cloud/scope/clients.go +++ b/pkg/cloud/scope/clients.go @@ -26,31 +26,24 @@ import ( "github.com/aws/aws-sdk-go-v2/service/iam" rgapi "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi" "github.com/aws/aws-sdk-go-v2/service/s3" + "github.com/aws/aws-sdk-go-v2/service/secretsmanager" "github.com/aws/aws-sdk-go-v2/service/sqs" "github.com/aws/aws-sdk-go-v2/service/ssm" stsv2 "github.com/aws/aws-sdk-go-v2/service/sts" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/service/secretsmanager" - "github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface" "k8s.io/apimachinery/pkg/runtime" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/endpointsv2" awslogs "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/logs" - awsmetrics "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/metrics" awsmetricsv2 "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/metricsv2" stsservice "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/sts" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/throttle" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/logger" - "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/record" - "sigs.k8s.io/cluster-api-provider-aws/v2/version" ) // NewASGClient creates a new ASG API client for a given session. func NewASGClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *autoscaling.Client { - cfg := session.SessionV2() + cfg := session.Session() autoscalingOpts := []func(*autoscaling.Options){ func(o *autoscaling.Options) { @@ -68,7 +61,7 @@ func NewASGClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg // NewEC2Client creates a new EC2 API client for a given session. func NewEC2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *ec2.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() ec2EndpointResolver := &endpointsv2.EC2EndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -92,7 +85,7 @@ func NewEC2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg // NewELBClient creates a new ELB API client for a given session. func NewELBClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *elb.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() endpointResolver := &endpointsv2.ELBEndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -116,7 +109,7 @@ func NewELBClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg // NewELBv2Client creates a new ELB v2 API client for a given session. func NewELBv2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *elbv2.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() endpointResolver := &endpointsv2.ELBV2EndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -140,7 +133,7 @@ func NewELBv2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger lo // NewEventBridgeClient creates a new EventBridge API client for a given session. func NewEventBridgeClient(scopeUser cloud.ScopeUsage, session cloud.Session, target runtime.Object) *eventbridge.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() endpointResolver := &endpointsv2.EventBridgeEndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -161,7 +154,7 @@ func NewEventBridgeClient(scopeUser cloud.ScopeUsage, session cloud.Session, tar // NewSQSClient creates a new SQS API client for a given session. func NewSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session, target runtime.Object) *sqs.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() endpointResolver := &endpointsv2.SQSEndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -182,7 +175,7 @@ func NewSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session, target runt // NewGlobalSQSClient for creating a new SQS API client that isn't tied to a cluster. func NewGlobalSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session) *sqs.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() endpointResolver := &endpointsv2.SQSEndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -203,7 +196,7 @@ func NewGlobalSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session) *sqs. // NewResourgeTaggingClient creates a new Resource Tagging API client for a given session. func NewResourgeTaggingClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *rgapi.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() endpointResolver := &endpointsv2.RGAPIEndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -222,20 +215,27 @@ func NewResourgeTaggingClient(scopeUser cloud.ScopeUsage, session cloud.Session, } // NewSecretsManagerClient creates a new Secrets API client for a given session.. -func NewSecretsManagerClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) secretsmanageriface.SecretsManagerAPI { - secretsClient := secretsmanager.New(session.Session(), aws.NewConfig().WithLogLevel(awslogs.GetAWSLogLevel(logger.GetLogger())).WithLogger(awslogs.NewWrapLogr(logger.GetLogger()))) - secretsClient.Handlers.Build.PushFrontNamed(getUserAgentHandler()) - secretsClient.Handlers.Sign.PushFront(session.ServiceLimiter(secretsClient.ServiceID).LimitRequest) - secretsClient.Handlers.CompleteAttempt.PushFront(awsmetrics.CaptureRequestMetrics(scopeUser.ControllerName())) - secretsClient.Handlers.CompleteAttempt.PushFront(session.ServiceLimiter(secretsClient.ServiceID).ReviewResponse) - secretsClient.Handlers.Complete.PushBack(recordAWSPermissionsIssue(target)) - - return secretsClient +func NewSecretsManagerClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *secretsmanager.Client { + cfg := session.Session() + + secretsOpts := []func(*secretsmanager.Options){ + func(o *secretsmanager.Options) { + o.Logger = logger.GetAWSLogger() + o.ClientLogMode = awslogs.GetAWSLogLevelV2(logger.GetLogger()) + }, + secretsmanager.WithAPIOptions( + awsmetricsv2.WithMiddlewares(scopeUser.ControllerName(), target), + awsmetricsv2.WithCAPAUserAgentMiddleware(), + throttle.WithServiceLimiterMiddleware(session.ServiceLimiter(secretsmanager.ServiceID)), + ), + } + + return secretsmanager.NewFromConfig(cfg, secretsOpts...) } // NewEKSClient creates a new EKS API client for a given session. func NewEKSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *eks.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() eksEndpointResolver := &endpointsv2.EKSEndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -253,7 +253,7 @@ func NewEKSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg // NewIAMClient creates a new IAM API client for a given session. func NewIAMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *iam.Client { - cfg := session.SessionV2() + cfg := session.Session() iamOpts := []func(*iam.Options){ func(o *iam.Options) { @@ -271,7 +271,7 @@ func NewIAMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg // NewSTSClient creates a new STS API client for a given session. func NewSTSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) stsservice.STSClient { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() stsEndpointResolver := &endpointsv2.STSEndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -294,7 +294,7 @@ func NewSTSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg // NewSSMClient creates a new Secrets API client for a given session. func NewSSMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *ssm.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() ssmEndpointResolver := &endpointsv2.SSMEndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -316,7 +316,7 @@ func NewSSMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg // NewS3Client creates a new S3 API client for a given session. func NewS3Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *s3.Client { - cfg := session.SessionV2() + cfg := session.Session() multiSvcEndpointResolver := endpointsv2.NewMultiServiceEndpointResolver() s3EndpointResolver := &endpointsv2.S3EndpointResolver{ MultiServiceEndpointResolver: multiSvcEndpointResolver, @@ -332,28 +332,10 @@ func NewS3Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logge return s3.NewFromConfig(cfg, s3Opts...) } -func recordAWSPermissionsIssue(target runtime.Object) func(r *request.Request) { - return func(r *request.Request) { - if awsErr, ok := r.Error.(awserr.Error); ok { - switch awsErr.Code() { - case "AuthFailure", "UnauthorizedOperation", "NoCredentialProviders": - record.Warnf(target, awsErr.Code(), "Operation %s failed with a credentials or permission issue", r.Operation.Name) - } - } - } -} - -func getUserAgentHandler() request.NamedHandler { - return request.NamedHandler{ - Name: "capa/user-agent", - Fn: request.MakeAddToUserAgentHandler("aws.cluster.x-k8s.io", version.Get().String()), - } -} - // AWSClients contains all the aws clients used by the scopes. type AWSClients struct { ELB *elb.Client - SecretsManager secretsmanageriface.SecretsManagerAPI + SecretsManager *secretsmanager.Client ResourceTagging *rgapi.Client ASG *autoscaling.Client EC2 *ec2.Client diff --git a/pkg/cloud/scope/cluster.go b/pkg/cloud/scope/cluster.go index 5bb9873d9c..51b6315bb6 100644 --- a/pkg/cloud/scope/cluster.go +++ b/pkg/cloud/scope/cluster.go @@ -77,11 +77,6 @@ func NewClusterScope(params ClusterScopeParams) (*ClusterScope, error) { maxWaitActiveUpdateDelete: params.MaxWaitActiveUpdateDelete, } - session, serviceLimiters, err := sessionForClusterWithRegion(params.Client, clusterScope, params.AWSCluster.Spec.Region, params.Endpoints, params.Logger) - if err != nil { - return nil, errors.Errorf("failed to create aws session: %v", err) - } - sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, clusterScope, params.AWSCluster.Spec.Region, params.Endpoints, params.Logger) if err != nil { return nil, errors.Errorf("failed to create aws V2 session: %v", err) @@ -93,10 +88,8 @@ func NewClusterScope(params ClusterScopeParams) (*ClusterScope, error) { } clusterScope.patchHelper = helper - clusterScope.session = session - clusterScope.sessionV2 = *sessionv2 - clusterScope.serviceLimiters = serviceLimiters - clusterScope.serviceLimitersV2 = serviceLimitersv2 + clusterScope.session = *sessionv2 + clusterScope.serviceLimiters = serviceLimitersv2 return clusterScope, nil } @@ -110,11 +103,9 @@ type ClusterScope struct { Cluster *clusterv1.Cluster AWSCluster *infrav1.AWSCluster - session awsclient.ConfigProvider - sessionV2 awsv2.Config - serviceLimiters throttle.ServiceLimiters - serviceLimitersV2 throttle.ServiceLimiters - controllerName string + session awsv2.Config + serviceLimiters throttle.ServiceLimiters + controllerName string tagUnmanagedNetworkResources bool maxWaitActiveUpdateDelete time.Duration @@ -361,16 +352,11 @@ func (s *ClusterScope) ClusterObj() cloud.ClusterObject { return s.Cluster } -// Session returns the AWS SDK session. Used for creating clients. -func (s *ClusterScope) Session() awsclient.ConfigProvider { +// Session returns the AWS SDK V2 session. Used for creating clients. +func (s *ClusterScope) Session() awsv2.Config { return s.session } -// SessionV2 returns the AWS SDK V2 session. Used for creating clients. -func (s *ClusterScope) SessionV2() awsv2.Config { - return s.sessionV2 -} - // ServiceLimiter returns the AWS SDK session. Used for creating clients. func (s *ClusterScope) ServiceLimiter(service string) *throttle.ServiceLimiter { if sl, ok := s.serviceLimiters[service]; ok { diff --git a/pkg/cloud/scope/fargate.go b/pkg/cloud/scope/fargate.go index d70a518b7b..96aa21cf34 100644 --- a/pkg/cloud/scope/fargate.go +++ b/pkg/cloud/scope/fargate.go @@ -70,11 +70,6 @@ func NewFargateProfileScope(params FargateProfileScopeParams) (*FargateProfileSc controllerName: params.ControllerName, } - session, serviceLimiters, err := sessionForClusterWithRegion(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) - if err != nil { - return nil, errors.Errorf("failed to create aws session: %v", err) - } - sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) if err != nil { return nil, errors.Errorf("failed to create aws v2 session: %v", err) @@ -86,18 +81,16 @@ func NewFargateProfileScope(params FargateProfileScopeParams) (*FargateProfileSc } return &FargateProfileScope{ - Logger: *params.Logger, - Client: params.Client, - Cluster: params.Cluster, - ControlPlane: params.ControlPlane, - FargateProfile: params.FargateProfile, - patchHelper: helper, - session: session, - sessionV2: *sessionv2, - serviceLimiters: serviceLimiters, - serviceLimitersV2: serviceLimitersv2, - controllerName: params.ControllerName, - enableIAM: params.EnableIAM, + Logger: *params.Logger, + Client: params.Client, + Cluster: params.Cluster, + ControlPlane: params.ControlPlane, + FargateProfile: params.FargateProfile, + patchHelper: helper, + session: *sessionv2, + serviceLimiters: serviceLimitersv2, + controllerName: params.ControllerName, + enableIAM: params.EnableIAM, }, nil } @@ -111,11 +104,9 @@ type FargateProfileScope struct { ControlPlane *ekscontrolplanev1.AWSManagedControlPlane FargateProfile *expinfrav1.AWSFargateProfile - session awsclient.ConfigProvider - sessionV2 awsv2.Config - serviceLimiters throttle.ServiceLimiters - serviceLimitersV2 throttle.ServiceLimiters - controllerName string + session awsv2.Config + serviceLimiters throttle.ServiceLimiters + controllerName string enableIAM bool } @@ -225,16 +216,11 @@ func (s *FargateProfileScope) ClusterObj() cloud.ClusterObject { return s.Cluster } -// Session returns the AWS SDK session. Used for creating clients. -func (s *FargateProfileScope) Session() awsclient.ConfigProvider { +// Session returns the AWS SDK V2 session. Used for creating clients. +func (s *FargateProfileScope) Session() awsv2.Config { return s.session } -// SessionV2 returns the AWS SDK session. Used for creating clients. -func (s *FargateProfileScope) SessionV2() awsv2.Config { - return s.sessionV2 -} - // ControllerName returns the name of the controller that // created the FargateProfile. func (s *FargateProfileScope) ControllerName() string { diff --git a/pkg/cloud/scope/global.go b/pkg/cloud/scope/global.go index 842dfb321d..dc084ab717 100644 --- a/pkg/cloud/scope/global.go +++ b/pkg/cloud/scope/global.go @@ -19,7 +19,6 @@ package scope import ( awsv2 "github.com/aws/aws-sdk-go-v2/aws" - awsclient "github.com/aws/aws-sdk-go/aws/client" "github.com/pkg/errors" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/throttle" @@ -33,7 +32,7 @@ func NewGlobalScope(params GlobalScopeParams) (*GlobalScope, error) { if params.ControllerName == "" { return nil, errors.New("controller name required to generate global scope") } - ns, limiters, err := sessionForRegion(params.Region, params.Endpoints) + _, limiters, err := sessionForRegion(params.Region, params.Endpoints) if err != nil { return nil, errors.Wrap(err, "failed to create aws session") } @@ -43,8 +42,7 @@ func NewGlobalScope(params GlobalScopeParams) (*GlobalScope, error) { return nil, errors.Wrap(err, "failed to create aws V2 session") } return &GlobalScope{ - session: ns, - sessionV2: *ns2, + session: *ns2, serviceLimiters: limiters, controllerName: params.ControllerName, }, nil @@ -59,22 +57,16 @@ type GlobalScopeParams struct { // GlobalScope defines the specs for the GlobalScope. type GlobalScope struct { - session awsclient.ConfigProvider - sessionV2 awsv2.Config + session awsv2.Config serviceLimiters throttle.ServiceLimiters controllerName string } -// Session returns the AWS SDK session. Used for creating clients. -func (s *GlobalScope) Session() awsclient.ConfigProvider { +// Session returns the AWS SDK V2 config. Used for creating clients. +func (s *GlobalScope) Session() awsv2.Config { return s.session } -// SessionV2 returns the AWS SDK V2 config. Used for creating clients. -func (s *GlobalScope) SessionV2() awsv2.Config { - return s.sessionV2 -} - // ServiceLimiter returns the AWS SDK session. Used for creating clients. func (s *GlobalScope) ServiceLimiter(service string) *throttle.ServiceLimiter { if sl, ok := s.serviceLimiters[service]; ok { diff --git a/pkg/cloud/scope/managedcontrolplane.go b/pkg/cloud/scope/managedcontrolplane.go index f6335c381f..856eb29dfe 100644 --- a/pkg/cloud/scope/managedcontrolplane.go +++ b/pkg/cloud/scope/managedcontrolplane.go @@ -92,27 +92,19 @@ func NewManagedControlPlaneScope(params ManagedControlPlaneScopeParams) (*Manage ControlPlane: params.ControlPlane, MaxWaitActiveUpdateDelete: params.MaxWaitActiveUpdateDelete, patchHelper: nil, - session: nil, serviceLimiters: nil, controllerName: params.ControllerName, allowAdditionalRoles: params.AllowAdditionalRoles, enableIAM: params.EnableIAM, tagUnmanagedNetworkResources: params.TagUnmanagedNetworkResources, } - session, serviceLimiters, err := sessionForClusterWithRegion(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) - if err != nil { - return nil, errors.Errorf("failed to create aws session: %v", err) - } - sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) if err != nil { return nil, errors.Errorf("failed to create aws V2 session: %v", err) } - managedScope.session = session - managedScope.sessionV2 = *sessionv2 - managedScope.serviceLimiters = serviceLimiters - managedScope.serviceLimitersV2 = serviceLimitersv2 + managedScope.session = *sessionv2 + managedScope.serviceLimiters = serviceLimitersv2 helper, err := patch.NewHelper(params.ControlPlane, params.Client) if err != nil { @@ -133,11 +125,9 @@ type ManagedControlPlaneScope struct { ControlPlane *ekscontrolplanev1.AWSManagedControlPlane MaxWaitActiveUpdateDelete time.Duration - session awsclient.ConfigProvider - sessionV2 awsv2.Config - serviceLimiters throttle.ServiceLimiters - serviceLimitersV2 throttle.ServiceLimiters - controllerName string + session awsv2.Config + serviceLimiters throttle.ServiceLimiters + controllerName string enableIAM bool allowAdditionalRoles bool @@ -334,16 +324,11 @@ func (s *ManagedControlPlaneScope) ClusterObj() cloud.ClusterObject { return s.Cluster } -// Session returns the AWS SDK session. Used for creating clients. -func (s *ManagedControlPlaneScope) Session() awsclient.ConfigProvider { +// Session returns the AWS SDK V2 config. Used for creating clients. +func (s *ManagedControlPlaneScope) Session() awsv2.Config { return s.session } -// SessionV2 returns the AWS SDK config. Used for creating clients. -func (s *ManagedControlPlaneScope) SessionV2() awsv2.Config { - return s.sessionV2 -} - // Bastion returns the bastion details. func (s *ManagedControlPlaneScope) Bastion() *infrav1.Bastion { return &s.ControlPlane.Spec.Bastion diff --git a/pkg/cloud/scope/managednodegroup.go b/pkg/cloud/scope/managednodegroup.go index c23bb1d8ad..2ce1890438 100644 --- a/pkg/cloud/scope/managednodegroup.go +++ b/pkg/cloud/scope/managednodegroup.go @@ -22,7 +22,6 @@ import ( "time" awsv2 "github.com/aws/aws-sdk-go-v2/aws" - awsclient "github.com/aws/aws-sdk-go/aws/client" "github.com/pkg/errors" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -54,7 +53,7 @@ type ManagedMachinePoolScopeParams struct { MachinePool *expclusterv1.MachinePool ControllerName string Endpoints []ServiceEndpoint - Session awsclient.ConfigProvider + Session awsv2.Config MaxWaitActiveUpdateDelete time.Duration EnableIAM bool @@ -88,10 +87,6 @@ func NewManagedMachinePoolScope(params ManagedMachinePoolScopeParams) (*ManagedM ControlPlane: params.ControlPlane, controllerName: params.ControllerName, } - session, serviceLimiters, err := sessionForClusterWithRegion(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) - if err != nil { - return nil, errors.Errorf("failed to create aws session: %v", err) - } sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) if err != nil { @@ -119,10 +114,8 @@ func NewManagedMachinePoolScope(params ManagedMachinePoolScopeParams) (*ManagedM MachinePool: params.MachinePool, MaxWaitActiveUpdateDelete: params.MaxWaitActiveUpdateDelete, EC2Scope: params.InfraCluster, - session: session, - sessionV2: *sessionv2, - serviceLimiters: serviceLimiters, - serviceLimitersV2: serviceLimitersv2, + session: *sessionv2, + serviceLimiters: serviceLimitersv2, controllerName: params.ControllerName, enableIAM: params.EnableIAM, allowAdditionalRoles: params.AllowAdditionalRoles, @@ -143,11 +136,9 @@ type ManagedMachinePoolScope struct { EC2Scope EC2Scope MaxWaitActiveUpdateDelete time.Duration - session awsclient.ConfigProvider - sessionV2 awsv2.Config - serviceLimiters throttle.ServiceLimiters - serviceLimitersV2 throttle.ServiceLimiters - controllerName string + session awsv2.Config + serviceLimiters throttle.ServiceLimiters + controllerName string enableIAM bool allowAdditionalRoles bool @@ -311,16 +302,11 @@ func (s *ManagedMachinePoolScope) ClusterObj() cloud.ClusterObject { return s.Cluster } -// Session returns the AWS SDK session. Used for creating clients. -func (s *ManagedMachinePoolScope) Session() awsclient.ConfigProvider { +// Session returns the AWS SDK V2 config. Used for creating clients. +func (s *ManagedMachinePoolScope) Session() awsv2.Config { return s.session } -// SessionV2 returns the AWS SDK V2 config. Used for creating clients. -func (s *ManagedMachinePoolScope) SessionV2() awsv2.Config { - return s.sessionV2 -} - // ControllerName returns the name of the controller that // created the ManagedMachinePool. func (s *ManagedMachinePoolScope) ControllerName() string { diff --git a/pkg/cloud/scope/rosacontrolplane.go b/pkg/cloud/scope/rosacontrolplane.go index f2d781cdf9..5d8ab5e265 100644 --- a/pkg/cloud/scope/rosacontrolplane.go +++ b/pkg/cloud/scope/rosacontrolplane.go @@ -22,7 +22,6 @@ import ( awsv2 "github.com/aws/aws-sdk-go-v2/aws" stsv2 "github.com/aws/aws-sdk-go-v2/service/sts" - awsclient "github.com/aws/aws-sdk-go/aws/client" "github.com/pkg/errors" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -73,11 +72,6 @@ func NewROSAControlPlaneScope(params ROSAControlPlaneScopeParams) (*ROSAControlP controllerName: params.ControllerName, } - session, serviceLimiters, err := sessionForClusterWithRegion(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) - if err != nil { - return nil, errors.Errorf("failed to create aws session: %v", err) - } - sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) if err != nil { return nil, errors.Errorf("failed to create aws V2 session: %v", err) @@ -89,10 +83,8 @@ func NewROSAControlPlaneScope(params ROSAControlPlaneScopeParams) (*ROSAControlP } managedScope.patchHelper = helper - managedScope.session = session - managedScope.sessionV2 = *sessionv2 - managedScope.serviceLimiters = serviceLimiters - managedScope.serviceLimitersV2 = serviceLimitersv2 + managedScope.session = *sessionv2 + managedScope.serviceLimiters = serviceLimitersv2 stsClient := params.NewStsClient(managedScope, managedScope, managedScope, managedScope.ControlPlane) identity, err := stsClient.GetCallerIdentity(context.TODO(), &stsv2.GetCallerIdentityInput{}) @@ -113,12 +105,10 @@ type ROSAControlPlaneScope struct { Cluster *clusterv1.Cluster ControlPlane *rosacontrolplanev1.ROSAControlPlane - session awsclient.ConfigProvider - sessionV2 awsv2.Config - serviceLimiters throttle.ServiceLimiters - serviceLimitersV2 throttle.ServiceLimiters - controllerName string - Identity *stsv2.GetCallerIdentityOutput + session awsv2.Config + serviceLimiters throttle.ServiceLimiters + controllerName string + Identity *stsv2.GetCallerIdentityOutput } // InfraCluster returns the AWSManagedControlPlane object. @@ -131,16 +121,11 @@ func (s *ROSAControlPlaneScope) IdentityRef() *infrav1.AWSIdentityReference { return s.ControlPlane.Spec.IdentityRef } -// Session returns the AWS SDK session. Used for creating clients. -func (s *ROSAControlPlaneScope) Session() awsclient.ConfigProvider { +// Session returns the AWS SDK V2 session. Used for creating clients. +func (s *ROSAControlPlaneScope) Session() awsv2.Config { return s.session } -// SessionV2 returns the AWS SDK V2 Config. Used for creating clients. -func (s *ROSAControlPlaneScope) SessionV2() awsv2.Config { - return s.sessionV2 -} - // ServiceLimiter returns the AWS SDK session. Used for creating clients. func (s *ROSAControlPlaneScope) ServiceLimiter(service string) *throttle.ServiceLimiter { if sl, ok := s.serviceLimiters[service]; ok { diff --git a/pkg/cloud/scope/rosamachinepool.go b/pkg/cloud/scope/rosamachinepool.go index 9155bc450d..1186c8d883 100644 --- a/pkg/cloud/scope/rosamachinepool.go +++ b/pkg/cloud/scope/rosamachinepool.go @@ -20,7 +20,6 @@ import ( "context" awsv2 "github.com/aws/aws-sdk-go-v2/aws" - awsclient "github.com/aws/aws-sdk-go/aws/client" "github.com/pkg/errors" "k8s.io/klog/v2" "sigs.k8s.io/controller-runtime/pkg/client" @@ -89,25 +88,17 @@ func NewRosaMachinePoolScope(params RosaMachinePoolScopeParams) (*RosaMachinePoo controllerName: params.ControllerName, } - session, serviceLimiters, err := sessionForClusterWithRegion(params.Client, scope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) - if err != nil { - return nil, errors.Errorf("failed to create aws session: %v", err) - } - sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, scope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger) if err != nil { return nil, errors.Errorf("failed to create aws V2 session: %v", err) } - scope.session = session - scope.sessionV2 = *sessionv2 - scope.serviceLimiters = serviceLimiters - scope.serviceLimitersV2 = serviceLimitersv2 + scope.session = *sessionv2 + scope.serviceLimiters = serviceLimitersv2 return scope, nil } -var _ cloud.Session = &RosaMachinePoolScope{} var _ cloud.SessionMetadata = &RosaMachinePoolScope{} // RosaMachinePoolScope defines the basic context for an actuator to operate upon. @@ -122,10 +113,8 @@ type RosaMachinePoolScope struct { RosaMachinePool *expinfrav1.ROSAMachinePool MachinePool *expclusterv1.MachinePool - session awsclient.ConfigProvider - sessionV2 awsv2.Config - serviceLimiters throttle.ServiceLimiters - serviceLimitersV2 throttle.ServiceLimiters + session awsv2.Config + serviceLimiters throttle.ServiceLimiters controllerName string } @@ -179,16 +168,11 @@ func (s *RosaMachinePoolScope) ServiceLimiter(service string) *throttle.ServiceL return nil } -// Session implements cloud.Session. -func (s *RosaMachinePoolScope) Session() awsclient.ConfigProvider { +// Session implements cloud.Session for AWS SDK V2. +func (s *RosaMachinePoolScope) Session() awsv2.Config { return s.session } -// SessionV2 implements cloud.Session for AWS SDK V2. -func (s *RosaMachinePoolScope) SessionV2() awsv2.Config { - return s.sessionV2 -} - // IdentityRef implements cloud.SessionMetadata. func (s *RosaMachinePoolScope) IdentityRef() *v1beta2.AWSIdentityReference { return s.ControlPlane.Spec.IdentityRef diff --git a/pkg/cloud/scope/session.go b/pkg/cloud/scope/session.go index 163404aa9c..d501e349c7 100644 --- a/pkg/cloud/scope/session.go +++ b/pkg/cloud/scope/session.go @@ -29,7 +29,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi" "github.com/aws/aws-sdk-go-v2/service/secretsmanager" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/aws/aws-sdk-go/aws/session" "github.com/google/go-cmp/cmp" @@ -64,7 +63,6 @@ type ServiceEndpoint struct { var sessionCache sync.Map var sessionCacheV2 sync.Map -var providerCache sync.Map var providerCacheV2 sync.Map type sessionCacheEntry struct { @@ -137,89 +135,6 @@ func sessionForRegionV2(region string) (*awsv2.Config, throttle.ServiceLimiters, return &ns, sl, nil } -func sessionForClusterWithRegion(k8sClient client.Client, clusterScoper cloud.SessionMetadata, region string, endpoint []ServiceEndpoint, log logger.Wrapper) (*session.Session, throttle.ServiceLimiters, error) { - log = log.WithName("identity") - log.Trace("Creating an AWS Session") - - resolver := func(service, region string, optFns ...func(*endpoints.Options)) (endpoints.ResolvedEndpoint, error) { - for _, s := range endpoint { - if service == s.ServiceID { - return endpoints.ResolvedEndpoint{ - URL: s.URL, - SigningRegion: s.SigningRegion, - }, nil - } - } - return endpoints.DefaultResolver().EndpointFor(service, region, optFns...) - } - - providers, err := getProvidersForCluster(context.Background(), k8sClient, clusterScoper, region, log) - if err != nil { - // could not get providers and retrieve the credentials - conditions.MarkFalse(clusterScoper.InfraCluster(), infrav1.PrincipalCredentialRetrievedCondition, infrav1.PrincipalCredentialRetrievalFailedReason, clusterv1.ConditionSeverityError, "%s", err.Error()) - return nil, nil, errors.Wrap(err, "Failed to get providers for cluster") - } - - isChanged := false - awsProviders := make([]credentials.Provider, len(providers)) - for i, provider := range providers { - // load an existing matching providers from the cache if such a providers exists - providerHash, err := provider.Hash() - if err != nil { - return nil, nil, errors.Wrap(err, "Failed to calculate provider hash") - } - cachedProvider, ok := providerCache.Load(providerHash) - if ok { - provider = cachedProvider.(identity.AWSPrincipalTypeProvider) - } else { - isChanged = true - // add this provider to the cache - providerCache.Store(providerHash, provider) - } - awsProviders[i] = provider.(credentials.Provider) - } - - if !isChanged { - if s, ok := sessionCache.Load(getSessionName(region, clusterScoper)); ok { - entry := s.(*sessionCacheEntry) - return entry.session, entry.serviceLimiters, nil - } - } - awsConfig := &aws.Config{ - Region: aws.String(region), - EndpointResolver: endpoints.ResolverFunc(resolver), - } - - if len(providers) > 0 { - // Check if identity credentials can be retrieved. One reason this will fail is that source identity is not authorized for assume role. - _, err := providers[0].Retrieve() - if err != nil { - conditions.MarkUnknown(clusterScoper.InfraCluster(), infrav1.PrincipalCredentialRetrievedCondition, infrav1.CredentialProviderBuildFailedReason, "%s", err.Error()) - - // delete the existing session from cache. Otherwise, we give back a defective session on next method invocation with same cluster scope - sessionCache.Delete(getSessionName(region, clusterScoper)) - - return nil, nil, errors.Wrap(err, "Failed to retrieve identity credentials") - } - awsConfig = awsConfig.WithCredentials(credentials.NewChainCredentials(awsProviders)) - } - - conditions.MarkTrue(clusterScoper.InfraCluster(), infrav1.PrincipalCredentialRetrievedCondition) - - ns, err := session.NewSession(awsConfig) - if err != nil { - return nil, nil, errors.Wrap(err, "Failed to create a new AWS session") - } - sl := newServiceLimiters() - sessionCache.Store(getSessionName(region, clusterScoper), &sessionCacheEntry{ - session: ns, - serviceLimiters: sl, - sessionV2: nil, - }) - - return ns, sl, nil -} - func sessionForClusterWithRegionV2(k8sClient client.Client, clusterScoper cloud.SessionMetadata, region string, _ []ServiceEndpoint, log logger.Wrapper) (*awsv2.Config, throttle.ServiceLimiters, error) { log = log.WithName("identity") log.Trace("Creating an AWS Session") diff --git a/pkg/cloud/services/awsnode/cni_test.go b/pkg/cloud/services/awsnode/cni_test.go index 67c78d806b..ff08781e6b 100644 --- a/pkg/cloud/services/awsnode/cni_test.go +++ b/pkg/cloud/services/awsnode/cni_test.go @@ -21,7 +21,7 @@ import ( "testing" "github.com/aws/amazon-vpc-cni-k8s/pkg/apis/crd/v1alpha1" - "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/golang/mock/gomock" . "github.com/onsi/gomega" v1 "k8s.io/api/apps/v1" diff --git a/pkg/cloud/services/network/eips_test.go b/pkg/cloud/services/network/eips_test.go index d23fdf4319..d844663169 100644 --- a/pkg/cloud/services/network/eips_test.go +++ b/pkg/cloud/services/network/eips_test.go @@ -23,10 +23,9 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/smithy-go" "github.com/golang/mock/gomock" . "github.com/onsi/gomega" - "github.com/pkg/errors" "k8s.io/apimachinery/pkg/runtime" "sigs.k8s.io/controller-runtime/pkg/client/fake" @@ -104,7 +103,7 @@ func TestServiceReleaseAddresses(t *testing.T) { }, }, nil) m.DisassociateAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.DisassociateAddressInput{})).Return(nil, nil).Times(2) - m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, awserr.New(awserrors.AuthFailure, awserrors.AuthFailure, errors.Errorf(awserrors.AuthFailure))) + m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, &smithy.GenericAPIError{Code: awserrors.AuthFailure, Message: awserrors.AuthFailure}) m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, nil) }, }, @@ -121,7 +120,7 @@ func TestServiceReleaseAddresses(t *testing.T) { }, }, nil) m.DisassociateAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.DisassociateAddressInput{})).Return(nil, nil).Times(2) - m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, awserr.New(awserrors.InUseIPAddress, awserrors.InUseIPAddress, errors.Errorf(awserrors.InUseIPAddress))) + m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, &smithy.GenericAPIError{Code: awserrors.InUseIPAddress, Message: awserrors.InUseIPAddress}) m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, nil) }, }, @@ -138,7 +137,7 @@ func TestServiceReleaseAddresses(t *testing.T) { }, }, nil) m.DisassociateAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.DisassociateAddressInput{})).Return(nil, nil).Times(2) - m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, awserr.New("dependency-failure", "dependency-failure", errors.Errorf("dependency-failure"))) + m.ReleaseAddress(context.TODO(), gomock.AssignableToTypeOf(&ec2.ReleaseAddressInput{})).Return(nil, &smithy.GenericAPIError{Code: "dependency-failure", Message: "dependency-failure"}) }, wantErr: true, }, diff --git a/pkg/cloud/services/network/vpc.go b/pkg/cloud/services/network/vpc.go index a620831681..9f4e510a99 100644 --- a/pkg/cloud/services/network/vpc.go +++ b/pkg/cloud/services/network/vpc.go @@ -326,6 +326,10 @@ func (s *Service) ensureManagedVPCAttributes(vpc *infrav1.VPCSpec) error { if code, ok := awserrors.Code(errors.Cause(err)); ok && code == awserrors.VPCNotFound { return err } + // Also check for smithy errors + if smithyErr := awserrors.ParseSmithyError(err); smithyErr != nil && smithyErr.ErrorCode() == awserrors.VPCNotFound { + return err + } errs = append(errs, errors.Wrap(err, "failed to describe enableDnsHostnames vpc attribute")) } else if !aws.BoolValue(vpcAttr.EnableDnsHostnames.Value) { attrInput := &ec2.ModifyVpcAttributeInput{ @@ -349,6 +353,10 @@ func (s *Service) ensureManagedVPCAttributes(vpc *infrav1.VPCSpec) error { if code, ok := awserrors.Code(errors.Cause(err)); ok && code == awserrors.VPCNotFound { return err } + // Also check for smithy errors + if smithyErr := awserrors.ParseSmithyError(err); smithyErr != nil && smithyErr.ErrorCode() == awserrors.VPCNotFound { + return err + } errs = append(errs, errors.Wrap(err, "failed to describe enableDnsSupport vpc attribute")) } else if !aws.BoolValue(vpcAttr.EnableDnsSupport.Value) { attrInput := &ec2.ModifyVpcAttributeInput{ diff --git a/pkg/cloud/services/network/vpc_test.go b/pkg/cloud/services/network/vpc_test.go index 70be9c4142..059f642ee6 100644 --- a/pkg/cloud/services/network/vpc_test.go +++ b/pkg/cloud/services/network/vpc_test.go @@ -23,8 +23,8 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/smithy-go" "github.com/golang/mock/gomock" . "github.com/onsi/gomega" "github.com/pkg/errors" @@ -33,7 +33,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/fake" infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2" - "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/awserrors" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope" "sigs.k8s.io/cluster-api-provider-aws/v2/test/mocks" clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" @@ -414,7 +413,7 @@ func TestReconcileVPC(t *testing.T) { Values: []string{string(types.VpcStatePending), string(types.VpcStateAvailable)}, }, }, - })).Return(nil, awserr.New("404", "http not found err", errors.New("err"))) + })).Return(nil, &smithy.GenericAPIError{Code: "404", Message: "http not found err"}) }, }, { @@ -464,7 +463,7 @@ func TestReconcileVPC(t *testing.T) { }, }, }, nil) - m.DescribeVpcAttribute(context.TODO(), gomock.AssignableToTypeOf(&ec2.DescribeVpcAttributeInput{})).Return(nil, awserr.New("InvalidVpcID.NotFound", "not found", nil)) + m.DescribeVpcAttribute(context.TODO(), gomock.AssignableToTypeOf(&ec2.DescribeVpcAttributeInput{})).Return(nil, &smithy.GenericAPIError{Code: "InvalidVpcID.NotFound", Message: "not found"}) m.DescribeVpcAttribute(context.TODO(), gomock.AssignableToTypeOf(&ec2.DescribeVpcAttributeInput{})). DoAndReturn(describeVpcAttributeTrue).AnyTimes() }, @@ -494,7 +493,7 @@ func TestReconcileVPC(t *testing.T) { }, }, }, nil) - m.DescribeVpcAttribute(context.TODO(), gomock.AssignableToTypeOf(&ec2.DescribeVpcAttributeInput{})).AnyTimes().Return(nil, awserrors.NewFailedDependency("failed dependency")) + m.DescribeVpcAttribute(context.TODO(), gomock.AssignableToTypeOf(&ec2.DescribeVpcAttributeInput{})).AnyTimes().Return(nil, &smithy.GenericAPIError{Code: "FailedDependency", Message: "failed dependency"}) }, }, { @@ -510,7 +509,7 @@ func TestReconcileVPC(t *testing.T) { }, }, })).Return(&ec2.DescribeVpcsOutput{Vpcs: []types.Vpc{}}, nil) - m.CreateVpc(context.TODO(), gomock.AssignableToTypeOf(&ec2.CreateVpcInput{})).After(describeVPCByNameCall).Return(nil, awserrors.NewFailedDependency("failed dependency")) + m.CreateVpc(context.TODO(), gomock.AssignableToTypeOf(&ec2.CreateVpcInput{})).After(describeVPCByNameCall).Return(nil, &smithy.GenericAPIError{Code: "FailedDependency", Message: "failed dependency"}) }, }, { @@ -610,7 +609,7 @@ func TestDeleteVPC(t *testing.T) { expect: func(m *mocks.MockEC2APIMockRecorder) { m.DeleteVpc(context.TODO(), gomock.Eq(&ec2.DeleteVpcInput{ VpcId: aws.String("managed-vpc"), - })).Return(nil, awserrors.NewFailedDependency("failed dependency")) + })).Return(nil, &smithy.GenericAPIError{Code: "FailedDependency", Message: "failed dependency"}) }, }, { @@ -636,7 +635,7 @@ func TestDeleteVPC(t *testing.T) { expect: func(m *mocks.MockEC2APIMockRecorder) { m.DeleteVpc(context.TODO(), gomock.Eq(&ec2.DeleteVpcInput{ VpcId: aws.String("managed-vpc"), - })).Return(nil, awserr.New("InvalidVpcID.NotFound", "not found", nil)) + })).Return(nil, &smithy.GenericAPIError{Code: "InvalidVpcID.NotFound", Message: "not found"}) }, }, } diff --git a/pkg/cloud/services/secretsmanager/mock_secretsmanageriface/doc.go b/pkg/cloud/services/secretsmanager/mock_secretsmanageriface/doc.go index 88f2878984..750f6d60dd 100644 --- a/pkg/cloud/services/secretsmanager/mock_secretsmanageriface/doc.go +++ b/pkg/cloud/services/secretsmanager/mock_secretsmanageriface/doc.go @@ -17,6 +17,6 @@ limitations under the License. // Package mock_secretsmanageriface provides a mock interface for the SecretsManager API client. // Run go generate to regenerate this mock. // -//go:generate ../../../../../hack/tools/bin/mockgen -destination secretsmanagerapi_mock.go -package mock_secretsmanageriface github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface SecretsManagerAPI +//go:generate ../../../../../hack/tools/bin/mockgen -destination secretsmanagerapi_mock.go -package mock_secretsmanageriface sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/secretsmanager SecretsManagerAPI //go:generate /usr/bin/env bash -c "cat ../../../../../hack/boilerplate/boilerplate.generatego.txt secretsmanagerapi_mock.go > _secretsmanagerapi_mock.go && mv _secretsmanagerapi_mock.go secretsmanagerapi_mock.go" package mock_secretsmanageriface //nolint:stylecheck diff --git a/pkg/cloud/services/secretsmanager/mock_secretsmanageriface/secretsmanagerapi_mock.go b/pkg/cloud/services/secretsmanager/mock_secretsmanageriface/secretsmanagerapi_mock.go index 638d716da2..d2e72e44cf 100644 --- a/pkg/cloud/services/secretsmanager/mock_secretsmanageriface/secretsmanagerapi_mock.go +++ b/pkg/cloud/services/secretsmanager/mock_secretsmanageriface/secretsmanagerapi_mock.go @@ -15,7 +15,7 @@ limitations under the License. */ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface (interfaces: SecretsManagerAPI) +// Source: sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/secretsmanager (interfaces: SecretsManagerAPI) // Package mock_secretsmanageriface is a generated GoMock package. package mock_secretsmanageriface @@ -24,8 +24,7 @@ import ( context "context" reflect "reflect" - request "github.com/aws/aws-sdk-go/aws/request" - secretsmanager "github.com/aws/aws-sdk-go/service/secretsmanager" + secretsmanager "github.com/aws/aws-sdk-go-v2/service/secretsmanager" gomock "github.com/golang/mock/gomock" ) @@ -52,1251 +51,42 @@ func (m *MockSecretsManagerAPI) EXPECT() *MockSecretsManagerAPIMockRecorder { return m.recorder } -// BatchGetSecretValue mocks base method. -func (m *MockSecretsManagerAPI) BatchGetSecretValue(arg0 *secretsmanager.BatchGetSecretValueInput) (*secretsmanager.BatchGetSecretValueOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchGetSecretValue", arg0) - ret0, _ := ret[0].(*secretsmanager.BatchGetSecretValueOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// BatchGetSecretValue indicates an expected call of BatchGetSecretValue. -func (mr *MockSecretsManagerAPIMockRecorder) BatchGetSecretValue(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetSecretValue", reflect.TypeOf((*MockSecretsManagerAPI)(nil).BatchGetSecretValue), arg0) -} - -// BatchGetSecretValuePages mocks base method. -func (m *MockSecretsManagerAPI) BatchGetSecretValuePages(arg0 *secretsmanager.BatchGetSecretValueInput, arg1 func(*secretsmanager.BatchGetSecretValueOutput, bool) bool) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchGetSecretValuePages", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// BatchGetSecretValuePages indicates an expected call of BatchGetSecretValuePages. -func (mr *MockSecretsManagerAPIMockRecorder) BatchGetSecretValuePages(arg0, arg1 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetSecretValuePages", reflect.TypeOf((*MockSecretsManagerAPI)(nil).BatchGetSecretValuePages), arg0, arg1) -} - -// BatchGetSecretValuePagesWithContext mocks base method. -func (m *MockSecretsManagerAPI) BatchGetSecretValuePagesWithContext(arg0 context.Context, arg1 *secretsmanager.BatchGetSecretValueInput, arg2 func(*secretsmanager.BatchGetSecretValueOutput, bool) bool, arg3 ...request.Option) error { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1, arg2} - for _, a := range arg3 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "BatchGetSecretValuePagesWithContext", varargs...) - ret0, _ := ret[0].(error) - return ret0 -} - -// BatchGetSecretValuePagesWithContext indicates an expected call of BatchGetSecretValuePagesWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) BatchGetSecretValuePagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetSecretValuePagesWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).BatchGetSecretValuePagesWithContext), varargs...) -} - -// BatchGetSecretValueRequest mocks base method. -func (m *MockSecretsManagerAPI) BatchGetSecretValueRequest(arg0 *secretsmanager.BatchGetSecretValueInput) (*request.Request, *secretsmanager.BatchGetSecretValueOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchGetSecretValueRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.BatchGetSecretValueOutput) - return ret0, ret1 -} - -// BatchGetSecretValueRequest indicates an expected call of BatchGetSecretValueRequest. -func (mr *MockSecretsManagerAPIMockRecorder) BatchGetSecretValueRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetSecretValueRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).BatchGetSecretValueRequest), arg0) -} - -// BatchGetSecretValueWithContext mocks base method. -func (m *MockSecretsManagerAPI) BatchGetSecretValueWithContext(arg0 context.Context, arg1 *secretsmanager.BatchGetSecretValueInput, arg2 ...request.Option) (*secretsmanager.BatchGetSecretValueOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "BatchGetSecretValueWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.BatchGetSecretValueOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// BatchGetSecretValueWithContext indicates an expected call of BatchGetSecretValueWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) BatchGetSecretValueWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetSecretValueWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).BatchGetSecretValueWithContext), varargs...) -} - -// CancelRotateSecret mocks base method. -func (m *MockSecretsManagerAPI) CancelRotateSecret(arg0 *secretsmanager.CancelRotateSecretInput) (*secretsmanager.CancelRotateSecretOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CancelRotateSecret", arg0) - ret0, _ := ret[0].(*secretsmanager.CancelRotateSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CancelRotateSecret indicates an expected call of CancelRotateSecret. -func (mr *MockSecretsManagerAPIMockRecorder) CancelRotateSecret(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CancelRotateSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).CancelRotateSecret), arg0) -} - -// CancelRotateSecretRequest mocks base method. -func (m *MockSecretsManagerAPI) CancelRotateSecretRequest(arg0 *secretsmanager.CancelRotateSecretInput) (*request.Request, *secretsmanager.CancelRotateSecretOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CancelRotateSecretRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.CancelRotateSecretOutput) - return ret0, ret1 -} - -// CancelRotateSecretRequest indicates an expected call of CancelRotateSecretRequest. -func (mr *MockSecretsManagerAPIMockRecorder) CancelRotateSecretRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CancelRotateSecretRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).CancelRotateSecretRequest), arg0) -} - -// CancelRotateSecretWithContext mocks base method. -func (m *MockSecretsManagerAPI) CancelRotateSecretWithContext(arg0 context.Context, arg1 *secretsmanager.CancelRotateSecretInput, arg2 ...request.Option) (*secretsmanager.CancelRotateSecretOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CancelRotateSecretWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.CancelRotateSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CancelRotateSecretWithContext indicates an expected call of CancelRotateSecretWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) CancelRotateSecretWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CancelRotateSecretWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).CancelRotateSecretWithContext), varargs...) -} - // CreateSecret mocks base method. -func (m *MockSecretsManagerAPI) CreateSecret(arg0 *secretsmanager.CreateSecretInput) (*secretsmanager.CreateSecretOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSecret", arg0) - ret0, _ := ret[0].(*secretsmanager.CreateSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateSecret indicates an expected call of CreateSecret. -func (mr *MockSecretsManagerAPIMockRecorder) CreateSecret(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).CreateSecret), arg0) -} - -// CreateSecretRequest mocks base method. -func (m *MockSecretsManagerAPI) CreateSecretRequest(arg0 *secretsmanager.CreateSecretInput) (*request.Request, *secretsmanager.CreateSecretOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSecretRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.CreateSecretOutput) - return ret0, ret1 -} - -// CreateSecretRequest indicates an expected call of CreateSecretRequest. -func (mr *MockSecretsManagerAPIMockRecorder) CreateSecretRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecretRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).CreateSecretRequest), arg0) -} - -// CreateSecretWithContext mocks base method. -func (m *MockSecretsManagerAPI) CreateSecretWithContext(arg0 context.Context, arg1 *secretsmanager.CreateSecretInput, arg2 ...request.Option) (*secretsmanager.CreateSecretOutput, error) { +func (m *MockSecretsManagerAPI) CreateSecret(arg0 context.Context, arg1 *secretsmanager.CreateSecretInput, arg2 ...func(*secretsmanager.Options)) (*secretsmanager.CreateSecretOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} for _, a := range arg2 { varargs = append(varargs, a) } - ret := m.ctrl.Call(m, "CreateSecretWithContext", varargs...) + ret := m.ctrl.Call(m, "CreateSecret", varargs...) ret0, _ := ret[0].(*secretsmanager.CreateSecretOutput) ret1, _ := ret[1].(error) return ret0, ret1 } -// CreateSecretWithContext indicates an expected call of CreateSecretWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) CreateSecretWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecretWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).CreateSecretWithContext), varargs...) -} - -// DeleteResourcePolicy mocks base method. -func (m *MockSecretsManagerAPI) DeleteResourcePolicy(arg0 *secretsmanager.DeleteResourcePolicyInput) (*secretsmanager.DeleteResourcePolicyOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteResourcePolicy", arg0) - ret0, _ := ret[0].(*secretsmanager.DeleteResourcePolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteResourcePolicy indicates an expected call of DeleteResourcePolicy. -func (mr *MockSecretsManagerAPIMockRecorder) DeleteResourcePolicy(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteResourcePolicy", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DeleteResourcePolicy), arg0) -} - -// DeleteResourcePolicyRequest mocks base method. -func (m *MockSecretsManagerAPI) DeleteResourcePolicyRequest(arg0 *secretsmanager.DeleteResourcePolicyInput) (*request.Request, *secretsmanager.DeleteResourcePolicyOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteResourcePolicyRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.DeleteResourcePolicyOutput) - return ret0, ret1 -} - -// DeleteResourcePolicyRequest indicates an expected call of DeleteResourcePolicyRequest. -func (mr *MockSecretsManagerAPIMockRecorder) DeleteResourcePolicyRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteResourcePolicyRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DeleteResourcePolicyRequest), arg0) -} - -// DeleteResourcePolicyWithContext mocks base method. -func (m *MockSecretsManagerAPI) DeleteResourcePolicyWithContext(arg0 context.Context, arg1 *secretsmanager.DeleteResourcePolicyInput, arg2 ...request.Option) (*secretsmanager.DeleteResourcePolicyOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DeleteResourcePolicyWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.DeleteResourcePolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteResourcePolicyWithContext indicates an expected call of DeleteResourcePolicyWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) DeleteResourcePolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { +// CreateSecret indicates an expected call of CreateSecret. +func (mr *MockSecretsManagerAPIMockRecorder) CreateSecret(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteResourcePolicyWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DeleteResourcePolicyWithContext), varargs...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).CreateSecret), varargs...) } // DeleteSecret mocks base method. -func (m *MockSecretsManagerAPI) DeleteSecret(arg0 *secretsmanager.DeleteSecretInput) (*secretsmanager.DeleteSecretOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteSecret", arg0) - ret0, _ := ret[0].(*secretsmanager.DeleteSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteSecret indicates an expected call of DeleteSecret. -func (mr *MockSecretsManagerAPIMockRecorder) DeleteSecret(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DeleteSecret), arg0) -} - -// DeleteSecretRequest mocks base method. -func (m *MockSecretsManagerAPI) DeleteSecretRequest(arg0 *secretsmanager.DeleteSecretInput) (*request.Request, *secretsmanager.DeleteSecretOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteSecretRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.DeleteSecretOutput) - return ret0, ret1 -} - -// DeleteSecretRequest indicates an expected call of DeleteSecretRequest. -func (mr *MockSecretsManagerAPIMockRecorder) DeleteSecretRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecretRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DeleteSecretRequest), arg0) -} - -// DeleteSecretWithContext mocks base method. -func (m *MockSecretsManagerAPI) DeleteSecretWithContext(arg0 context.Context, arg1 *secretsmanager.DeleteSecretInput, arg2 ...request.Option) (*secretsmanager.DeleteSecretOutput, error) { +func (m *MockSecretsManagerAPI) DeleteSecret(arg0 context.Context, arg1 *secretsmanager.DeleteSecretInput, arg2 ...func(*secretsmanager.Options)) (*secretsmanager.DeleteSecretOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} for _, a := range arg2 { varargs = append(varargs, a) } - ret := m.ctrl.Call(m, "DeleteSecretWithContext", varargs...) + ret := m.ctrl.Call(m, "DeleteSecret", varargs...) ret0, _ := ret[0].(*secretsmanager.DeleteSecretOutput) ret1, _ := ret[1].(error) return ret0, ret1 } -// DeleteSecretWithContext indicates an expected call of DeleteSecretWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) DeleteSecretWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecretWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DeleteSecretWithContext), varargs...) -} - -// DescribeSecret mocks base method. -func (m *MockSecretsManagerAPI) DescribeSecret(arg0 *secretsmanager.DescribeSecretInput) (*secretsmanager.DescribeSecretOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DescribeSecret", arg0) - ret0, _ := ret[0].(*secretsmanager.DescribeSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DescribeSecret indicates an expected call of DescribeSecret. -func (mr *MockSecretsManagerAPIMockRecorder) DescribeSecret(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DescribeSecret), arg0) -} - -// DescribeSecretRequest mocks base method. -func (m *MockSecretsManagerAPI) DescribeSecretRequest(arg0 *secretsmanager.DescribeSecretInput) (*request.Request, *secretsmanager.DescribeSecretOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DescribeSecretRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.DescribeSecretOutput) - return ret0, ret1 -} - -// DescribeSecretRequest indicates an expected call of DescribeSecretRequest. -func (mr *MockSecretsManagerAPIMockRecorder) DescribeSecretRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeSecretRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DescribeSecretRequest), arg0) -} - -// DescribeSecretWithContext mocks base method. -func (m *MockSecretsManagerAPI) DescribeSecretWithContext(arg0 context.Context, arg1 *secretsmanager.DescribeSecretInput, arg2 ...request.Option) (*secretsmanager.DescribeSecretOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DescribeSecretWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.DescribeSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DescribeSecretWithContext indicates an expected call of DescribeSecretWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) DescribeSecretWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeSecretWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DescribeSecretWithContext), varargs...) -} - -// GetRandomPassword mocks base method. -func (m *MockSecretsManagerAPI) GetRandomPassword(arg0 *secretsmanager.GetRandomPasswordInput) (*secretsmanager.GetRandomPasswordOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRandomPassword", arg0) - ret0, _ := ret[0].(*secretsmanager.GetRandomPasswordOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetRandomPassword indicates an expected call of GetRandomPassword. -func (mr *MockSecretsManagerAPIMockRecorder) GetRandomPassword(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRandomPassword", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetRandomPassword), arg0) -} - -// GetRandomPasswordRequest mocks base method. -func (m *MockSecretsManagerAPI) GetRandomPasswordRequest(arg0 *secretsmanager.GetRandomPasswordInput) (*request.Request, *secretsmanager.GetRandomPasswordOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRandomPasswordRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.GetRandomPasswordOutput) - return ret0, ret1 -} - -// GetRandomPasswordRequest indicates an expected call of GetRandomPasswordRequest. -func (mr *MockSecretsManagerAPIMockRecorder) GetRandomPasswordRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRandomPasswordRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetRandomPasswordRequest), arg0) -} - -// GetRandomPasswordWithContext mocks base method. -func (m *MockSecretsManagerAPI) GetRandomPasswordWithContext(arg0 context.Context, arg1 *secretsmanager.GetRandomPasswordInput, arg2 ...request.Option) (*secretsmanager.GetRandomPasswordOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetRandomPasswordWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.GetRandomPasswordOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetRandomPasswordWithContext indicates an expected call of GetRandomPasswordWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) GetRandomPasswordWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRandomPasswordWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetRandomPasswordWithContext), varargs...) -} - -// GetResourcePolicy mocks base method. -func (m *MockSecretsManagerAPI) GetResourcePolicy(arg0 *secretsmanager.GetResourcePolicyInput) (*secretsmanager.GetResourcePolicyOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetResourcePolicy", arg0) - ret0, _ := ret[0].(*secretsmanager.GetResourcePolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetResourcePolicy indicates an expected call of GetResourcePolicy. -func (mr *MockSecretsManagerAPIMockRecorder) GetResourcePolicy(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResourcePolicy", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetResourcePolicy), arg0) -} - -// GetResourcePolicyRequest mocks base method. -func (m *MockSecretsManagerAPI) GetResourcePolicyRequest(arg0 *secretsmanager.GetResourcePolicyInput) (*request.Request, *secretsmanager.GetResourcePolicyOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetResourcePolicyRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.GetResourcePolicyOutput) - return ret0, ret1 -} - -// GetResourcePolicyRequest indicates an expected call of GetResourcePolicyRequest. -func (mr *MockSecretsManagerAPIMockRecorder) GetResourcePolicyRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResourcePolicyRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetResourcePolicyRequest), arg0) -} - -// GetResourcePolicyWithContext mocks base method. -func (m *MockSecretsManagerAPI) GetResourcePolicyWithContext(arg0 context.Context, arg1 *secretsmanager.GetResourcePolicyInput, arg2 ...request.Option) (*secretsmanager.GetResourcePolicyOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetResourcePolicyWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.GetResourcePolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetResourcePolicyWithContext indicates an expected call of GetResourcePolicyWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) GetResourcePolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResourcePolicyWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetResourcePolicyWithContext), varargs...) -} - -// GetSecretValue mocks base method. -func (m *MockSecretsManagerAPI) GetSecretValue(arg0 *secretsmanager.GetSecretValueInput) (*secretsmanager.GetSecretValueOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSecretValue", arg0) - ret0, _ := ret[0].(*secretsmanager.GetSecretValueOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetSecretValue indicates an expected call of GetSecretValue. -func (mr *MockSecretsManagerAPIMockRecorder) GetSecretValue(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecretValue", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetSecretValue), arg0) -} - -// GetSecretValueRequest mocks base method. -func (m *MockSecretsManagerAPI) GetSecretValueRequest(arg0 *secretsmanager.GetSecretValueInput) (*request.Request, *secretsmanager.GetSecretValueOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSecretValueRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.GetSecretValueOutput) - return ret0, ret1 -} - -// GetSecretValueRequest indicates an expected call of GetSecretValueRequest. -func (mr *MockSecretsManagerAPIMockRecorder) GetSecretValueRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecretValueRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetSecretValueRequest), arg0) -} - -// GetSecretValueWithContext mocks base method. -func (m *MockSecretsManagerAPI) GetSecretValueWithContext(arg0 context.Context, arg1 *secretsmanager.GetSecretValueInput, arg2 ...request.Option) (*secretsmanager.GetSecretValueOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetSecretValueWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.GetSecretValueOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetSecretValueWithContext indicates an expected call of GetSecretValueWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) GetSecretValueWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecretValueWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).GetSecretValueWithContext), varargs...) -} - -// ListSecretVersionIds mocks base method. -func (m *MockSecretsManagerAPI) ListSecretVersionIds(arg0 *secretsmanager.ListSecretVersionIdsInput) (*secretsmanager.ListSecretVersionIdsOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecretVersionIds", arg0) - ret0, _ := ret[0].(*secretsmanager.ListSecretVersionIdsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListSecretVersionIds indicates an expected call of ListSecretVersionIds. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretVersionIds(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretVersionIds", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretVersionIds), arg0) -} - -// ListSecretVersionIdsPages mocks base method. -func (m *MockSecretsManagerAPI) ListSecretVersionIdsPages(arg0 *secretsmanager.ListSecretVersionIdsInput, arg1 func(*secretsmanager.ListSecretVersionIdsOutput, bool) bool) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecretVersionIdsPages", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListSecretVersionIdsPages indicates an expected call of ListSecretVersionIdsPages. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretVersionIdsPages(arg0, arg1 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretVersionIdsPages", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretVersionIdsPages), arg0, arg1) -} - -// ListSecretVersionIdsPagesWithContext mocks base method. -func (m *MockSecretsManagerAPI) ListSecretVersionIdsPagesWithContext(arg0 context.Context, arg1 *secretsmanager.ListSecretVersionIdsInput, arg2 func(*secretsmanager.ListSecretVersionIdsOutput, bool) bool, arg3 ...request.Option) error { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1, arg2} - for _, a := range arg3 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListSecretVersionIdsPagesWithContext", varargs...) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListSecretVersionIdsPagesWithContext indicates an expected call of ListSecretVersionIdsPagesWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretVersionIdsPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretVersionIdsPagesWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretVersionIdsPagesWithContext), varargs...) -} - -// ListSecretVersionIdsRequest mocks base method. -func (m *MockSecretsManagerAPI) ListSecretVersionIdsRequest(arg0 *secretsmanager.ListSecretVersionIdsInput) (*request.Request, *secretsmanager.ListSecretVersionIdsOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecretVersionIdsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.ListSecretVersionIdsOutput) - return ret0, ret1 -} - -// ListSecretVersionIdsRequest indicates an expected call of ListSecretVersionIdsRequest. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretVersionIdsRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretVersionIdsRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretVersionIdsRequest), arg0) -} - -// ListSecretVersionIdsWithContext mocks base method. -func (m *MockSecretsManagerAPI) ListSecretVersionIdsWithContext(arg0 context.Context, arg1 *secretsmanager.ListSecretVersionIdsInput, arg2 ...request.Option) (*secretsmanager.ListSecretVersionIdsOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListSecretVersionIdsWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.ListSecretVersionIdsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListSecretVersionIdsWithContext indicates an expected call of ListSecretVersionIdsWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretVersionIdsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretVersionIdsWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretVersionIdsWithContext), varargs...) -} - -// ListSecrets mocks base method. -func (m *MockSecretsManagerAPI) ListSecrets(arg0 *secretsmanager.ListSecretsInput) (*secretsmanager.ListSecretsOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecrets", arg0) - ret0, _ := ret[0].(*secretsmanager.ListSecretsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListSecrets indicates an expected call of ListSecrets. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecrets(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecrets", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecrets), arg0) -} - -// ListSecretsPages mocks base method. -func (m *MockSecretsManagerAPI) ListSecretsPages(arg0 *secretsmanager.ListSecretsInput, arg1 func(*secretsmanager.ListSecretsOutput, bool) bool) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecretsPages", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListSecretsPages indicates an expected call of ListSecretsPages. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretsPages(arg0, arg1 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretsPages", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretsPages), arg0, arg1) -} - -// ListSecretsPagesWithContext mocks base method. -func (m *MockSecretsManagerAPI) ListSecretsPagesWithContext(arg0 context.Context, arg1 *secretsmanager.ListSecretsInput, arg2 func(*secretsmanager.ListSecretsOutput, bool) bool, arg3 ...request.Option) error { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1, arg2} - for _, a := range arg3 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListSecretsPagesWithContext", varargs...) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListSecretsPagesWithContext indicates an expected call of ListSecretsPagesWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretsPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretsPagesWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretsPagesWithContext), varargs...) -} - -// ListSecretsRequest mocks base method. -func (m *MockSecretsManagerAPI) ListSecretsRequest(arg0 *secretsmanager.ListSecretsInput) (*request.Request, *secretsmanager.ListSecretsOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecretsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.ListSecretsOutput) - return ret0, ret1 -} - -// ListSecretsRequest indicates an expected call of ListSecretsRequest. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretsRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretsRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretsRequest), arg0) -} - -// ListSecretsWithContext mocks base method. -func (m *MockSecretsManagerAPI) ListSecretsWithContext(arg0 context.Context, arg1 *secretsmanager.ListSecretsInput, arg2 ...request.Option) (*secretsmanager.ListSecretsOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListSecretsWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.ListSecretsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListSecretsWithContext indicates an expected call of ListSecretsWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) ListSecretsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecretsWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ListSecretsWithContext), varargs...) -} - -// PutResourcePolicy mocks base method. -func (m *MockSecretsManagerAPI) PutResourcePolicy(arg0 *secretsmanager.PutResourcePolicyInput) (*secretsmanager.PutResourcePolicyOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PutResourcePolicy", arg0) - ret0, _ := ret[0].(*secretsmanager.PutResourcePolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// PutResourcePolicy indicates an expected call of PutResourcePolicy. -func (mr *MockSecretsManagerAPIMockRecorder) PutResourcePolicy(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutResourcePolicy", reflect.TypeOf((*MockSecretsManagerAPI)(nil).PutResourcePolicy), arg0) -} - -// PutResourcePolicyRequest mocks base method. -func (m *MockSecretsManagerAPI) PutResourcePolicyRequest(arg0 *secretsmanager.PutResourcePolicyInput) (*request.Request, *secretsmanager.PutResourcePolicyOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PutResourcePolicyRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.PutResourcePolicyOutput) - return ret0, ret1 -} - -// PutResourcePolicyRequest indicates an expected call of PutResourcePolicyRequest. -func (mr *MockSecretsManagerAPIMockRecorder) PutResourcePolicyRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutResourcePolicyRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).PutResourcePolicyRequest), arg0) -} - -// PutResourcePolicyWithContext mocks base method. -func (m *MockSecretsManagerAPI) PutResourcePolicyWithContext(arg0 context.Context, arg1 *secretsmanager.PutResourcePolicyInput, arg2 ...request.Option) (*secretsmanager.PutResourcePolicyOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "PutResourcePolicyWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.PutResourcePolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// PutResourcePolicyWithContext indicates an expected call of PutResourcePolicyWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) PutResourcePolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutResourcePolicyWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).PutResourcePolicyWithContext), varargs...) -} - -// PutSecretValue mocks base method. -func (m *MockSecretsManagerAPI) PutSecretValue(arg0 *secretsmanager.PutSecretValueInput) (*secretsmanager.PutSecretValueOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PutSecretValue", arg0) - ret0, _ := ret[0].(*secretsmanager.PutSecretValueOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// PutSecretValue indicates an expected call of PutSecretValue. -func (mr *MockSecretsManagerAPIMockRecorder) PutSecretValue(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutSecretValue", reflect.TypeOf((*MockSecretsManagerAPI)(nil).PutSecretValue), arg0) -} - -// PutSecretValueRequest mocks base method. -func (m *MockSecretsManagerAPI) PutSecretValueRequest(arg0 *secretsmanager.PutSecretValueInput) (*request.Request, *secretsmanager.PutSecretValueOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PutSecretValueRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.PutSecretValueOutput) - return ret0, ret1 -} - -// PutSecretValueRequest indicates an expected call of PutSecretValueRequest. -func (mr *MockSecretsManagerAPIMockRecorder) PutSecretValueRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutSecretValueRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).PutSecretValueRequest), arg0) -} - -// PutSecretValueWithContext mocks base method. -func (m *MockSecretsManagerAPI) PutSecretValueWithContext(arg0 context.Context, arg1 *secretsmanager.PutSecretValueInput, arg2 ...request.Option) (*secretsmanager.PutSecretValueOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "PutSecretValueWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.PutSecretValueOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// PutSecretValueWithContext indicates an expected call of PutSecretValueWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) PutSecretValueWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutSecretValueWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).PutSecretValueWithContext), varargs...) -} - -// RemoveRegionsFromReplication mocks base method. -func (m *MockSecretsManagerAPI) RemoveRegionsFromReplication(arg0 *secretsmanager.RemoveRegionsFromReplicationInput) (*secretsmanager.RemoveRegionsFromReplicationOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveRegionsFromReplication", arg0) - ret0, _ := ret[0].(*secretsmanager.RemoveRegionsFromReplicationOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RemoveRegionsFromReplication indicates an expected call of RemoveRegionsFromReplication. -func (mr *MockSecretsManagerAPIMockRecorder) RemoveRegionsFromReplication(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveRegionsFromReplication", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RemoveRegionsFromReplication), arg0) -} - -// RemoveRegionsFromReplicationRequest mocks base method. -func (m *MockSecretsManagerAPI) RemoveRegionsFromReplicationRequest(arg0 *secretsmanager.RemoveRegionsFromReplicationInput) (*request.Request, *secretsmanager.RemoveRegionsFromReplicationOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveRegionsFromReplicationRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.RemoveRegionsFromReplicationOutput) - return ret0, ret1 -} - -// RemoveRegionsFromReplicationRequest indicates an expected call of RemoveRegionsFromReplicationRequest. -func (mr *MockSecretsManagerAPIMockRecorder) RemoveRegionsFromReplicationRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveRegionsFromReplicationRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RemoveRegionsFromReplicationRequest), arg0) -} - -// RemoveRegionsFromReplicationWithContext mocks base method. -func (m *MockSecretsManagerAPI) RemoveRegionsFromReplicationWithContext(arg0 context.Context, arg1 *secretsmanager.RemoveRegionsFromReplicationInput, arg2 ...request.Option) (*secretsmanager.RemoveRegionsFromReplicationOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "RemoveRegionsFromReplicationWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.RemoveRegionsFromReplicationOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RemoveRegionsFromReplicationWithContext indicates an expected call of RemoveRegionsFromReplicationWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) RemoveRegionsFromReplicationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveRegionsFromReplicationWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RemoveRegionsFromReplicationWithContext), varargs...) -} - -// ReplicateSecretToRegions mocks base method. -func (m *MockSecretsManagerAPI) ReplicateSecretToRegions(arg0 *secretsmanager.ReplicateSecretToRegionsInput) (*secretsmanager.ReplicateSecretToRegionsOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ReplicateSecretToRegions", arg0) - ret0, _ := ret[0].(*secretsmanager.ReplicateSecretToRegionsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ReplicateSecretToRegions indicates an expected call of ReplicateSecretToRegions. -func (mr *MockSecretsManagerAPIMockRecorder) ReplicateSecretToRegions(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplicateSecretToRegions", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ReplicateSecretToRegions), arg0) -} - -// ReplicateSecretToRegionsRequest mocks base method. -func (m *MockSecretsManagerAPI) ReplicateSecretToRegionsRequest(arg0 *secretsmanager.ReplicateSecretToRegionsInput) (*request.Request, *secretsmanager.ReplicateSecretToRegionsOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ReplicateSecretToRegionsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.ReplicateSecretToRegionsOutput) - return ret0, ret1 -} - -// ReplicateSecretToRegionsRequest indicates an expected call of ReplicateSecretToRegionsRequest. -func (mr *MockSecretsManagerAPIMockRecorder) ReplicateSecretToRegionsRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplicateSecretToRegionsRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ReplicateSecretToRegionsRequest), arg0) -} - -// ReplicateSecretToRegionsWithContext mocks base method. -func (m *MockSecretsManagerAPI) ReplicateSecretToRegionsWithContext(arg0 context.Context, arg1 *secretsmanager.ReplicateSecretToRegionsInput, arg2 ...request.Option) (*secretsmanager.ReplicateSecretToRegionsOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ReplicateSecretToRegionsWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.ReplicateSecretToRegionsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ReplicateSecretToRegionsWithContext indicates an expected call of ReplicateSecretToRegionsWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) ReplicateSecretToRegionsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplicateSecretToRegionsWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ReplicateSecretToRegionsWithContext), varargs...) -} - -// RestoreSecret mocks base method. -func (m *MockSecretsManagerAPI) RestoreSecret(arg0 *secretsmanager.RestoreSecretInput) (*secretsmanager.RestoreSecretOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RestoreSecret", arg0) - ret0, _ := ret[0].(*secretsmanager.RestoreSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RestoreSecret indicates an expected call of RestoreSecret. -func (mr *MockSecretsManagerAPIMockRecorder) RestoreSecret(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RestoreSecret), arg0) -} - -// RestoreSecretRequest mocks base method. -func (m *MockSecretsManagerAPI) RestoreSecretRequest(arg0 *secretsmanager.RestoreSecretInput) (*request.Request, *secretsmanager.RestoreSecretOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RestoreSecretRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.RestoreSecretOutput) - return ret0, ret1 -} - -// RestoreSecretRequest indicates an expected call of RestoreSecretRequest. -func (mr *MockSecretsManagerAPIMockRecorder) RestoreSecretRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreSecretRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RestoreSecretRequest), arg0) -} - -// RestoreSecretWithContext mocks base method. -func (m *MockSecretsManagerAPI) RestoreSecretWithContext(arg0 context.Context, arg1 *secretsmanager.RestoreSecretInput, arg2 ...request.Option) (*secretsmanager.RestoreSecretOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "RestoreSecretWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.RestoreSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RestoreSecretWithContext indicates an expected call of RestoreSecretWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) RestoreSecretWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreSecretWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RestoreSecretWithContext), varargs...) -} - -// RotateSecret mocks base method. -func (m *MockSecretsManagerAPI) RotateSecret(arg0 *secretsmanager.RotateSecretInput) (*secretsmanager.RotateSecretOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RotateSecret", arg0) - ret0, _ := ret[0].(*secretsmanager.RotateSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RotateSecret indicates an expected call of RotateSecret. -func (mr *MockSecretsManagerAPIMockRecorder) RotateSecret(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RotateSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RotateSecret), arg0) -} - -// RotateSecretRequest mocks base method. -func (m *MockSecretsManagerAPI) RotateSecretRequest(arg0 *secretsmanager.RotateSecretInput) (*request.Request, *secretsmanager.RotateSecretOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RotateSecretRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.RotateSecretOutput) - return ret0, ret1 -} - -// RotateSecretRequest indicates an expected call of RotateSecretRequest. -func (mr *MockSecretsManagerAPIMockRecorder) RotateSecretRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RotateSecretRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RotateSecretRequest), arg0) -} - -// RotateSecretWithContext mocks base method. -func (m *MockSecretsManagerAPI) RotateSecretWithContext(arg0 context.Context, arg1 *secretsmanager.RotateSecretInput, arg2 ...request.Option) (*secretsmanager.RotateSecretOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "RotateSecretWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.RotateSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RotateSecretWithContext indicates an expected call of RotateSecretWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) RotateSecretWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RotateSecretWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).RotateSecretWithContext), varargs...) -} - -// StopReplicationToReplica mocks base method. -func (m *MockSecretsManagerAPI) StopReplicationToReplica(arg0 *secretsmanager.StopReplicationToReplicaInput) (*secretsmanager.StopReplicationToReplicaOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "StopReplicationToReplica", arg0) - ret0, _ := ret[0].(*secretsmanager.StopReplicationToReplicaOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// StopReplicationToReplica indicates an expected call of StopReplicationToReplica. -func (mr *MockSecretsManagerAPIMockRecorder) StopReplicationToReplica(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopReplicationToReplica", reflect.TypeOf((*MockSecretsManagerAPI)(nil).StopReplicationToReplica), arg0) -} - -// StopReplicationToReplicaRequest mocks base method. -func (m *MockSecretsManagerAPI) StopReplicationToReplicaRequest(arg0 *secretsmanager.StopReplicationToReplicaInput) (*request.Request, *secretsmanager.StopReplicationToReplicaOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "StopReplicationToReplicaRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.StopReplicationToReplicaOutput) - return ret0, ret1 -} - -// StopReplicationToReplicaRequest indicates an expected call of StopReplicationToReplicaRequest. -func (mr *MockSecretsManagerAPIMockRecorder) StopReplicationToReplicaRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopReplicationToReplicaRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).StopReplicationToReplicaRequest), arg0) -} - -// StopReplicationToReplicaWithContext mocks base method. -func (m *MockSecretsManagerAPI) StopReplicationToReplicaWithContext(arg0 context.Context, arg1 *secretsmanager.StopReplicationToReplicaInput, arg2 ...request.Option) (*secretsmanager.StopReplicationToReplicaOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "StopReplicationToReplicaWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.StopReplicationToReplicaOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// StopReplicationToReplicaWithContext indicates an expected call of StopReplicationToReplicaWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) StopReplicationToReplicaWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopReplicationToReplicaWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).StopReplicationToReplicaWithContext), varargs...) -} - -// TagResource mocks base method. -func (m *MockSecretsManagerAPI) TagResource(arg0 *secretsmanager.TagResourceInput) (*secretsmanager.TagResourceOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "TagResource", arg0) - ret0, _ := ret[0].(*secretsmanager.TagResourceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// TagResource indicates an expected call of TagResource. -func (mr *MockSecretsManagerAPIMockRecorder) TagResource(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TagResource", reflect.TypeOf((*MockSecretsManagerAPI)(nil).TagResource), arg0) -} - -// TagResourceRequest mocks base method. -func (m *MockSecretsManagerAPI) TagResourceRequest(arg0 *secretsmanager.TagResourceInput) (*request.Request, *secretsmanager.TagResourceOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "TagResourceRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.TagResourceOutput) - return ret0, ret1 -} - -// TagResourceRequest indicates an expected call of TagResourceRequest. -func (mr *MockSecretsManagerAPIMockRecorder) TagResourceRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TagResourceRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).TagResourceRequest), arg0) -} - -// TagResourceWithContext mocks base method. -func (m *MockSecretsManagerAPI) TagResourceWithContext(arg0 context.Context, arg1 *secretsmanager.TagResourceInput, arg2 ...request.Option) (*secretsmanager.TagResourceOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "TagResourceWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.TagResourceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// TagResourceWithContext indicates an expected call of TagResourceWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) TagResourceWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TagResourceWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).TagResourceWithContext), varargs...) -} - -// UntagResource mocks base method. -func (m *MockSecretsManagerAPI) UntagResource(arg0 *secretsmanager.UntagResourceInput) (*secretsmanager.UntagResourceOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UntagResource", arg0) - ret0, _ := ret[0].(*secretsmanager.UntagResourceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UntagResource indicates an expected call of UntagResource. -func (mr *MockSecretsManagerAPIMockRecorder) UntagResource(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UntagResource", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UntagResource), arg0) -} - -// UntagResourceRequest mocks base method. -func (m *MockSecretsManagerAPI) UntagResourceRequest(arg0 *secretsmanager.UntagResourceInput) (*request.Request, *secretsmanager.UntagResourceOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UntagResourceRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.UntagResourceOutput) - return ret0, ret1 -} - -// UntagResourceRequest indicates an expected call of UntagResourceRequest. -func (mr *MockSecretsManagerAPIMockRecorder) UntagResourceRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UntagResourceRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UntagResourceRequest), arg0) -} - -// UntagResourceWithContext mocks base method. -func (m *MockSecretsManagerAPI) UntagResourceWithContext(arg0 context.Context, arg1 *secretsmanager.UntagResourceInput, arg2 ...request.Option) (*secretsmanager.UntagResourceOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "UntagResourceWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.UntagResourceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UntagResourceWithContext indicates an expected call of UntagResourceWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) UntagResourceWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UntagResourceWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UntagResourceWithContext), varargs...) -} - -// UpdateSecret mocks base method. -func (m *MockSecretsManagerAPI) UpdateSecret(arg0 *secretsmanager.UpdateSecretInput) (*secretsmanager.UpdateSecretOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSecret", arg0) - ret0, _ := ret[0].(*secretsmanager.UpdateSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateSecret indicates an expected call of UpdateSecret. -func (mr *MockSecretsManagerAPIMockRecorder) UpdateSecret(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UpdateSecret), arg0) -} - -// UpdateSecretRequest mocks base method. -func (m *MockSecretsManagerAPI) UpdateSecretRequest(arg0 *secretsmanager.UpdateSecretInput) (*request.Request, *secretsmanager.UpdateSecretOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSecretRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.UpdateSecretOutput) - return ret0, ret1 -} - -// UpdateSecretRequest indicates an expected call of UpdateSecretRequest. -func (mr *MockSecretsManagerAPIMockRecorder) UpdateSecretRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecretRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UpdateSecretRequest), arg0) -} - -// UpdateSecretVersionStage mocks base method. -func (m *MockSecretsManagerAPI) UpdateSecretVersionStage(arg0 *secretsmanager.UpdateSecretVersionStageInput) (*secretsmanager.UpdateSecretVersionStageOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSecretVersionStage", arg0) - ret0, _ := ret[0].(*secretsmanager.UpdateSecretVersionStageOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateSecretVersionStage indicates an expected call of UpdateSecretVersionStage. -func (mr *MockSecretsManagerAPIMockRecorder) UpdateSecretVersionStage(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecretVersionStage", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UpdateSecretVersionStage), arg0) -} - -// UpdateSecretVersionStageRequest mocks base method. -func (m *MockSecretsManagerAPI) UpdateSecretVersionStageRequest(arg0 *secretsmanager.UpdateSecretVersionStageInput) (*request.Request, *secretsmanager.UpdateSecretVersionStageOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSecretVersionStageRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.UpdateSecretVersionStageOutput) - return ret0, ret1 -} - -// UpdateSecretVersionStageRequest indicates an expected call of UpdateSecretVersionStageRequest. -func (mr *MockSecretsManagerAPIMockRecorder) UpdateSecretVersionStageRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecretVersionStageRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UpdateSecretVersionStageRequest), arg0) -} - -// UpdateSecretVersionStageWithContext mocks base method. -func (m *MockSecretsManagerAPI) UpdateSecretVersionStageWithContext(arg0 context.Context, arg1 *secretsmanager.UpdateSecretVersionStageInput, arg2 ...request.Option) (*secretsmanager.UpdateSecretVersionStageOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "UpdateSecretVersionStageWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.UpdateSecretVersionStageOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateSecretVersionStageWithContext indicates an expected call of UpdateSecretVersionStageWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) UpdateSecretVersionStageWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecretVersionStageWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UpdateSecretVersionStageWithContext), varargs...) -} - -// UpdateSecretWithContext mocks base method. -func (m *MockSecretsManagerAPI) UpdateSecretWithContext(arg0 context.Context, arg1 *secretsmanager.UpdateSecretInput, arg2 ...request.Option) (*secretsmanager.UpdateSecretOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "UpdateSecretWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.UpdateSecretOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateSecretWithContext indicates an expected call of UpdateSecretWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) UpdateSecretWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecretWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).UpdateSecretWithContext), varargs...) -} - -// ValidateResourcePolicy mocks base method. -func (m *MockSecretsManagerAPI) ValidateResourcePolicy(arg0 *secretsmanager.ValidateResourcePolicyInput) (*secretsmanager.ValidateResourcePolicyOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ValidateResourcePolicy", arg0) - ret0, _ := ret[0].(*secretsmanager.ValidateResourcePolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ValidateResourcePolicy indicates an expected call of ValidateResourcePolicy. -func (mr *MockSecretsManagerAPIMockRecorder) ValidateResourcePolicy(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateResourcePolicy", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ValidateResourcePolicy), arg0) -} - -// ValidateResourcePolicyRequest mocks base method. -func (m *MockSecretsManagerAPI) ValidateResourcePolicyRequest(arg0 *secretsmanager.ValidateResourcePolicyInput) (*request.Request, *secretsmanager.ValidateResourcePolicyOutput) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ValidateResourcePolicyRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*secretsmanager.ValidateResourcePolicyOutput) - return ret0, ret1 -} - -// ValidateResourcePolicyRequest indicates an expected call of ValidateResourcePolicyRequest. -func (mr *MockSecretsManagerAPIMockRecorder) ValidateResourcePolicyRequest(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateResourcePolicyRequest", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ValidateResourcePolicyRequest), arg0) -} - -// ValidateResourcePolicyWithContext mocks base method. -func (m *MockSecretsManagerAPI) ValidateResourcePolicyWithContext(arg0 context.Context, arg1 *secretsmanager.ValidateResourcePolicyInput, arg2 ...request.Option) (*secretsmanager.ValidateResourcePolicyOutput, error) { - m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ValidateResourcePolicyWithContext", varargs...) - ret0, _ := ret[0].(*secretsmanager.ValidateResourcePolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ValidateResourcePolicyWithContext indicates an expected call of ValidateResourcePolicyWithContext. -func (mr *MockSecretsManagerAPIMockRecorder) ValidateResourcePolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { +// DeleteSecret indicates an expected call of DeleteSecret. +func (mr *MockSecretsManagerAPIMockRecorder) DeleteSecret(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateResourcePolicyWithContext", reflect.TypeOf((*MockSecretsManagerAPI)(nil).ValidateResourcePolicyWithContext), varargs...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecret", reflect.TypeOf((*MockSecretsManagerAPI)(nil).DeleteSecret), varargs...) } diff --git a/pkg/cloud/services/secretsmanager/secret.go b/pkg/cloud/services/secretsmanager/secret.go index bc72aa084a..08ff8522a0 100644 --- a/pkg/cloud/services/secretsmanager/secret.go +++ b/pkg/cloud/services/secretsmanager/secret.go @@ -17,17 +17,18 @@ limitations under the License. package secretsmanager import ( + "context" "fmt" "path" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/secretsmanager" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/secretsmanager" kerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/uuid" infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/awserrors" - "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/converters" + "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/convertersv2" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/wait" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/internal/bytes" @@ -43,9 +44,9 @@ const ( var retryableErrors = []string{ // Returned when the secret is scheduled for deletion - secretsmanager.ErrCodeInvalidRequestException, + "InvalidRequestException", // Returned during retries of deletes prior to recreation - secretsmanager.ErrCodeResourceNotFoundException, + "ResourceNotFoundException", } // Create stores data in AWS Secrets Manager for a given machine, chunking at 10kb per secret. The prefix of the secret @@ -86,13 +87,14 @@ func (s *Service) Create(m *scope.MachineScope, data []byte) (string, int32, err // retryableCreateSecret is a function to be passed into a waiter. In a separate function for ease of reading. func (s *Service) retryableCreateSecret(name string, chunk []byte, tags infrav1.Tags) (bool, error) { - _, err := s.SecretsManagerClient.CreateSecret(&secretsmanager.CreateSecretInput{ + _, err := s.SecretsManagerClient.CreateSecret(context.TODO(), &secretsmanager.CreateSecretInput{ Name: aws.String(name), SecretBinary: chunk, - Tags: converters.MapToSecretsManagerTags(tags), + Tags: convertersv2.MapToSecretsManagerTags(tags), }) // If the secret already exists, delete it, return request to retry, as deletes are eventually consistent - if awserrors.IsResourceExists(err) { + smithyErr := awserrors.ParseSmithyError(err) + if smithyErr != nil && smithyErr.ErrorCode() == "ResourceExistsException" { return false, s.forceDeleteSecretEntry(name) } if err != nil { @@ -103,11 +105,12 @@ func (s *Service) retryableCreateSecret(name string, chunk []byte, tags infrav1. // forceDeleteSecretEntry deletes a single secret, ignoring if it is absent. func (s *Service) forceDeleteSecretEntry(name string) error { - _, err := s.SecretsManagerClient.DeleteSecret(&secretsmanager.DeleteSecretInput{ + _, err := s.SecretsManagerClient.DeleteSecret(context.TODO(), &secretsmanager.DeleteSecretInput{ SecretId: aws.String(name), ForceDeleteWithoutRecovery: aws.Bool(true), }) - if awserrors.IsNotFound(err) { + smithyErr := awserrors.ParseSmithyError(err) + if smithyErr != nil && smithyErr.ErrorCode() == "ResourceNotFoundException" { return nil } return err diff --git a/pkg/cloud/services/secretsmanager/secret_test.go b/pkg/cloud/services/secretsmanager/secret_test.go index 87cf7e958a..05576174fa 100644 --- a/pkg/cloud/services/secretsmanager/secret_test.go +++ b/pkg/cloud/services/secretsmanager/secret_test.go @@ -17,12 +17,14 @@ limitations under the License. package secretsmanager import ( + "context" "crypto/rand" "sort" "testing" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/secretsmanager" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/secretsmanager" + "github.com/aws/aws-sdk-go-v2/service/secretsmanager/types" "github.com/golang/mock/gomock" . "github.com/onsi/gomega" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -31,7 +33,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/fake" infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2" - "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/awserrors" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/secretsmanager/mock_secretsmanageriface" clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" @@ -48,13 +49,13 @@ func TestServiceCreate(t *testing.T) { return token } - sortTagsByKey := func(tags []*secretsmanager.Tag) { + sortTagsByKey := func(tags []types.Tag) { sort.Slice(tags, func(i, j int) bool { return *(tags[i].Key) < *(tags[j].Key) }) } - expectedTags := []*secretsmanager.Tag{ + expectedTags := []types.Tag{ { Key: aws.String("Name"), Value: aws.String("infra-cluster"), @@ -97,7 +98,7 @@ func TestServiceCreate(t *testing.T) { expectedPrefix: "/awsprefix", wantErr: false, expect: func(g *WithT, m *mock_secretsmanageriface.MockSecretsManagerAPIMockRecorder) { - m.CreateSecret(gomock.Any()).Times(0) + m.CreateSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Times(0) }, }, { @@ -107,8 +108,8 @@ func TestServiceCreate(t *testing.T) { expectedPrefix: "prefix", wantErr: false, expect: func(g *WithT, m *mock_secretsmanageriface.MockSecretsManagerAPIMockRecorder) { - m.CreateSecret(gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).MinTimes(1).Return(&secretsmanager.CreateSecretOutput{}, nil).Do( - func(createSecretInput *secretsmanager.CreateSecretInput) { + m.CreateSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).MinTimes(1).Return(&secretsmanager.CreateSecretOutput{}, nil).Do( + func(ctx context.Context, createSecretInput *secretsmanager.CreateSecretInput, optFns ...func(*secretsmanager.Options)) { g.Expect(*(createSecretInput.Name)).To(HavePrefix("prefix-")) sortTagsByKey(createSecretInput.Tags) g.Expect(createSecretInput.Tags).To(Equal(expectedTags)) @@ -123,8 +124,8 @@ func TestServiceCreate(t *testing.T) { expectedPrefix: "/prefix", wantErr: true, expect: func(g *WithT, m *mock_secretsmanageriface.MockSecretsManagerAPIMockRecorder) { - m.CreateSecret(gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(nil, &secretsmanager.InternalServiceError{}).Do( - func(createSecretInput *secretsmanager.CreateSecretInput) { + m.CreateSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(nil, &types.InternalServiceError{}).Do( + func(ctx context.Context, createSecretInput *secretsmanager.CreateSecretInput, optFns ...func(*secretsmanager.Options)) { g.Expect(*(createSecretInput.Name)).To(HavePrefix("/prefix-")) sortTagsByKey(createSecretInput.Tags) g.Expect(createSecretInput.Tags).To(Equal(expectedTags)) @@ -139,9 +140,9 @@ func TestServiceCreate(t *testing.T) { expectedPrefix: "aws.cluster.x-k8s.io", wantErr: false, expect: func(g *WithT, m *mock_secretsmanageriface.MockSecretsManagerAPIMockRecorder) { - m.CreateSecret(gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(nil, &secretsmanager.InvalidRequestException{}) - m.CreateSecret(gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(nil, &secretsmanager.ResourceNotFoundException{}) - m.CreateSecret(gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(&secretsmanager.CreateSecretOutput{}, nil) + m.CreateSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(nil, &types.InvalidRequestException{}) + m.CreateSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(nil, &types.ResourceNotFoundException{}) + m.CreateSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(&secretsmanager.CreateSecretOutput{}, nil) }, }, { @@ -151,9 +152,9 @@ func TestServiceCreate(t *testing.T) { expectedPrefix: "aws.cluster.x-k8s.io", wantErr: false, expect: func(g *WithT, m *mock_secretsmanageriface.MockSecretsManagerAPIMockRecorder) { - m.CreateSecret(gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(nil, &secretsmanager.ResourceExistsException{}) - m.DeleteSecret(gomock.AssignableToTypeOf(&secretsmanager.DeleteSecretInput{})).Return(&secretsmanager.DeleteSecretOutput{}, nil) - m.CreateSecret(gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(&secretsmanager.CreateSecretOutput{}, nil) + m.CreateSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(nil, &types.ResourceExistsException{}) + m.DeleteSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.DeleteSecretInput{})).Return(&secretsmanager.DeleteSecretOutput{}, nil) + m.CreateSecret(gomock.Any(), gomock.AssignableToTypeOf(&secretsmanager.CreateSecretInput{})).Return(&secretsmanager.CreateSecretOutput{}, nil) }, }, } @@ -202,7 +203,7 @@ func TestServiceDelete(t *testing.T) { name: "Should not return error when delete is successful", secretCount: 1, expect: func(m *mock_secretsmanageriface.MockSecretsManagerAPIMockRecorder) { - m.DeleteSecret(gomock.Eq(&secretsmanager.DeleteSecretInput{ + m.DeleteSecret(gomock.Any(), gomock.Eq(&secretsmanager.DeleteSecretInput{ SecretId: aws.String("prefix-0"), ForceDeleteWithoutRecovery: aws.Bool(true), })).Return(&secretsmanager.DeleteSecretOutput{}, nil) @@ -215,22 +216,22 @@ func TestServiceDelete(t *testing.T) { name: "Should return all errors except not found errors", secretCount: 3, expect: func(m *mock_secretsmanageriface.MockSecretsManagerAPIMockRecorder) { - m.DeleteSecret(gomock.Eq(&secretsmanager.DeleteSecretInput{ + m.DeleteSecret(gomock.Any(), gomock.Eq(&secretsmanager.DeleteSecretInput{ SecretId: aws.String("prefix-0"), ForceDeleteWithoutRecovery: aws.Bool(true), - })).Return(nil, awserrors.NewFailedDependency("failed dependency")) - m.DeleteSecret(gomock.Eq(&secretsmanager.DeleteSecretInput{ + })).Return(nil, &types.InternalServiceError{}) + m.DeleteSecret(gomock.Any(), gomock.Eq(&secretsmanager.DeleteSecretInput{ SecretId: aws.String("prefix-1"), ForceDeleteWithoutRecovery: aws.Bool(true), - })).Return(nil, awserrors.NewNotFound("not found")) - m.DeleteSecret(gomock.Eq(&secretsmanager.DeleteSecretInput{ + })).Return(nil, &types.ResourceNotFoundException{}) + m.DeleteSecret(gomock.Any(), gomock.Eq(&secretsmanager.DeleteSecretInput{ SecretId: aws.String("prefix-2"), ForceDeleteWithoutRecovery: aws.Bool(true), - })).Return(nil, awserrors.NewConflict("new conflict")) + })).Return(nil, &types.InvalidRequestException{}) }, check: func(g *WithT, err error) { g.Expect(err).ToNot(BeNil()) - g.Expect((err.Error())).To(Equal("[failed dependency, new conflict]")) + g.Expect((err.Error())).To(Equal("[InternalServiceError: , InvalidRequestException: ]")) }, }, } diff --git a/pkg/cloud/services/secretsmanager/service.go b/pkg/cloud/services/secretsmanager/service.go index c9a06510f6..405e88f197 100644 --- a/pkg/cloud/services/secretsmanager/service.go +++ b/pkg/cloud/services/secretsmanager/service.go @@ -18,7 +18,9 @@ limitations under the License. package secretsmanager import ( - "github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface" + "context" + + "github.com/aws/aws-sdk-go-v2/service/secretsmanager" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope" @@ -29,9 +31,17 @@ import ( // One alternative is to have a large list of functions from the ec2 client. type Service struct { scope cloud.ClusterScoper - SecretsManagerClient secretsmanageriface.SecretsManagerAPI + SecretsManagerClient SecretsManagerAPI +} + +// SecretsManagerAPI is the subset of the AWS Secrets Manager API that is used by CAPA. +type SecretsManagerAPI interface { + CreateSecret(ctx context.Context, params *secretsmanager.CreateSecretInput, optFns ...func(*secretsmanager.Options)) (*secretsmanager.CreateSecretOutput, error) + DeleteSecret(ctx context.Context, params *secretsmanager.DeleteSecretInput, optFns ...func(*secretsmanager.Options)) (*secretsmanager.DeleteSecretOutput, error) } +var _ SecretsManagerAPI = &secretsmanager.Client{} + // NewService returns a new service given the api clients. func NewService(secretsScope cloud.ClusterScoper) *Service { return &Service{ diff --git a/pkg/cloud/services/ssm/secret.go b/pkg/cloud/services/ssm/secret.go index 8d7b269957..309ef3ab1a 100644 --- a/pkg/cloud/services/ssm/secret.go +++ b/pkg/cloud/services/ssm/secret.go @@ -31,7 +31,6 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2" - "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/awserrors" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/converters" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/wait" @@ -49,29 +48,9 @@ var ( prefixRe = regexp.MustCompile(`(?i)^[\/]?(aws|ssm)[.]?`) retryableErrors = []string{ "ParameterLimitExceeded", - "ParameterAlreadyExists", } ) -func isErrorRetryable(err error, retryableCodes []string) bool { - // Use the ParseSmithyError utility to parse the error - smithyErr := awserrors.ParseSmithyError(err) - if smithyErr == nil { - return false - } - - // Get the error code from the parsed error - codeToCheck := smithyErr.ErrorCode() - - // Compare the extracted string with your list - for _, code := range retryableCodes { - if codeToCheck == code { - return true // It's a match! - } - } - return false -} - // Create stores data in AWS SSM for a given machine, chunking at 4kb per secret. The prefix of the secret // ARN and the number of chunks are returned. func (s *Service) Create(m *scope.MachineScope, data []byte) (string, int32, error) { diff --git a/pkg/cloud/services/ssm/secret_test.go b/pkg/cloud/services/ssm/secret_test.go index 5393659304..d140cc9ecb 100644 --- a/pkg/cloud/services/ssm/secret_test.go +++ b/pkg/cloud/services/ssm/secret_test.go @@ -36,7 +36,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/fake" infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2" - "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/awserrors" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope" "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/ssm/mock_ssmiface" clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" @@ -87,7 +86,7 @@ func TestServiceCreate(t *testing.T) { if !strings.HasPrefix(actualPrefix, expectedPrefix) { t.Fatalf("Prefix is not as expected: %v", actualPrefix) } - if (err != nil) != isErrorRetryable(err, retryableErrors) { + if (err != nil) != IsErrorExpected { t.Fatalf("Unexpected error value, error = %v, expectedError %v", err, IsErrorExpected) } } @@ -214,6 +213,7 @@ func TestServiceCreate(t *testing.T) { m.PutParameter(context.TODO(), gomock.AssignableToTypeOf(&ssm.PutParameterInput{})).Return(nil, &mockAPIError{ "ParameterLimitExceeded", "parameter limit exceeded"}) + m.PutParameter(context.TODO(), gomock.AssignableToTypeOf(&ssm.PutParameterInput{})).Return(&ssm.PutParameterOutput{}, nil) }, }, } @@ -275,7 +275,7 @@ func TestServiceDelete(t *testing.T) { expect: func(m *mock_ssmiface.MockSSMAPIMockRecorder) { m.DeleteParameter(context.TODO(), gomock.Eq(&ssm.DeleteParameterInput{ Name: aws.String("prefix/0"), - })).Return(nil, awserrors.NewFailedDependency("failed dependency")) + })).Return(nil, &smithy.GenericAPIError{Code: "FailedDependency", Message: "failed dependency"}) m.DeleteParameter(context.TODO(), gomock.Eq(&ssm.DeleteParameterInput{ Name: aws.String("prefix/1"), })).Return(nil, &mockAPIError{ @@ -284,11 +284,11 @@ func TestServiceDelete(t *testing.T) { }) m.DeleteParameter(context.TODO(), gomock.Eq(&ssm.DeleteParameterInput{ Name: aws.String("prefix/2"), - })).Return(nil, awserrors.NewConflict("new conflict")) + })).Return(nil, &smithy.GenericAPIError{Code: "Conflict", Message: "new conflict"}) }, wantErr: true, check: func(err error) { - if err.Error() != "[failed dependency, new conflict]" { + if err.Error() != "[api error FailedDependency: failed dependency, api error Conflict: new conflict]" { t.Fatalf("Unexpected error: %v", err) } }, diff --git a/pkg/cloud/services/wait/wait.go b/pkg/cloud/services/wait/wait.go index b725fa6b14..7f90e3f2ca 100644 --- a/pkg/cloud/services/wait/wait.go +++ b/pkg/cloud/services/wait/wait.go @@ -68,9 +68,16 @@ func WaitForWithRetryable(backoff wait.Backoff, condition wait.ConditionFunc, re // If the returned error isn't empty, check if the error is a retryable one, // or return immediately. - code, ok := awserrors.Code(errors.Cause(err)) - if !ok { - return false, err + // Also check for smithy errors + var code string + smithyErr := awserrors.ParseSmithyError(err) + if smithyErr != nil { + code = smithyErr.ErrorCode() + } else { + code, ok = awserrors.Code(errors.Cause(err)) + if !ok { + return false, err + } } for _, r := range retryableErrors { diff --git a/pkg/cloud/services/wait/wait_test.go b/pkg/cloud/services/wait/wait_test.go index 284786915c..24e97b0d8a 100644 --- a/pkg/cloud/services/wait/wait_test.go +++ b/pkg/cloud/services/wait/wait_test.go @@ -21,14 +21,14 @@ import ( "testing" "time" - "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/smithy-go" "k8s.io/apimachinery/pkg/util/wait" . "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/wait" ) var ( - errRetryable = awserr.New("retryable error", "", nil) + errRetryable = &smithy.GenericAPIError{Code: "retryable error", Message: "retryable error"} errNonRetryable = errors.New("non retryable error") retryableErrorCodes = []string{"retryable error"} ) diff --git a/test/e2e/shared/suite.go b/test/e2e/shared/suite.go index 6d9f0bbe71..f53f7039e5 100644 --- a/test/e2e/shared/suite.go +++ b/test/e2e/shared/suite.go @@ -158,6 +158,10 @@ func Node1BeforeSuite(e2eCtx *E2EContext) []byte { e2eCtx.Environment.BootstrapAccessKey = newUserAccessKey(context.TODO(), e2eCtx.AWSSessionV2, bootstrapTemplate.Spec.BootstrapUser.UserName) e2eCtx.BootstrapUserAWSSession = NewAWSSessionWithKey(e2eCtx.Environment.BootstrapAccessKey) e2eCtx.BootstrapUserAWSSessionV2 = NewAWSSessionWithKeyV2(e2eCtx.Environment.BootstrapAccessKey) + + By("Waiting for access key to propagate...") + time.Sleep(10 * time.Second) + Expect(ensureTestImageUploaded(e2eCtx)).NotTo(HaveOccurred()) // Image ID is needed when using a CI Kubernetes version. This is used in conformance test and upgrade to main test. diff --git a/test/e2e/suites/managed/aws_node_env.go b/test/e2e/suites/managed/aws_node_env.go index 90685dba7d..82359d1dc7 100644 --- a/test/e2e/suites/managed/aws_node_env.go +++ b/test/e2e/suites/managed/aws_node_env.go @@ -24,7 +24,7 @@ import ( "errors" "fmt" - "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go-v2/aws" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" appsv1 "k8s.io/api/apps/v1" @@ -39,7 +39,7 @@ import ( type UpdateAwsNodeVersionSpecInput struct { E2EConfig *clusterctl.E2EConfig BootstrapClusterProxy framework.ClusterProxy - AWSSession client.ConfigProvider + AWSSession *aws.Config Namespace *corev1.Namespace ClusterName string } diff --git a/test/e2e/suites/managed/cluster.go b/test/e2e/suites/managed/cluster.go index e0d70706bd..396d898591 100644 --- a/test/e2e/suites/managed/cluster.go +++ b/test/e2e/suites/managed/cluster.go @@ -26,7 +26,6 @@ import ( "time" "github.com/aws/aws-sdk-go-v2/aws" - "github.com/aws/aws-sdk-go/aws/client" "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" @@ -44,8 +43,7 @@ type ManagedClusterSpecInput struct { E2EConfig *clusterctl.E2EConfig ConfigClusterFn DefaultConfigClusterFn BootstrapClusterProxy framework.ClusterProxy - AWSSession client.ConfigProvider - AWSSessionV2 *aws.Config + AWSSession *aws.Config Namespace *corev1.Namespace ClusterName string Flavour string @@ -89,14 +87,14 @@ func ManagedClusterSpec(ctx context.Context, inputGetter func() ManagedClusterSp ginkgo.By("Checking EKS cluster is active") eksClusterName := getEKSClusterName(input.Namespace.Name, input.ClusterName) - verifyClusterActiveAndOwned(ctx, eksClusterName, input.AWSSessionV2) + verifyClusterActiveAndOwned(ctx, eksClusterName, input.AWSSession) if input.CluserSpecificRoles { ginkgo.By("Checking that the cluster specific IAM role exists") - VerifyRoleExistsAndOwned(ctx, fmt.Sprintf("%s-iam-service-role", input.ClusterName), eksClusterName, true, input.AWSSessionV2) + VerifyRoleExistsAndOwned(ctx, fmt.Sprintf("%s-iam-service-role", input.ClusterName), eksClusterName, true, input.AWSSession) } else { ginkgo.By("Checking that the cluster default IAM role exists") - VerifyRoleExistsAndOwned(ctx, ekscontrolplanev1.DefaultEKSControlPlaneRole, eksClusterName, false, input.AWSSessionV2) + VerifyRoleExistsAndOwned(ctx, ekscontrolplanev1.DefaultEKSControlPlaneRole, eksClusterName, false, input.AWSSession) } ginkgo.By("Checking kubeconfig secrets exist") diff --git a/test/e2e/suites/managed/eks_ipv6_test.go b/test/e2e/suites/managed/eks_ipv6_test.go index ced329bb25..a9f691d142 100644 --- a/test/e2e/suites/managed/eks_ipv6_test.go +++ b/test/e2e/suites/managed/eks_ipv6_test.go @@ -66,8 +66,7 @@ var _ = ginkgo.Describe("[managed] [general] [ipv6] EKS cluster tests", func() { E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, Flavour: EKSIPv6ClusterFlavor, @@ -82,8 +81,7 @@ var _ = ginkgo.Describe("[managed] [general] [ipv6] EKS cluster tests", func() { E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, IncludeScaling: false, diff --git a/test/e2e/suites/managed/eks_legacy_test.go b/test/e2e/suites/managed/eks_legacy_test.go index b749b77e5f..900760f3b2 100644 --- a/test/e2e/suites/managed/eks_legacy_test.go +++ b/test/e2e/suites/managed/eks_legacy_test.go @@ -66,8 +66,7 @@ var _ = ginkgo.Describe("[managed] [legacy] EKS cluster tests - single kind", fu E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, Flavour: EKSControlPlaneOnlyLegacyFlavor, @@ -82,8 +81,7 @@ var _ = ginkgo.Describe("[managed] [legacy] EKS cluster tests - single kind", fu E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, IncludeScaling: false, diff --git a/test/e2e/suites/managed/eks_test.go b/test/e2e/suites/managed/eks_test.go index 3ee6a575c0..cddc0a83ed 100644 --- a/test/e2e/suites/managed/eks_test.go +++ b/test/e2e/suites/managed/eks_test.go @@ -64,8 +64,7 @@ var _ = ginkgo.Describe("[managed] [general] EKS cluster tests", func() { E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, Flavour: EKSControlPlaneOnlyWithAddonFlavor, @@ -79,7 +78,7 @@ var _ = ginkgo.Describe("[managed] [general] EKS cluster tests", func() { return UpdateAwsNodeVersionSpecInput{ E2EConfig: e2eCtx.E2EConfig, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, } @@ -104,7 +103,7 @@ var _ = ginkgo.Describe("[managed] [general] EKS cluster tests", func() { E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, Replicas: 1, @@ -118,8 +117,7 @@ var _ = ginkgo.Describe("[managed] [general] EKS cluster tests", func() { E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, IncludeScaling: true, @@ -135,8 +133,7 @@ var _ = ginkgo.Describe("[managed] [general] EKS cluster tests", func() { E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, IncludeScaling: true, @@ -153,8 +150,7 @@ var _ = ginkgo.Describe("[managed] [general] EKS cluster tests", func() { E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, IncludeScaling: true, diff --git a/test/e2e/suites/managed/gc_test.go b/test/e2e/suites/managed/gc_test.go index 51a34e99d2..d8a0f7d00d 100644 --- a/test/e2e/suites/managed/gc_test.go +++ b/test/e2e/suites/managed/gc_test.go @@ -63,8 +63,7 @@ var _ = ginkgo.Describe("[managed] [gc] EKS Cluster external resource GC tests", E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, Flavour: EKSManagedPoolFlavor, @@ -187,8 +186,7 @@ var _ = ginkgo.Describe("[managed] [gc] EKS Cluster external resource GC tests", E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, Flavour: EKSManagedPoolFlavor, diff --git a/test/e2e/suites/managed/machine_deployment.go b/test/e2e/suites/managed/machine_deployment.go index 79d26d3355..4ef19a0f8d 100644 --- a/test/e2e/suites/managed/machine_deployment.go +++ b/test/e2e/suites/managed/machine_deployment.go @@ -23,7 +23,7 @@ import ( "context" "fmt" - "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go-v2/aws" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" @@ -40,7 +40,7 @@ type MachineDeploymentSpecInput struct { E2EConfig *clusterctl.E2EConfig ConfigClusterFn DefaultConfigClusterFn BootstrapClusterProxy framework.ClusterProxy - AWSSession client.ConfigProvider + AWSSession *aws.Config Namespace *corev1.Namespace Replicas int64 ClusterName string diff --git a/test/e2e/suites/managed/machine_pool.go b/test/e2e/suites/managed/machine_pool.go index 8078aaa48d..429f82a5b7 100644 --- a/test/e2e/suites/managed/machine_pool.go +++ b/test/e2e/suites/managed/machine_pool.go @@ -26,7 +26,6 @@ import ( "strings" "github.com/aws/aws-sdk-go-v2/aws" - "github.com/aws/aws-sdk-go/aws/client" "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" @@ -42,8 +41,7 @@ type MachinePoolSpecInput struct { E2EConfig *clusterctl.E2EConfig ConfigClusterFn DefaultConfigClusterFn BootstrapClusterProxy framework.ClusterProxy - AWSSession client.ConfigProvider - AWSSessionV2 *aws.Config + AWSSession *aws.Config Namespace *corev1.Namespace ClusterName string IncludeScaling bool @@ -60,7 +58,6 @@ func MachinePoolSpec(ctx context.Context, inputGetter func() MachinePoolSpecInpu Expect(input.ConfigClusterFn).ToNot(BeNil(), "Invalid argument. input.ConfigClusterFn can't be nil") Expect(input.BootstrapClusterProxy).ToNot(BeNil(), "Invalid argument. input.BootstrapClusterProxy can't be nil") Expect(input.AWSSession).ToNot(BeNil(), "Invalid argument. input.AWSSession can't be nil") - Expect(input.AWSSessionV2).ToNot(BeNil(), "Invalid argument. input.AWSCfg can't be nil") Expect(input.Namespace).NotTo(BeNil(), "Invalid argument. input.Namespace can't be nil") Expect(input.ClusterName).ShouldNot(BeEmpty(), "Invalid argument. input.ClusterName can't be empty") Expect(input.Flavor).ShouldNot(BeEmpty(), "Invalid argument. input.Flavor can't be empty") @@ -110,10 +107,10 @@ func MachinePoolSpec(ctx context.Context, inputGetter func() MachinePoolSpecInpu } else { nodeGroupName = getEKSNodegroupName(input.Namespace.Name, input.ClusterName) } - verifyManagedNodeGroup(ctx, eksClusterName, nodeGroupName, true, input.AWSSessionV2) + verifyManagedNodeGroup(ctx, eksClusterName, nodeGroupName, true, input.AWSSession) } else { asgName := getASGName(input.ClusterName) - verifyASG(eksClusterName, asgName, true, input.AWSSessionV2) + verifyASG(eksClusterName, asgName, true, input.AWSSession) } if input.IncludeScaling { // TODO (richardcase): should this be a separate spec? diff --git a/test/e2e/suites/managed/upgrade_test.go b/test/e2e/suites/managed/upgrade_test.go index 464c0ff3b8..dd7e1f3b32 100644 --- a/test/e2e/suites/managed/upgrade_test.go +++ b/test/e2e/suites/managed/upgrade_test.go @@ -67,8 +67,7 @@ var _ = ginkgo.Describe("EKS Cluster upgrade test", func() { E2EConfig: e2eCtx.E2EConfig, ConfigClusterFn: defaultConfigCluster, BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy, - AWSSession: e2eCtx.BootstrapUserAWSSession, - AWSSessionV2: e2eCtx.BootstrapUserAWSSessionV2, + AWSSession: e2eCtx.BootstrapUserAWSSessionV2, Namespace: namespace, ClusterName: clusterName, Flavour: EKSControlPlaneOnlyFlavor, // TODO (richardcase) - change in the future when upgrades to machinepools work diff --git a/test/mocks/capa_clusterscoper_mock.go b/test/mocks/capa_clusterscoper_mock.go index 2a45045bf9..e3664a61e0 100644 --- a/test/mocks/capa_clusterscoper_mock.go +++ b/test/mocks/capa_clusterscoper_mock.go @@ -25,7 +25,6 @@ import ( time "time" aws "github.com/aws/aws-sdk-go-v2/aws" - client "github.com/aws/aws-sdk-go/aws/client" logging "github.com/aws/smithy-go/logging" logr "github.com/go-logr/logr" gomock "github.com/golang/mock/gomock" @@ -35,7 +34,7 @@ import ( throttle "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/throttle" logger "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/logger" v1beta1 "sigs.k8s.io/cluster-api/api/v1beta1" - client0 "sigs.k8s.io/controller-runtime/pkg/client" + client "sigs.k8s.io/controller-runtime/pkg/client" ) // MockClusterScoper is a mock of ClusterScoper interface. @@ -267,10 +266,10 @@ func (mr *MockClusterScoperMockRecorder) KubernetesClusterName() *gomock.Call { } // ListOptionsLabelSelector mocks base method. -func (m *MockClusterScoper) ListOptionsLabelSelector() client0.ListOption { +func (m *MockClusterScoper) ListOptionsLabelSelector() client.ListOption { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListOptionsLabelSelector") - ret0, _ := ret[0].(client0.ListOption) + ret0, _ := ret[0].(client.ListOption) return ret0 } @@ -365,10 +364,10 @@ func (mr *MockClusterScoperMockRecorder) ServiceLimiter(arg0 interface{}) *gomoc } // Session mocks base method. -func (m *MockClusterScoper) Session() client.ConfigProvider { +func (m *MockClusterScoper) Session() aws.Config { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Session") - ret0, _ := ret[0].(client.ConfigProvider) + ret0, _ := ret[0].(aws.Config) return ret0 } @@ -378,20 +377,6 @@ func (mr *MockClusterScoperMockRecorder) Session() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Session", reflect.TypeOf((*MockClusterScoper)(nil).Session)) } -// SessionV2 mocks base method. -func (m *MockClusterScoper) SessionV2() aws.Config { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SessionV2") - ret0, _ := ret[0].(aws.Config) - return ret0 -} - -// SessionV2 indicates an expected call of SessionV2. -func (mr *MockClusterScoperMockRecorder) SessionV2() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SessionV2", reflect.TypeOf((*MockClusterScoper)(nil).SessionV2)) -} - // SetFailureDomain mocks base method. func (m *MockClusterScoper) SetFailureDomain(arg0 string, arg1 v1beta1.FailureDomainSpec) { m.ctrl.T.Helper()