mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Merge pull request #32683 from hashicorp/jbardin/import-terraform-data
allow terraform_data to import
This commit is contained in:
commit
014a425d0e
@ -119,7 +119,11 @@ func (p *Provider) ApplyResourceChange(req providers.ApplyResourceChangeRequest)
|
||||
}
|
||||
|
||||
// ImportResourceState requests that the given resource be imported.
|
||||
func (p *Provider) ImportResourceState(providers.ImportResourceStateRequest) providers.ImportResourceStateResponse {
|
||||
func (p *Provider) ImportResourceState(req providers.ImportResourceStateRequest) providers.ImportResourceStateResponse {
|
||||
if req.TypeName == "terraform_data" {
|
||||
return importDataStore(req)
|
||||
}
|
||||
|
||||
panic("unimplemented - terraform_remote_state has no resources")
|
||||
}
|
||||
|
||||
|
@ -146,3 +146,24 @@ func applyDataStoreResourceChange(req providers.ApplyResourceChangeRequest) (res
|
||||
|
||||
return resp
|
||||
}
|
||||
|
||||
// TODO: This isn't very useful even for examples, because terraform_data has
|
||||
// no way to refresh the full resource value from only the import ID. This
|
||||
// minimal implementation allows the import to succeed, and can be extended
|
||||
// once the configuration is available during import.
|
||||
func importDataStore(req providers.ImportResourceStateRequest) (resp providers.ImportResourceStateResponse) {
|
||||
schema := dataStoreResourceSchema()
|
||||
v := cty.ObjectVal(map[string]cty.Value{
|
||||
"id": cty.StringVal(req.ID),
|
||||
})
|
||||
state, err := schema.Block.CoerceValue(v)
|
||||
resp.Diagnostics = resp.Diagnostics.Append(err)
|
||||
|
||||
resp.ImportedResources = []providers.ImportedResource{
|
||||
{
|
||||
TypeName: req.TypeName,
|
||||
State: state,
|
||||
},
|
||||
}
|
||||
return resp
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user