Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Proposal to modify provider meta to enable specifying the region at each resource #31517

Open
wants to merge 25 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
5f90b66
Initial Proof Of Concept: Allowing region to be defined at the resource
brittandeyoung May 19, 2023
c19ae66
provider: Amend intercept, update Tagging intercept to support region…
brittandeyoung May 21, 2023
15e81ac
provider: Amend defaultTags type assertion
brittandeyoung May 21, 2023
cc25797
provider: Amend tags_interceptor_test, Add GetOk method to support re…
brittandeyoung May 21, 2023
b42430e
lightsail: Amend find, remove id split on FindBucketById
brittandeyoung May 21, 2023
89ce86b
lightsail: Amend bucket, add support for region at resource
brittandeyoung May 21, 2023
ec84c96
ec2: Amend ec2_availability_zones_data_source, add support for new pr…
brittandeyoung May 21, 2023
4065091
lightsail: Amend disk, add support for new provider meta.
brittandeyoung May 21, 2023
6f244f4
lightsail: Amend disk_test, add support for new provider meta.
brittandeyoung May 21, 2023
acbdae2
verify: Modify diff, add RegionDiffSuppress function
brittandeyoung May 21, 2023
a65f635
lightsail: Amend bucket, add RegionDiffSuppress function for region
brittandeyoung May 21, 2023
db53397
provider: Amend provider, remove comments, add allowed_regions descri…
brittandeyoung May 23, 2023
847264e
provider: Amend tags_interceptor, update type assertion meta
brittandeyoung May 23, 2023
6790522
provider: Amend tags_interceptor_test, update type assertion meta
brittandeyoung May 23, 2023
96b95a5
fwprovider: Amend provider, Add description to match provider config
brittandeyoung May 23, 2023
4224da0
lightsail: Amend bucket_test, testacc-lint-fix
brittandeyoung May 23, 2023
db24eef
create: Amend errors, add ErrActionExpandingResourceRegion
brittandeyoung May 24, 2023
bc74fb1
flex: Amend flex, add ExpandResourceRegion to allow for central setti…
brittandeyoung May 24, 2023
339ac19
flex: Amend, flex_test, add ExpandResourceRegion tests
brittandeyoung May 24, 2023
46f45c2
lightsail: Amend bucket, Update region to use central function
brittandeyoung May 24, 2023
8b4cad3
lightsail: Amend bucket_test, remove unneeded new line
brittandeyoung May 24, 2023
e283980
lightsail: Amend disk, move to new ExpandResourceRegion function
brittandeyoung May 24, 2023
14dc3c7
flex: Amend flex, update ExpandResourceRegion to also check for empty…
brittandeyoung May 24, 2023
0dcf3fe
flex: Amend flex_test, fix imports
brittandeyoung May 24, 2023
bdc7c3e
flex: Amend flex_test, resolve golanglint-ci and add test names
brittandeyoung May 24, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
lightsail: Amend bucket, add support for region at resource
  • Loading branch information
brittandeyoung committed May 21, 2023
commit 89ce86b30a5b3b52d35208aaf1d68cb1887565af
35 changes: 15 additions & 20 deletions internal/service/lightsail/bucket.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package lightsail

import (
"context"
"fmt"
"strings"
"time"

Expand Down Expand Up @@ -97,34 +96,39 @@ func resourceBucketCreate(ctx context.Context, d *schema.ResourceData, meta inte
return create.DiagError(names.Lightsail, lightsail.OperationTypeCreateBucket, ResBucket, d.Get("name").(string), err)
}

id := fmt.Sprintf("%s,%s", d.Get("name").(string), region)
diag := expandOperations(ctx, conn, out.Operations, lightsail.OperationTypeCreateBucket, ResBucket, id)
diag := expandOperations(ctx, conn, out.Operations, lightsail.OperationTypeCreateBucket, ResBucket, d.Get("name").(string))

if diag != nil {
return diag
}

d.SetId(id)
d.SetId(d.Get("name").(string))

return resourceBucketRead(ctx, d, meta)
}

func resourceBucketRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
// To allow importing a resource that is not in the provider default region
// import using terraform import <bucket-name>,<region-name>
partCount := flex.ResourceIdPartCount(d.Id())
var id string
var region string
if partCount == 2 {
idParts := strings.Split(d.Id(), flex.ResourceIdSeparator)
region = idParts[1]
}
if v, ok := d.GetOk("region"); ok {
region = v.(string)
} else if flex.ResourceIdPartCount(d.Id()) != 2 {
region = meta.(*conns.ProviderMeta).Region
id = idParts[0]
} else {
if v, ok := d.GetOk("region"); ok {
region = v.(string)
} else {
region = meta.(*conns.ProviderMeta).Region
}
id = d.Id()
}

conn := meta.(*conns.ProviderMeta).AWSClients[region].LightsailConn()

out, err := FindBucketById(ctx, conn, d.Id())
out, err := FindBucketById(ctx, conn, id)

if !d.IsNewResource() && tfresource.NotFound(err) {
create.LogNotFoundRemoveState(names.Lightsail, create.ErrActionReading, ResBucket, d.Id())
Expand Down Expand Up @@ -181,15 +185,6 @@ func resourceBucketUpdate(ctx context.Context, d *schema.ResourceData, meta inte
}

func resourceBucketDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
partCount := flex.ResourceIdPartCount(d.Id())
var id string
if partCount == 2 {
idParts := strings.Split(d.Id(), flex.ResourceIdSeparator)
id = idParts[0]
} else {
id = d.Id()
}

var region string
if v, ok := d.GetOk("region"); ok {
region = v.(string)
Expand All @@ -199,7 +194,7 @@ func resourceBucketDelete(ctx context.Context, d *schema.ResourceData, meta inte
conn := meta.(*conns.ProviderMeta).AWSClients[region].LightsailConn()

out, err := conn.DeleteBucketWithContext(ctx, &lightsail.DeleteBucketInput{
BucketName: aws.String(id),
BucketName: aws.String(d.Id()),
})

if err != nil && tfawserr.ErrCodeEquals(err, lightsail.ErrCodeNotFoundException) {
Expand Down