Skip to content

Commit 213cb72

Browse files
committed
r/aws_s3control_object_lambda_access_point: Switch to 'WithoutTimeout' CRUD handlers (#15090).
Acceptance test output: % make testacc TESTARGS='-run=TestAccS3ControlObjectLambdaAccessPoint_' PKG=s3control ACCTEST_PARALLELISM=3 ==> Checking that code complies with gofmt requirements... TF_ACC=1 go test ./internal/service/s3control/... -v -count 1 -parallel 3 -run=TestAccS3ControlObjectLambdaAccessPoint_ -timeout 180m === RUN TestAccS3ControlObjectLambdaAccessPoint_basic === PAUSE TestAccS3ControlObjectLambdaAccessPoint_basic === RUN TestAccS3ControlObjectLambdaAccessPoint_disappears === PAUSE TestAccS3ControlObjectLambdaAccessPoint_disappears === RUN TestAccS3ControlObjectLambdaAccessPoint_update === PAUSE TestAccS3ControlObjectLambdaAccessPoint_update === CONT TestAccS3ControlObjectLambdaAccessPoint_basic === CONT TestAccS3ControlObjectLambdaAccessPoint_update === CONT TestAccS3ControlObjectLambdaAccessPoint_disappears --- PASS: TestAccS3ControlObjectLambdaAccessPoint_basic (45.60s) --- PASS: TestAccS3ControlObjectLambdaAccessPoint_disappears (48.86s) --- PASS: TestAccS3ControlObjectLambdaAccessPoint_update (73.36s) PASS ok github.com/hashicorp/terraform-provider-aws/internal/service/s3control 78.453s
1 parent 723aae3 commit 213cb72

6 files changed

+130
-130
lines changed

internal/provider/provider.go

-4
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ import (
161161
"github.com/hashicorp/terraform-provider-aws/internal/service/route53resolver"
162162
"github.com/hashicorp/terraform-provider-aws/internal/service/rum"
163163
"github.com/hashicorp/terraform-provider-aws/internal/service/s3"
164-
"github.com/hashicorp/terraform-provider-aws/internal/service/s3control"
165164
"github.com/hashicorp/terraform-provider-aws/internal/service/s3outposts"
166165
"github.com/hashicorp/terraform-provider-aws/internal/service/sagemaker"
167166
"github.com/hashicorp/terraform-provider-aws/internal/service/scheduler"
@@ -2003,9 +2002,6 @@ func New(ctx context.Context) (*schema.Provider, error) {
20032002
"aws_s3_object_copy": s3.ResourceObjectCopy(),
20042003
"aws_s3_bucket_object": s3.ResourceBucketObject(), // DEPRECATED: use aws_s3_object instead
20052004

2006-
"aws_s3control_object_lambda_access_point": s3control.ResourceObjectLambdaAccessPoint(),
2007-
"aws_s3control_object_lambda_access_point_policy": s3control.ResourceObjectLambdaAccessPointPolicy(),
2008-
20092005
"aws_s3outposts_endpoint": s3outposts.ResourceEndpoint(),
20102006

20112007
"aws_sagemaker_app": sagemaker.ResourceApp(),

internal/service/s3control/exports_test.go

+11-9
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ package s3control
22

33
// Exports for use in tests only.
44
var (
5-
ResourceAccessPoint = resourceAccessPoint
6-
ResourceAccessPointPolicy = resourceAccessPointPolicy
7-
ResourceAccountPublicAccessBlock = resourceAccountPublicAccessBlock
8-
ResourceBucket = resourceBucket
9-
ResourceBucketLifecycleConfiguration = resourceBucketLifecycleConfiguration
10-
ResourceBucketPolicy = resourceBucketPolicy
11-
ResourceMultiRegionAccessPoint = resourceMultiRegionAccessPoint
12-
ResourceMultiRegionAccessPointPolicy = resourceMultiRegionAccessPointPolicy
13-
ResourceStorageLensConfiguration = resourceStorageLensConfiguration
5+
ResourceAccessPoint = resourceAccessPoint
6+
ResourceAccessPointPolicy = resourceAccessPointPolicy
7+
ResourceAccountPublicAccessBlock = resourceAccountPublicAccessBlock
8+
ResourceBucket = resourceBucket
9+
ResourceBucketLifecycleConfiguration = resourceBucketLifecycleConfiguration
10+
ResourceBucketPolicy = resourceBucketPolicy
11+
ResourceMultiRegionAccessPoint = resourceMultiRegionAccessPoint
12+
ResourceMultiRegionAccessPointPolicy = resourceMultiRegionAccessPointPolicy
13+
ResourceObjectLambdaAccessPoint = resourceObjectLambdaAccessPoint
14+
ResourceObjectLambdaAccessPointPolicy = resourceObjectLambdaAccessPointPolicy
15+
ResourceStorageLensConfiguration = resourceStorageLensConfiguration
1416
)

internal/service/s3control/find.go

-89
This file was deleted.

internal/service/s3control/object_lambda_access_point.go

+56-25
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package s3control
22

33
import (
4+
"context"
45
"fmt"
56
"log"
67
"strings"
@@ -9,6 +10,8 @@ import (
910
"github.com/aws/aws-sdk-go/aws/arn"
1011
"github.com/aws/aws-sdk-go/service/s3control"
1112
"github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr"
13+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
14+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1215
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1316
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1417
"github.com/hashicorp/terraform-provider-aws/internal/conns"
@@ -17,12 +20,16 @@ import (
1720
"github.com/hashicorp/terraform-provider-aws/internal/verify"
1821
)
1922

20-
func ResourceObjectLambdaAccessPoint() *schema.Resource {
23+
func init() {
24+
_sp.registerSDKResourceFactory("aws_s3control_object_lambda_access_point", resourceObjectLambdaAccessPoint)
25+
}
26+
27+
func resourceObjectLambdaAccessPoint() *schema.Resource {
2128
return &schema.Resource{
22-
Create: resourceObjectLambdaAccessPointCreate,
23-
Read: resourceObjectLambdaAccessPointRead,
24-
Update: resourceObjectLambdaAccessPointUpdate,
25-
Delete: resourceObjectLambdaAccessPointDelete,
29+
CreateWithoutTimeout: resourceObjectLambdaAccessPointCreate,
30+
ReadWithoutTimeout: resourceObjectLambdaAccessPointRead,
31+
UpdateWithoutTimeout: resourceObjectLambdaAccessPointUpdate,
32+
DeleteWithoutTimeout: resourceObjectLambdaAccessPointDelete,
2633

2734
Importer: &schema.ResourceImporter{
2835
State: schema.ImportStatePassthrough,
@@ -119,7 +126,7 @@ func ResourceObjectLambdaAccessPoint() *schema.Resource {
119126
}
120127
}
121128

122-
func resourceObjectLambdaAccessPointCreate(d *schema.ResourceData, meta interface{}) error {
129+
func resourceObjectLambdaAccessPointCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
123130
conn := meta.(*conns.AWSClient).S3ControlConn()
124131

125132
accountID := meta.(*conns.AWSClient).AccountID
@@ -138,28 +145,27 @@ func resourceObjectLambdaAccessPointCreate(d *schema.ResourceData, meta interfac
138145
input.Configuration = expandObjectLambdaConfiguration(v.([]interface{})[0].(map[string]interface{}))
139146
}
140147

141-
log.Printf("[DEBUG] Creating S3 Object Lambda Access Point: %s", input)
142-
_, err := conn.CreateAccessPointForObjectLambda(input)
148+
_, err := conn.CreateAccessPointForObjectLambdaWithContext(ctx, input)
143149

144150
if err != nil {
145-
return fmt.Errorf("error creating S3 Object Lambda Access Point (%s): %w", resourceID, err)
151+
return diag.Errorf("creating S3 Object Lambda Access Point (%s): %s", resourceID, err)
146152
}
147153

148154
d.SetId(resourceID)
149155

150-
return resourceObjectLambdaAccessPointRead(d, meta)
156+
return resourceObjectLambdaAccessPointRead(ctx, d, meta)
151157
}
152158

153-
func resourceObjectLambdaAccessPointRead(d *schema.ResourceData, meta interface{}) error {
159+
func resourceObjectLambdaAccessPointRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
154160
conn := meta.(*conns.AWSClient).S3ControlConn()
155161

156162
accountID, name, err := ObjectLambdaAccessPointParseResourceID(d.Id())
157163

158164
if err != nil {
159-
return err
165+
return diag.FromErr(err)
160166
}
161167

162-
output, err := FindObjectLambdaAccessPointByAccountIDAndName(conn, accountID, name)
168+
output, err := FindObjectLambdaAccessPointByAccountIDAndName(ctx, conn, accountID, name)
163169

164170
if !d.IsNewResource() && tfresource.NotFound(err) {
165171
log.Printf("[WARN] S3 Object Lambda Access Point (%s) not found, removing from state", d.Id())
@@ -168,7 +174,7 @@ func resourceObjectLambdaAccessPointRead(d *schema.ResourceData, meta interface{
168174
}
169175

170176
if err != nil {
171-
return fmt.Errorf("error reading S3 Object Lambda Access Point (%s): %w", d.Id(), err)
177+
return diag.Errorf("reading S3 Object Lambda Access Point (%s): %s", d.Id(), err)
172178
}
173179

174180
d.Set("account_id", accountID)
@@ -182,20 +188,20 @@ func resourceObjectLambdaAccessPointRead(d *schema.ResourceData, meta interface{
182188
}.String()
183189
d.Set("arn", arn)
184190
if err := d.Set("configuration", []interface{}{flattenObjectLambdaConfiguration(output)}); err != nil {
185-
return fmt.Errorf("error setting configuration: %w", err)
191+
return diag.Errorf("setting configuration: %s", err)
186192
}
187193
d.Set("name", name)
188194

189195
return nil
190196
}
191197

192-
func resourceObjectLambdaAccessPointUpdate(d *schema.ResourceData, meta interface{}) error {
198+
func resourceObjectLambdaAccessPointUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
193199
conn := meta.(*conns.AWSClient).S3ControlConn()
194200

195201
accountID, name, err := ObjectLambdaAccessPointParseResourceID(d.Id())
196202

197203
if err != nil {
198-
return err
204+
return diag.FromErr(err)
199205
}
200206

201207
input := &s3control.PutAccessPointConfigurationForObjectLambdaInput{
@@ -207,27 +213,26 @@ func resourceObjectLambdaAccessPointUpdate(d *schema.ResourceData, meta interfac
207213
input.Configuration = expandObjectLambdaConfiguration(v.([]interface{})[0].(map[string]interface{}))
208214
}
209215

210-
log.Printf("[DEBUG] Updating S3 Object Lambda Access Point: %s", input)
211-
_, err = conn.PutAccessPointConfigurationForObjectLambda(input)
216+
_, err = conn.PutAccessPointConfigurationForObjectLambdaWithContext(ctx, input)
212217

213218
if err != nil {
214-
return fmt.Errorf("error updating S3 Object Lambda Access Point (%s): %w", d.Id(), err)
219+
return diag.Errorf("updating S3 Object Lambda Access Point (%s): %s", d.Id(), err)
215220
}
216221

217-
return resourceObjectLambdaAccessPointRead(d, meta)
222+
return resourceObjectLambdaAccessPointRead(ctx, d, meta)
218223
}
219224

220-
func resourceObjectLambdaAccessPointDelete(d *schema.ResourceData, meta interface{}) error {
225+
func resourceObjectLambdaAccessPointDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
221226
conn := meta.(*conns.AWSClient).S3ControlConn()
222227

223228
accountID, name, err := ObjectLambdaAccessPointParseResourceID(d.Id())
224229

225230
if err != nil {
226-
return err
231+
return diag.FromErr(err)
227232
}
228233

229234
log.Printf("[DEBUG] Deleting S3 Object Lambda Access Point: %s", d.Id())
230-
_, err = conn.DeleteAccessPointForObjectLambda(&s3control.DeleteAccessPointForObjectLambdaInput{
235+
_, err = conn.DeleteAccessPointForObjectLambdaWithContext(ctx, &s3control.DeleteAccessPointForObjectLambdaInput{
231236
AccountId: aws.String(accountID),
232237
Name: aws.String(name),
233238
})
@@ -237,12 +242,38 @@ func resourceObjectLambdaAccessPointDelete(d *schema.ResourceData, meta interfac
237242
}
238243

239244
if err != nil {
240-
return fmt.Errorf("error deleting S3 Object Lambda Access Point (%s): %w", d.Id(), err)
245+
return diag.Errorf("deleting S3 Object Lambda Access Point (%s): %s", d.Id(), err)
241246
}
242247

243248
return nil
244249
}
245250

251+
func FindObjectLambdaAccessPointByAccountIDAndName(ctx context.Context, conn *s3control.S3Control, accountID string, name string) (*s3control.ObjectLambdaConfiguration, error) {
252+
input := &s3control.GetAccessPointConfigurationForObjectLambdaInput{
253+
AccountId: aws.String(accountID),
254+
Name: aws.String(name),
255+
}
256+
257+
output, err := conn.GetAccessPointConfigurationForObjectLambdaWithContext(ctx, input)
258+
259+
if tfawserr.ErrCodeEquals(err, errCodeNoSuchAccessPoint) {
260+
return nil, &resource.NotFoundError{
261+
LastError: err,
262+
LastRequest: input,
263+
}
264+
}
265+
266+
if err != nil {
267+
return nil, err
268+
}
269+
270+
if output == nil || output.Configuration == nil {
271+
return nil, tfresource.NewEmptyResultError(input)
272+
}
273+
274+
return output.Configuration, nil
275+
}
276+
246277
const objectLambdaAccessPointResourceIDSeparator = ":"
247278

248279
func ObjectLambdaAccessPointCreateResourceID(accountID, accessPointName string) string {

0 commit comments

Comments
 (0)