Skip to content

Commit

Permalink
Fix 'testAccView_disappears'.
Browse files Browse the repository at this point in the history
  • Loading branch information
ewbankkit committed Oct 16, 2024
1 parent 91451a8 commit 2837bc2
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 41 deletions.
2 changes: 1 addition & 1 deletion internal/service/resourceexplorer2/exports_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ package resourceexplorer2
// Exports for use in tests only.
var (
ResourceIndex = newIndexResource
ResourceView = newResourceView
ResourceView = newViewResource

FindIndex = findIndex
FindViewByARN = findViewByARN
Expand Down
2 changes: 1 addition & 1 deletion internal/service/resourceexplorer2/service_package_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

69 changes: 30 additions & 39 deletions internal/service/resourceexplorer2/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ import (
"github.com/hashicorp/terraform-plugin-framework/schema/validator"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-log/tflog"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
sdkid "github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry"
"github.com/hashicorp/terraform-provider-aws/internal/errs"
"github.com/hashicorp/terraform-provider-aws/internal/errs/fwdiag"
"github.com/hashicorp/terraform-provider-aws/internal/framework"
"github.com/hashicorp/terraform-provider-aws/internal/framework/flex"
fwflex "github.com/hashicorp/terraform-provider-aws/internal/framework/flex"
fwtypes "github.com/hashicorp/terraform-provider-aws/internal/framework/types"
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
Expand All @@ -38,19 +38,20 @@ import (

// @FrameworkResource(name="View")
// @Tags(identifierAttribute="id")
func newResourceView(context.Context) (resource.ResourceWithConfigure, error) {
return &resourceView{}, nil
func newViewResource(context.Context) (resource.ResourceWithConfigure, error) {
return &viewResource{}, nil
}

type resourceView struct {
type viewResource struct {
framework.ResourceWithConfigure
framework.WithImportByID
}

func (r *resourceView) Metadata(_ context.Context, request resource.MetadataRequest, response *resource.MetadataResponse) {
func (*viewResource) Metadata(_ context.Context, request resource.MetadataRequest, response *resource.MetadataResponse) {
response.TypeName = "aws_resourceexplorer2_view"
}

func (r *resourceView) Schema(ctx context.Context, request resource.SchemaRequest, response *resource.SchemaResponse) {
func (r *viewResource) Schema(ctx context.Context, request resource.SchemaRequest, response *resource.SchemaResponse) {
response.Schema = schema.Schema{
Attributes: map[string]schema.Attribute{
names.AttrARN: schema.StringAttribute{
Expand Down Expand Up @@ -114,24 +115,22 @@ func (r *resourceView) Schema(ctx context.Context, request resource.SchemaReques
}
}

func (r *resourceView) Create(ctx context.Context, request resource.CreateRequest, response *resource.CreateResponse) {
func (r *viewResource) Create(ctx context.Context, request resource.CreateRequest, response *resource.CreateResponse) {
var data viewResourceModel

response.Diagnostics.Append(request.Plan.Get(ctx, &data)...)

if response.Diagnostics.HasError() {
return
}

conn := r.Meta().ResourceExplorer2Client(ctx)

input := &resourceexplorer2.CreateViewInput{}
response.Diagnostics.Append(flex.Expand(ctx, data, input)...)
response.Diagnostics.Append(fwflex.Expand(ctx, data, input)...)
if response.Diagnostics.HasError() {
return
}

input.ClientToken = aws.String(id.UniqueId())
input.ClientToken = aws.String(sdkid.UniqueId())
input.Tags = getTagsIn(ctx)

output, err := conn.CreateView(ctx, input)
Expand All @@ -143,6 +142,10 @@ func (r *resourceView) Create(ctx context.Context, request resource.CreateReques
}

arn := aws.ToString(output.View.ViewArn)
// Set values for unknowns.
data.Scope = types.StringValue(aws.ToString(output.View.Scope))
data.ViewARN = types.StringValue(arn)
data.setID()

if data.DefaultView.ValueBool() {
input := &resourceexplorer2.AssociateDefaultViewInput{
Expand All @@ -152,25 +155,19 @@ func (r *resourceView) Create(ctx context.Context, request resource.CreateReques
_, err := conn.AssociateDefaultView(ctx, input)

if err != nil {
response.State.SetAttribute(ctx, path.Root(names.AttrID), data.ID) // Set 'id' so as to taint the resource.
response.Diagnostics.AddError(fmt.Sprintf("setting Resource Explorer View (%s) as the default", arn), err.Error())

return
}
}

// Set values for unknowns.
data.ViewARN = types.StringValue(arn)
data.Scope = types.StringValue(aws.ToString(output.View.Scope))
data.setID()

response.Diagnostics.Append(response.State.Set(ctx, &data)...)
}

func (r *resourceView) Read(ctx context.Context, request resource.ReadRequest, response *resource.ReadResponse) {
func (r *viewResource) Read(ctx context.Context, request resource.ReadRequest, response *resource.ReadResponse) {
var data viewResourceModel

response.Diagnostics.Append(request.State.Get(ctx, &data)...)

if response.Diagnostics.HasError() {
return
}
Expand Down Expand Up @@ -219,7 +216,7 @@ func (r *resourceView) Read(ctx context.Context, request resource.ReadRequest, r
view.Filters = nil
}

response.Diagnostics.Append(flex.Flatten(ctx, view, &data)...)
response.Diagnostics.Append(fwflex.Flatten(ctx, view, &data)...)
if response.Diagnostics.HasError() {
return
}
Expand All @@ -231,17 +228,13 @@ func (r *resourceView) Read(ctx context.Context, request resource.ReadRequest, r
response.Diagnostics.Append(response.State.Set(ctx, &data)...)
}

func (r *resourceView) Update(ctx context.Context, request resource.UpdateRequest, response *resource.UpdateResponse) {
func (r *viewResource) Update(ctx context.Context, request resource.UpdateRequest, response *resource.UpdateResponse) {
var old, new viewResourceModel

response.Diagnostics.Append(request.State.Get(ctx, &old)...)

if response.Diagnostics.HasError() {
return
}

response.Diagnostics.Append(request.Plan.Get(ctx, &new)...)

if response.Diagnostics.HasError() {
return
}
Expand All @@ -254,7 +247,7 @@ func (r *resourceView) Update(ctx context.Context, request resource.UpdateReques

if !new.Filters.Equal(old.Filters) || !new.IncludedProperties.Equal(old.IncludedProperties) {
input := &resourceexplorer2.UpdateViewInput{}
response.Diagnostics.Append(flex.Expand(ctx, new, input)...)
response.Diagnostics.Append(fwflex.Expand(ctx, new, input)...)
if response.Diagnostics.HasError() {
return
}
Expand All @@ -271,7 +264,7 @@ func (r *resourceView) Update(ctx context.Context, request resource.UpdateReques
if !new.DefaultView.Equal(old.DefaultView) {
if new.DefaultView.ValueBool() {
input := &resourceexplorer2.AssociateDefaultViewInput{
ViewArn: flex.StringFromFramework(ctx, new.ViewARN),
ViewArn: fwflex.StringFromFramework(ctx, new.ViewARN),
}

_, err := conn.AssociateDefaultView(ctx, input)
Expand All @@ -297,11 +290,9 @@ func (r *resourceView) Update(ctx context.Context, request resource.UpdateReques
response.Diagnostics.Append(response.State.Set(ctx, &new)...)
}

func (r *resourceView) Delete(ctx context.Context, request resource.DeleteRequest, response *resource.DeleteResponse) {
func (r *viewResource) Delete(ctx context.Context, request resource.DeleteRequest, response *resource.DeleteResponse) {
var data viewResourceModel

response.Diagnostics.Append(request.State.Get(ctx, &data)...)

if response.Diagnostics.HasError() {
return
}
Expand All @@ -312,21 +303,21 @@ func (r *resourceView) Delete(ctx context.Context, request resource.DeleteReques
names.AttrID: data.ID.ValueString(),
})
_, err := conn.DeleteView(ctx, &resourceexplorer2.DeleteViewInput{
ViewArn: flex.StringFromFramework(ctx, data.ViewARN),
ViewArn: fwflex.StringFromFramework(ctx, data.ViewARN),
})

if errs.IsA[*awstypes.UnauthorizedException](err) {
return
}

if err != nil {
response.Diagnostics.AddError(fmt.Sprintf("deleting Resource Explorer View (%s)", data.ID.ValueString()), err.Error())

return
}
}

func (r *resourceView) ImportState(ctx context.Context, request resource.ImportStateRequest, response *resource.ImportStateResponse) {
resource.ImportStatePassthroughID(ctx, path.Root(names.AttrID), request, response)
}

func (r *resourceView) ModifyPlan(ctx context.Context, request resource.ModifyPlanRequest, response *resource.ModifyPlanResponse) {
func (r *viewResource) ModifyPlan(ctx context.Context, request resource.ModifyPlanRequest, response *resource.ModifyPlanResponse) {
r.SetTagsAll(ctx, request, response)
}

Expand All @@ -336,11 +327,11 @@ type viewResourceModel struct {
Filters fwtypes.ListNestedObjectValueOf[searchFilterModel] `tfsdk:"filters"`
ID types.String `tfsdk:"id"`
IncludedProperties fwtypes.ListNestedObjectValueOf[includedPropertyModel] `tfsdk:"included_property"`
ViewARN types.String `tfsdk:"arn"`
ViewName types.String `tfsdk:"name"`
Scope types.String `tfsdk:"scope"`
Tags tftags.Map `tfsdk:"tags"`
TagsAll tftags.Map `tfsdk:"tags_all"`
ViewARN types.String `tfsdk:"arn"`
ViewName types.String `tfsdk:"name"`
}

func (data *viewResourceModel) InitFromID() error {
Expand Down

0 comments on commit 2837bc2

Please sign in to comment.