Skip to content

Commit 6cc9c2b

Browse files
Merge branch 'hashicorp:main' into f-add_eu_iso
2 parents 7985cd4 + c28ebed commit 6cc9c2b

File tree

10 files changed

+210
-162
lines changed

10 files changed

+210
-162
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<!-- markdownlint-disable single-title -->
22
# v2.0.0 (Unreleased)
33

4+
BUG FIXES
5+
6+
* Correctly handles user agents passed using `TF_APPEND_USER_AGENT` which contain `/`, `(`, `)`, or space ([#990](https://github.com/hashicorp/aws-sdk-go-base/pull/990))
7+
48
# v2.0.0-beta.50 (2024-03-19)
59

610
BUG FIXES

aws_config.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616

1717
"github.com/aws/aws-sdk-go-v2/aws"
1818
"github.com/aws/aws-sdk-go-v2/aws/defaults"
19-
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
2019
"github.com/aws/aws-sdk-go-v2/aws/ratelimit"
2120
"github.com/aws/aws-sdk-go-v2/aws/retry"
2221
"github.com/aws/aws-sdk-go-v2/config"
@@ -357,7 +356,7 @@ func commonLoadOptions(ctx context.Context, c *Config) ([]func(*config.LoadOptio
357356
}
358357

359358
if len(c.UserAgent) > 0 {
360-
apiOptions = append(apiOptions, withUserAgentAppender(c.UserAgent))
359+
apiOptions = append(apiOptions, withUserAgentAppender(c.UserAgent.BuildUserAgentString()))
361360
}
362361

363362
apiOptions = append(apiOptions, func(stack *middleware.Stack) error {
@@ -369,7 +368,7 @@ func commonLoadOptions(ctx context.Context, c *Config) ([]func(*config.LoadOptio
369368
"source": fmt.Sprintf("envvar(%q)", constants.AppendUserAgentEnvVar),
370369
"value": v,
371370
})
372-
apiOptions = append(apiOptions, awsmiddleware.AddUserAgentKey(v))
371+
apiOptions = append(apiOptions, withUserAgentAppender(v))
373372
}
374373

375374
if !c.SuppressDebugLog {

go.mod

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ module github.com/hashicorp/aws-sdk-go-base/v2
33
go 1.21
44

55
require (
6-
github.com/aws/aws-sdk-go-v2 v1.26.0
7-
github.com/aws/aws-sdk-go-v2/config v1.27.9
8-
github.com/aws/aws-sdk-go-v2/credentials v1.17.9
9-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0
10-
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0
11-
github.com/aws/aws-sdk-go-v2/service/iam v1.31.3
12-
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0
13-
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.3
14-
github.com/aws/aws-sdk-go-v2/service/sso v1.20.3
15-
github.com/aws/aws-sdk-go-v2/service/sts v1.28.5
16-
github.com/aws/smithy-go v1.20.1
6+
github.com/aws/aws-sdk-go-v2 v1.26.1
7+
github.com/aws/aws-sdk-go-v2/config v1.27.10
8+
github.com/aws/aws-sdk-go-v2/credentials v1.17.10
9+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1
10+
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.1
11+
github.com/aws/aws-sdk-go-v2/service/iam v1.31.4
12+
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1
13+
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4
14+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.4
15+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6
16+
github.com/aws/smithy-go v1.20.2
1717
github.com/google/go-cmp v0.6.0
1818
github.com/hashicorp/go-hclog v1.6.2
1919
github.com/hashicorp/go-multierror v1.1.1
@@ -26,17 +26,17 @@ require (
2626
)
2727

2828
require (
29-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect
30-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 // indirect
31-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4 // indirect
29+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
30+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
31+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
3232
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
33-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4 // indirect
34-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect
35-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6 // indirect
36-
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.5 // indirect
37-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6 // indirect
38-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4 // indirect
39-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.3 // indirect
33+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect
34+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
35+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect
36+
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.6 // indirect
37+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
38+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect
39+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
4040
github.com/fatih/color v1.16.0 // indirect
4141
github.com/go-logr/logr v1.4.1 // indirect
4242
github.com/go-logr/stdr v1.2.2 // indirect

go.sum

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
1-
github.com/aws/aws-sdk-go-v2 v1.26.0 h1:/Ce4OCiM3EkpW7Y+xUnfAFpchU78K7/Ug01sZni9PgA=
2-
github.com/aws/aws-sdk-go-v2 v1.26.0/go.mod h1:35hUlJVYd+M++iLI3ALmVwMOyRYMmRqUXpTtRGW+K9I=
3-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU=
4-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo=
5-
github.com/aws/aws-sdk-go-v2/config v1.27.9 h1:gRx/NwpNEFSk+yQlgmk1bmxxvQ5TyJ76CWXs9XScTqg=
6-
github.com/aws/aws-sdk-go-v2/config v1.27.9/go.mod h1:dK1FQfpwpql83kbD873E9vz4FyAxuJtR22wzoXn3qq0=
7-
github.com/aws/aws-sdk-go-v2/credentials v1.17.9 h1:N8s0/7yW+h8qR8WaRlPQeJ6czVMNQVNtNdUqf6cItao=
8-
github.com/aws/aws-sdk-go-v2/credentials v1.17.9/go.mod h1:446YhIdmSV0Jf/SLafGZalQo+xr2iw7/fzXGDPTU1yQ=
9-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0 h1:af5YzcLf80tv4Em4jWVD75lpnOHSBkPUZxZfGkrI3HI=
10-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0/go.mod h1:nQ3how7DMnFMWiU1SpECohgC82fpn4cKZ875NDMmwtA=
11-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 h1:0ScVK/4qZ8CIW0k8jOeFVsyS/sAiXpYxRBLolMkuLQM=
12-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4/go.mod h1:84KyjNZdHC6QZW08nfHI6yZgPd+qRgaWcYsyLUo3QY8=
13-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4 h1:sHmMWWX5E7guWEFQ9SVo6A3S4xpPrWnd77a6y4WM6PU=
14-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4/go.mod h1:WjpDrhWisWOIoS9n3nk67A3Ll1vfULJ9Kq6h29HTD48=
1+
github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA=
2+
github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
3+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to=
4+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg=
5+
github.com/aws/aws-sdk-go-v2/config v1.27.10 h1:PS+65jThT0T/snC5WjyfHHyUgG+eBoupSDV+f838cro=
6+
github.com/aws/aws-sdk-go-v2/config v1.27.10/go.mod h1:BePM7Vo4OBpHreKRUMuDXX+/+JWP38FLkzl5m27/Jjs=
7+
github.com/aws/aws-sdk-go-v2/credentials v1.17.10 h1:qDZ3EA2lv1KangvQB6y258OssCHD0xvaGiEDkG4X/10=
8+
github.com/aws/aws-sdk-go-v2/credentials v1.17.10/go.mod h1:6t3sucOaYDwDssHQa0ojH1RpmVmF5/jArkye1b2FKMI=
9+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
10+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
11+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=
12+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I=
13+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0=
14+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc=
1515
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
1616
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
17-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4 h1:SIkD6T4zGQ+1YIit22wi37CGNkrE7mXV1vNA5VpI3TI=
18-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4/go.mod h1:XfeqbsG0HNedNs0GT+ju4Bs+pFAwsrlzcRdMvdNVf5s=
19-
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0 h1:LtsNRZ6+ZYIbJcPiLHcefXeWkw2DZT9iJyXJJQvhvXw=
20-
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0/go.mod h1:ua1eYOCxAAT0PUY3LAi9bUFuKJHC/iAksBLqR1Et7aU=
21-
github.com/aws/aws-sdk-go-v2/service/iam v1.31.3 h1:cJn9Snros9WmDA7/qCCN7jSkowcu1CqnwhFpv4ipHEE=
22-
github.com/aws/aws-sdk-go-v2/service/iam v1.31.3/go.mod h1:+nAQlxsBxPFf6GrL93lvCuv5PxSTX3GO0RYrURyzl/Q=
23-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibRTVAs6ECHZOw5/wlylS9OcTzwyjeQMudmREjE=
24-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8=
25-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6 h1:NkHCgg0Ck86c5PTOzBZ0JRccI51suJDg5lgFtxBu1ek=
26-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6/go.mod h1:mjTpxjC8v4SeINTngrnKFgm2QUi+Jm+etTbCxh8W4uU=
27-
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.5 h1:4vkDuYdXXD2xLgWmNalqH3q4u/d1XnaBMBXdVdZXVp0=
28-
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.5/go.mod h1:Ko/RW/qUJyM1rdTzZa74uhE2I0t0VXH0ob/MLcc+q+w=
29-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6 h1:b+E7zIUHMmcB4Dckjpkapoy47W6C9QBv/zoUP+Hn8Kc=
30-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6/go.mod h1:S2fNV0rxrP78NhPbCZeQgY8H9jdDMeGtwcfZIRxzBqU=
31-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4 h1:uDj2K47EM1reAYU9jVlQ1M5YENI1u6a/TxJpf6AeOLA=
32-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4/go.mod h1:XKCODf4RKHppc96c2EZBGV/oCUC7OClxAo2MEyg4pIk=
33-
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0 h1:r3o2YsgW9zRcIP3Q0WCmttFVhTuugeKIvT5z9xDspc0=
34-
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0/go.mod h1:w2E4f8PUfNtyjfL6Iu+mWI96FGttE03z3UdNcUEC4tA=
35-
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.3 h1:AOQ5bXiVWqoEAv8Ag7zgJoDVhOz3lUrZyk1/M45/keU=
36-
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.3/go.mod h1:GCHwwK0RX9JVvLYzDDLHCvkD2lMihdqJSQ2kzkVbyhw=
37-
github.com/aws/aws-sdk-go-v2/service/sso v1.20.3 h1:mnbuWHOcM70/OFUlZZ5rcdfA8PflGXXiefU/O+1S3+8=
38-
github.com/aws/aws-sdk-go-v2/service/sso v1.20.3/go.mod h1:5HFu51Elk+4oRBZVxmHrSds5jFXmFj8C3w7DVF2gnrs=
39-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.3 h1:uLq0BKatTmDzWa/Nu4WO0M1AaQDaPpwTKAeByEc6WFM=
40-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.3/go.mod h1:b+qdhjnxj8GSR6t5YfphOffeoQSQ1KmpoVVuBn+PWxs=
41-
github.com/aws/aws-sdk-go-v2/service/sts v1.28.5 h1:J/PpTf/hllOjx8Xu9DMflff3FajfLxqM5+tepvVXmxg=
42-
github.com/aws/aws-sdk-go-v2/service/sts v1.28.5/go.mod h1:0ih0Z83YDH/QeQ6Ori2yGE2XvWYv/Xm+cZc01LC6oK0=
43-
github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw=
44-
github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
17+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU=
18+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0=
19+
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.1 h1:dZXY07Dm59TxAjJcUfNMJHLDI/gLMxTRZefn2jFAVsw=
20+
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.1/go.mod h1:lVLqEtX+ezgtfalyJs7Peb0uv9dEpAQP5yuq2O26R44=
21+
github.com/aws/aws-sdk-go-v2/service/iam v1.31.4 h1:eVm30ZIDv//r6Aogat9I88b5YX1xASSLcEDqHYRPVl0=
22+
github.com/aws/aws-sdk-go-v2/service/iam v1.31.4/go.mod h1:aXWImQV0uTW35LM0A/T4wEg6R1/ReXUu4SM6/lUHYK0=
23+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
24+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
25+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es=
26+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY=
27+
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.6 h1:6tayEze2Y+hiL3kdnEUxSPsP+pJsUfwLSFspFl1ru9Q=
28+
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.6/go.mod h1:qVNb/9IOVsLCZh0x2lnagrBwQ9fxajUpXS7OZfIsKn0=
29+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo=
30+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk=
31+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys=
32+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ=
33+
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc=
34+
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o=
35+
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 h1:mE2ysZMEeQ3ulHWs4mmc4fZEhOfeY1o6QXAfDqjbSgw=
36+
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4/go.mod h1:lCN2yKnj+Sp9F6UzpoPPTir+tSaC9Jwf6LcmTqnXFZw=
37+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.4 h1:WzFol5Cd+yDxPAdnzTA5LmpHYSWinhmSj4rQChV0ee8=
38+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.4/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
39+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE=
40+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak=
41+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU=
42+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw=
43+
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
44+
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
4545
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4646
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
4747
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

internal/test/user_agent.go

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ type UserAgentTestCase struct {
2020
}
2121

2222
func TestUserAgentProducts(t *testing.T, awsSdkGoUserAgent func() string, testUserAgentProducts func(t *testing.T, testCase UserAgentTestCase)) {
23+
t.Helper()
24+
2325
testCases := map[string]UserAgentTestCase{
2426
"standard User-Agent": {
2527
Config: &config.Config{
@@ -29,17 +31,55 @@ func TestUserAgentProducts(t *testing.T, awsSdkGoUserAgent func() string, testUs
2931
},
3032
ExpectedUserAgent: awsSdkGoUserAgent(),
3133
},
32-
"customized User-Agent TF_APPEND_USER_AGENT": {
34+
35+
"customized User-Agent TF_APPEND_USER_AGENT product": {
36+
Config: &config.Config{
37+
AccessKey: servicemocks.MockStaticAccessKey,
38+
Region: "us-east-1",
39+
SecretKey: servicemocks.MockStaticSecretKey,
40+
},
41+
EnvironmentVariables: map[string]string{
42+
constants.AppendUserAgentEnvVar: "Env",
43+
},
44+
ExpectedUserAgent: awsSdkGoUserAgent() + " Env",
45+
},
46+
47+
"customized User-Agent TF_APPEND_USER_AGENT product version": {
3348
Config: &config.Config{
3449
AccessKey: servicemocks.MockStaticAccessKey,
3550
Region: "us-east-1",
3651
SecretKey: servicemocks.MockStaticSecretKey,
3752
},
3853
EnvironmentVariables: map[string]string{
39-
constants.AppendUserAgentEnvVar: "Last",
54+
constants.AppendUserAgentEnvVar: "Env/1.2",
4055
},
41-
ExpectedUserAgent: awsSdkGoUserAgent() + " Last",
56+
ExpectedUserAgent: awsSdkGoUserAgent() + " Env/1.2",
4257
},
58+
59+
"customized User-Agent TF_APPEND_USER_AGENT multi product": {
60+
Config: &config.Config{
61+
AccessKey: servicemocks.MockStaticAccessKey,
62+
Region: "us-east-1",
63+
SecretKey: servicemocks.MockStaticSecretKey,
64+
},
65+
EnvironmentVariables: map[string]string{
66+
constants.AppendUserAgentEnvVar: "Env1/1.2 Env2",
67+
},
68+
ExpectedUserAgent: awsSdkGoUserAgent() + " Env1/1.2 Env2",
69+
},
70+
71+
"customized User-Agent TF_APPEND_USER_AGENT with comment": {
72+
Config: &config.Config{
73+
AccessKey: servicemocks.MockStaticAccessKey,
74+
Region: "us-east-1",
75+
SecretKey: servicemocks.MockStaticSecretKey,
76+
},
77+
EnvironmentVariables: map[string]string{
78+
constants.AppendUserAgentEnvVar: "Env1/1.2 (comment) Env2",
79+
},
80+
ExpectedUserAgent: awsSdkGoUserAgent() + " Env1/1.2 (comment) Env2",
81+
},
82+
4383
"APN User-Agent Products": {
4484
Config: &config.Config{
4585
AccessKey: servicemocks.MockStaticAccessKey,
@@ -62,6 +102,7 @@ func TestUserAgentProducts(t *testing.T, awsSdkGoUserAgent func() string, testUs
62102
},
63103
ExpectedUserAgent: "APN/1.0 partner/1.0 first/1.2.3 second/1.0.2 (a comment) " + awsSdkGoUserAgent(),
64104
},
105+
65106
"APN User-Agent Products and TF_APPEND_USER_AGENT": {
66107
Config: &config.Config{
67108
AccessKey: servicemocks.MockStaticAccessKey,
@@ -82,10 +123,11 @@ func TestUserAgentProducts(t *testing.T, awsSdkGoUserAgent func() string, testUs
82123
},
83124
},
84125
EnvironmentVariables: map[string]string{
85-
constants.AppendUserAgentEnvVar: "Last",
126+
constants.AppendUserAgentEnvVar: "Last/9.0.0",
86127
},
87-
ExpectedUserAgent: "APN/1.0 partner/1.0 first/1.2.3 second/1.0.2 " + awsSdkGoUserAgent() + " Last",
128+
ExpectedUserAgent: "APN/1.0 partner/1.0 first/1.2.3 second/1.0.2 " + awsSdkGoUserAgent() + " Last/9.0.0",
88129
},
130+
89131
"User-Agent Products": {
90132
Config: &config.Config{
91133
AccessKey: servicemocks.MockStaticAccessKey,
@@ -105,6 +147,7 @@ func TestUserAgentProducts(t *testing.T, awsSdkGoUserAgent func() string, testUs
105147
},
106148
ExpectedUserAgent: awsSdkGoUserAgent() + " first/1.2.3 second/1.0.2 (a comment)",
107149
},
150+
108151
"APN and User-Agent Products": {
109152
Config: &config.Config{
110153
AccessKey: servicemocks.MockStaticAccessKey,
@@ -137,6 +180,7 @@ func TestUserAgentProducts(t *testing.T, awsSdkGoUserAgent func() string, testUs
137180
},
138181
ExpectedUserAgent: "APN/1.0 partner/1.0 first/1.2.3 second/1.0.2 (a comment) " + awsSdkGoUserAgent() + " third/4.5.6 fourth/2.1",
139182
},
183+
140184
"context": {
141185
Config: &config.Config{
142186
AccessKey: servicemocks.MockStaticAccessKey,
@@ -156,6 +200,7 @@ func TestUserAgentProducts(t *testing.T, awsSdkGoUserAgent func() string, testUs
156200
},
157201
ExpectedUserAgent: awsSdkGoUserAgent() + " first/1.2.3 second/1.0.2 (a comment)",
158202
},
203+
159204
"User-Agent Products and context": {
160205
Config: &config.Config{
161206
AccessKey: servicemocks.MockStaticAccessKey,

0 commit comments

Comments
 (0)