@@ -2,10 +2,9 @@ package services
22
33import (
44 "context"
5- "github.com/aws/aws-sdk-go-v2/aws"
65 "github.com/aws/aws-sdk-go-v2/service/ec2"
76 "github.com/aws/aws-sdk-go-v2/service/ec2/types"
8- "sigs.k8s.io/aws-load-balancer-controller/pkg/aws/endpoints "
7+ "sigs.k8s.io/aws-load-balancer-controller/pkg/aws/provider "
98)
109
1110type EC2 interface {
@@ -37,28 +36,31 @@ type EC2 interface {
3736}
3837
3938// NewEC2 constructs new EC2 implementation.
40- func NewEC2 (cfg aws.Config , endpointsResolver * endpoints.Resolver ) EC2 {
41- customEndpoint := endpointsResolver .EndpointFor (ec2 .ServiceID )
39+ func NewEC2 (awsClientsProvider provider.AWSClientsProvider ) EC2 {
4240 return & ec2Client {
43- ec2Client : ec2 .NewFromConfig (cfg , func (o * ec2.Options ) {
44- if customEndpoint != nil {
45- o .BaseEndpoint = customEndpoint
46- }
47- }),
41+ awsClientsProvider : awsClientsProvider ,
4842 }
4943}
5044
5145type ec2Client struct {
52- ec2Client * ec2. Client
46+ awsClientsProvider provider. AWSClientsProvider
5347}
5448
5549func (c * ec2Client ) DescribeInstancesWithContext (ctx context.Context , input * ec2.DescribeInstancesInput ) (* ec2.DescribeInstancesOutput , error ) {
56- return c .ec2Client .DescribeInstances (ctx , input )
50+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DescribeInstances" )
51+ if err != nil {
52+ return nil , err
53+ }
54+ return client .DescribeInstances (ctx , input )
5755}
5856
5957func (c * ec2Client ) DescribeInstancesAsList (ctx context.Context , input * ec2.DescribeInstancesInput ) ([]types.Instance , error ) {
6058 var result []types.Instance
61- paginator := ec2 .NewDescribeInstancesPaginator (c .ec2Client , input )
59+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DescribeInstances" )
60+ if err != nil {
61+ return nil , err
62+ }
63+ paginator := ec2 .NewDescribeInstancesPaginator (client , input )
6264 for paginator .HasMorePages () {
6365 output , err := paginator .NextPage (ctx )
6466 if err != nil {
@@ -73,7 +75,11 @@ func (c *ec2Client) DescribeInstancesAsList(ctx context.Context, input *ec2.Desc
7375
7476func (c * ec2Client ) DescribeNetworkInterfacesAsList (ctx context.Context , input * ec2.DescribeNetworkInterfacesInput ) ([]types.NetworkInterface , error ) {
7577 var result []types.NetworkInterface
76- paginator := ec2 .NewDescribeNetworkInterfacesPaginator (c .ec2Client , input )
78+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DescribeNetworkInterfaces" )
79+ if err != nil {
80+ return nil , err
81+ }
82+ paginator := ec2 .NewDescribeNetworkInterfacesPaginator (client , input )
7783 for paginator .HasMorePages () {
7884 output , err := paginator .NextPage (ctx )
7985 if err != nil {
@@ -86,7 +92,11 @@ func (c *ec2Client) DescribeNetworkInterfacesAsList(ctx context.Context, input *
8692
8793func (c * ec2Client ) DescribeSecurityGroupsAsList (ctx context.Context , input * ec2.DescribeSecurityGroupsInput ) ([]types.SecurityGroup , error ) {
8894 var result []types.SecurityGroup
89- paginator := ec2 .NewDescribeSecurityGroupsPaginator (c .ec2Client , input )
95+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DescribeSecurityGroups" )
96+ if err != nil {
97+ return nil , err
98+ }
99+ paginator := ec2 .NewDescribeSecurityGroupsPaginator (client , input )
90100 for paginator .HasMorePages () {
91101 output , err := paginator .NextPage (ctx )
92102 if err != nil {
@@ -99,7 +109,11 @@ func (c *ec2Client) DescribeSecurityGroupsAsList(ctx context.Context, input *ec2
99109
100110func (c * ec2Client ) DescribeSubnetsAsList (ctx context.Context , input * ec2.DescribeSubnetsInput ) ([]types.Subnet , error ) {
101111 var result []types.Subnet
102- paginator := ec2 .NewDescribeSubnetsPaginator (c .ec2Client , input )
112+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DescribeSubnets" )
113+ if err != nil {
114+ return nil , err
115+ }
116+ paginator := ec2 .NewDescribeSubnetsPaginator (client , input )
103117 for paginator .HasMorePages () {
104118 output , err := paginator .NextPage (ctx )
105119 if err != nil {
@@ -112,7 +126,11 @@ func (c *ec2Client) DescribeSubnetsAsList(ctx context.Context, input *ec2.Descri
112126
113127func (c * ec2Client ) DescribeVPCsAsList (ctx context.Context , input * ec2.DescribeVpcsInput ) ([]types.Vpc , error ) {
114128 var result []types.Vpc
115- paginator := ec2 .NewDescribeVpcsPaginator (c .ec2Client , input )
129+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DescribeVPCs" )
130+ if err != nil {
131+ return nil , err
132+ }
133+ paginator := ec2 .NewDescribeVpcsPaginator (client , input )
116134 for paginator .HasMorePages () {
117135 output , err := paginator .NextPage (ctx )
118136 if err != nil {
@@ -124,33 +142,65 @@ func (c *ec2Client) DescribeVPCsAsList(ctx context.Context, input *ec2.DescribeV
124142}
125143
126144func (c * ec2Client ) CreateTagsWithContext (ctx context.Context , input * ec2.CreateTagsInput ) (* ec2.CreateTagsOutput , error ) {
127- return c .ec2Client .CreateTags (ctx , input )
145+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "CreateTags" )
146+ if err != nil {
147+ return nil , err
148+ }
149+ return client .CreateTags (ctx , input )
128150}
129151
130152func (c * ec2Client ) DeleteTagsWithContext (ctx context.Context , input * ec2.DeleteTagsInput ) (* ec2.DeleteTagsOutput , error ) {
131- return c .ec2Client .DeleteTags (ctx , input )
153+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DeleteTags" )
154+ if err != nil {
155+ return nil , err
156+ }
157+ return client .DeleteTags (ctx , input )
132158}
133159
134160func (c * ec2Client ) CreateSecurityGroupWithContext (ctx context.Context , input * ec2.CreateSecurityGroupInput ) (* ec2.CreateSecurityGroupOutput , error ) {
135- return c .ec2Client .CreateSecurityGroup (ctx , input )
161+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "CreateSecurityGroup" )
162+ if err != nil {
163+ return nil , err
164+ }
165+ return client .CreateSecurityGroup (ctx , input )
136166}
137167
138168func (c * ec2Client ) DeleteSecurityGroupWithContext (ctx context.Context , input * ec2.DeleteSecurityGroupInput ) (* ec2.DeleteSecurityGroupOutput , error ) {
139- return c .ec2Client .DeleteSecurityGroup (ctx , input )
169+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DeleteSecurityGroup" )
170+ if err != nil {
171+ return nil , err
172+ }
173+ return client .DeleteSecurityGroup (ctx , input )
140174}
141175
142176func (c * ec2Client ) AuthorizeSecurityGroupIngressWithContext (ctx context.Context , input * ec2.AuthorizeSecurityGroupIngressInput ) (* ec2.AuthorizeSecurityGroupIngressOutput , error ) {
143- return c .ec2Client .AuthorizeSecurityGroupIngress (ctx , input )
177+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "AuthorizeSecurityGroupIngress" )
178+ if err != nil {
179+ return nil , err
180+ }
181+ return client .AuthorizeSecurityGroupIngress (ctx , input )
144182}
145183
146184func (c * ec2Client ) RevokeSecurityGroupIngressWithContext (ctx context.Context , input * ec2.RevokeSecurityGroupIngressInput ) (* ec2.RevokeSecurityGroupIngressOutput , error ) {
147- return c .ec2Client .RevokeSecurityGroupIngress (ctx , input )
185+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "RevokeSecurityGroupIngress" )
186+ if err != nil {
187+ return nil , err
188+ }
189+ return client .RevokeSecurityGroupIngress (ctx , input )
148190}
149191
150192func (c * ec2Client ) DescribeAvailabilityZonesWithContext (ctx context.Context , input * ec2.DescribeAvailabilityZonesInput ) (* ec2.DescribeAvailabilityZonesOutput , error ) {
151- return c .ec2Client .DescribeAvailabilityZones (ctx , input )
193+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DescribeAvailabilityZones" )
194+ if err != nil {
195+ return nil , err
196+ }
197+ return client .DescribeAvailabilityZones (ctx , input )
152198}
153199
154200func (c * ec2Client ) DescribeVpcsWithContext (ctx context.Context , input * ec2.DescribeVpcsInput ) (* ec2.DescribeVpcsOutput , error ) {
155- return c .ec2Client .DescribeVpcs (ctx , input )
201+ client , err := c .awsClientsProvider .GetEC2Client (ctx , "DescribeVpcs" )
202+ if err != nil {
203+ return nil , err
204+ }
205+ return client .DescribeVpcs (ctx , input )
156206}
0 commit comments