From 8c1703d8df67bc3cb134af58cdea0dded438d617 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 18 Feb 2021 12:43:31 -0500 Subject: [PATCH] simplify the use of configuration_aliases Now that the possibility of extra provider nodes being added is gone, we can skip the separate handling of configuration_aliases in the ProviderConfigTransformer. Instead of adding concrete provider nodes for configuration_aliases (which could be surprising later as the code evolves), we implicitly add them based on the providers being passed in by the parent module, using the same mechanism as non-aliased providers. We can know that the `providers` map will be populated, because the provider structures are validated while loading the configuration. --- terraform/transform_provider.go | 42 --------------------------------- 1 file changed, 42 deletions(-) diff --git a/terraform/transform_provider.go b/terraform/transform_provider.go index e46fb01342..882272c385 100644 --- a/terraform/transform_provider.go +++ b/terraform/transform_provider.go @@ -567,43 +567,6 @@ func (t *ProviderConfigTransformer) transformSingle(g *Graph, c *configs.Config) t.proxiable[key] = !diags.HasErrors() } - if mod.ProviderRequirements != nil { - // Add implied provider configs from the required_providers - // Since we're still treating empty configs as proxies, we can just add - // these as empty configs too. We'll ensure that these are given a - // configuration during validation to prevent them from becoming - // fully-fledged config instances. - for _, p := range mod.ProviderRequirements.RequiredProviders { - for _, aliasAddr := range p.Aliases { - addr := addrs.AbsProviderConfig{ - Provider: mod.ProviderForLocalConfig(aliasAddr), - Module: path, - Alias: aliasAddr.Alias, - } - - key := addr.String() - if _, ok := t.providers[key]; ok { - continue - } - - abstract := &NodeAbstractProvider{ - Addr: addr, - } - var v dag.Vertex - if t.Concrete != nil { - v = t.Concrete(abstract) - } else { - v = abstract - } - - // Add it to the graph - g.Add(v) - t.providers[key] = v.(GraphNodeProvider) - t.proxiable[key] = true - } - } - } - // Now replace the provider nodes with proxy nodes if a provider was being // passed in, and create implicit proxies if there was no config. Any extra // proxies will be removed in the prune step. @@ -680,11 +643,6 @@ func (t *ProviderConfigTransformer) addProxyProviders(g *Graph, c *configs.Confi continue } - // aliased configurations can't be implicitly passed in - if fullAddr.Alias != "" { - continue - } - // There was no concrete provider, so add this as an implicit provider. // The extra proxy will be pruned later if it's unused. g.Add(proxy)