Skip to content

Commit 914c9b2

Browse files
converting aws provider to use aws-sdk-go-v2 (#1678)
Co-authored-by: chickencoding123 <8017298+chickencoding123@users.noreply.github.com>
1 parent 7d729b0 commit 914c9b2

File tree

12 files changed

+609
-540
lines changed

12 files changed

+609
-540
lines changed

go.mod

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ require (
1616
github.com/Azure/go-autorest/autorest/azure/auth v0.5.3
1717
github.com/Azure/go-autorest/autorest/to v0.4.0
1818
github.com/UpCloudLtd/upcloud-go-api/v6 v6.5.0
19-
github.com/aws/aws-sdk-go v1.55.2
2019
github.com/bramvdbogaerde/go-scp v1.0.0
2120
github.com/digitalocean/godo v1.57.0
2221
github.com/distribution/reference v0.6.0
@@ -70,6 +69,30 @@ require (
7069
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
7170
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
7271
github.com/Microsoft/go-winio v0.6.2 // indirect
72+
github.com/aws/aws-sdk-go-v2 v1.32.8 // direct
73+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 // indirect
74+
github.com/aws/aws-sdk-go-v2/config v1.28.10 // direct
75+
github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect
76+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect
77+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.48 // direct
78+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect
79+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect
80+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
81+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.27 // indirect
82+
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.4 // direct
83+
github.com/aws/aws-sdk-go-v2/service/ebs v1.27.10 // direct
84+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.3 // direct
85+
github.com/aws/aws-sdk-go-v2/service/iam v1.38.4 // direct
86+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect
87+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.8 // indirect
88+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect
89+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.8 // indirect
90+
github.com/aws/aws-sdk-go-v2/service/route53 v1.47.1 // direct
91+
github.com/aws/aws-sdk-go-v2/service/s3 v1.72.2 // direct
92+
github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect
93+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect
94+
github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect
95+
github.com/aws/smithy-go v1.22.1 // direct
7396
github.com/blang/semver/v4 v4.0.0 // indirect
7497
github.com/containerd/log v0.1.0 // indirect
7598
github.com/davecgh/go-spew v1.1.1 // indirect

go.sum

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,54 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC
112112
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
113113
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
114114
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
115-
github.com/aws/aws-sdk-go v1.55.2 h1:/2OFM8uFfK9e+cqHTw9YPrvTzIXT2XkFGXRM7WbJb7E=
116-
github.com/aws/aws-sdk-go v1.55.2/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
115+
github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo=
116+
github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U=
117+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 h1:lL7IfaFzngfx0ZwUGOZdsFFnQ5uLvR0hWqqhyE7Q9M8=
118+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7/go.mod h1:QraP0UcVlQJsmHfioCrveWOC1nbiWUl3ej08h4mXWoc=
119+
github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg=
120+
github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg=
121+
github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk=
122+
github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ=
123+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI=
124+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA=
125+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.48 h1:XnXVe2zRyPf0+fAW5L05esmngvBpC6DQZK7oZB/z/Co=
126+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.48/go.mod h1:S3wey90OrS4f7kYxH6PT175YyEcHTORY07++HurMaRM=
127+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs=
128+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw=
129+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8=
130+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8=
131+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ=
132+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
133+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.27 h1:AmB5QxnD+fBFrg9LcqzkgF/CaYvMyU/BTlejG4t1S7Q=
134+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.27/go.mod h1:Sai7P3xTiyv9ZUYO3IFxMnmiIP759/67iQbU4kdmkyU=
135+
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.4 h1:w4Tdy9sQlJdcF5dZ9H5uRxradA9Mi2Hp4eOHQmxUJhA=
136+
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.4/go.mod h1:6klY3glv/b/phmA0CUj38SWNBior8rKtVvAJrAXljis=
137+
github.com/aws/aws-sdk-go-v2/service/ebs v1.27.10 h1:NhD9+pA7Lk6hK0UHh1F4LC8yYoGS8OOOi/X4qgWFhek=
138+
github.com/aws/aws-sdk-go-v2/service/ebs v1.27.10/go.mod h1:Zn1yBXTLyeapYa3U9IU86oPhQkiTZoWD7qBCgOxajw8=
139+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.3 h1:h5UPeMBMm29Vjk45QVnH2Qu2QMbzRrWUORwyGjzWQso=
140+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.3/go.mod h1:WAFpTnWeO2BNfwpQ8LTTTx9l9/bTztMPrA8gkh41PvI=
141+
github.com/aws/aws-sdk-go-v2/service/iam v1.38.4 h1:440YtmP8Cn6Qp7WHYfvz2/Xzmu1v1Vox/FJnzUDDQGM=
142+
github.com/aws/aws-sdk-go-v2/service/iam v1.38.4/go.mod h1:oXqc4hmGhZpj06Zu8z+ahXhdbjq4Uw8pjN9flty0Ync=
143+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y=
144+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE=
145+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.8 h1:iwYS40JnrBeA9e9aI5S6KKN4EB2zR4iUVYN0nwVivz4=
146+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.8/go.mod h1:Fm9Mi+ApqmFiknZtGpohVcBGvpTu542VC4XO9YudRi0=
147+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA=
148+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE=
149+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.8 h1:/Mn7gTedG86nbpjT4QEKsN1D/fThiYe1qvq7WsBGNHg=
150+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.8/go.mod h1:Ae3va9LPmvjj231ukHB6UeT8nS7wTPfC3tMZSZMwNYg=
151+
github.com/aws/aws-sdk-go-v2/service/route53 v1.47.1 h1:UpJqR435MxGZGRqIo4YZATcjC5OvQUYZy1gtU9Ee55o=
152+
github.com/aws/aws-sdk-go-v2/service/route53 v1.47.1/go.mod h1:eI5iH9B3C6Ooj+PosK7FALYCZOGDVHyPEyX1gya5R04=
153+
github.com/aws/aws-sdk-go-v2/service/s3 v1.72.2 h1:a7aQ3RW+ug4IbhoQp29NZdc7vqrzKZZfWZSaQAXOZvQ=
154+
github.com/aws/aws-sdk-go-v2/service/s3 v1.72.2/go.mod h1:xMekrnhmJ5aqmyxtmALs7mlvXw5xRh+eYjOjvrIIFJ4=
155+
github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8=
156+
github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY=
157+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw=
158+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY=
159+
github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM=
160+
github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc=
161+
github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro=
162+
github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
117163
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
118164
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
119165
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=

provider/aws/aws.go

Lines changed: 30 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
package aws
44

55
import (
6-
"errors"
6+
"context"
77
"fmt"
88
"strings"
99

10-
"github.com/aws/aws-sdk-go/aws"
11-
"github.com/aws/aws-sdk-go/aws/credentials"
12-
"github.com/aws/aws-sdk-go/aws/session"
13-
"github.com/aws/aws-sdk-go/service/ebs"
14-
"github.com/aws/aws-sdk-go/service/ec2"
15-
"github.com/aws/aws-sdk-go/service/route53"
10+
"github.com/aws/aws-sdk-go-v2/aws"
11+
"github.com/aws/aws-sdk-go-v2/service/autoscaling"
12+
"github.com/aws/aws-sdk-go-v2/service/ebs"
13+
"github.com/aws/aws-sdk-go-v2/service/ec2"
14+
awsEc2Types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
15+
"github.com/aws/aws-sdk-go-v2/service/iam"
16+
"github.com/aws/aws-sdk-go-v2/service/route53"
1617
"github.com/nanovms/ops/lepton"
1718
"github.com/nanovms/ops/types"
1819
)
@@ -22,16 +23,19 @@ const ProviderName = "aws"
2223

2324
// AWS Provider to interact with AWS cloud infrastructure
2425
type AWS struct {
26+
execCtx context.Context
2527
Storage *S3
26-
dnsService *route53.Route53
27-
volumeService *ebs.EBS
28-
session *session.Session
29-
ec2 *ec2.EC2
28+
dnsService *route53.Client
29+
volumeService *ebs.Client
30+
ec2 *ec2.Client
31+
asg *autoscaling.Client
32+
iam *iam.Client
3033
}
3134

3235
// NewProvider AWS
3336
func NewProvider() *AWS {
34-
return &AWS{}
37+
execCtx := context.Background()
38+
return &AWS{execCtx: execCtx}
3539
}
3640

3741
// strips any zone qualifier from 'zone' string
@@ -42,61 +46,21 @@ func stripZone(zone string) string {
4246
return strings.TrimRight(zone, "abc")
4347
}
4448

45-
func loadAWSCreds() (err error) {
46-
foundValidCredentials := false
47-
48-
fileCreds := credentials.NewSharedCredentials("", "")
49-
50-
_, err = fileCreds.Get()
51-
if err == nil {
52-
foundValidCredentials = true
53-
}
54-
55-
envCreds := credentials.NewEnvCredentials()
56-
57-
_, err = envCreds.Get()
58-
if err == nil {
59-
foundValidCredentials = true
60-
}
61-
62-
if foundValidCredentials {
63-
err = nil
64-
}
65-
66-
return
67-
}
68-
6949
// Initialize AWS related things
7050
func (p *AWS) Initialize(config *types.ProviderConfig) error {
7151
p.Storage = &S3{}
7252

73-
if config.Zone == "" {
74-
return errors.New("zone missing")
75-
}
76-
77-
err := loadAWSCreds()
53+
awsSdkConfig, err := GetAwsSdkConfig(p.execCtx, &config.Zone)
7854
if err != nil {
7955
return err
8056
}
57+
p.dnsService = route53.NewFromConfig(*awsSdkConfig)
58+
p.ec2 = ec2.NewFromConfig(*awsSdkConfig)
59+
p.volumeService = ebs.NewFromConfig(*awsSdkConfig)
60+
p.asg = autoscaling.NewFromConfig(*awsSdkConfig)
61+
p.iam = iam.NewFromConfig(*awsSdkConfig)
8162

82-
session, err := session.NewSession(
83-
&aws.Config{
84-
Region: aws.String(stripZone(config.Zone)),
85-
},
86-
)
87-
if err != nil {
88-
return err
89-
}
90-
91-
p.session = session
92-
p.dnsService = route53.New(session)
93-
p.ec2 = ec2.New(session)
94-
p.volumeService = ebs.New(session,
95-
aws.NewConfig().
96-
WithRegion(stripZone(config.Zone)).
97-
WithMaxRetries(7))
98-
99-
_, err = p.ec2.DescribeRegions(&ec2.DescribeRegionsInput{RegionNames: aws.StringSlice([]string{stripZone(config.Zone)})})
63+
_, err = p.ec2.DescribeRegions(p.execCtx, &ec2.DescribeRegionsInput{RegionNames: []string{stripZone(config.Zone)}})
10064
if err != nil {
10165
return fmt.Errorf("region with name %v is invalid", config.Zone)
10266
}
@@ -105,38 +69,38 @@ func (p *AWS) Initialize(config *types.ProviderConfig) error {
10569
}
10670

10771
// buildAwsTags converts configuration tags to AWS tags and returns the resource name. The defaultName is overridden if there is a tag with key name
108-
func buildAwsTags(configTags []types.Tag, defaultName string) ([]*ec2.Tag, string) {
109-
tags := []*ec2.Tag{}
72+
func buildAwsTags(configTags []types.Tag, defaultName string) ([]awsEc2Types.Tag, string) {
73+
tags := []awsEc2Types.Tag{}
11074
var nameSpecified bool
11175
name := defaultName
11276

11377
for _, tag := range configTags {
114-
tags = append(tags, &ec2.Tag{Key: aws.String(tag.Key), Value: aws.String(tag.Value)})
78+
tags = append(tags, awsEc2Types.Tag{Key: aws.String(tag.Key), Value: aws.String(tag.Value)})
11579
if tag.Key == "Name" {
11680
nameSpecified = true
11781
name = tag.Value
11882
}
11983
}
12084

12185
if !nameSpecified {
122-
tags = append(tags, &ec2.Tag{
86+
tags = append(tags, awsEc2Types.Tag{
12387
Key: aws.String("Name"),
12488
Value: aws.String(name),
12589
})
12690
}
12791

128-
tags = append(tags, &ec2.Tag{
92+
tags = append(tags, awsEc2Types.Tag{
12993
Key: aws.String("CreatedBy"),
13094
Value: aws.String("ops"),
13195
})
13296

13397
return tags, name
13498
}
13599

136-
func (p *AWS) getNameTag(tags []*ec2.Tag) *ec2.Tag {
100+
func (p *AWS) getNameTag(tags []awsEc2Types.Tag) *awsEc2Types.Tag {
137101
for _, tag := range tags {
138102
if *tag.Key == "Name" {
139-
return tag
103+
return &tag
140104
}
141105
}
142106

provider/aws/aws_dns.go

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,20 @@ package aws
44

55
import (
66
"strconv"
7+
"strings"
78
"time"
89

9-
"github.com/aws/aws-sdk-go/aws"
10-
"github.com/aws/aws-sdk-go/service/route53"
10+
"github.com/aws/aws-sdk-go-v2/aws"
11+
"github.com/aws/aws-sdk-go-v2/service/route53"
12+
awsRoute53Types "github.com/aws/aws-sdk-go-v2/service/route53/types"
1113
"github.com/nanovms/ops/lepton"
1214
"github.com/nanovms/ops/types"
1315
)
1416

1517
// FindOrCreateZoneIDByName searches for a DNS zone with the name passed by argument and if it doesn't exist it creates one
1618
func (p *AWS) FindOrCreateZoneIDByName(config *types.Config, dnsName string) (string, error) {
1719
var zoneID string
18-
hostedZones, err := p.dnsService.ListHostedZonesByName(&route53.ListHostedZonesByNameInput{DNSName: &dnsName})
20+
hostedZones, err := p.dnsService.ListHostedZonesByName(p.execCtx, &route53.ListHostedZonesByNameInput{DNSName: &dnsName})
1921
if err == nil && hostedZones.HostedZones == nil {
2022
reference := strconv.Itoa(int(time.Now().Unix()))
2123

@@ -24,7 +26,7 @@ func (p *AWS) FindOrCreateZoneIDByName(config *types.Config, dnsName string) (st
2426
Name: &dnsName,
2527
}
2628

27-
hostedZone, err := p.dnsService.CreateHostedZone(createHostedZoneInput)
29+
hostedZone, err := p.dnsService.CreateHostedZone(p.execCtx, createHostedZoneInput)
2830
if err != nil {
2931
return "", err
3032
}
@@ -41,26 +43,26 @@ func (p *AWS) FindOrCreateZoneIDByName(config *types.Config, dnsName string) (st
4143

4244
// DeleteZoneRecordIfExists deletes a record from a DNS zone if it exists
4345
func (p *AWS) DeleteZoneRecordIfExists(config *types.Config, zoneID string, recordName string) error {
44-
records, err := p.dnsService.ListResourceRecordSets(&route53.ListResourceRecordSetsInput{HostedZoneId: &zoneID})
46+
records, err := p.dnsService.ListResourceRecordSets(p.execCtx, &route53.ListResourceRecordSetsInput{HostedZoneId: &zoneID})
4547
if err != nil {
4648
return err
4749
}
4850

4951
for _, record := range records.ResourceRecordSets {
50-
if *record.Name == recordName && *record.Type == "A" {
52+
if *record.Name == recordName && record.Type == "A" {
5153
input := &route53.ChangeResourceRecordSetsInput{
52-
ChangeBatch: &route53.ChangeBatch{
53-
Changes: []*route53.Change{
54+
ChangeBatch: &awsRoute53Types.ChangeBatch{
55+
Changes: []awsRoute53Types.Change{
5456
{
55-
Action: aws.String("DELETE"),
56-
ResourceRecordSet: record,
57+
Action: awsRoute53Types.ChangeActionDelete,
58+
ResourceRecordSet: &record,
5759
},
5860
},
5961
},
6062
HostedZoneId: aws.String(zoneID),
6163
}
6264

63-
_, err = p.dnsService.ChangeResourceRecordSets(input)
65+
_, err = p.dnsService.ChangeResourceRecordSets(p.execCtx, input)
6466
if err != nil {
6567
return err
6668
}
@@ -73,27 +75,27 @@ func (p *AWS) DeleteZoneRecordIfExists(config *types.Config, zoneID string, reco
7375
// CreateZoneRecord creates a record in a DNS zone
7476
func (p *AWS) CreateZoneRecord(config *types.Config, zoneID string, record *lepton.DNSRecord) error {
7577
input := &route53.ChangeResourceRecordSetsInput{
76-
ChangeBatch: &route53.ChangeBatch{
77-
Changes: []*route53.Change{
78+
ChangeBatch: &awsRoute53Types.ChangeBatch{
79+
Changes: []awsRoute53Types.Change{
7880
{
79-
Action: aws.String("CREATE"),
80-
ResourceRecordSet: &route53.ResourceRecordSet{
81+
Action: awsRoute53Types.ChangeActionCreate,
82+
ResourceRecordSet: &awsRoute53Types.ResourceRecordSet{
8183
Name: aws.String(record.Name),
82-
ResourceRecords: []*route53.ResourceRecord{
84+
ResourceRecords: []awsRoute53Types.ResourceRecord{
8385
{
8486
Value: aws.String(record.IP),
8587
},
8688
},
8789
TTL: aws.Int64(int64(record.TTL)),
88-
Type: aws.String(record.Type),
90+
Type: awsRoute53Types.RRType(strings.ToUpper(record.Type)),
8991
},
9092
},
9193
},
9294
},
9395
HostedZoneId: aws.String(zoneID),
9496
}
9597

96-
_, err := p.dnsService.ChangeResourceRecordSets(input)
98+
_, err := p.dnsService.ChangeResourceRecordSets(p.execCtx, input)
9799
if err != nil {
98100
return err
99101
}

0 commit comments

Comments
 (0)