From e454ac84555bd44969230f5b0ed55e73ff8eea29 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Mon, 20 Jun 2022 14:54:20 -0400 Subject: [PATCH] remove import transformer --- ...mport_state.go => node_resource_import.go} | 55 ------------------- internal/terraform/transform_provider_test.go | 52 ------------------ 2 files changed, 107 deletions(-) rename internal/terraform/{transform_import_state.go => node_resource_import.go} (82%) diff --git a/internal/terraform/transform_import_state.go b/internal/terraform/node_resource_import.go similarity index 82% rename from internal/terraform/transform_import_state.go rename to internal/terraform/node_resource_import.go index a7629dbee096..ecf39a07e033 100644 --- a/internal/terraform/transform_import_state.go +++ b/internal/terraform/node_resource_import.go @@ -5,66 +5,11 @@ import ( "log" "github.com/hashicorp/terraform/internal/addrs" - "github.com/hashicorp/terraform/internal/configs" "github.com/hashicorp/terraform/internal/providers" "github.com/hashicorp/terraform/internal/states" "github.com/hashicorp/terraform/internal/tfdiags" ) -// ImportStateTransformer is a GraphTransformer that adds nodes to the -// graph to represent the imports we want to do for resources. -type ImportStateTransformer struct { - Targets []*ImportTarget - Config *configs.Config - skip bool -} - -func (t *ImportStateTransformer) Transform(g *Graph) error { - if t.skip { - return nil - } - - for _, target := range t.Targets { - // This is only likely to happen in misconfigured tests - if t.Config == nil { - return fmt.Errorf("cannot import into an empty configuration") - } - - // Get the module config - modCfg := t.Config.Descendent(target.Addr.Module.Module()) - if modCfg == nil { - return fmt.Errorf("module %s not found", target.Addr.Module.Module()) - } - - providerAddr := addrs.AbsProviderConfig{ - Module: target.Addr.Module.Module(), - } - - // Try to find the resource config - rsCfg := modCfg.Module.ResourceByAddr(target.Addr.Resource.Resource) - if rsCfg != nil { - // Get the provider FQN for the resource from the resource configuration - providerAddr.Provider = rsCfg.Provider - - // Get the alias from the resource's provider local config - providerAddr.Alias = rsCfg.ProviderConfigAddr().Alias - } else { - // Resource has no matching config, so use an implied provider - // based on the resource type - rsProviderType := target.Addr.Resource.Resource.ImpliedProvider() - providerAddr.Provider = modCfg.Module.ImpliedProviderForUnqualifiedType(rsProviderType) - } - - node := &graphNodeImportState{ - Addr: target.Addr, - ID: target.ID, - ProviderAddr: providerAddr, - } - g.Add(node) - } - return nil -} - type graphNodeImportState struct { Addr addrs.AbsResourceInstance // Addr is the resource address to import into ID string // ID is the ID to import as diff --git a/internal/terraform/transform_provider_test.go b/internal/terraform/transform_provider_test.go index 0436fc03248f..0a7828d92151 100644 --- a/internal/terraform/transform_provider_test.go +++ b/internal/terraform/transform_provider_test.go @@ -49,58 +49,6 @@ func TestProviderTransformer(t *testing.T) { } } -func TestProviderTransformer_ImportModuleChild(t *testing.T) { - mod := testModule(t, "import-module") - - g := testProviderTransformerGraph(t, mod) - - { - tf := &ImportStateTransformer{ - Config: mod, - Targets: []*ImportTarget{ - &ImportTarget{ - Addr: addrs.RootModuleInstance. - Child("child", addrs.NoKey). - ResourceInstance( - addrs.ManagedResourceMode, - "aws_instance", - "foo", - addrs.NoKey, - ), - ID: "bar", - }, - }, - } - - if err := tf.Transform(g); err != nil { - t.Fatalf("err: %s", err) - } - t.Logf("graph after ImportStateTransformer:\n%s", g.String()) - } - - { - tf := &MissingProviderTransformer{} - if err := tf.Transform(g); err != nil { - t.Fatalf("err: %s", err) - } - t.Logf("graph after MissingProviderTransformer:\n%s", g.String()) - } - - { - tf := &ProviderTransformer{} - if err := tf.Transform(g); err != nil { - t.Fatalf("err: %s", err) - } - t.Logf("graph after ProviderTransformer:\n%s", g.String()) - } - - actual := strings.TrimSpace(g.String()) - expected := strings.TrimSpace(testTransformImportModuleChildStr) - if actual != expected { - t.Fatalf("wrong result\n\ngot:\n%s\n\nwant:\n%s", actual, expected) - } -} - // Test providers with FQNs that do not match the typeName func TestProviderTransformer_fqns(t *testing.T) { for _, mod := range []string{"fqns", "fqns-module"} {