1
1
package ec2
2
2
3
3
import (
4
- "fmt "
4
+ "context "
5
5
"log"
6
6
"regexp"
7
7
"time"
8
8
9
9
"github.com/aws/aws-sdk-go/aws"
10
10
"github.com/aws/aws-sdk-go/service/ec2"
11
11
"github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr"
12
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
12
13
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
13
14
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
14
15
"github.com/hashicorp/terraform-provider-aws/internal/conns"
@@ -19,10 +20,10 @@ import (
19
20
20
21
func ResourceTransitGatewayConnectPeer () * schema.Resource {
21
22
return & schema.Resource {
22
- Create : resourceTransitGatewayConnectPeerCreate ,
23
- Read : resourceTransitGatewayConnectPeerRead ,
24
- Update : resourceTransitGatewayConnectPeerUpdate ,
25
- Delete : resourceTransitGatewayConnectPeerDelete ,
23
+ CreateWithoutTimeout : resourceTransitGatewayConnectPeerCreate ,
24
+ ReadWithoutTimeout : resourceTransitGatewayConnectPeerRead ,
25
+ UpdateWithoutTimeout : resourceTransitGatewayConnectPeerUpdate ,
26
+ DeleteWithoutTimeout : resourceTransitGatewayConnectPeerDelete ,
26
27
27
28
Importer : & schema.ResourceImporter {
28
29
State : schema .ImportStatePassthrough ,
@@ -89,7 +90,7 @@ func ResourceTransitGatewayConnectPeer() *schema.Resource {
89
90
}
90
91
}
91
92
92
- func resourceTransitGatewayConnectPeerCreate (d * schema.ResourceData , meta interface {}) error {
93
+ func resourceTransitGatewayConnectPeerCreate (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
93
94
conn := meta .(* conns.AWSClient ).EC2Conn
94
95
defaultTagsConfig := meta .(* conns.AWSClient ).DefaultTagsConfig
95
96
tags := defaultTagsConfig .MergeTags (tftags .New (d .Get ("tags" ).(map [string ]interface {})))
@@ -120,20 +121,21 @@ func resourceTransitGatewayConnectPeerCreate(d *schema.ResourceData, meta interf
120
121
121
122
log .Printf ("[DEBUG] Creating EC2 Transit Gateway Connect Peer: %s" , input )
122
123
output , err := conn .CreateTransitGatewayConnectPeer (input )
124
+
123
125
if err != nil {
124
- return fmt .Errorf ("error creating EC2 Transit Gateway Connect Peer: %s" , err )
126
+ return diag .Errorf ("error creating EC2 Transit Gateway Connect Peer: %s" , err )
125
127
}
126
128
127
129
d .SetId (aws .StringValue (output .TransitGatewayConnectPeer .TransitGatewayConnectPeerId ))
128
130
129
- if err := waitForTransitGatewayConnectPeerCreation (conn , d .Id ()); err != nil {
130
- return fmt .Errorf ("error waiting for EC2 Transit Gateway Connect Peer (%s) availability : %s" , d .Id (), err )
131
+ if _ , err := WaitTransitGatewayConnectPeerCreated (conn , d .Id (), d . Timeout ( schema . TimeoutCreate )); err != nil {
132
+ return diag .Errorf ("error waiting for EC2 Transit Gateway Connect Peer (%s) create : %s" , d .Id (), err )
131
133
}
132
134
133
- return resourceTransitGatewayConnectPeerRead (d , meta )
135
+ return resourceTransitGatewayConnectPeerRead (ctx , d , meta )
134
136
}
135
137
136
- func resourceTransitGatewayConnectPeerRead (d * schema.ResourceData , meta interface {}) error {
138
+ func resourceTransitGatewayConnectPeerRead (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
137
139
conn := meta .(* conns.AWSClient ).EC2Conn
138
140
defaultTagsConfig := meta .(* conns.AWSClient ).DefaultTagsConfig
139
141
ignoreTagsConfig := meta .(* conns.AWSClient ).IgnoreTagsConfig
@@ -147,7 +149,7 @@ func resourceTransitGatewayConnectPeerRead(d *schema.ResourceData, meta interfac
147
149
}
148
150
149
151
if err != nil {
150
- return fmt .Errorf ("error reading EC2 Transit Gateway Connect Peer: %s" , err )
152
+ return diag .Errorf ("error reading EC2 Transit Gateway Connect Peer: %s" , err )
151
153
}
152
154
153
155
if transitGatewayConnectPeer == nil {
@@ -167,11 +169,11 @@ func resourceTransitGatewayConnectPeerRead(d *schema.ResourceData, meta interfac
167
169
168
170
//lintignore:AWSR002
169
171
if err := d .Set ("tags" , tags .RemoveDefaultConfig (defaultTagsConfig ).Map ()); err != nil {
170
- return fmt .Errorf ("error setting tags: %w " , err )
172
+ return diag .Errorf ("error setting tags: %s " , err )
171
173
}
172
174
173
175
if err := d .Set ("tags_all" , tags .Map ()); err != nil {
174
- return fmt .Errorf ("error setting tags_all: %w " , err )
176
+ return diag .Errorf ("error setting tags_all: %s " , err )
175
177
}
176
178
177
179
d .Set ("bgp_asn" , transitGatewayConnectPeer .ConnectPeerConfiguration .BgpConfigurations [0 ].PeerAsn )
@@ -183,40 +185,38 @@ func resourceTransitGatewayConnectPeerRead(d *schema.ResourceData, meta interfac
183
185
return nil
184
186
}
185
187
186
- func resourceTransitGatewayConnectPeerUpdate (d * schema.ResourceData , meta interface {}) error {
188
+ func resourceTransitGatewayConnectPeerUpdate (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
187
189
conn := meta .(* conns.AWSClient ).EC2Conn
188
190
189
191
if d .HasChange ("tags_all" ) {
190
192
o , n := d .GetChange ("tags_all" )
191
193
192
194
if err := UpdateTags (conn , d .Id (), o , n ); err != nil {
193
- return fmt .Errorf ("error updating EC2 Transit Gateway Connect Peer (%s) tags: %s" , d .Id (), err )
195
+ return diag .Errorf ("error updating EC2 Transit Gateway Connect Peer (%s) tags: %s" , d .Id (), err )
194
196
}
195
197
}
196
198
197
- return nil
199
+ return resourceTransitGatewayConnectPeerRead ( ctx , d , meta )
198
200
}
199
201
200
- func resourceTransitGatewayConnectPeerDelete (d * schema.ResourceData , meta interface {}) error {
202
+ func resourceTransitGatewayConnectPeerDelete (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
201
203
conn := meta .(* conns.AWSClient ).EC2Conn
202
204
203
- input := & ec2.DeleteTransitGatewayConnectPeerInput {
205
+ log .Printf ("[DEBUG] Deleting EC2 Transit Gateway Connect Peer: %s" , d .Id ())
206
+ _ , err := conn .DeleteTransitGatewayConnectPeer (& ec2.DeleteTransitGatewayConnectPeerInput {
204
207
TransitGatewayConnectPeerId : aws .String (d .Id ()),
205
- }
206
-
207
- log .Printf ("[DEBUG] Deleting EC2 Transit Gateway Connect Peer (%s): %s" , d .Id (), input )
208
- _ , err := conn .DeleteTransitGatewayConnectPeer (input )
208
+ })
209
209
210
- if tfawserr .ErrMessageContains (err , "InvalidTransitGatewayConnectPeerID.NotFound" , "" ) {
210
+ if tfawserr .ErrCodeEquals (err , ErrCodeInvalidTransitGatewayConnectPeerIDNotFound ) {
211
211
return nil
212
212
}
213
213
214
214
if err != nil {
215
- return fmt .Errorf ("error deleting EC2 Transit Gateway Connect Peer: %s" , err )
215
+ return diag .Errorf ("error deleting EC2 Transit Gateway Connect Peer: %s" , err )
216
216
}
217
217
218
- if err := WaitForTransitGatewayConnectPeerDeletion (conn , d .Id ()); err != nil {
219
- return fmt .Errorf ("error waiting for EC2 Transit Gateway Connect Peer (%s) deletion : %s" , d .Id (), err )
218
+ if _ , err := WaitTransitGatewayConnectPeerDeleted (conn , d .Id (), d . Timeout ( schema . TimeoutDelete )); err != nil {
219
+ return diag .Errorf ("error waiting for EC2 Transit Gateway Connect Peer (%s) delete : %s" , d .Id (), err )
220
220
}
221
221
222
222
return nil
0 commit comments