Skip to content

Commit 2797911

Browse files
committed
Migrate the ec2 provider to use the new aws sdk
1 parent ff3d3f1 commit 2797911

Some content is hidden

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

47 files changed

+4600
-2084
lines changed

cmd/plugins/juju-metadata/validateagentsmetadata_test.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ package main
66
import (
77
"strings"
88

9+
"github.com/aws/aws-sdk-go-v2/service/ec2"
910
"github.com/juju/cmd"
1011
"github.com/juju/cmd/cmdtesting"
1112
jc "github.com/juju/testing/checkers"
1213
"github.com/juju/utils/v2/arch"
13-
"gopkg.in/amz.v3/aws"
1414
gc "gopkg.in/check.v1"
1515

1616
"github.com/juju/juju/cmd/modelcmd"
@@ -113,12 +113,11 @@ func (s *ValidateToolsMetadataSuite) SetUpTest(c *gc.C) {
113113
}
114114

115115
func (s *ValidateToolsMetadataSuite) setupEc2LocalMetadata(c *gc.C, region string) {
116-
ec2Region, ok := aws.Regions[region]
117-
if !ok {
118-
c.Fatalf("unknown ec2 region %q", region)
119-
}
120-
endpoint := ec2Region.EC2Endpoint
121-
s.makeLocalMetadata(c, "released", "1.11.4", region, "ubuntu", endpoint)
116+
resolver := ec2.NewDefaultEndpointResolver()
117+
ep, err := resolver.ResolveEndpoint(region, ec2.EndpointResolverOptions{})
118+
c.Assert(err, jc.ErrorIsNil)
119+
err = s.makeLocalMetadata(c, "released", "1.11.4", region, "ubuntu", ep.URL)
120+
c.Assert(err, jc.ErrorIsNil)
122121
}
123122

124123
func (s *ValidateToolsMetadataSuite) TestEc2LocalMetadataUsingEnvironment(c *gc.C) {
@@ -136,7 +135,7 @@ func (s *ValidateToolsMetadataSuite) TestEc2LocalMetadataUsingIncompleteEnvironm
136135
s.PatchEnvironment("AWS_SECRET_ACCESS_KEY", "")
137136
s.setupEc2LocalMetadata(c, "us-east-1")
138137
_, err := runValidateAgentsMetadata(c, s.store, "-c", "ec2-controller", "-j", "1.11.4")
139-
c.Assert(err, gc.ErrorMatches, `detecting credentials.*AWS_SECRET_ACCESS_KEY not found in environment`)
138+
c.Assert(err, gc.ErrorMatches, `detecting credentials.*not found`)
140139
}
141140

142141
func (s *ValidateToolsMetadataSuite) TestEc2LocalMetadataWithManualParams(c *gc.C) {
@@ -162,7 +161,9 @@ func (s *ValidateToolsMetadataSuite) TestEc2LocalMetadataNoMatch(c *gc.C) {
162161
"-p", "ec2", "-t", "ubuntu", "-r", "region",
163162
"-u", "https://ec2.region.amazonaws.com", "-d", s.metadataDir,
164163
)
165-
c.Assert(err, gc.ErrorMatches, `unknown region "region"`)
164+
c.Assert(err, gc.NotNil)
165+
msg := strings.ReplaceAll(err.Error(), "\n", "")
166+
c.Check(msg, gc.Matches, `no matching agent binaries found for constraint.*`)
166167
}
167168

168169
func (s *ValidateToolsMetadataSuite) TestOpenstackLocalMetadataWithManualParams(c *gc.C) {

cmd/plugins/juju-metadata/validateimagemetadata_test.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ package main
66
import (
77
"strings"
88

9+
"github.com/aws/aws-sdk-go-v2/service/ec2"
910
"github.com/juju/cmd"
1011
"github.com/juju/cmd/cmdtesting"
1112
jc "github.com/juju/testing/checkers"
1213
"github.com/juju/utils/v2"
13-
"gopkg.in/amz.v3/aws"
1414
gc "gopkg.in/check.v1"
1515

1616
"github.com/juju/juju/cmd/modelcmd"
@@ -161,12 +161,11 @@ func (s *ValidateImageMetadataSuite) SetUpTest(c *gc.C) {
161161
}
162162

163163
func (s *ValidateImageMetadataSuite) setupEc2LocalMetadata(c *gc.C, region, stream string) {
164-
ec2Region, ok := aws.Regions[region]
165-
if !ok {
166-
c.Fatalf("unknown ec2 region %q", region)
167-
}
168-
endpoint := ec2Region.EC2Endpoint
169-
err := s.makeLocalMetadata("1234", region, "precise", endpoint, stream)
164+
resolver := ec2.NewDefaultEndpointResolver()
165+
ep, err := resolver.ResolveEndpoint(region, ec2.EndpointResolverOptions{})
166+
c.Assert(err, jc.ErrorIsNil)
167+
168+
err = s.makeLocalMetadata("1234", region, "precise", ep.URL, stream)
170169
c.Assert(err, jc.ErrorIsNil)
171170
}
172171

@@ -196,7 +195,7 @@ func (s *ValidateImageMetadataSuite) TestEc2LocalMetadataUsingIncompleteEnvironm
196195
s.PatchEnvironment("EC2_SECRET_KEY", "")
197196
s.setupEc2LocalMetadata(c, "us-east-1", "")
198197
_, err := runValidateImageMetadata(c, s.store, "-c", "ec2-controller", "-d", s.metadataDir)
199-
c.Assert(err, gc.ErrorMatches, `detecting credentials.*AWS_SECRET_ACCESS_KEY not found in environment`)
198+
c.Assert(err, gc.ErrorMatches, `detecting credentials.*not found`)
200199
}
201200

202201
func (s *ValidateImageMetadataSuite) TestEc2LocalMetadataWithManualParams(c *gc.C) {
@@ -224,7 +223,9 @@ func (s *ValidateImageMetadataSuite) TestEc2LocalMetadataNoMatch(c *gc.C) {
224223
"-p", "ec2", "-s", "precise", "-r", "region",
225224
"-u", "https://ec2.region.amazonaws.com", "-d", s.metadataDir,
226225
)
227-
c.Check(err, gc.ErrorMatches, `unknown region "region"`)
226+
c.Assert(err, gc.NotNil)
227+
msg := strings.ReplaceAll(err.Error(), "\n", "")
228+
c.Check(msg, gc.Matches, `index file has no data for cloud.*`)
228229
}
229230

230231
func (s *ValidateImageMetadataSuite) TestOpenstackLocalMetadataWithManualParams(c *gc.C) {

environs/imagemetadata/simplestreams_test.go

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ import (
1414
"strings"
1515
stdtesting "testing"
1616

17+
"github.com/aws/aws-sdk-go-v2/service/ec2"
18+
"github.com/juju/errors"
1719
jc "github.com/juju/testing/checkers"
1820
"github.com/juju/utils/v2"
19-
"gopkg.in/amz.v3/aws"
2021
gc "gopkg.in/check.v1"
2122

2223
"github.com/juju/juju/environs/imagemetadata"
@@ -34,23 +35,31 @@ type liveTestData struct {
3435
validCloudSpec simplestreams.CloudSpec
3536
}
3637

37-
var liveURLs = map[string]liveTestData{
38-
"ec2": {
39-
baseURL: imagemetadata.DefaultUbuntuBaseURL,
40-
requireSigned: true,
41-
validCloudSpec: simplestreams.CloudSpec{
42-
Region: "us-east-1",
43-
Endpoint: aws.Regions["us-east-1"].EC2Endpoint,
38+
func getLiveURLs() (map[string]liveTestData, error) {
39+
resolver := ec2.NewDefaultEndpointResolver()
40+
ep, err := resolver.ResolveEndpoint("us-east-1", ec2.EndpointResolverOptions{})
41+
if err != nil {
42+
return nil, errors.Trace(err)
43+
}
44+
45+
return map[string]liveTestData{
46+
"ec2": {
47+
baseURL: imagemetadata.DefaultUbuntuBaseURL,
48+
requireSigned: true,
49+
validCloudSpec: simplestreams.CloudSpec{
50+
Region: "us-east-1",
51+
Endpoint: ep.URL,
52+
},
4453
},
45-
},
46-
"canonistack": {
47-
baseURL: "https://swift.canonistack.canonical.com/v1/AUTH_a48765cc0e864be980ee21ae26aaaed4/simplestreams/data",
48-
requireSigned: false,
49-
validCloudSpec: simplestreams.CloudSpec{
50-
Region: "lcy01",
51-
Endpoint: "https://keystone.canonistack.canonical.com:443/v1.0/",
54+
"canonistack": {
55+
baseURL: "https://swift.canonistack.canonical.com/v1/AUTH_a48765cc0e864be980ee21ae26aaaed4/simplestreams/data",
56+
requireSigned: false,
57+
validCloudSpec: simplestreams.CloudSpec{
58+
Region: "lcy01",
59+
Endpoint: "https://keystone.canonistack.canonical.com:443/v1.0/",
60+
},
5261
},
53-
},
62+
}, nil
5463
}
5564

5665
func Test(t *stdtesting.T) {
@@ -60,6 +69,10 @@ func Test(t *stdtesting.T) {
6069
}
6170
var ok bool
6271
var testData liveTestData
72+
liveURLs, err := getLiveURLs()
73+
if err != nil {
74+
t.Fatalf(err.Error())
75+
}
6376
if testData, ok = liveURLs[*vendor]; !ok {
6477
keys := reflect.ValueOf(liveURLs).MapKeys()
6578
t.Fatalf("Unknown vendor %s. Must be one of %s", *vendor, keys)

environs/tools/simplestreams_test.go

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@ import (
1919
"strings"
2020
"testing"
2121

22+
"github.com/aws/aws-sdk-go-v2/service/ec2"
23+
"github.com/juju/errors"
2224
jc "github.com/juju/testing/checkers"
2325
"github.com/juju/utils/v2"
2426
"github.com/juju/version/v2"
25-
"gopkg.in/amz.v3/aws"
2627
gc "gopkg.in/check.v1"
2728

2829
coreos "github.com/juju/juju/core/os"
@@ -47,17 +48,31 @@ type liveTestData struct {
4748
validCloudSpec simplestreams.CloudSpec
4849
}
4950

50-
var liveURLs = map[string]liveTestData{
51-
"ec2": {
52-
baseURL: tools.DefaultBaseURL,
53-
requireSigned: true,
54-
validCloudSpec: simplestreams.CloudSpec{"us-east-1", aws.Regions["us-east-1"].EC2Endpoint},
55-
},
56-
"canonistack": {
57-
baseURL: "https://swift.canonistack.canonical.com/v1/AUTH_526ad877f3e3464589dc1145dfeaac60/juju-tools",
58-
requireSigned: false,
59-
validCloudSpec: simplestreams.CloudSpec{"lcy01", "https://keystone.canonistack.canonical.com:443/v1.0/"},
60-
},
51+
func getLiveURLs() (map[string]liveTestData, error) {
52+
resolver := ec2.NewDefaultEndpointResolver()
53+
ep, err := resolver.ResolveEndpoint("us-east-1", ec2.EndpointResolverOptions{})
54+
if err != nil {
55+
return nil, errors.Trace(err)
56+
}
57+
58+
return map[string]liveTestData{
59+
"ec2": {
60+
baseURL: tools.DefaultBaseURL,
61+
requireSigned: true,
62+
validCloudSpec: simplestreams.CloudSpec{
63+
Region: "us-east-1",
64+
Endpoint: ep.URL,
65+
},
66+
},
67+
"canonistack": {
68+
baseURL: "https://swift.canonistack.canonical.com/v1/AUTH_526ad877f3e3464589dc1145dfeaac60/juju-tools",
69+
requireSigned: false,
70+
validCloudSpec: simplestreams.CloudSpec{
71+
Region: "lcy01",
72+
Endpoint: "https://keystone.canonistack.canonical.com:443/v1.0/",
73+
},
74+
},
75+
}, nil
6176
}
6277

6378
func setupSimpleStreamsTests(t *testing.T) {
@@ -67,6 +82,10 @@ func setupSimpleStreamsTests(t *testing.T) {
6782
}
6883
var ok bool
6984
var testData liveTestData
85+
liveURLs, err := getLiveURLs()
86+
if err != nil {
87+
t.Fatalf(err.Error())
88+
}
7089
if testData, ok = liveURLs[*vendor]; !ok {
7190
keys := reflect.ValueOf(liveURLs).MapKeys()
7291
t.Fatalf("Unknown vendor %s. Must be one of %s", *vendor, keys)

go.mod

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ require (
1313
github.com/EvilSuperstars/go-cidrman v0.0.0-20170211231153-4e5a4a63d9b7
1414
github.com/altoros/gosigma v0.0.0-20150408145232-31228935eec6
1515
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da
16-
github.com/aws/aws-sdk-go v1.29.8
16+
github.com/aws/aws-sdk-go-v2 v1.6.0
17+
github.com/aws/aws-sdk-go-v2/config v1.3.0
18+
github.com/aws/aws-sdk-go-v2/credentials v1.2.1
19+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.9.0
20+
github.com/aws/smithy-go v1.4.0
1721
github.com/bmizerany/pat v0.0.0-20160217103242-c068ca2f0aac
1822
github.com/canonical/pebble v0.0.0-20210609205628-b152ff448bbe
1923
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
@@ -115,7 +119,6 @@ require (
115119
google.golang.org/appengine v1.6.6 // indirect
116120
google.golang.org/genproto v0.0.0-20200726014623-da3ae01ef02d // indirect
117121
google.golang.org/grpc v1.33.1 // indirect
118-
gopkg.in/amz.v3 v3.0.0-20201001071545-24fc1eceb27b
119122
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
120123
gopkg.in/httprequest.v1 v1.2.1
121124
gopkg.in/ini.v1 v1.51.0

go.sum

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,26 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZ
8383
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
8484
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
8585
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
86-
github.com/aws/aws-sdk-go v1.29.8 h1:Kma1ikL7MHs/XH5Q4Aqj53AAhgttW6UFykc8Qj16HGo=
87-
github.com/aws/aws-sdk-go v1.29.8/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg=
86+
github.com/aws/aws-sdk-go-v2 v1.6.0 h1:r20hdhm8wZmKkClREfacXrKfX0Y7/s0aOoeraFbf/sY=
87+
github.com/aws/aws-sdk-go-v2 v1.6.0/go.mod h1:tI4KhsR5VkzlUa2DZAdwx7wCAYGwkZZ1H31PYrBFx1w=
88+
github.com/aws/aws-sdk-go-v2/config v1.3.0 h1:0JAnp0WcsgKilFLiZEScUTKIvTKa2LkicadZADza+u0=
89+
github.com/aws/aws-sdk-go-v2/config v1.3.0/go.mod h1:lOxzHWDt/k7MMidA/K8DgXL4+ynnZYsDq65Qhs/l3dg=
90+
github.com/aws/aws-sdk-go-v2/credentials v1.2.1 h1:AqQ8PzWll1wegNUOfIKcbp/JspTbJl54gNonrO6VUsY=
91+
github.com/aws/aws-sdk-go-v2/credentials v1.2.1/go.mod h1:Rfvim1eZTC9W5s8YJyYYtl1KMk6e8fHv+wMRQGO4Ru0=
92+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.1.1 h1:w1ocBIhQkLgupEB3d0uOuBddqVYl0xpubz7HSTzWG8A=
93+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.1.1/go.mod h1:GTXAhrxHQOj9N+J5tYVjwt+rpRyy/42qLjlgw9pz1a0=
94+
github.com/aws/aws-sdk-go-v2/internal/ini v1.0.0 h1:k7I9E6tyVWBo7H9ffpnxDWudtjau6Qt9rnOYgV+ciEQ=
95+
github.com/aws/aws-sdk-go-v2/internal/ini v1.0.0/go.mod h1:g3XMXuxvqSMUjnsXXp/960152w0wFS4CXVYgQaSVOHE=
96+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.9.0 h1:SF0h/HR4zUDBbGv6Hf/fbbG6ywTVi9r2DmpIhfZMckI=
97+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.9.0/go.mod h1:XzzkrryeCoPUd9jxcdDnI2/UmlfIp13nBSpjl2SDSCM=
98+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.1.1 h1:l7pDLsmOGrnR8LT+3gIv8NlHpUhs7220E457KEC2UM0=
99+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.1.1/go.mod h1:2+ehJPkdIdl46VCj67Emz/EH2hpebHZtaLdzqg+sWOI=
100+
github.com/aws/aws-sdk-go-v2/service/sso v1.2.1 h1:alpXc5UG7al7QnttHe/9hfvUfitV8r3w0onPpPkGzi0=
101+
github.com/aws/aws-sdk-go-v2/service/sso v1.2.1/go.mod h1:VimPFPltQ/920i1X0Sb0VJBROLIHkDg2MNP10D46OGs=
102+
github.com/aws/aws-sdk-go-v2/service/sts v1.4.1 h1:9Z00tExoaLutWVDmY6LyvIAcKjHetkbdmpRt4JN/FN0=
103+
github.com/aws/aws-sdk-go-v2/service/sts v1.4.1/go.mod h1:G9osDWA52WQ38BDcj65VY1cNmcAQXAXTsE8IWH8j81w=
104+
github.com/aws/smithy-go v1.4.0 h1:3rsQpgRe+OoQgJhEwGNpIkosl0fJLdmQqF4gSFRjg+4=
105+
github.com/aws/smithy-go v1.4.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
88106
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
89107
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
90108
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -232,7 +250,6 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh
232250
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
233251
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
234252
github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
235-
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
236253
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
237254
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
238255
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
@@ -348,8 +365,10 @@ github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH
348365
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
349366
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
350367
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
351-
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
352-
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
368+
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
369+
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
370+
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
371+
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
353372
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
354373
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
355374
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
@@ -1066,8 +1085,6 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
10661085
google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
10671086
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
10681087
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
1069-
gopkg.in/amz.v3 v3.0.0-20201001071545-24fc1eceb27b h1:tdSyAzD5FHJmZAZ13d5WexAo7YJkiyGphhzFfInMnDw=
1070-
gopkg.in/amz.v3 v3.0.0-20201001071545-24fc1eceb27b/go.mod h1:cE0dCGx2UfBTjLFlzEx4EXJUmoX6BXBoX9GjKOvqha4=
10711088
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
10721089
gopkg.in/check.v1 v1.0.0-20160105164936-4f90aeace3a2/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
10731090
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)