Skip to content

Commit 56aff84

Browse files
committed
fix: linter errors
1 parent 10e6df7 commit 56aff84

7 files changed

Lines changed: 91 additions & 187 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ require (
1010
github.com/aws/aws-sdk-go-v2 v1.41.1
1111
github.com/aws/aws-sdk-go-v2/config v1.32.9
1212
github.com/aws/aws-sdk-go-v2/credentials v1.19.9
13-
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.2
13+
github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager v0.1.4
1414
github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0
1515
github.com/aws/aws-sdk-go-v2/service/sts v1.41.6
1616
github.com/blang/semver/v4 v4.0.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ github.com/aws/aws-sdk-go-v2/credentials v1.19.9 h1:sWvTKsyrMlJGEuj/WgrwilpoJ6Xa
3737
github.com/aws/aws-sdk-go-v2/credentials v1.19.9/go.mod h1:+J44MBhmfVY/lETFiKI+klz0Vym2aCmIjqgClMmW82w=
3838
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17 h1:I0GyV8wiYrP8XpA70g1HBcQO1JlQxCMTW9npl5UbDHY=
3939
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17/go.mod h1:tyw7BOl5bBe/oqvoIeECFJjMdzXoa/dfVz3QQ5lgHGA=
40-
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.2 h1:1i1SUOTLk0TbMh7+eJYxgv1r1f47BfR69LL6yaELoI0=
41-
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.2/go.mod h1:bo7DhmS/OyVeAJTC768nEk92YKWskqJ4gn0gB5e59qQ=
40+
github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager v0.1.4 h1:X2X1hn9CQk9G8Nis/xBs3YWJaNJCpQYpxcGWpl5Kgg4=
41+
github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager v0.1.4/go.mod h1:Vg7AqclrUJtnnahELZ8ZFWMDHoUHvEwArxrE7rpri58=
4242
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U=
4343
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ=
4444
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik=

internal/component/fakes/s3_downloader.go

Lines changed: 50 additions & 54 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/component/s3_release_source.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"github.com/aws/aws-sdk-go-v2/config"
2121
"github.com/aws/aws-sdk-go-v2/credentials"
2222
"github.com/aws/aws-sdk-go-v2/credentials/stscreds"
23-
s3manager "github.com/aws/aws-sdk-go-v2/feature/s3/manager"
23+
"github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager"
2424
"github.com/aws/aws-sdk-go-v2/service/s3"
2525
s3types "github.com/aws/aws-sdk-go-v2/service/s3/types"
2626
"github.com/aws/aws-sdk-go-v2/service/sts"
@@ -30,7 +30,7 @@ import (
3030

3131
//counterfeiter:generate -o ./fakes/s3_downloader.go --fake-name S3Downloader . S3Downloader
3232
type S3Downloader interface {
33-
Download(ctx context.Context, w io.WriterAt, input *s3.GetObjectInput, options ...func(*s3manager.Downloader)) (n int64, err error)
33+
DownloadObject(ctx context.Context, input *transfermanager.DownloadObjectInput, opts ...func(*transfermanager.Options)) (*transfermanager.DownloadObjectOutput, error)
3434
}
3535

3636
//counterfeiter:generate -o ./fakes/s3_client.go --fake-name S3Client . S3Client
@@ -100,7 +100,7 @@ func NewS3ReleaseSourceFromConfig(rsConfig cargo.ReleaseSourceConfig, logger *lo
100100
return NewS3ReleaseSource(
101101
rsConfig,
102102
client,
103-
s3manager.NewDownloader(client),
103+
transfermanager.New(client),
104104
logger,
105105
)
106106
}
@@ -229,11 +229,9 @@ func (src S3ReleaseSource) FindReleaseVersion(spec cargo.BOSHReleaseTarballSpeci
229229
}
230230

231231
func (src S3ReleaseSource) DownloadRelease(releaseDir string, lock cargo.BOSHReleaseTarballLock) (Local, error) {
232-
setConcurrency := func(dl *s3manager.Downloader) {
232+
setConcurrency := func(opts *transfermanager.Options) {
233233
if src.DownloadThreads > 0 {
234-
dl.Concurrency = src.DownloadThreads
235-
} else {
236-
dl.Concurrency = s3manager.DefaultDownloadConcurrency
234+
opts.Concurrency = src.DownloadThreads
237235
}
238236
}
239237

@@ -247,10 +245,11 @@ func (src S3ReleaseSource) DownloadRelease(releaseDir string, lock cargo.BOSHRel
247245
}
248246
defer closeAndIgnoreError(file)
249247

250-
_, err = src.s3Downloader.Download(context.Background(),
251-
file, &s3.GetObjectInput{
252-
Bucket: aws.String(src.Bucket),
253-
Key: aws.String(lock.RemotePath),
248+
_, err = src.s3Downloader.DownloadObject(context.Background(),
249+
&transfermanager.DownloadObjectInput{
250+
Bucket: aws.String(src.Bucket),
251+
Key: aws.String(lock.RemotePath),
252+
WriterAt: file,
254253
}, setConcurrency)
255254
if err != nil {
256255
return Local{}, fmt.Errorf("failed to download file: %w", err)

internal/component/s3_release_source_test.go

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"io"
87
"log"
98
"os"
109
"path/filepath"
1110

12-
s3manager "github.com/aws/aws-sdk-go-v2/feature/s3/manager"
11+
"github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager"
1312
"github.com/aws/aws-sdk-go-v2/service/s3"
1413
s3types "github.com/aws/aws-sdk-go-v2/service/s3/types"
1514
"github.com/go-git/go-billy/v5/osfs"
@@ -22,16 +21,16 @@ import (
2221
"github.com/pivotal-cf/kiln/pkg/cargo"
2322
)
2423

25-
func verifySetsConcurrency(opts []func(*s3manager.Downloader), concurrency int) {
24+
func verifySetsConcurrency(opts []func(*transfermanager.Options), concurrency int) {
2625
Expect(opts).To(HaveLen(1))
2726

28-
downloader := &s3manager.Downloader{
27+
options := &transfermanager.Options{
2928
Concurrency: 1,
3029
}
3130

32-
opts[0](downloader)
31+
opts[0](options)
3332

34-
Expect(downloader.Concurrency).To(Equal(concurrency))
33+
Expect(options.Concurrency).To(Equal(concurrency))
3534
}
3635

3736
var _ = Describe("S3ReleaseSource", func() {
@@ -109,9 +108,9 @@ var _ = Describe("S3ReleaseSource", func() {
109108
logger = log.New(GinkgoWriter, "", 0)
110109
fakeS3Downloader = new(fetcherFakes.S3Downloader)
111110
// fakeS3Downloader writes the given S3 bucket and key into the output file for easy verification
112-
fakeS3Downloader.DownloadStub = func(ctx context.Context, writer io.WriterAt, objectInput *s3.GetObjectInput, setConcurrency ...func(dl *s3manager.Downloader)) (int64, error) {
113-
n, err := writer.WriteAt([]byte(fmt.Sprintf("%s/%s", *objectInput.Bucket, *objectInput.Key)), 0)
114-
return int64(n), err
111+
fakeS3Downloader.DownloadObjectStub = func(ctx context.Context, input *transfermanager.DownloadObjectInput, setConcurrency ...func(*transfermanager.Options)) (*transfermanager.DownloadObjectOutput, error) {
112+
_, err := input.WriterAt.WriteAt([]byte(fmt.Sprintf("%s/%s", *input.Bucket, *input.Key)), 0)
113+
return nil, err
115114
}
116115
releaseSource = component.NewS3ReleaseSource(cargo.ReleaseSourceConfig{
117116
ID: sourceID,
@@ -129,7 +128,7 @@ var _ = Describe("S3ReleaseSource", func() {
129128
releaseSource.DownloadThreads = 7
130129
localRelease, err := releaseSource.DownloadRelease(releaseDir, remoteRelease)
131130
Expect(err).NotTo(HaveOccurred())
132-
Expect(fakeS3Downloader.DownloadCallCount()).To(Equal(1))
131+
Expect(fakeS3Downloader.DownloadObjectCallCount()).To(Equal(1))
133132

134133
releasePath := filepath.Join(releaseDir, expectedLocalFilename)
135134
releaseContents, err := os.ReadFile(releasePath)
@@ -139,7 +138,7 @@ var _ = Describe("S3ReleaseSource", func() {
139138
sha1, err := component.CalculateSum(releasePath, osfs.New(""))
140139
Expect(err).NotTo(HaveOccurred())
141140

142-
_, _, _, opts := fakeS3Downloader.DownloadArgsForCall(0)
141+
_, _, opts := fakeS3Downloader.DownloadObjectArgsForCall(0)
143142
verifySetsConcurrency(opts, 7)
144143

145144
Expect(localRelease).To(Equal(component.Local{
@@ -153,10 +152,10 @@ var _ = Describe("S3ReleaseSource", func() {
153152
releaseSource.DownloadThreads = 0
154153
_, err := releaseSource.DownloadRelease(releaseDir, remoteRelease)
155154
Expect(err).NotTo(HaveOccurred())
156-
Expect(fakeS3Downloader.DownloadCallCount()).To(Equal(1))
155+
Expect(fakeS3Downloader.DownloadObjectCallCount()).To(Equal(1))
157156

158-
_, _, _, opts := fakeS3Downloader.DownloadArgsForCall(0)
159-
verifySetsConcurrency(opts, s3manager.DefaultDownloadConcurrency)
157+
_, _, opts := fakeS3Downloader.DownloadObjectArgsForCall(0)
158+
verifySetsConcurrency(opts, 1)
160159
})
161160
})
162161

@@ -171,8 +170,8 @@ var _ = Describe("S3ReleaseSource", func() {
171170

172171
Context("when a file can't be downloaded", func() {
173172
BeforeEach(func() {
174-
fakeS3Downloader.DownloadCalls(func(ctx context.Context, w io.WriterAt, i *s3.GetObjectInput, options ...func(*s3manager.Downloader)) (int64, error) {
175-
return 0, errors.New("503 Service Unavailable")
173+
fakeS3Downloader.DownloadObjectCalls(func(ctx context.Context, input *transfermanager.DownloadObjectInput, options ...func(*transfermanager.Options)) (*transfermanager.DownloadObjectOutput, error) {
174+
return nil, errors.New("503 Service Unavailable")
176175
})
177176
})
178177

@@ -311,9 +310,9 @@ var _ = Describe("S3ReleaseSource", func() {
311310

312311
fakeS3Downloader = new(fetcherFakes.S3Downloader)
313312
// fakeS3Downloader writes the given S3 bucket and key into the output file for easy verification
314-
fakeS3Downloader.DownloadStub = func(ctx context.Context, writer io.WriterAt, objectInput *s3.GetObjectInput, setConcurrency ...func(dl *s3manager.Downloader)) (int64, error) {
315-
n, err := writer.WriteAt([]byte(fmt.Sprintf("%s/%s", *objectInput.Bucket, *objectInput.Key)), 0)
316-
return int64(n), err
313+
fakeS3Downloader.DownloadObjectStub = func(ctx context.Context, input *transfermanager.DownloadObjectInput, setConcurrency ...func(*transfermanager.Options)) (*transfermanager.DownloadObjectOutput, error) {
314+
_, err := input.WriterAt.WriteAt([]byte(fmt.Sprintf("%s/%s", *input.Bucket, *input.Key)), 0)
315+
return nil, err
317316
}
318317

319318
logger = log.New(GinkgoWriter, "", 0)
@@ -374,9 +373,9 @@ var _ = Describe("S3ReleaseSource", func() {
374373
logger = log.New(GinkgoWriter, "", 0)
375374
fakeS3Downloader = new(fetcherFakes.S3Downloader)
376375
// fakeS3Downloader writes the given S3 bucket and key into the output file for easy verification
377-
fakeS3Downloader.DownloadStub = func(ctx context.Context, writer io.WriterAt, objectInput *s3.GetObjectInput, setConcurrency ...func(dl *s3manager.Downloader)) (int64, error) {
378-
n, err := writer.WriteAt([]byte(fmt.Sprintf("%s/%s", *objectInput.Bucket, *objectInput.Key)), 0)
379-
return int64(n), err
376+
fakeS3Downloader.DownloadObjectStub = func(ctx context.Context, input *transfermanager.DownloadObjectInput, setConcurrency ...func(*transfermanager.Options)) (*transfermanager.DownloadObjectOutput, error) {
377+
_, err := input.WriterAt.WriteAt([]byte(fmt.Sprintf("%s/%s", *input.Bucket, *input.Key)), 0)
378+
return nil, err
380379
}
381380

382381
releaseSource = component.NewS3ReleaseSource(
@@ -435,10 +434,10 @@ var _ = Describe("S3ReleaseSource", func() {
435434

436435
logger = log.New(GinkgoWriter, "", 0)
437436
fakeS3Downloader = new(fetcherFakes.S3Downloader)
438-
fakeS3Downloader.DownloadStub = func(ctx context.Context, wa io.WriterAt, goi *s3.GetObjectInput, f ...func(*s3manager.Downloader)) (int64, error) {
439-
Fail("Download called when noDownload=true")
440-
return -1, nil
441-
}
437+
fakeS3Downloader.DownloadObjectStub = func(ctx context.Context, input *transfermanager.DownloadObjectInput, opts ...func(*transfermanager.Options)) (*transfermanager.DownloadObjectOutput, error) {
438+
Fail("Download called when noDownload=true")
439+
return nil, nil
440+
}
442441

443442
releaseSource = component.NewS3ReleaseSource(
444443
cargo.ReleaseSourceConfig{
@@ -509,9 +508,9 @@ var _ = Describe("S3ReleaseSource", func() {
509508
logger = log.New(GinkgoWriter, "", 0)
510509
fakeS3Downloader := new(fetcherFakes.S3Downloader)
511510
// fakeS3Downloader writes the given S3 bucket and key into the output file for easy verification
512-
fakeS3Downloader.DownloadStub = func(ctx context.Context, writer io.WriterAt, objectInput *s3.GetObjectInput, setConcurrency ...func(dl *s3manager.Downloader)) (int64, error) {
513-
n, err := writer.WriteAt([]byte(fmt.Sprintf("%s/%s", *objectInput.Bucket, *objectInput.Key)), 0)
514-
return int64(n), err
511+
fakeS3Downloader.DownloadObjectStub = func(ctx context.Context, input *transfermanager.DownloadObjectInput, setConcurrency ...func(*transfermanager.Options)) (*transfermanager.DownloadObjectOutput, error) {
512+
_, err := input.WriterAt.WriteAt([]byte(fmt.Sprintf("%s/%s", *input.Bucket, *input.Key)), 0)
513+
return nil, err
515514
}
516515

517516
releaseSource = component.NewS3ReleaseSource(

internal/test/container.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"fmt"
1010
"io"
1111
"log"
12-
"net"
1312
"os"
1413
"os/signal"
1514
"path"
@@ -87,7 +86,6 @@ func (configuration Configuration) commands() ([]string, error) {
8786

8887
//counterfeiter:generate -o ./fakes/moby_client.go --fake-name MobyClient . mobyClient
8988
type mobyClient interface {
90-
DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error)
9189
ImageBuild(ctx context.Context, buildContext io.Reader, options build.ImageBuildOptions) (build.ImageBuildResponse, error)
9290
Ping(ctx context.Context) (types.Ping, error)
9391
ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, platform *specV1.Platform, containerName string) (container.CreateResponse, error)
@@ -310,7 +308,3 @@ func createDockerfileTarball(tw tarWriter, fileContents string) error {
310308
}
311309
return tw.Close()
312310
}
313-
314-
func closeAndIgnoreError(c io.Closer) {
315-
_ = c.Close()
316-
}

0 commit comments

Comments
 (0)