Skip to content

Commit df7b223

Browse files
committed
adapt bucket and helper to new sdk-v2
1 parent b9bdb50 commit df7b223

File tree

2 files changed

+61
-61
lines changed

2 files changed

+61
-61
lines changed

internal/services/object/bucket.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@ func resourceObjectBucketDelete(ctx context.Context, d *schema.ResourceData, m i
692692
return nil
693693
}
694694

695-
func resourceObjectBucketVersioningUpdate(ctx context.Context, s3conn *s3.S3, d *schema.ResourceData) error {
695+
func resourceObjectBucketVersioningUpdate(ctx context.Context, s3conn *s3.Client, d *schema.ResourceData) error {
696696
v := d.Get("versioning").([]interface{})
697697
bucketName := d.Get("name").(string)
698698
vc := expandObjectBucketVersioning(v)
@@ -703,23 +703,23 @@ func resourceObjectBucketVersioningUpdate(ctx context.Context, s3conn *s3.S3, d
703703
}
704704
tflog.Debug(ctx, fmt.Sprintf("S3 put bucket versioning: %#v", i))
705705

706-
_, err := s3conn.PutBucketVersioningWithContext(ctx, i)
706+
_, err := s3conn.PutBucketVersioning(ctx, i)
707707
if err != nil {
708708
return fmt.Errorf("error putting S3 versioning: %s", err)
709709
}
710710

711711
return nil
712712
}
713713

714-
func resourceS3BucketCorsUpdate(ctx context.Context, s3conn *s3.S3, d *schema.ResourceData) error {
714+
func resourceS3BucketCorsUpdate(ctx context.Context, s3conn *s3.Client, d *schema.ResourceData) error {
715715
bucketName := d.Get("name").(string)
716716
rawCors := d.Get("cors_rule").([]interface{})
717717

718718
if len(rawCors) == 0 {
719719
// Delete CORS
720720
tflog.Debug(ctx, fmt.Sprintf("S3 bucket: %s, delete CORS", bucketName))
721721

722-
_, err := s3conn.DeleteBucketCorsWithContext(ctx, &s3.DeleteBucketCorsInput{
722+
_, err := s3conn.DeleteBucketCors(ctx, &s3.DeleteBucketCorsInput{
723723
Bucket: scw.StringPtr(bucketName),
724724
})
725725
if err != nil {

internal/services/object/helpers_object.go

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -245,77 +245,77 @@ func IsS3Err(err error, code string, message string) bool {
245245

246246
func flattenObjectBucketVersioning(versioningResponse *s3.GetBucketVersioningOutput) []map[string]interface{} {
247247
vcl := []map[string]interface{}{{}}
248-
vcl[0]["enabled"] = versioningResponse.Status != nil && *versioningResponse.Status == s3.BucketVersioningStatusEnabled
248+
vcl[0]["enabled"] = versioningResponse.Status == s3Types.BucketVersioningStatusEnabled
249249
return vcl
250250
}
251251

252-
func expandObjectBucketVersioning(v []interface{}) *s3.VersioningConfiguration {
253-
vc := &s3.VersioningConfiguration{}
254-
vc.Status = scw.StringPtr(s3.BucketVersioningStatusSuspended)
252+
func expandObjectBucketVersioning(v []interface{}) *s3Types.VersioningConfiguration {
253+
vc := &s3Types.VersioningConfiguration{}
254+
vc.Status = s3Types.BucketVersioningStatusSuspended
255255
if len(v) > 0 {
256256
if c := v[0].(map[string]interface{}); c["enabled"].(bool) {
257-
vc.Status = scw.StringPtr(s3.BucketVersioningStatusEnabled)
257+
vc.Status = s3Types.BucketVersioningStatusEnabled
258258
}
259259
}
260260
return vc
261261
}
262262

263-
func flattenBucketCORS(corsResponse interface{}) []map[string]interface{} {
264-
corsRules := make([]map[string]interface{}, 0)
263+
func flattenBucketCORS(corsResponse interface{}) []interface{} {
265264
if cors, ok := corsResponse.(*s3.GetBucketCorsOutput); ok && len(cors.CORSRules) > 0 {
266-
corsRules = make([]map[string]interface{}, 0, len(cors.CORSRules))
265+
var corsRules []interface{}
267266
for _, ruleObject := range cors.CORSRules {
268-
rule := make(map[string]interface{})
269-
rule["allowed_headers"] = types.FlattenSliceStringPtr(ruleObject.AllowedHeaders)
270-
rule["allowed_methods"] = types.FlattenSliceStringPtr(ruleObject.AllowedMethods)
271-
rule["allowed_origins"] = types.FlattenSliceStringPtr(ruleObject.AllowedOrigins)
272-
// Both the "ExposeHeaders" and "MaxAgeSeconds" might not be set.
273-
if ruleObject.AllowedOrigins != nil {
274-
rule["expose_headers"] = types.FlattenSliceStringPtr(ruleObject.ExposeHeaders)
267+
rule := map[string]interface{}{}
268+
if len(ruleObject.AllowedHeaders) > 0 {
269+
rule["allowed_headers"] = ruleObject.AllowedHeaders
270+
}
271+
if len(ruleObject.AllowedMethods) > 0 {
272+
rule["allowed_methods"] = ruleObject.AllowedMethods
273+
}
274+
if len(ruleObject.AllowedOrigins) > 0 {
275+
rule["allowed_origins"] = ruleObject.AllowedOrigins
276+
}
277+
if len(ruleObject.ExposeHeaders) > 0 {
278+
rule["expose_headers"] = ruleObject.ExposeHeaders
275279
}
276280
if ruleObject.MaxAgeSeconds != nil {
277-
rule["max_age_seconds"] = int(*ruleObject.MaxAgeSeconds)
281+
rule["max_age_seconds"] = ruleObject.MaxAgeSeconds
278282
}
279283
corsRules = append(corsRules, rule)
280284
}
285+
return corsRules
281286
}
282-
return corsRules
287+
return nil
283288
}
284289

285-
func expandBucketCORS(ctx context.Context, rawCors []interface{}, bucket string) []*s3Types.CORSRule {
286-
rules := make([]*s3Types.CORSRule, 0, len(rawCors))
290+
func expandBucketCORS(ctx context.Context, rawCors []interface{}, bucket string) []s3Types.CORSRule {
291+
if rawCors == nil {
292+
return nil
293+
}
294+
var rules []s3Types.CORSRule
287295
for _, cors := range rawCors {
288296
corsMap := cors.(map[string]interface{})
289-
r := &s3Types.CORSRule{}
297+
rule := s3Types.CORSRule{}
290298
for k, v := range corsMap {
291299
tflog.Debug(ctx, fmt.Sprintf("S3 bucket: %s, put CORS: %#v, %#v", bucket, k, v))
292-
if k == "max_age_seconds" {
293-
r.MaxAgeSeconds = scw.Int64Ptr(int64(v.(int)))
294-
} else {
295-
vMap := make([]*string, len(v.([]interface{})))
296-
for i, vv := range v.([]interface{}) {
297-
if str, ok := vv.(string); ok {
298-
vMap[i] = scw.StringPtr(str)
299-
}
300-
}
301-
switch k {
302-
case "allowed_headers":
303-
r.AllowedHeaders = vMap
304-
case "allowed_methods":
305-
r.AllowedMethods = vMap
306-
case "allowed_origins":
307-
r.AllowedOrigins = vMap
308-
case "expose_headers":
309-
r.ExposeHeaders = vMap
310-
}
300+
switch k {
301+
case "allowed_headers":
302+
rule.AllowedHeaders = v.([]string)
303+
case "allowed_methods":
304+
rule.AllowedMethods = v.([]string)
305+
case "allowed_origins":
306+
rule.AllowedOrigins = v.([]string)
307+
case "expose_headers":
308+
rule.ExposeHeaders = v.([]string)
309+
case "max_age_seconds":
310+
rule.MaxAgeSeconds = scw.Int32Ptr(int32(v.(int)))
311311
}
312+
rules = append(rules, rule)
312313
}
313-
rules = append(rules, r)
314314
}
315315
return rules
316316
}
317317

318-
func deleteS3ObjectVersion(conn *s3.Client, bucketName string, key string, versionID string, force bool) error {
318+
func deleteS3ObjectVersion(ctx context.Context, conn *s3.Client, bucketName string, key string, versionID string, force bool) error {
319319
input := &s3.DeleteObjectInput{
320320
Bucket: scw.StringPtr(bucketName),
321321
Key: scw.StringPtr(key),
@@ -327,14 +327,14 @@ func deleteS3ObjectVersion(conn *s3.Client, bucketName string, key string, versi
327327
input.BypassGovernanceRetention = scw.BoolPtr(force)
328328
}
329329

330-
_, err := conn.DeleteObject(input)
330+
_, err := conn.DeleteObject(ctx, input)
331331
return err
332332
}
333333

334334
// removeS3ObjectVersionLegalHold remove legal hold from an ObjectVersion if it is on
335335
// returns true if legal hold was removed
336-
func removeS3ObjectVersionLegalHold(conn *s3.Client, bucketName string, objectVersion *s3.ObjectVersion) (bool, error) {
337-
objectHead, err := conn.HeadObject(&s3.HeadObjectInput{
336+
func removeS3ObjectVersionLegalHold(ctx context.Context, conn *s3.Client, bucketName string, objectVersion *s3Types.ObjectVersion) (bool, error) {
337+
objectHead, err := conn.HeadObject(ctx, &s3.HeadObjectInput{
338338
Bucket: scw.StringPtr(bucketName),
339339
Key: objectVersion.Key,
340340
VersionId: objectVersion.VersionId,
@@ -343,15 +343,15 @@ func removeS3ObjectVersionLegalHold(conn *s3.Client, bucketName string, objectVe
343343
err = fmt.Errorf("failed to get S3 object meta data: %s", err)
344344
return false, err
345345
}
346-
if aws.StringValue(objectHead.ObjectLockLegalHoldStatus) != s3.ObjectLockLegalHoldStatusOn {
346+
if objectHead.ObjectLockLegalHoldStatus != s3Types.ObjectLockLegalHoldStatusOn {
347347
return false, nil
348348
}
349-
_, err = conn.PutObjectLegalHold(&s3.PutObjectLegalHoldInput{
349+
_, err = conn.PutObjectLegalHold(ctx, &s3.PutObjectLegalHoldInput{
350350
Bucket: scw.StringPtr(bucketName),
351351
Key: objectVersion.Key,
352352
VersionId: objectVersion.VersionId,
353-
LegalHold: &s3.ObjectLockLegalHold{
354-
Status: scw.StringPtr(s3.ObjectLockLegalHoldStatusOff),
353+
LegalHold: &s3Types.ObjectLockLegalHold{
354+
Status: s3Types.ObjectLockLegalHoldStatusOff,
355355
},
356356
})
357357
if err != nil {
@@ -377,18 +377,18 @@ func deleteS3ObjectVersions(ctx context.Context, conn *s3.Client, bucketName str
377377

378378
for _, objectVersion := range page.Versions {
379379
pool.AddTask(func() error {
380-
objectKey := aws.StringValue(objectVersion.Key)
381-
objectVersionID := aws.StringValue(objectVersion.VersionId)
382-
err := deleteS3ObjectVersion(conn, bucketName, objectKey, objectVersionID, force)
380+
objectKey := aws.ToString(objectVersion.Key)
381+
objectVersionID := aws.ToString(objectVersion.VersionId)
382+
err := deleteS3ObjectVersion(ctx, conn, bucketName, objectKey, objectVersionID, force)
383383

384384
if IsS3Err(err, ErrCodeAccessDenied, "") && force {
385-
legalHoldRemoved, errLegal := removeS3ObjectVersionLegalHold(conn, bucketName, objectVersion)
385+
legalHoldRemoved, errLegal := removeS3ObjectVersionLegalHold(ctx, conn, bucketName, objectVersion)
386386
if errLegal != nil {
387387
return fmt.Errorf("failed to remove legal hold: %s", errLegal)
388388
}
389389

390390
if legalHoldRemoved {
391-
err = deleteS3ObjectVersion(conn, bucketName, objectKey, objectVersionID, force)
391+
err = deleteS3ObjectVersion(ctx, conn, bucketName, objectKey, objectVersionID, force)
392392
}
393393
}
394394

@@ -420,9 +420,9 @@ func deleteS3ObjectVersions(ctx context.Context, conn *s3.Client, bucketName str
420420

421421
for _, deleteMarkerEntry := range page.DeleteMarkers {
422422
pool.AddTask(func() error {
423-
deleteMarkerKey := aws.StringValue(deleteMarkerEntry.Key)
424-
deleteMarkerVersionsID := aws.StringValue(deleteMarkerEntry.VersionId)
425-
err := deleteS3ObjectVersion(conn, bucketName, deleteMarkerKey, deleteMarkerVersionsID, force)
423+
deleteMarkerKey := aws.ToString(deleteMarkerEntry.Key)
424+
deleteMarkerVersionsID := aws.ToString(deleteMarkerEntry.VersionId)
425+
err := deleteS3ObjectVersion(ctx, conn, bucketName, deleteMarkerKey, deleteMarkerVersionsID, force)
426426
if err != nil {
427427
return fmt.Errorf("failed to delete S3 object delete marker: %s", err)
428428
}
@@ -572,7 +572,7 @@ func NormalizeOwnerID(id *string) *string {
572572

573573
func addReadBucketErrorDiagnostic(diags *diag.Diagnostics, err error, resource string, awsResourceNotFoundCode string) (bucketFound bool, resourceFound bool) {
574574
switch {
575-
case IsS3Err(err, s3.ErrCodeNoSuchBucket, ""):
575+
case IsS3Err(err, s3Types.errCodeNoSuchBucket, ""):
576576
*diags = append(*diags, diag.Diagnostic{
577577
Severity: diag.Warning,
578578
Summary: "Bucket not found",

0 commit comments

Comments
 (0)