Skip to content

Commit

Permalink
Fix terraform provider data sources (#52545)
Browse files Browse the repository at this point in the history
* Fix template Read method

* Update data sources

* Add test case

* terraform fmt

* Fix test case
  • Loading branch information
bernardjkim authored Mar 5, 2025
1 parent 1684e54 commit 6f33839
Show file tree
Hide file tree
Showing 29 changed files with 447 additions and 25 deletions.
16 changes: 15 additions & 1 deletion integrations/terraform/gen/plural_data_source.go.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,21 @@ func (r dataSourceTeleport{{.Name}}) Read(ctx context.Context, req tfsdk.ReadDat
return
}

var state types.Object
var state types.Object
resp.Diagnostics.Append(req.Config.Get(ctx, &state)...)
if resp.Diagnostics.HasError() {
return
}

// Todo: Remove after updating terraform-plugin to >=v1.5.0.
// terraform-plugin-testing version <1.5.0 requires data resources to
// implement the 'id' attribute.
// https://developer.hashicorp.com/terraform/plugin/framework/acctests#no-id-found-in-attributes
v, ok := state.Attrs["id"]
if !ok || v.IsNull() {
state.Attrs["id"] = id
}

{{if .IsPlainStruct -}}
{{.VarName}} := {{.VarName}}I
{{else if .ConvertPackagePath -}}
Expand Down
16 changes: 15 additions & 1 deletion integrations/terraform/gen/singular_data_source.go.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,12 @@ func (r dataSourceTeleport{{.Name}}) Read(ctx context.Context, req tfsdk.ReadDat
return
}

var state types.Object
var state types.Object
resp.Diagnostics.Append(req.Config.Get(ctx, &state)...)
if resp.Diagnostics.HasError() {
return
}

{{if .IsPlainStruct -}}
{{.VarName}} := {{.VarName}}I
{{else -}}
Expand All @@ -71,6 +76,15 @@ func (r dataSourceTeleport{{.Name}}) Read(ctx context.Context, req tfsdk.ReadDat
return
}

// Todo: Remove after updating terraform-plugin to >=v1.5.0.
// terraform-plugin-testing version <1.5.0 requires data resources to
// implement the 'id' attribute.
// https://developer.hashicorp.com/terraform/plugin/framework/acctests#no-id-found-in-attributes
v, ok := state.Attrs["id"]
if !ok || v.IsNull() {
state.Attrs["id"] = types.String{Value: {{.VarName}}.GetName()}
}

diags = resp.State.Set(ctx, &state)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
Expand Down

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

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

16 changes: 15 additions & 1 deletion integrations/terraform/provider/data_source_teleport_app.go

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

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

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

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

16 changes: 15 additions & 1 deletion integrations/terraform/provider/data_source_teleport_database.go

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

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

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

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

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

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

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

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

Loading

0 comments on commit 6f33839

Please sign in to comment.