From 8d9de3ab6f680875ed69261a1ba0cda119a49f8b Mon Sep 17 00:00:00 2001 From: paladin-devops <83741749+paladin-devops@users.noreply.github.com> Date: Mon, 29 Apr 2024 13:40:00 -0500 Subject: [PATCH] [WAYP-2172] waypoint: Update add-on def res/ds to use helper for reading vars. --- .../data_source_waypoint_add_on_definition.go | 26 +++---------- .../resource_waypoint_add_on_definition.go | 38 ++++++++----------- 2 files changed, 20 insertions(+), 44 deletions(-) diff --git a/internal/provider/waypoint/data_source_waypoint_add_on_definition.go b/internal/provider/waypoint/data_source_waypoint_add_on_definition.go index d05c52d3f..52db45ae3 100644 --- a/internal/provider/waypoint/data_source_waypoint_add_on_definition.go +++ b/internal/provider/waypoint/data_source_waypoint_add_on_definition.go @@ -14,6 +14,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/datasource/schema" "github.com/hashicorp/terraform-plugin-framework/path" "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/hashicorp/terraform-provider-hcp/internal/clients" ) @@ -247,27 +248,10 @@ func (d *DataSourceAddOnDefinition) Read(ctx context.Context, req datasource.Rea state.ReadmeMarkdownTemplate = types.StringNull() } - if definition.VariableOptions != nil && len(definition.VariableOptions) > 0 { - varOpts := []*tfcVariableOption{} - for _, v := range definition.VariableOptions { - varOptsState := &tfcVariableOption{ - Name: types.StringValue(v.Name), - VariableType: types.StringValue(v.VariableType), - UserEditable: types.BoolValue(v.UserEditable), - } - - vOpts, diags := types.ListValueFrom(ctx, types.StringType, v.Options) - varOptsState.Options = vOpts - - resp.Diagnostics.Append(diags...) - if resp.Diagnostics.HasError() { - return - } - - varOpts = append(varOpts, varOptsState) - } - - state.TerraformVariableOptions = varOpts + state.TerraformVariableOptions, err = readVarOpts(ctx, definition.VariableOptions, &resp.Diagnostics) + if err != nil { + tflog.Error(ctx, err.Error()) + return } resp.Diagnostics.Append(resp.State.Set(ctx, &state)...) diff --git a/internal/provider/waypoint/resource_waypoint_add_on_definition.go b/internal/provider/waypoint/resource_waypoint_add_on_definition.go index a31c76c3f..cd2b437ff 100644 --- a/internal/provider/waypoint/resource_waypoint_add_on_definition.go +++ b/internal/provider/waypoint/resource_waypoint_add_on_definition.go @@ -344,7 +344,12 @@ func (r *AddOnDefinitionResource) Create(ctx context.Context, req resource.Creat actualVars = append(actualVars, varOptsState) } - plan.TerraformVariableOptions = actualVars + + plan.TerraformVariableOptions, err = readVarOpts(ctx, addOnDefinition.VariableOptions, &resp.Diagnostics) + if err != nil { + tflog.Error(ctx, err.Error()) + return + } // Write logs using the tflog package // Documentation: https://terraform.io/plugin/log @@ -428,27 +433,10 @@ func (r *AddOnDefinitionResource) Read(ctx context.Context, req resource.ReadReq state.TerraformNoCodeModule = tfcNoCode } - if definition.VariableOptions != nil && len(definition.VariableOptions) > 0 { - varOpts := []*tfcVariableOption{} - for _, v := range definition.VariableOptions { - varOptsState := &tfcVariableOption{ - Name: types.StringValue(v.Name), - VariableType: types.StringValue(v.VariableType), - UserEditable: types.BoolValue(v.UserEditable), - } - - vOpts, diags := types.ListValueFrom(ctx, types.StringType, v.Options) - varOptsState.Options = vOpts - - resp.Diagnostics.Append(diags...) - if resp.Diagnostics.HasError() { - return - } - - varOpts = append(varOpts, varOptsState) - } - - state.TerraformVariableOptions = varOpts + state.TerraformVariableOptions, err = readVarOpts(ctx, definition.VariableOptions, &resp.Diagnostics) + if err != nil { + tflog.Error(ctx, err.Error()) + return } resp.Diagnostics.Append(resp.State.Set(ctx, &state)...) @@ -616,7 +604,11 @@ func (r *AddOnDefinitionResource) Update(ctx context.Context, req resource.Updat actualVars = append(actualVars, varOptsState) } - plan.TerraformVariableOptions = actualVars + plan.TerraformVariableOptions, err = readVarOpts(ctx, addOnDefinition.VariableOptions, &resp.Diagnostics) + if err != nil { + tflog.Error(ctx, err.Error()) + return + } // Write logs using the tflog package // Documentation: https://terraform.io/plugin/log