Skip to content

Commit 4406535

Browse files
author
Thean Lim
committed
Revert "Revert "Migrate ECR Client to AWS SDK Go V2 (#4512)" (#4539)"
This reverts commit 6422290.
1 parent 7fb2795 commit 4406535

File tree

81 files changed

+39129
-674
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+39129
-674
lines changed

agent/dockerclient/dockerapi/docker_client_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,15 @@ import (
3636
mock_sdkclient "github.com/aws/amazon-ecs-agent/agent/dockerclient/sdkclient/mocks"
3737
mock_sdkclientfactory "github.com/aws/amazon-ecs-agent/agent/dockerclient/sdkclientfactory/mocks"
3838
mock_ecr "github.com/aws/amazon-ecs-agent/agent/ecr/mocks"
39-
ecrapi "github.com/aws/amazon-ecs-agent/agent/ecr/model/ecr"
4039
apicontainerstatus "github.com/aws/amazon-ecs-agent/ecs-agent/api/container/status"
4140
apierrors "github.com/aws/amazon-ecs-agent/ecs-agent/api/errors"
4241
"github.com/aws/amazon-ecs-agent/ecs-agent/credentials"
4342
"github.com/aws/amazon-ecs-agent/ecs-agent/ec2"
4443
"github.com/aws/amazon-ecs-agent/ecs-agent/utils/retry"
4544
mock_ttime "github.com/aws/amazon-ecs-agent/ecs-agent/utils/ttime/mocks"
46-
"github.com/opencontainers/go-digest"
47-
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
4845

49-
"github.com/aws/aws-sdk-go/aws"
46+
"github.com/aws/aws-sdk-go-v2/aws"
47+
ecr_types "github.com/aws/aws-sdk-go-v2/service/ecr/types"
5048
"github.com/docker/docker/api/types"
5149
dockercontainer "github.com/docker/docker/api/types/container"
5250
"github.com/docker/docker/api/types/events"
@@ -56,6 +54,8 @@ import (
5654
"github.com/docker/docker/api/types/volume"
5755
"github.com/docker/go-connections/nat"
5856
"github.com/golang/mock/gomock"
57+
"github.com/opencontainers/go-digest"
58+
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
5959
"github.com/stretchr/testify/assert"
6060
"github.com/stretchr/testify/require"
6161
)
@@ -282,7 +282,7 @@ func TestPullImageECRSuccess(t *testing.T) {
282282

283283
ecrClientFactory.EXPECT().GetClient(authData.ECRAuthData).Return(ecrClient, nil)
284284
ecrClient.EXPECT().GetAuthorizationToken(registryID).Return(
285-
&ecrapi.AuthorizationData{
285+
&ecr_types.AuthorizationData{
286286
ProxyEndpoint: aws.String("https://" + imageEndpoint),
287287
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
288288
}, nil)
@@ -1020,7 +1020,7 @@ func TestContainerEvents(t *testing.T) {
10201020
anEvent := <-dockerEvents
10211021
assert.True(t, anEvent.DockerID == "cid30" || anEvent.DockerID == "cid31", "Wrong container id: "+anEvent.DockerID)
10221022
assert.Equal(t, anEvent.Status, apicontainerstatus.ContainerStopped, "Should be stopped")
1023-
assert.Equal(t, aws.IntValue(anEvent.ExitCode), 20, "Incorrect exit code")
1023+
assert.Equal(t, aws.ToInt(anEvent.ExitCode), 20, "Incorrect exit code")
10241024
}
10251025

10261026
containerWithHealthInfo := types.ContainerJSON{
@@ -1771,7 +1771,7 @@ func TestECRAuthCacheWithoutExecutionRole(t *testing.T) {
17711771

17721772
ecrClientFactory.EXPECT().GetClient(authData.ECRAuthData).Return(ecrClient, nil).Times(1)
17731773
ecrClient.EXPECT().GetAuthorizationToken(registryID).Return(
1774-
&ecrapi.AuthorizationData{
1774+
&ecr_types.AuthorizationData{
17751775
ProxyEndpoint: aws.String("https://" + imageEndpoint),
17761776
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
17771777
ExpiresAt: aws.Time(time.Now().Add(10 * time.Hour)),
@@ -1827,7 +1827,7 @@ func TestECRAuthCacheForDifferentRegistry(t *testing.T) {
18271827

18281828
ecrClientFactory.EXPECT().GetClient(authData.ECRAuthData).Return(ecrClient, nil).Times(1)
18291829
ecrClient.EXPECT().GetAuthorizationToken(registryID).Return(
1830-
&ecrapi.AuthorizationData{
1830+
&ecr_types.AuthorizationData{
18311831
ProxyEndpoint: aws.String("https://" + imageEndpoint),
18321832
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
18331833
ExpiresAt: aws.Time(time.Now().Add(10 * time.Hour)),
@@ -1846,7 +1846,7 @@ func TestECRAuthCacheForDifferentRegistry(t *testing.T) {
18461846
authData.ECRAuthData.RegistryID = "another"
18471847
ecrClientFactory.EXPECT().GetClient(authData.ECRAuthData).Return(ecrClient, nil).Times(1)
18481848
ecrClient.EXPECT().GetAuthorizationToken("another").Return(
1849-
&ecrapi.AuthorizationData{
1849+
&ecr_types.AuthorizationData{
18501850
ProxyEndpoint: aws.String("https://" + imageEndpoint),
18511851
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
18521852
ExpiresAt: aws.Time(time.Now().Add(10 * time.Hour)),
@@ -1886,7 +1886,7 @@ func TestECRAuthCacheWithSameExecutionRole(t *testing.T) {
18861886

18871887
ecrClientFactory.EXPECT().GetClient(authData.ECRAuthData).Return(ecrClient, nil).Times(1)
18881888
ecrClient.EXPECT().GetAuthorizationToken(registryID).Return(
1889-
&ecrapi.AuthorizationData{
1889+
&ecr_types.AuthorizationData{
18901890
ProxyEndpoint: aws.String("https://" + imageEndpoint),
18911891
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
18921892
ExpiresAt: aws.Time(time.Now().Add(10 * time.Hour)),
@@ -1941,7 +1941,7 @@ func TestECRAuthCacheWithDifferentExecutionRole(t *testing.T) {
19411941

19421942
ecrClientFactory.EXPECT().GetClient(authData.ECRAuthData).Return(ecrClient, nil).Times(1)
19431943
ecrClient.EXPECT().GetAuthorizationToken(registryID).Return(
1944-
&ecrapi.AuthorizationData{
1944+
&ecr_types.AuthorizationData{
19451945
ProxyEndpoint: aws.String("https://" + imageEndpoint),
19461946
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
19471947
ExpiresAt: aws.Time(time.Now().Add(10 * time.Hour)),
@@ -1962,7 +1962,7 @@ func TestECRAuthCacheWithDifferentExecutionRole(t *testing.T) {
19621962
})
19631963
ecrClientFactory.EXPECT().GetClient(authData.ECRAuthData).Return(ecrClient, nil).Times(1)
19641964
ecrClient.EXPECT().GetAuthorizationToken(registryID).Return(
1965-
&ecrapi.AuthorizationData{
1965+
&ecr_types.AuthorizationData{
19661966
ProxyEndpoint: aws.String("https://" + imageEndpoint),
19671967
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
19681968
ExpiresAt: aws.Time(time.Now().Add(10 * time.Hour)),

agent/dockerclient/dockerauth/ecr.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,14 @@ import (
2121

2222
apicontainer "github.com/aws/amazon-ecs-agent/agent/api/container"
2323
"github.com/aws/amazon-ecs-agent/agent/ecr"
24-
ecrapi "github.com/aws/amazon-ecs-agent/agent/ecr/model/ecr"
2524
"github.com/aws/amazon-ecs-agent/ecs-agent/async"
2625
"github.com/aws/amazon-ecs-agent/ecs-agent/credentials"
2726
"github.com/aws/amazon-ecs-agent/ecs-agent/logger"
2827
"github.com/aws/amazon-ecs-agent/ecs-agent/logger/field"
2928
"github.com/aws/amazon-ecs-agent/ecs-agent/utils/retry"
30-
"github.com/aws/aws-sdk-go/aws"
29+
30+
"github.com/aws/aws-sdk-go-v2/aws"
31+
"github.com/aws/aws-sdk-go-v2/service/ecr/types"
3132
log "github.com/cihub/seelog"
3233
"github.com/docker/docker/api/types/registry"
3334
)
@@ -115,7 +116,7 @@ func (authProvider *ecrAuthProvider) getAuthConfigFromCache(key cacheKey) *regis
115116
return nil
116117
}
117118

118-
cachedToken, ok := token.(*ecrapi.AuthorizationData)
119+
cachedToken, ok := token.(*types.AuthorizationData)
119120
if !ok {
120121
log.Warnf("Reading ECR credentials from cache failed")
121122
return nil
@@ -163,7 +164,7 @@ func (authProvider *ecrAuthProvider) getAuthConfigFromECR(image string, key cach
163164

164165
// Verify the auth data has the correct format for ECR
165166
if ecrAuthData.ProxyEndpoint != nil &&
166-
strings.HasPrefix(proxyEndpointScheme+image, aws.StringValue(ecrAuthData.ProxyEndpoint)) &&
167+
strings.HasPrefix(proxyEndpointScheme+image, aws.ToString(ecrAuthData.ProxyEndpoint)) &&
167168
ecrAuthData.AuthorizationToken != nil {
168169

169170
// Cache the new token
@@ -173,27 +174,27 @@ func (authProvider *ecrAuthProvider) getAuthConfigFromECR(image string, key cach
173174
return registry.AuthConfig{}, fmt.Errorf("ecr auth: AuthorizationData is malformed for %s", image)
174175
}
175176

176-
func extractToken(authData *ecrapi.AuthorizationData) (registry.AuthConfig, error) {
177-
decodedToken, err := base64.StdEncoding.DecodeString(aws.StringValue(authData.AuthorizationToken))
177+
func extractToken(authData *types.AuthorizationData) (registry.AuthConfig, error) {
178+
decodedToken, err := base64.StdEncoding.DecodeString(aws.ToString(authData.AuthorizationToken))
178179
if err != nil {
179180
return registry.AuthConfig{}, err
180181
}
181182
parts := strings.SplitN(string(decodedToken), ":", 2)
182183
return registry.AuthConfig{
183184
Username: parts[0],
184185
Password: parts[1],
185-
ServerAddress: aws.StringValue(authData.ProxyEndpoint),
186+
ServerAddress: aws.ToString(authData.ProxyEndpoint),
186187
}, nil
187188
}
188189

189190
// IsTokenValid checks the token is still within it's expiration window. We early expire to allow
190191
// for timing in calls and add jitter to avoid refreshing all of the tokens at once.
191-
func (authProvider *ecrAuthProvider) IsTokenValid(authData *ecrapi.AuthorizationData) bool {
192+
func (authProvider *ecrAuthProvider) IsTokenValid(authData *types.AuthorizationData) bool {
192193
if authData == nil || authData.ExpiresAt == nil {
193194
return false
194195
}
195196

196-
refreshTime := aws.TimeValue(authData.ExpiresAt).
197+
refreshTime := aws.ToTime(authData.ExpiresAt).
197198
Add(-1 * retry.AddJitter(MinimumJitterDuration, MinimumJitterDuration))
198199

199200
return time.Now().Before(refreshTime)

agent/dockerclient/dockerauth/ecr_test.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,12 @@ import (
2525

2626
apicontainer "github.com/aws/amazon-ecs-agent/agent/api/container"
2727
mock_ecr "github.com/aws/amazon-ecs-agent/agent/ecr/mocks"
28-
ecrapi "github.com/aws/amazon-ecs-agent/agent/ecr/model/ecr"
2928
"github.com/aws/amazon-ecs-agent/ecs-agent/async"
3029
mock_async "github.com/aws/amazon-ecs-agent/ecs-agent/async/mocks"
3130
"github.com/aws/amazon-ecs-agent/ecs-agent/credentials"
32-
"github.com/aws/aws-sdk-go/aws"
31+
32+
"github.com/aws/aws-sdk-go-v2/aws"
33+
"github.com/aws/aws-sdk-go-v2/service/ecr/types"
3334
"github.com/docker/docker/api/types/registry"
3435
"github.com/golang/mock/gomock"
3536
"github.com/stretchr/testify/assert"
@@ -78,7 +79,7 @@ func TestGetAuthConfigSuccess(t *testing.T) {
7879
}
7980

8081
factory.EXPECT().GetClient(authData).Return(client, nil)
81-
client.EXPECT().GetAuthorizationToken(authData.RegistryID).Return(&ecrapi.AuthorizationData{
82+
client.EXPECT().GetAuthorizationToken(authData.RegistryID).Return(&types.AuthorizationData{
8283
ProxyEndpoint: aws.String(proxyEndpointScheme + proxyEndpoint),
8384
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
8485
}, nil)
@@ -115,7 +116,7 @@ func TestGetAuthConfigNoMatchAuthorizationToken(t *testing.T) {
115116
}
116117

117118
factory.EXPECT().GetClient(authData).Return(client, nil)
118-
client.EXPECT().GetAuthorizationToken(authData.RegistryID).Return(&ecrapi.AuthorizationData{
119+
client.EXPECT().GetAuthorizationToken(authData.RegistryID).Return(&types.AuthorizationData{
119120
ProxyEndpoint: aws.String(proxyEndpointScheme + "notproxy"),
120121
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
121122
}, nil)
@@ -150,7 +151,7 @@ func TestGetAuthConfigBadBase64(t *testing.T) {
150151
}
151152

152153
factory.EXPECT().GetClient(authData).Return(client, nil)
153-
client.EXPECT().GetAuthorizationToken(authData.RegistryID).Return(&ecrapi.AuthorizationData{
154+
client.EXPECT().GetAuthorizationToken(authData.RegistryID).Return(&types.AuthorizationData{
154155
ProxyEndpoint: aws.String(proxyEndpointScheme + "notproxy"),
155156
AuthorizationToken: aws.String((username + ":" + password)),
156157
}, nil)
@@ -253,7 +254,7 @@ func TestIsTokenValid(t *testing.T) {
253254
}
254255

255256
for _, testCase := range testAuthTimes {
256-
testAuthData := &ecrapi.AuthorizationData{
257+
testAuthData := &types.AuthorizationData{
257258
ProxyEndpoint: aws.String(testProxyEndpoint),
258259
AuthorizationToken: aws.String(testToken),
259260
ExpiresAt: aws.Time(time.Now().Add(testCase.expireIn)),
@@ -300,7 +301,7 @@ func TestAuthorizationTokenCacheMiss(t *testing.T) {
300301
endpointOverride: authData.EndpointOverride,
301302
}
302303

303-
dockerAuthData := &ecrapi.AuthorizationData{
304+
dockerAuthData := &types.AuthorizationData{
304305
ProxyEndpoint: aws.String(proxyEndpointScheme + proxyEndpoint),
305306
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
306307
}
@@ -330,7 +331,7 @@ func TestAuthorizationTokenCacheHit(t *testing.T) {
330331
password := "test_passwd"
331332

332333
proxyEndpoint := "proxy"
333-
testAuthData := &ecrapi.AuthorizationData{
334+
testAuthData := &types.AuthorizationData{
334335
ProxyEndpoint: aws.String(proxyEndpointScheme + proxyEndpoint),
335336
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
336337
ExpiresAt: aws.Time(time.Now().Add(12 * time.Hour)),
@@ -372,7 +373,7 @@ func TestAuthorizationTokenCacheWithCredentialsHit(t *testing.T) {
372373
password := "test_passwd"
373374

374375
proxyEndpoint := "proxy"
375-
testAuthData := &ecrapi.AuthorizationData{
376+
testAuthData := &types.AuthorizationData{
376377
ProxyEndpoint: aws.String(proxyEndpointScheme + proxyEndpoint),
377378
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
378379
ExpiresAt: aws.Time(time.Now().Add(12 * time.Hour)),
@@ -419,7 +420,7 @@ func TestAuthorizationTokenCacheHitExpired(t *testing.T) {
419420
password := "test_passwd"
420421

421422
proxyEndpoint := "proxy"
422-
testAuthData := &ecrapi.AuthorizationData{
423+
testAuthData := &types.AuthorizationData{
423424
ProxyEndpoint: aws.String(proxyEndpointScheme + proxyEndpoint),
424425
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
425426
ExpiresAt: aws.Time(time.Now()),
@@ -444,7 +445,7 @@ func TestAuthorizationTokenCacheHitExpired(t *testing.T) {
444445
endpointOverride: authData.EndpointOverride,
445446
}
446447

447-
dockerAuthData := &ecrapi.AuthorizationData{
448+
dockerAuthData := &types.AuthorizationData{
448449
ProxyEndpoint: aws.String(proxyEndpointScheme + proxyEndpoint),
449450
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
450451
}
@@ -476,7 +477,7 @@ func TestExtractECRTokenError(t *testing.T) {
476477
password := "test_passwd"
477478

478479
proxyEndpoint := "proxy"
479-
testAuthData := &ecrapi.AuthorizationData{
480+
testAuthData := &types.AuthorizationData{
480481
ProxyEndpoint: aws.String(proxyEndpointScheme + proxyEndpoint),
481482
// This will makes the extract fail
482483
AuthorizationToken: aws.String("-"),
@@ -502,7 +503,7 @@ func TestExtractECRTokenError(t *testing.T) {
502503
endpointOverride: authData.EndpointOverride,
503504
}
504505

505-
dockerAuthData := &ecrapi.AuthorizationData{
506+
dockerAuthData := &types.AuthorizationData{
506507
ProxyEndpoint: aws.String(proxyEndpointScheme + proxyEndpoint),
507508
AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(username + ":" + password))),
508509
}

agent/ecr/client.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414
package ecr
1515

1616
import (
17+
"context"
1718
"fmt"
1819
"time"
1920

20-
ecrapi "github.com/aws/amazon-ecs-agent/agent/ecr/model/ecr"
21-
"github.com/aws/aws-sdk-go/aws"
21+
ecrservice "github.com/aws/aws-sdk-go-v2/service/ecr"
22+
"github.com/aws/aws-sdk-go-v2/service/ecr/types"
2223
log "github.com/cihub/seelog"
2324
)
2425

@@ -29,14 +30,14 @@ const (
2930

3031
// ECRClient wrapper interface for mocking
3132
type ECRClient interface {
32-
GetAuthorizationToken(registryId string) (*ecrapi.AuthorizationData, error)
33+
GetAuthorizationToken(registryId string) (*types.AuthorizationData, error)
3334
}
3435

3536
// ECRSDK is an interface that specifies the subset of the AWS Go SDK's ECR
3637
// client that the Agent uses. This interface is meant to allow injecting a
3738
// mock for testing.
3839
type ECRSDK interface {
39-
GetAuthorizationToken(*ecrapi.GetAuthorizationTokenInput) (*ecrapi.GetAuthorizationTokenOutput, error)
40+
GetAuthorizationToken(context.Context, *ecrservice.GetAuthorizationTokenInput, ...func(*ecrservice.Options)) (*ecrservice.GetAuthorizationTokenOutput, error)
4041
}
4142

4243
type ecrClient struct {
@@ -51,11 +52,11 @@ func NewECRClient(sdkClient ECRSDK) ECRClient {
5152
}
5253

5354
// GetAuthorizationToken calls the ecr api to get the docker auth for the specified registry
54-
func (client *ecrClient) GetAuthorizationToken(registryId string) (*ecrapi.AuthorizationData, error) {
55+
func (client *ecrClient) GetAuthorizationToken(registryId string) (*types.AuthorizationData, error) {
5556
log.Debugf("Calling GetAuthorizationToken for %q", registryId)
5657

57-
output, err := client.sdkClient.GetAuthorizationToken(&ecrapi.GetAuthorizationTokenInput{
58-
RegistryIds: []*string{aws.String(registryId)},
58+
output, err := client.sdkClient.GetAuthorizationToken(context.TODO(), &ecrservice.GetAuthorizationTokenInput{
59+
RegistryIds: []string{registryId},
5960
})
6061

6162
if err != nil {
@@ -65,5 +66,5 @@ func (client *ecrClient) GetAuthorizationToken(registryId string) (*ecrapi.Autho
6566
if len(output.AuthorizationData) != 1 {
6667
return nil, fmt.Errorf("unexpected number of results in AuthorizationData (%d)", len(output.AuthorizationData))
6768
}
68-
return output.AuthorizationData[0], nil
69+
return &output.AuthorizationData[0], nil
6970
}

agent/ecr/client_test.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@
1818
package ecr_test
1919

2020
import (
21+
"context"
2122
"errors"
2223
"testing"
2324

2425
"github.com/aws/amazon-ecs-agent/agent/ecr"
2526
mock_ecr "github.com/aws/amazon-ecs-agent/agent/ecr/mocks"
26-
ecrapi "github.com/aws/amazon-ecs-agent/agent/ecr/model/ecr"
27-
"github.com/aws/aws-sdk-go/aws"
27+
ecrservice "github.com/aws/aws-sdk-go-v2/service/ecr"
28+
"github.com/aws/aws-sdk-go-v2/service/ecr/types"
2829
"github.com/golang/mock/gomock"
2930
"github.com/stretchr/testify/assert"
3031
"github.com/stretchr/testify/suite"
@@ -57,10 +58,11 @@ func (suite *GetAuthorizationTokenTestSuite) TeardownTest() {
5758

5859
func (suite *GetAuthorizationTokenTestSuite) TestGetAuthorizationTokenMissingAuthData() {
5960
suite.mockClient.EXPECT().GetAuthorizationToken(
60-
&ecrapi.GetAuthorizationTokenInput{
61-
RegistryIds: []*string{aws.String(testRegistryId)},
62-
}).Return(&ecrapi.GetAuthorizationTokenOutput{
63-
AuthorizationData: []*ecrapi.AuthorizationData{},
61+
context.TODO(),
62+
&ecrservice.GetAuthorizationTokenInput{
63+
RegistryIds: []string{testRegistryId},
64+
}).Return(&ecrservice.GetAuthorizationTokenOutput{
65+
AuthorizationData: []types.AuthorizationData{},
6466
}, nil)
6567

6668
authorizationData, err := suite.ecrClient.GetAuthorizationToken(testRegistryId)
@@ -70,8 +72,9 @@ func (suite *GetAuthorizationTokenTestSuite) TestGetAuthorizationTokenMissingAut
7072

7173
func (suite *GetAuthorizationTokenTestSuite) TestGetAuthorizationTokenError() {
7274
suite.mockClient.EXPECT().GetAuthorizationToken(
73-
&ecrapi.GetAuthorizationTokenInput{
74-
RegistryIds: []*string{aws.String(testRegistryId)},
75+
context.TODO(),
76+
&ecrservice.GetAuthorizationTokenInput{
77+
RegistryIds: []string{testRegistryId},
7578
}).Return(nil, errors.New("Nope Nope Nope"))
7679

7780
authorizationData, err := suite.ecrClient.GetAuthorizationToken(testRegistryId)

0 commit comments

Comments
 (0)