From cdfbef8f1b1df29082fe3cd60e78a6b664f14357 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 13:03:35 -0400 Subject: [PATCH] Bump github.com/hashicorp/terraform-plugin-framework from 0.10.0 to 0.11.0 (#77) * Bump github.com/hashicorp/terraform-plugin-framework Bumps [github.com/hashicorp/terraform-plugin-framework](https://github.com/hashicorp/terraform-plugin-framework) from 0.10.0 to 0.11.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-framework/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-framework/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-framework/compare/v0.10.0...v0.11.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-framework dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Code updates for terraform-plugin-framework v0.11.0 Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Brian Flad --- go.mod | 2 +- go.sum | 4 +-- internal/provider/example_data_source.go | 22 +++++++++------- internal/provider/example_resource.go | 31 +++++++++++----------- internal/provider/provider.go | 33 ++++++++++++------------ 5 files changed, 48 insertions(+), 44 deletions(-) diff --git a/go.mod b/go.mod index f705edf..5134556 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.17 require ( github.com/hashicorp/terraform-plugin-docs v0.13.0 - github.com/hashicorp/terraform-plugin-framework v0.10.0 + github.com/hashicorp/terraform-plugin-framework v0.11.0 github.com/hashicorp/terraform-plugin-go v0.13.0 github.com/hashicorp/terraform-plugin-log v0.7.0 github.com/hashicorp/terraform-plugin-sdk/v2 v2.20.0 diff --git a/go.sum b/go.sum index 7088095..7b482c9 100644 --- a/go.sum +++ b/go.sum @@ -147,8 +147,8 @@ github.com/hashicorp/terraform-json v0.14.0 h1:sh9iZ1Y8IFJLx+xQiKHGud6/TSUCM0N8e github.com/hashicorp/terraform-json v0.14.0/go.mod h1:5A9HIWPkk4e5aeeXIBbkcOvaZbIYnAIkEyqP2pNSckM= github.com/hashicorp/terraform-plugin-docs v0.13.0 h1:6e+VIWsVGb6jYJewfzq2ok2smPzZrt1Wlm9koLeKazY= github.com/hashicorp/terraform-plugin-docs v0.13.0/go.mod h1:W0oCmHAjIlTHBbvtppWHe8fLfZ2BznQbuv8+UD8OucQ= -github.com/hashicorp/terraform-plugin-framework v0.10.0 h1:LGYcnvNdVaZA1ZHe53BHLVjaaGs7HTiq6+9Js29stL4= -github.com/hashicorp/terraform-plugin-framework v0.10.0/go.mod h1:CK7Opzukfu/2CPJs+HzUdfHrFlp+ZIQeSxjF0x8k464= +github.com/hashicorp/terraform-plugin-framework v0.11.0 h1:NLWMUMNp0HjCjJctNzEv3FJsR/ndYTSbO9XfwlSVFeQ= +github.com/hashicorp/terraform-plugin-framework v0.11.0/go.mod h1:gVjHP7o0QzWpHe5dvA+GUu+mH0/vQDZeexkkq2RS/II= github.com/hashicorp/terraform-plugin-go v0.12.0/go.mod h1:kwhmaWHNDvT1B3QiSJdAtrB/D4RaKSY/v3r2BuoWK4M= github.com/hashicorp/terraform-plugin-go v0.13.0 h1:Zm+o91HUOcTLotaEu3X2jV/6wNi6f09gkZwGg/MDvCk= github.com/hashicorp/terraform-plugin-go v0.13.0/go.mod h1:NYGFEM9GeRdSl52txue3RcBDFt2tufaqS22iURP8Bxs= diff --git a/internal/provider/example_data_source.go b/internal/provider/example_data_source.go index e204c63..daa2080 100644 --- a/internal/provider/example_data_source.go +++ b/internal/provider/example_data_source.go @@ -2,16 +2,18 @@ package provider import ( "context" - "log" + "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/diag" + "github.com/hashicorp/terraform-plugin-framework/provider" "github.com/hashicorp/terraform-plugin-framework/tfsdk" "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" ) // Ensure provider defined types fully satisfy framework interfaces -var _ tfsdk.DataSourceType = exampleDataSourceType{} -var _ tfsdk.DataSource = exampleDataSource{} +var _ provider.DataSourceType = exampleDataSourceType{} +var _ datasource.DataSource = exampleDataSource{} type exampleDataSourceType struct{} @@ -35,7 +37,7 @@ func (t exampleDataSourceType) GetSchema(ctx context.Context) (tfsdk.Schema, dia }, nil } -func (t exampleDataSourceType) NewDataSource(ctx context.Context, in tfsdk.Provider) (tfsdk.DataSource, diag.Diagnostics) { +func (t exampleDataSourceType) NewDataSource(ctx context.Context, in provider.Provider) (datasource.DataSource, diag.Diagnostics) { provider, diags := convertProviderType(in) return exampleDataSource{ @@ -49,23 +51,19 @@ type exampleDataSourceData struct { } type exampleDataSource struct { - provider provider + provider scaffoldingProvider } -func (d exampleDataSource) Read(ctx context.Context, req tfsdk.ReadDataSourceRequest, resp *tfsdk.ReadDataSourceResponse) { +func (d exampleDataSource) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) { var data exampleDataSourceData diags := req.Config.Get(ctx, &data) resp.Diagnostics.Append(diags...) - log.Printf("got here") - if resp.Diagnostics.HasError() { return } - log.Printf("got here") - // If applicable, this is a great opportunity to initialize any necessary // provider client data and make a call using it. // example, err := d.provider.client.ReadExample(...) @@ -78,6 +76,10 @@ func (d exampleDataSource) Read(ctx context.Context, req tfsdk.ReadDataSourceReq // save into the Terraform state. data.Id = types.String{Value: "example-id"} + // Write logs using the tflog package + // Documentation: https://terraform.io/plugin/log + tflog.Trace(ctx, "read a data source") + diags = resp.State.Set(ctx, &data) resp.Diagnostics.Append(diags...) } diff --git a/internal/provider/example_resource.go b/internal/provider/example_resource.go index 8c8db35..cebc6f0 100644 --- a/internal/provider/example_resource.go +++ b/internal/provider/example_resource.go @@ -5,15 +5,17 @@ import ( "github.com/hashicorp/terraform-plugin-framework/diag" "github.com/hashicorp/terraform-plugin-framework/path" + "github.com/hashicorp/terraform-plugin-framework/provider" + "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/tfsdk" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-plugin-log/tflog" ) // Ensure provider defined types fully satisfy framework interfaces -var _ tfsdk.ResourceType = exampleResourceType{} -var _ tfsdk.Resource = exampleResource{} -var _ tfsdk.ResourceWithImportState = exampleResource{} +var _ provider.ResourceType = exampleResourceType{} +var _ resource.Resource = exampleResource{} +var _ resource.ResourceWithImportState = exampleResource{} type exampleResourceType struct{} @@ -32,7 +34,7 @@ func (t exampleResourceType) GetSchema(ctx context.Context) (tfsdk.Schema, diag. Computed: true, MarkdownDescription: "Example identifier", PlanModifiers: tfsdk.AttributePlanModifiers{ - tfsdk.UseStateForUnknown(), + resource.UseStateForUnknown(), }, Type: types.StringType, }, @@ -40,7 +42,7 @@ func (t exampleResourceType) GetSchema(ctx context.Context) (tfsdk.Schema, diag. }, nil } -func (t exampleResourceType) NewResource(ctx context.Context, in tfsdk.Provider) (tfsdk.Resource, diag.Diagnostics) { +func (t exampleResourceType) NewResource(ctx context.Context, in provider.Provider) (resource.Resource, diag.Diagnostics) { provider, diags := convertProviderType(in) return exampleResource{ @@ -54,10 +56,10 @@ type exampleResourceData struct { } type exampleResource struct { - provider provider + provider scaffoldingProvider } -func (r exampleResource) Create(ctx context.Context, req tfsdk.CreateResourceRequest, resp *tfsdk.CreateResourceResponse) { +func (r exampleResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) { var data exampleResourceData diags := req.Config.Get(ctx, &data) @@ -79,16 +81,15 @@ func (r exampleResource) Create(ctx context.Context, req tfsdk.CreateResourceReq // save into the Terraform state. data.Id = types.String{Value: "example-id"} - // write logs using the tflog package - // see https://pkg.go.dev/github.com/hashicorp/terraform-plugin-log/tflog - // for more information + // Write logs using the tflog package + // Documentation: https://terraform.io/plugin/log tflog.Trace(ctx, "created a resource") diags = resp.State.Set(ctx, &data) resp.Diagnostics.Append(diags...) } -func (r exampleResource) Read(ctx context.Context, req tfsdk.ReadResourceRequest, resp *tfsdk.ReadResourceResponse) { +func (r exampleResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) { var data exampleResourceData diags := req.State.Get(ctx, &data) @@ -110,7 +111,7 @@ func (r exampleResource) Read(ctx context.Context, req tfsdk.ReadResourceRequest resp.Diagnostics.Append(diags...) } -func (r exampleResource) Update(ctx context.Context, req tfsdk.UpdateResourceRequest, resp *tfsdk.UpdateResourceResponse) { +func (r exampleResource) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) { var data exampleResourceData diags := req.Plan.Get(ctx, &data) @@ -132,7 +133,7 @@ func (r exampleResource) Update(ctx context.Context, req tfsdk.UpdateResourceReq resp.Diagnostics.Append(diags...) } -func (r exampleResource) Delete(ctx context.Context, req tfsdk.DeleteResourceRequest, resp *tfsdk.DeleteResourceResponse) { +func (r exampleResource) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) { var data exampleResourceData diags := req.State.Get(ctx, &data) @@ -151,6 +152,6 @@ func (r exampleResource) Delete(ctx context.Context, req tfsdk.DeleteResourceReq // } } -func (r exampleResource) ImportState(ctx context.Context, req tfsdk.ImportResourceStateRequest, resp *tfsdk.ImportResourceStateResponse) { - tfsdk.ResourceImportStatePassthroughID(ctx, path.Root("id"), req, resp) +func (r exampleResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) { + resource.ImportStatePassthroughID(ctx, path.Root("id"), req, resp) } diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 958189a..2ad2bf9 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -5,16 +5,17 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-framework/diag" + "github.com/hashicorp/terraform-plugin-framework/provider" "github.com/hashicorp/terraform-plugin-framework/tfsdk" "github.com/hashicorp/terraform-plugin-framework/types" ) // Ensure provider defined types fully satisfy framework interfaces -var _ tfsdk.Provider = &provider{} +var _ provider.Provider = &scaffoldingProvider{} // provider satisfies the tfsdk.Provider interface and usually is included // with all Resource and DataSource implementations. -type provider struct { +type scaffoldingProvider struct { // client can contain the upstream provider SDK or HTTP client used to // communicate with the upstream service. Resource and DataSource // implementations can then make calls using this client. @@ -38,7 +39,7 @@ type providerData struct { Example types.String `tfsdk:"example"` } -func (p *provider) Configure(ctx context.Context, req tfsdk.ConfigureProviderRequest, resp *tfsdk.ConfigureProviderResponse) { +func (p *scaffoldingProvider) Configure(ctx context.Context, req provider.ConfigureRequest, resp *provider.ConfigureResponse) { var data providerData diags := req.Config.Get(ctx, &data) resp.Diagnostics.Append(diags...) @@ -56,19 +57,19 @@ func (p *provider) Configure(ctx context.Context, req tfsdk.ConfigureProviderReq p.configured = true } -func (p *provider) GetResources(ctx context.Context) (map[string]tfsdk.ResourceType, diag.Diagnostics) { - return map[string]tfsdk.ResourceType{ +func (p *scaffoldingProvider) GetResources(ctx context.Context) (map[string]provider.ResourceType, diag.Diagnostics) { + return map[string]provider.ResourceType{ "scaffolding_example": exampleResourceType{}, }, nil } -func (p *provider) GetDataSources(ctx context.Context) (map[string]tfsdk.DataSourceType, diag.Diagnostics) { - return map[string]tfsdk.DataSourceType{ +func (p *scaffoldingProvider) GetDataSources(ctx context.Context) (map[string]provider.DataSourceType, diag.Diagnostics) { + return map[string]provider.DataSourceType{ "scaffolding_example": exampleDataSourceType{}, }, nil } -func (p *provider) GetSchema(ctx context.Context) (tfsdk.Schema, diag.Diagnostics) { +func (p *scaffoldingProvider) GetSchema(ctx context.Context) (tfsdk.Schema, diag.Diagnostics) { return tfsdk.Schema{ Attributes: map[string]tfsdk.Attribute{ "example": { @@ -80,9 +81,9 @@ func (p *provider) GetSchema(ctx context.Context) (tfsdk.Schema, diag.Diagnostic }, nil } -func New(version string) func() tfsdk.Provider { - return func() tfsdk.Provider { - return &provider{ +func New(version string) func() provider.Provider { + return func() provider.Provider { + return &scaffoldingProvider{ version: version, } } @@ -91,19 +92,19 @@ func New(version string) func() tfsdk.Provider { // convertProviderType is a helper function for NewResource and NewDataSource // implementations to associate the concrete provider type. Alternatively, // this helper can be skipped and the provider type can be directly type -// asserted (e.g. provider: in.(*provider)), however using this can prevent +// asserted (e.g. provider: in.(*scaffoldingProvider)), however using this can prevent // potential panics. -func convertProviderType(in tfsdk.Provider) (provider, diag.Diagnostics) { +func convertProviderType(in provider.Provider) (scaffoldingProvider, diag.Diagnostics) { var diags diag.Diagnostics - p, ok := in.(*provider) + p, ok := in.(*scaffoldingProvider) if !ok { diags.AddError( "Unexpected Provider Instance Type", fmt.Sprintf("While creating the data source or resource, an unexpected provider type (%T) was received. This is always a bug in the provider code and should be reported to the provider developers.", p), ) - return provider{}, diags + return scaffoldingProvider{}, diags } if p == nil { @@ -111,7 +112,7 @@ func convertProviderType(in tfsdk.Provider) (provider, diag.Diagnostics) { "Unexpected Provider Instance Type", "While creating the data source or resource, an unexpected empty provider instance was received. This is always a bug in the provider code and should be reported to the provider developers.", ) - return provider{}, diags + return scaffoldingProvider{}, diags } return *p, diags