From 49a9e62d581288af38948c65f6780cc92253988e Mon Sep 17 00:00:00 2001 From: Artyom Pervukhin Date: Wed, 1 Dec 2021 13:10:32 +0300 Subject: [PATCH] Replace AWS SDK v1 dependency with v2 This change drops AWS SDKv1 dependency, leaving only SDK v2 in use. Closes #3461 Signed-off-by: Artyom Pervukhin --- go.mod | 6 +++++- go.sum | 12 ++++++++++-- tstest/integration/vms/vm_setup_test.go | 19 +++++++++---------- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index ea7f63365..78e1cd950 100644 --- a/go.mod +++ b/go.mod @@ -7,9 +7,10 @@ require ( github.com/akutz/memconn v0.1.0 github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74 github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect - github.com/aws/aws-sdk-go v1.38.52 github.com/aws/aws-sdk-go-v2 v1.11.1 github.com/aws/aws-sdk-go-v2/config v1.10.3 + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.7.3 + github.com/aws/aws-sdk-go-v2/service/s3 v1.20.0 github.com/aws/aws-sdk-go-v2/service/ssm v1.17.0 github.com/coreos/go-iptables v0.6.0 github.com/creack/pty v1.1.17 @@ -72,12 +73,15 @@ require ( github.com/Masterminds/sprig v2.22.0+incompatible // indirect github.com/Microsoft/go-winio v0.4.16 // indirect github.com/OpenPeeDeeP/depguard v1.0.1 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.6.3 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.1 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.3.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.1 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.6.1 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.11.0 // indirect github.com/aws/smithy-go v1.9.0 // indirect diff --git a/go.sum b/go.sum index 4ce2642e4..4a35d8d46 100644 --- a/go.sum +++ b/go.sum @@ -59,24 +59,32 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aws/aws-sdk-go v1.38.52 h1:7NKcUyTG/CyDX835kq04DDNe8vXaJhbGW8ThemHb18A= -github.com/aws/aws-sdk-go v1.38.52/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go-v2 v1.11.1 h1:GzvOVAdTbWxhEMRK4FfiblkGverOkAT0UodDxC1jHQM= github.com/aws/aws-sdk-go-v2 v1.11.1/go.mod h1:SQfA+m2ltnu1cA0soUkj4dRSsmITiVQUJvBIZjzfPyQ= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 h1:yVUAwvJC/0WNPbyl0nA3j1L6CW1CN8wBubCRqtG7JLI= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0/go.mod h1:Xn6sxgRuIDflLRJFj5Ev7UxABIkNbccFPV/p8itDReM= github.com/aws/aws-sdk-go-v2/config v1.10.3 h1:Hr6xmlQPtoEriXeLl8cQYJD2hkhJNAW5PVM0lHvopnQ= github.com/aws/aws-sdk-go-v2/config v1.10.3/go.mod h1:yPMKrwzpPrBny2yk70tIXHCfKnIuPLc+Y9tgY9Ms2NU= github.com/aws/aws-sdk-go-v2/credentials v1.6.3 h1:2RW+CfsFFo1jB0Z8UWJy48UJoUhhMdEWSHK5Ayn3QZA= github.com/aws/aws-sdk-go-v2/credentials v1.6.3/go.mod h1:9YEFqXj6X6lpCCXMmSWWo1jCISkx2lnbLFhAjx+mUWw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.1 h1:pXwGBINU30CsjYztV/IyCgA7QKp99Q8wM4Gb0Ls3rB0= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.1/go.mod h1:MYiG3oeEcmrdBOV7JOIWhionzyRZJWCnByS5FmvhAoU= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.7.3 h1:3Zl1gi6rXNxLG4KmIta5oPPnvMe9PLFXvfyN8+j+G9s= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.7.3/go.mod h1:YI34itQ2Czi4ff0Gu8Ampe3uUw5DQFWWj14+NBwBRMY= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.1 h1:LZwqhOyqQ2w64PZk04V0Om9AEExtW8WMkCRoE1h9/94= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.1/go.mod h1:22SEiBSQm5AyKEjoPcG1hzpeTI+m9CXfE6yt1h49wBE= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.1 h1:ObMfGNk0xjOWduPxsrRWVwZZia3e9fOcO6zlKCkt38s= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.1/go.mod h1:1xvCD+I5BcDuQUc+psZr7LI1a9pclAWZs3S3Gce5+lg= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.1 h1:fdQSN/ieDwbxdj7ptvFKjS2cS2a91l/WdjacCt5GgTE= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.1/go.mod h1:5eEM4wZ6I2GaeOaVXsiJexIH4P1sFnK5Yp2Tlw9Ah3c= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 h1:lPLbw4Gn59uoKqvOfSnkJr54XWk5Ak1NK20ZEiSWb3U= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0/go.mod h1:80NaCIH9YU3rzTTs/J/ECATjXuRqzo/wB6ukO6MZ0XY= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.1 h1:ZFSfgetO5kf4WXy+a2B8zug6DXGUYjsWacyvwx5cgXU= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.1/go.mod h1:fEaHB2bi+wVZw4uKMHEXTL9LwtT4EL//DOhTeflqIVo= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.1 h1:ACJBfyfa2TxVBzwiKOdzLVdRymu6XKDXLLkfAC6rNBM= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.1/go.mod h1:wnxXx7N+DjBf8mDy1qAzoSqWmpOOzCHW6hRqIUxPQEw= +github.com/aws/aws-sdk-go-v2/service/s3 v1.20.0 h1:aJ/eHlW9VhcXXDj1baRvwVkkl4yondQ9p3nS02fM4MM= +github.com/aws/aws-sdk-go-v2/service/s3 v1.20.0/go.mod h1:wcAYHjbvrLxDNWJmwCgwxudlHIkSLyU2m4Q1tWO6QZw= github.com/aws/aws-sdk-go-v2/service/ssm v1.17.0 h1:cRsjBAV7oNvi0M2ayeoPS68TCmBlQAmiL9BlcM0SasU= github.com/aws/aws-sdk-go-v2/service/ssm v1.17.0/go.mod h1:0CzdxtFRsppljClOL0+1hXEz4C+i+nKfzMRh7LP3pNY= github.com/aws/aws-sdk-go-v2/service/sso v1.6.1 h1:NF/qN6e8hdHO/Pt5jN+S65dxFom3b8+ciVdyv8Jr00U= diff --git a/tstest/integration/vms/vm_setup_test.go b/tstest/integration/vms/vm_setup_test.go index e6ffa3b3d..7a6ccc8f3 100644 --- a/tstest/integration/vms/vm_setup_test.go +++ b/tstest/integration/vms/vm_setup_test.go @@ -9,6 +9,7 @@ package vms import ( "bytes" + "context" "crypto/sha256" "encoding/hex" "fmt" @@ -23,10 +24,10 @@ import ( "strings" "testing" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/s3" - "github.com/aws/aws-sdk-go/service/s3/s3manager" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/feature/s3/manager" + "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/pkg/sftp" "golang.org/x/crypto/ssh" "tailscale.com/types/logger" @@ -171,21 +172,19 @@ func fetchFromS3(t *testing.T, fout *os.File, d Distro) bool { return false } - sess, err := session.NewSession(&aws.Config{ - Region: aws.String("us-east-1"), - }) + cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-east-1")) if err != nil { - t.Logf("can't make AWS session: %v", err) + t.Logf("can't load AWS credentials: %v", err) return false } - dler := s3manager.NewDownloader(sess, func(d *s3manager.Downloader) { + dler := manager.NewDownloader(s3.NewFromConfig(cfg), func(d *manager.Downloader) { d.PartSize = 64 * 1024 * 1024 // 64MB per part }) t.Logf("fetching s3://%s/%s", bucketName, d.SHA256Sum) - _, err = dler.Download(fout, &s3.GetObjectInput{ + _, err = dler.Download(context.TODO(), fout, &s3.GetObjectInput{ Bucket: aws.String(bucketName), Key: aws.String(d.SHA256Sum), })