Skip to content

Commit f5c2099

Browse files
committed
fix: address failing test issues
Signed-off-by: Pankaj Walke <[email protected]>
1 parent aa84c37 commit f5c2099

File tree

13 files changed

+96
-103
lines changed

13 files changed

+96
-103
lines changed

pkg/cloud/endpoints/endpoints.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ func containsString(slice []string, s string) bool {
121121
return false
122122
}
123123

124-
// TODO: punkwalker - remove this after Go SDK V2 migration
124+
// TODO: punkwalker - remove this after Go SDK V2 migration.
125125
func saveToServiceEndpointV2Map(src []scope.ServiceEndpoint) {
126126
for _, svc := range src {
127127
endpoint := endpointsv2.ServiceEndpoint{

pkg/cloud/endpointsv2/endpoints.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
// Package endpoints contains aws endpoint related utilities.
17+
// Package endpointsv2 contains aws endpoint related utilities.
1818
package endpointsv2
1919

2020
import (
@@ -32,8 +32,8 @@ var (
3232
errServiceEndpointSigningRegion = errors.New("must be formatted as ${SigningRegion}:${ServiceID1}=${URL1},${ServiceID2}=${URL2...}")
3333
errServiceEndpointURL = errors.New("must use a valid URL as a service-endpoint")
3434
errServiceEndpointDuplicateServiceID = errors.New("same serviceID defined twice for signing region")
35-
// ServiceEndpointsMap Can be made private after Go SDK V2 migration
36-
ServiceEndpointsMap map[string]ServiceEndpoint
35+
// ServiceEndpointsMap Can be made private after Go SDK V2 migration.
36+
ServiceEndpointsMap = map[string]ServiceEndpoint{}
3737
)
3838

3939
// ServiceEndpoint contains AWS Service resolution information for SDK V2.
@@ -82,26 +82,26 @@ func ParseFlag(serviceEndpoints string) error {
8282
return nil
8383
}
8484

85-
// Custom EndpointResolverV2 ResolveEndpoint handlers
85+
// Custom EndpointResolverV2 ResolveEndpoint handlers.
8686

87-
// MultiServiceEndpointResolver implements EndpointResolverV2 interface for services
87+
// MultiServiceEndpointResolver implements EndpointResolverV2 interface for services.
8888
type MultiServiceEndpointResolver struct {
8989
endpoints map[string]ServiceEndpoint
9090
}
9191

92-
// NewMultiServiceEndpointResolver returns new MultiServiceEndpointResolver
92+
// NewMultiServiceEndpointResolver returns new MultiServiceEndpointResolver.
9393
func NewMultiServiceEndpointResolver() *MultiServiceEndpointResolver {
9494
return &MultiServiceEndpointResolver{
9595
endpoints: ServiceEndpointsMap,
9696
}
9797
}
9898

99-
// S3EndpointResolver implements EndpointResolverV2 interface for S3
99+
// S3EndpointResolver implements EndpointResolverV2 interface for S3.
100100
type S3EndpointResolver struct {
101101
*MultiServiceEndpointResolver
102102
}
103103

104-
// ResolveEndpoint for S3
104+
// ResolveEndpoint for S3.
105105
func (s *S3EndpointResolver) ResolveEndpoint(ctx context.Context, params s3.EndpointParameters) (smithyendpoints.Endpoint, error) {
106106
// If custom endpoint not found, return default endpoint for the service
107107
if _, ok := s.endpoints[s3.ServiceID]; !ok {

pkg/cloud/identityv2/identity.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
// Package identity provides the AWSPrincipalTypeProvider interface and its implementations.
17+
// Package identityv2 provides the AWSPrincipalTypeProvider interface and its implementations.
1818
package identityv2
1919

2020
import (
@@ -158,7 +158,6 @@ func (p *AWSRolePrincipalTypeProvider) Name() string {
158158

159159
// Retrieve returns the credential values for the AWSRolePrincipalTypeProvider.
160160
func (p *AWSRolePrincipalTypeProvider) Retrieve(ctx context.Context) (aws.Credentials, error) {
161-
162161
if p.credentials == nil {
163162
optFns := []func(*config.LoadOptions) error{config.WithRegion(p.region)}
164163
if p.sourceProvider != nil {

pkg/cloud/metricsv2/metrics.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
// Package metrics provides a way to capture request metrics.
17+
// Package metricsv2 provides a way to capture request metrics.
1818
package metricsv2
1919

2020
import (
@@ -85,6 +85,7 @@ func init() {
8585

8686
type requestContextKey struct{}
8787

88+
// RequestData holds information related to request metrics.
8889
type RequestData struct {
8990
RequestStartTime time.Time
9091
RequestEndTime time.Time
@@ -100,7 +101,8 @@ type RequestData struct {
100101
Attempts int
101102
}
102103

103-
// Inspired by https://github.com/jonathan-innis/aws-sdk-go-prometheus/v2
104+
// WithMiddlewares adds instrumentation middleware stacks to AWS GO SDK V2 service clients.
105+
// Inspired by https://github.com/jonathan-innis/aws-sdk-go-prometheus/v2.
104106
func WithMiddlewares(controller string, target runtime.Object) func(stack *middleware.Stack) error {
105107
return func(stack *middleware.Stack) error {
106108
if err := stack.Initialize.Add(getMetricCollectionMiddleware(controller, target), middleware.Before); err != nil {
@@ -115,10 +117,7 @@ func WithMiddlewares(controller string, target runtime.Object) func(stack *middl
115117
if err := stack.Finalize.Insert(getAttemptContextMiddleware(), "Retry", middleware.After); err != nil {
116118
return err
117119
}
118-
if err := stack.Deserialize.Add(getRecordAWSPermissionsIssueMiddleware(target), middleware.After); err != nil {
119-
return err
120-
}
121-
return nil
120+
return stack.Deserialize.Add(getRecordAWSPermissionsIssueMiddleware(target), middleware.After)
122121
}
123122
}
124123

@@ -148,14 +147,18 @@ func getRequestMetricContextMiddleware() middleware.FinalizeMiddleware {
148147
})
149148
}
150149

151-
// For capturing retry count and status codes
150+
// For capturing retry count and status codes.
152151
func getAttemptContextMiddleware() middleware.FinalizeMiddleware {
153152
return middleware.FinalizeMiddlewareFunc("capa/AttemptMetricContextMiddleware", func(ctx context.Context, input middleware.FinalizeInput, handler middleware.FinalizeHandler) (middleware.FinalizeOutput, middleware.Metadata, error) {
154153
request := getContext(ctx)
155154
request.Attempts++
156155
out, metadata, err := handler.HandleFinalize(ctx, input)
157156
response := getRawResponse(metadata)
158157

158+
if response.Body != nil {
159+
defer response.Body.Close()
160+
}
161+
159162
// This will record only last attempts status code.
160163
// Can be further extended to capture status codes of all attempts
161164
if response != nil {
@@ -167,7 +170,6 @@ func getAttemptContextMiddleware() middleware.FinalizeMiddleware {
167170
return out, metadata, err
168171
})
169172
}
170-
171173
func getRecordAWSPermissionsIssueMiddleware(target runtime.Object) middleware.DeserializeMiddleware {
172174
return middleware.DeserializeMiddlewareFunc("capa/RecordAWSPermissionsIssueMiddleware", func(ctx context.Context, input middleware.DeserializeInput, handler middleware.DeserializeHandler) (middleware.DeserializeOutput, middleware.Metadata, error) {
173175
r, ok := input.Request.(*smithyhttp.ResponseError)

pkg/cloud/scope/cluster.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ func NewClusterScope(params ClusterScopeParams) (*ClusterScope, error) {
7979
return nil, errors.Errorf("failed to create aws session: %v", err)
8080
}
8181

82-
sessionv2, _, err := sessionForClusterWithRegionV2(params.Client, clusterScope, params.AWSCluster.Spec.Region, params.Endpoints, params.Logger)
82+
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, clusterScope, params.AWSCluster.Spec.Region, params.Endpoints, params.Logger)
8383
if err != nil {
8484
return nil, errors.Errorf("failed to create aws V2 session: %v", err)
8585
}
@@ -93,6 +93,7 @@ func NewClusterScope(params ClusterScopeParams) (*ClusterScope, error) {
9393
clusterScope.session = session
9494
clusterScope.sessionV2 = *sessionv2
9595
clusterScope.serviceLimiters = serviceLimiters
96+
clusterScope.serviceLimitersV2 = serviceLimitersv2
9697

9798
return clusterScope, nil
9899
}
@@ -106,10 +107,11 @@ type ClusterScope struct {
106107
Cluster *clusterv1.Cluster
107108
AWSCluster *infrav1.AWSCluster
108109

109-
session awsclient.ConfigProvider
110-
sessionV2 awsv2.Config
111-
serviceLimiters throttle.ServiceLimiters
112-
controllerName string
110+
session awsclient.ConfigProvider
111+
sessionV2 awsv2.Config
112+
serviceLimiters throttle.ServiceLimiters
113+
serviceLimitersV2 throttle.ServiceLimiters
114+
controllerName string
113115

114116
tagUnmanagedNetworkResources bool
115117
}
@@ -360,7 +362,7 @@ func (s *ClusterScope) Session() awsclient.ConfigProvider {
360362
return s.session
361363
}
362364

363-
// Session returns the AWS SDK V2 session. Used for creating clients.
365+
// SessionV2 returns the AWS SDK V2 session. Used for creating clients.
364366
func (s *ClusterScope) SessionV2() awsv2.Config {
365367
return s.sessionV2
366368
}

pkg/cloud/scope/fargate.go

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ func NewFargateProfileScope(params FargateProfileScopeParams) (*FargateProfileSc
7575
return nil, errors.Errorf("failed to create aws session: %v", err)
7676
}
7777

78-
sessionv2, _, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
78+
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
7979
if err != nil {
8080
return nil, errors.Errorf("failed to create aws v2 session: %v", err)
8181
}
@@ -86,17 +86,18 @@ func NewFargateProfileScope(params FargateProfileScopeParams) (*FargateProfileSc
8686
}
8787

8888
return &FargateProfileScope{
89-
Logger: *params.Logger,
90-
Client: params.Client,
91-
Cluster: params.Cluster,
92-
ControlPlane: params.ControlPlane,
93-
FargateProfile: params.FargateProfile,
94-
patchHelper: helper,
95-
session: session,
96-
sessionV2: *sessionv2,
97-
serviceLimiters: serviceLimiters,
98-
controllerName: params.ControllerName,
99-
enableIAM: params.EnableIAM,
89+
Logger: *params.Logger,
90+
Client: params.Client,
91+
Cluster: params.Cluster,
92+
ControlPlane: params.ControlPlane,
93+
FargateProfile: params.FargateProfile,
94+
patchHelper: helper,
95+
session: session,
96+
sessionV2: *sessionv2,
97+
serviceLimiters: serviceLimiters,
98+
serviceLimitersV2: serviceLimitersv2,
99+
controllerName: params.ControllerName,
100+
enableIAM: params.EnableIAM,
100101
}, nil
101102
}
102103

@@ -110,10 +111,11 @@ type FargateProfileScope struct {
110111
ControlPlane *ekscontrolplanev1.AWSManagedControlPlane
111112
FargateProfile *expinfrav1.AWSFargateProfile
112113

113-
session awsclient.ConfigProvider
114-
sessionV2 awsv2.Config
115-
serviceLimiters throttle.ServiceLimiters
116-
controllerName string
114+
session awsclient.ConfigProvider
115+
sessionV2 awsv2.Config
116+
serviceLimiters throttle.ServiceLimiters
117+
serviceLimitersV2 throttle.ServiceLimiters
118+
controllerName string
117119

118120
enableIAM bool
119121
}
@@ -228,7 +230,7 @@ func (s *FargateProfileScope) Session() awsclient.ConfigProvider {
228230
return s.session
229231
}
230232

231-
// Session returns the AWS SDK session. Used for creating clients.
233+
// SessionV2 returns the AWS SDK session. Used for creating clients.
232234
func (s *FargateProfileScope) SessionV2() awsv2.Config {
233235
return s.sessionV2
234236
}

pkg/cloud/scope/global.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,3 @@ func (s *GlobalScope) ServiceLimiter(service string) *throttle.ServiceLimiter {
8888
func (s *GlobalScope) ControllerName() string {
8989
return s.controllerName
9090
}
91-
92-
// // Endpoint returns service endpoint for a given service.
93-
// func (s *GlobalScope) Endpoint(serviceID string) (*ServiceEndpoint, error) {
94-
// for _, s := range s.endpoints {
95-
// if serviceID == s.ServiceID {
96-
// return &s, nil
97-
// }
98-
// }
99-
// return nil, errors.Errorf("no endpoint found for service %s", serviceID)
100-
// }

pkg/cloud/scope/managedcontrolplane.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,15 @@ func NewManagedControlPlaneScope(params ManagedControlPlaneScopeParams) (*Manage
102102
return nil, errors.Errorf("failed to create aws session: %v", err)
103103
}
104104

105-
sessionv2, _, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
105+
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
106106
if err != nil {
107107
return nil, errors.Errorf("failed to create aws V2 session: %v", err)
108108
}
109109

110110
managedScope.session = session
111111
managedScope.sessionV2 = *sessionv2
112112
managedScope.serviceLimiters = serviceLimiters
113+
managedScope.serviceLimitersV2 = serviceLimitersv2
113114

114115
helper, err := patch.NewHelper(params.ControlPlane, params.Client)
115116
if err != nil {
@@ -129,10 +130,11 @@ type ManagedControlPlaneScope struct {
129130
Cluster *clusterv1.Cluster
130131
ControlPlane *ekscontrolplanev1.AWSManagedControlPlane
131132

132-
session awsclient.ConfigProvider
133-
sessionV2 awsv2.Config
134-
serviceLimiters throttle.ServiceLimiters
135-
controllerName string
133+
session awsclient.ConfigProvider
134+
sessionV2 awsv2.Config
135+
serviceLimiters throttle.ServiceLimiters
136+
serviceLimitersV2 throttle.ServiceLimiters
137+
controllerName string
136138

137139
enableIAM bool
138140
allowAdditionalRoles bool
@@ -334,7 +336,7 @@ func (s *ManagedControlPlaneScope) Session() awsclient.ConfigProvider {
334336
return s.session
335337
}
336338

337-
// Session returns the AWS SDK config. Used for creating clients.
339+
// SessionV2 returns the AWS SDK config. Used for creating clients.
338340
func (s *ManagedControlPlaneScope) SessionV2() awsv2.Config {
339341
return s.sessionV2
340342
}

pkg/cloud/scope/managednodegroup.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func NewManagedMachinePoolScope(params ManagedMachinePoolScopeParams) (*ManagedM
9090
return nil, errors.Errorf("failed to create aws session: %v", err)
9191
}
9292

93-
sessionv2, _, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
93+
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
9494
if err != nil {
9595
return nil, errors.Errorf("failed to create aws V2 session: %v", err)
9696
}
@@ -118,6 +118,7 @@ func NewManagedMachinePoolScope(params ManagedMachinePoolScopeParams) (*ManagedM
118118
session: session,
119119
sessionV2: *sessionv2,
120120
serviceLimiters: serviceLimiters,
121+
serviceLimitersV2: serviceLimitersv2,
121122
controllerName: params.ControllerName,
122123
enableIAM: params.EnableIAM,
123124
allowAdditionalRoles: params.AllowAdditionalRoles,
@@ -137,10 +138,11 @@ type ManagedMachinePoolScope struct {
137138
MachinePool *expclusterv1.MachinePool
138139
EC2Scope EC2Scope
139140

140-
session awsclient.ConfigProvider
141-
sessionV2 awsv2.Config
142-
serviceLimiters throttle.ServiceLimiters
143-
controllerName string
141+
session awsclient.ConfigProvider
142+
sessionV2 awsv2.Config
143+
serviceLimiters throttle.ServiceLimiters
144+
serviceLimitersV2 throttle.ServiceLimiters
145+
controllerName string
144146

145147
enableIAM bool
146148
allowAdditionalRoles bool
@@ -309,7 +311,7 @@ func (s *ManagedMachinePoolScope) Session() awsclient.ConfigProvider {
309311
return s.session
310312
}
311313

312-
// Session returns the AWS SDK V2 config. Used for creating clients.
314+
// SessionV2 returns the AWS SDK V2 config. Used for creating clients.
313315
func (s *ManagedMachinePoolScope) SessionV2() awsv2.Config {
314316
return s.sessionV2
315317
}

pkg/cloud/scope/rosacontrolplane.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func NewROSAControlPlaneScope(params ROSAControlPlaneScopeParams) (*ROSAControlP
7878
return nil, errors.Errorf("failed to create aws session: %v", err)
7979
}
8080

81-
sessionv2, _, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
81+
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
8282
if err != nil {
8383
return nil, errors.Errorf("failed to create aws V2 session: %v", err)
8484
}
@@ -92,6 +92,7 @@ func NewROSAControlPlaneScope(params ROSAControlPlaneScopeParams) (*ROSAControlP
9292
managedScope.session = session
9393
managedScope.sessionV2 = *sessionv2
9494
managedScope.serviceLimiters = serviceLimiters
95+
managedScope.serviceLimitersV2 = serviceLimitersv2
9596

9697
stsClient := params.NewStsClient(managedScope, managedScope, managedScope, managedScope.ControlPlane)
9798
identity, err := stsClient.GetCallerIdentity(&sts.GetCallerIdentityInput{})
@@ -112,11 +113,12 @@ type ROSAControlPlaneScope struct {
112113
Cluster *clusterv1.Cluster
113114
ControlPlane *rosacontrolplanev1.ROSAControlPlane
114115

115-
session awsclient.ConfigProvider
116-
sessionV2 awsv2.Config
117-
serviceLimiters throttle.ServiceLimiters
118-
controllerName string
119-
Identity *sts.GetCallerIdentityOutput
116+
session awsclient.ConfigProvider
117+
sessionV2 awsv2.Config
118+
serviceLimiters throttle.ServiceLimiters
119+
serviceLimitersV2 throttle.ServiceLimiters
120+
controllerName string
121+
Identity *sts.GetCallerIdentityOutput
120122
}
121123

122124
// InfraCluster returns the AWSManagedControlPlane object.
@@ -134,7 +136,7 @@ func (s *ROSAControlPlaneScope) Session() awsclient.ConfigProvider {
134136
return s.session
135137
}
136138

137-
// Session returns the AWS SDK V2 Config. Used for creating clients.
139+
// SessionV2 returns the AWS SDK V2 Config. Used for creating clients.
138140
func (s *ROSAControlPlaneScope) SessionV2() awsv2.Config {
139141
return s.sessionV2
140142
}

0 commit comments

Comments
 (0)