From 5f13eecc38cc87c65340e481eb5bab6c86e5d3dc Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 15 Sep 2023 17:30:41 -0400 Subject: [PATCH] remove ImportTarget.ID field --- internal/command/import.go | 4 +++- internal/terraform/context_import.go | 5 +---- internal/terraform/context_plan.go | 1 - internal/terraform/node_resource_plan.go | 4 ++-- internal/terraform/node_resource_plan_instance.go | 2 +- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/internal/command/import.go b/internal/command/import.go index ff7637c1f5..bbbd969574 100644 --- a/internal/command/import.go +++ b/internal/command/import.go @@ -240,7 +240,9 @@ func (c *ImportCommand) Run(args []string) int { // In the import block, the ID can be an arbitrary hcl.Expression, // but here it's always interpreted as a literal string. - ID: hcl.StaticExpr(cty.StringVal(args[1]), configs.SynthBody("import", nil).MissingItemRange()), + Config: &configs.Import{ + ID: hcl.StaticExpr(cty.StringVal(args[1]), configs.SynthBody("import", nil).MissingItemRange()), + }, }, }, diff --git a/internal/terraform/context_import.go b/internal/terraform/context_import.go index f9c054588d..ff750d5502 100644 --- a/internal/terraform/context_import.go +++ b/internal/terraform/context_import.go @@ -6,7 +6,6 @@ package terraform import ( "log" - "github.com/hashicorp/hcl/v2" "github.com/hashicorp/terraform/internal/addrs" "github.com/hashicorp/terraform/internal/configs" "github.com/hashicorp/terraform/internal/states" @@ -34,9 +33,7 @@ type ImportTarget struct { // when using the import command. LegacyAddr addrs.AbsResourceInstance - // ID is the ID of the resource to import. This is resource-specific. - // TODO: the expression is evaluated from Config. - ID hcl.Expression + // isString stores the evaluated ID from the Config for the import process. idString string } diff --git a/internal/terraform/context_plan.go b/internal/terraform/context_plan.go index 5c49b8442f..acc7dc1f21 100644 --- a/internal/terraform/context_plan.go +++ b/internal/terraform/context_plan.go @@ -561,7 +561,6 @@ func (c *Context) findImportTargets(config *configs.Config, priorState *states.S // TODO: partial filtering here //if priorState.ResourceInstance(ic.To) == nil { importTargets = append(importTargets, &ImportTarget{ - ID: ic.ID, Config: ic, }) //} diff --git a/internal/terraform/node_resource_plan.go b/internal/terraform/node_resource_plan.go index 16b253e90e..e7b8590a96 100644 --- a/internal/terraform/node_resource_plan.go +++ b/internal/terraform/node_resource_plan.go @@ -346,7 +346,7 @@ func (n nodeExpandPlannableResource) expandResourceImports(ctx EvalContext, addr } if imp.Config.ForEach == nil { - importID, evalDiags := evaluateImportIdExpression(imp.ID, ctx, EvalDataForNoInstanceKey) + importID, evalDiags := evaluateImportIdExpression(imp.Config.ID, ctx, EvalDataForNoInstanceKey) diags = diags.Append(evalDiags) if diags.HasErrors() { return imports, diags @@ -373,7 +373,7 @@ func (n nodeExpandPlannableResource) expandResourceImports(ctx EvalContext, addr return imports, diags } - importID, evalDiags := evaluateImportIdExpression(imp.ID, ctx, keyData) + importID, evalDiags := evaluateImportIdExpression(imp.Config.ID, ctx, keyData) diags = diags.Append(evalDiags) if diags.HasErrors() { return imports, diags diff --git a/internal/terraform/node_resource_plan_instance.go b/internal/terraform/node_resource_plan_instance.go index 2d28f918f1..6f79265349 100644 --- a/internal/terraform/node_resource_plan_instance.go +++ b/internal/terraform/node_resource_plan_instance.go @@ -509,7 +509,7 @@ func (n *NodePlannableResourceInstance) importState(ctx EvalContext, addr addrs. "Import returned null resource", fmt.Sprintf("While attempting to import with ID %s, the provider"+ "returned an instance with no state.", - n.importTarget.ID, + n.importTarget.idString, ), )) }