convert /terraform to use new provider config

Change all ModuleInstances in provider types to plain Modules
This commit is contained in:
James Bardin 2020-03-10 21:21:19 -04:00
parent 8497adcb6e
commit 98cfb51f27
18 changed files with 98 additions and 108 deletions

View File

@ -1333,7 +1333,7 @@ func TestContext2Apply_destroyDependsOnStateOnly(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
root.SetResourceInstanceCurrent( root.SetResourceInstanceCurrent(
@ -1358,7 +1358,7 @@ func TestContext2Apply_destroyDependsOnStateOnly(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -1431,7 +1431,7 @@ func TestContext2Apply_destroyDependsOnStateOnlyModule(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
child.SetResourceInstanceCurrent( child.SetResourceInstanceCurrent(
@ -1456,7 +1456,7 @@ func TestContext2Apply_destroyDependsOnStateOnlyModule(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -2828,7 +2828,7 @@ func TestContext2Apply_orphanResource(t *testing.T) {
want := states.BuildState(func(s *states.SyncState) { want := states.BuildState(func(s *states.SyncState) {
providerAddr := addrs.AbsProviderConfig{ providerAddr := addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
} }
zeroAddr := addrs.Resource{ zeroAddr := addrs.Resource{
Mode: addrs.ManagedResourceMode, Mode: addrs.ManagedResourceMode,
@ -7051,7 +7051,7 @@ func TestContext2Apply_errorDestroy(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}), }),
@ -7191,7 +7191,7 @@ func TestContext2Apply_errorUpdateNullNew(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}), }),
@ -8618,7 +8618,7 @@ func TestContext2Apply_createBefore_depends(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -8644,7 +8644,7 @@ func TestContext2Apply_createBefore_depends(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -8751,7 +8751,7 @@ func TestContext2Apply_singleDestroy(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -8777,7 +8777,7 @@ func TestContext2Apply_singleDestroy(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -9684,7 +9684,7 @@ func TestContext2Apply_destroyWithProviders(t *testing.T) {
state.Modules["module.mod.module.removed"].Resources["aws_instance.child"].ProviderConfig = addrs.AbsProviderConfig{ state.Modules["module.mod.module.removed"].Resources["aws_instance.child"].ProviderConfig = addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Alias: "bar", Alias: "bar",
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
} }
if _, diags := ctx.Plan(); diags.HasErrors() { if _, diags := ctx.Plan(); diags.HasErrors() {
@ -10108,7 +10108,7 @@ func TestContext2Apply_issue19908(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}), }),
@ -10236,7 +10236,7 @@ func TestContext2Apply_moduleReplaceCycle(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -10253,7 +10253,7 @@ func TestContext2Apply_moduleReplaceCycle(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -10296,7 +10296,7 @@ func TestContext2Apply_moduleReplaceCycle(t *testing.T) {
}.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance.Child("a", addrs.NoKey)), }.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance.Child("a", addrs.NoKey)),
ProviderAddr: addrs.AbsProviderConfig{ ProviderAddr: addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
ChangeSrc: plans.ChangeSrc{ ChangeSrc: plans.ChangeSrc{
Action: aAction, Action: aAction,
@ -10312,7 +10312,7 @@ func TestContext2Apply_moduleReplaceCycle(t *testing.T) {
}.Instance(addrs.IntKey(0)).Absolute(addrs.RootModuleInstance.Child("b", addrs.NoKey)), }.Instance(addrs.IntKey(0)).Absolute(addrs.RootModuleInstance.Child("b", addrs.NoKey)),
ProviderAddr: addrs.AbsProviderConfig{ ProviderAddr: addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
ChangeSrc: plans.ChangeSrc{ ChangeSrc: plans.ChangeSrc{
Action: plans.DeleteThenCreate, Action: plans.DeleteThenCreate,
@ -10363,7 +10363,7 @@ func TestContext2Apply_destroyDataCycle(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("null"), Provider: addrs.NewLegacyProvider("null"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
root.SetResourceInstanceCurrent( root.SetResourceInstanceCurrent(
@ -10378,7 +10378,7 @@ func TestContext2Apply_destroyDataCycle(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("null"), Provider: addrs.NewLegacyProvider("null"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -10453,7 +10453,7 @@ func TestContext2Apply_taintedDestroyFailure(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
root.SetResourceInstanceCurrent( root.SetResourceInstanceCurrent(
@ -10468,7 +10468,7 @@ func TestContext2Apply_taintedDestroyFailure(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
root.SetResourceInstanceCurrent( root.SetResourceInstanceCurrent(
@ -10483,7 +10483,7 @@ func TestContext2Apply_taintedDestroyFailure(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -10660,7 +10660,7 @@ func TestContext2Apply_cbdCycle(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
root.SetResourceInstanceCurrent( root.SetResourceInstanceCurrent(
@ -10685,7 +10685,7 @@ func TestContext2Apply_cbdCycle(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
root.SetResourceInstanceCurrent( root.SetResourceInstanceCurrent(
@ -10700,7 +10700,7 @@ func TestContext2Apply_cbdCycle(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )

View File

@ -117,7 +117,7 @@ func TestContextImport_collision(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}), }),
@ -606,7 +606,7 @@ func TestContextImport_moduleDiff(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}), }),
@ -667,7 +667,7 @@ func TestContextImport_moduleExisting(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}), }),

View File

@ -160,7 +160,7 @@ func (c *Context) Input(mode InputMode) tfdiags.Diagnostics {
absConfigAddr := addrs.AbsProviderConfig{ absConfigAddr := addrs.AbsProviderConfig{
Provider: providerFqn, Provider: providerFqn,
Alias: pa.Alias, Alias: pa.Alias,
Module: c.Config().Path.UnkeyedInstanceShim(), Module: c.Config().Path,
} }
c.providerInputConfig[absConfigAddr.String()] = vals c.providerInputConfig[absConfigAddr.String()] = vals

View File

@ -480,7 +480,7 @@ func TestContext2Input_dataSourceRequiresRefresh(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("null"), Provider: addrs.NewLegacyProvider("null"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })

View File

@ -5052,7 +5052,7 @@ func TestContext2Plan_ignoreChangesInMap(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })

View File

@ -105,7 +105,7 @@ func TestContext2Refresh_dynamicAttr(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })
@ -1742,7 +1742,7 @@ func TestContext2Refresh_schemaUpgradeFlatmap(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })
@ -1828,7 +1828,7 @@ func TestContext2Refresh_schemaUpgradeJSON(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })
@ -1999,7 +1999,7 @@ func TestRefresh_updateDependencies(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
root.SetResourceInstanceCurrent( root.SetResourceInstanceCurrent(
@ -2014,7 +2014,7 @@ func TestRefresh_updateDependencies(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )

View File

@ -108,7 +108,7 @@ func (ctx *BuiltinEvalContext) Input() UIInput {
func (ctx *BuiltinEvalContext) InitProvider(addr addrs.AbsProviderConfig) (providers.Interface, error) { func (ctx *BuiltinEvalContext) InitProvider(addr addrs.AbsProviderConfig) (providers.Interface, error) {
ctx.once.Do(ctx.init) ctx.once.Do(ctx.init)
absAddr := addr absAddr := addr
if !absAddr.Module.Equal(ctx.Path()) { if !absAddr.Module.Equal(ctx.Path().Module()) {
// This indicates incorrect use of InitProvider: it should be used // This indicates incorrect use of InitProvider: it should be used
// only from the module that the provider configuration belongs to. // only from the module that the provider configuration belongs to.
panic(fmt.Sprintf("%s initialized by wrong module %s", absAddr, ctx.Path())) panic(fmt.Sprintf("%s initialized by wrong module %s", absAddr, ctx.Path()))
@ -153,7 +153,7 @@ func (ctx *BuiltinEvalContext) ProviderSchema(addr addrs.AbsProviderConfig) *Pro
func (ctx *BuiltinEvalContext) CloseProvider(addr addrs.AbsProviderConfig) error { func (ctx *BuiltinEvalContext) CloseProvider(addr addrs.AbsProviderConfig) error {
ctx.once.Do(ctx.init) ctx.once.Do(ctx.init)
if !addr.Module.Equal(ctx.Path()) { if !addr.Module.Equal(ctx.Path().Module()) {
// This indicates incorrect use of CloseProvider: it should be used // This indicates incorrect use of CloseProvider: it should be used
// only from the module that the provider configuration belongs to. // only from the module that the provider configuration belongs to.
panic(fmt.Sprintf("%s closed by wrong module %s", addr, ctx.Path())) panic(fmt.Sprintf("%s closed by wrong module %s", addr, ctx.Path()))
@ -175,7 +175,7 @@ func (ctx *BuiltinEvalContext) CloseProvider(addr addrs.AbsProviderConfig) error
func (ctx *BuiltinEvalContext) ConfigureProvider(addr addrs.AbsProviderConfig, cfg cty.Value) tfdiags.Diagnostics { func (ctx *BuiltinEvalContext) ConfigureProvider(addr addrs.AbsProviderConfig, cfg cty.Value) tfdiags.Diagnostics {
var diags tfdiags.Diagnostics var diags tfdiags.Diagnostics
absAddr := addr absAddr := addr
if !absAddr.Module.Equal(ctx.Path()) { if !absAddr.Module.Equal(ctx.Path().Module()) {
// This indicates incorrect use of ConfigureProvider: it should be used // This indicates incorrect use of ConfigureProvider: it should be used
// only from the module that the provider configuration belongs to. // only from the module that the provider configuration belongs to.
panic(fmt.Sprintf("%s configured by wrong module %s", absAddr, ctx.Path())) panic(fmt.Sprintf("%s configured by wrong module %s", absAddr, ctx.Path()))
@ -206,7 +206,7 @@ func (ctx *BuiltinEvalContext) ProviderInput(pc addrs.AbsProviderConfig) map[str
ctx.ProviderLock.Lock() ctx.ProviderLock.Lock()
defer ctx.ProviderLock.Unlock() defer ctx.ProviderLock.Unlock()
if !pc.Module.Equal(ctx.Path()) { if !pc.Module.Equal(ctx.Path().Module()) {
// This indicates incorrect use of InitProvider: it should be used // This indicates incorrect use of InitProvider: it should be used
// only from the module that the provider configuration belongs to. // only from the module that the provider configuration belongs to.
panic(fmt.Sprintf("%s initialized by wrong module %s", pc, ctx.Path())) panic(fmt.Sprintf("%s initialized by wrong module %s", pc, ctx.Path()))
@ -222,7 +222,7 @@ func (ctx *BuiltinEvalContext) ProviderInput(pc addrs.AbsProviderConfig) map[str
func (ctx *BuiltinEvalContext) SetProviderInput(pc addrs.AbsProviderConfig, c map[string]cty.Value) { func (ctx *BuiltinEvalContext) SetProviderInput(pc addrs.AbsProviderConfig, c map[string]cty.Value) {
absProvider := pc absProvider := pc
if !absProvider.Module.Equal(ctx.Path()) { if !absProvider.Module.Equal(ctx.Path().Module()) {
// This indicates incorrect use of InitProvider: it should be used // This indicates incorrect use of InitProvider: it should be used
// only from the module that the provider configuration belongs to. // only from the module that the provider configuration belongs to.
panic(fmt.Sprintf("%s initialized by wrong module %s", absProvider, ctx.Path())) panic(fmt.Sprintf("%s initialized by wrong module %s", absProvider, ctx.Path()))

View File

@ -25,11 +25,11 @@ func TestBuiltinEvalContextProviderInput(t *testing.T) {
ctx2.ProviderLock = &lock ctx2.ProviderLock = &lock
providerAddr1 := addrs.AbsProviderConfig{ providerAddr1 := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
Provider: addrs.NewLegacyProvider("foo"), Provider: addrs.NewLegacyProvider("foo"),
} }
providerAddr2 := addrs.AbsProviderConfig{ providerAddr2 := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance.Child("child", addrs.NoKey), Module: addrs.RootModule.Child("child"),
Provider: addrs.NewLegacyProvider("foo"), Provider: addrs.NewLegacyProvider("foo"),
} }
@ -65,11 +65,11 @@ func TestBuildingEvalContextInitProvider(t *testing.T) {
} }
providerAddrDefault := addrs.AbsProviderConfig{ providerAddrDefault := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
} }
providerAddrAlias := addrs.AbsProviderConfig{ providerAddrAlias := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Alias: "foo", Alias: "foo",
} }

View File

@ -17,7 +17,7 @@ func TestBuildProviderConfig(t *testing.T) {
"set_in_config": cty.StringVal("config"), "set_in_config": cty.StringVal("config"),
}) })
providerAddr := addrs.AbsProviderConfig{ providerAddr := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
Provider: addrs.NewLegacyProvider("foo"), Provider: addrs.NewLegacyProvider("foo"),
} }
@ -69,7 +69,7 @@ func TestEvalConfigProvider(t *testing.T) {
provider := mockProviderWithConfigSchema(simpleTestSchema()) provider := mockProviderWithConfigSchema(simpleTestSchema())
rp := providers.Interface(provider) rp := providers.Interface(provider)
providerAddr := addrs.AbsProviderConfig{ providerAddr := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
Provider: addrs.NewLegacyProvider("foo"), Provider: addrs.NewLegacyProvider("foo"),
} }
n := &EvalConfigProvider{ n := &EvalConfigProvider{
@ -103,7 +103,7 @@ func TestEvalInitProvider_impl(t *testing.T) {
func TestEvalInitProvider(t *testing.T) { func TestEvalInitProvider(t *testing.T) {
providerAddr := addrs.AbsProviderConfig{ providerAddr := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
Provider: addrs.NewLegacyProvider("foo"), Provider: addrs.NewLegacyProvider("foo"),
} }
n := &EvalInitProvider{ n := &EvalInitProvider{
@ -125,7 +125,7 @@ func TestEvalInitProvider(t *testing.T) {
func TestEvalCloseProvider(t *testing.T) { func TestEvalCloseProvider(t *testing.T) {
providerAddr := addrs.AbsProviderConfig{ providerAddr := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
Provider: addrs.NewLegacyProvider("foo"), Provider: addrs.NewLegacyProvider("foo"),
} }
n := &EvalCloseProvider{ n := &EvalCloseProvider{

View File

@ -554,7 +554,7 @@ func TestApplyGraphBuilder_updateFromOrphan(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
root.SetResourceInstanceCurrent( root.SetResourceInstanceCurrent(
@ -579,7 +579,7 @@ func TestApplyGraphBuilder_updateFromOrphan(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("test"), Provider: addrs.NewLegacyProvider("test"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )

View File

@ -134,7 +134,7 @@ func TestNodeRefreshableDataResourceDynamicExpand_scaleIn(t *testing.T) {
Config: m.Module.DataResources["data.aws_instance.foo"], Config: m.Module.DataResources["data.aws_instance.foo"],
ResolvedProvider: addrs.AbsProviderConfig{ ResolvedProvider: addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
}, },
} }

View File

@ -26,7 +26,7 @@ type NodeAbstractProvider struct {
} }
var ( var (
_ GraphNodeModuleInstance = (*NodeAbstractProvider)(nil) _ GraphNodeModulePath = (*NodeAbstractProvider)(nil)
_ RemovableIfNotTargeted = (*NodeAbstractProvider)(nil) _ RemovableIfNotTargeted = (*NodeAbstractProvider)(nil)
_ GraphNodeReferencer = (*NodeAbstractProvider)(nil) _ GraphNodeReferencer = (*NodeAbstractProvider)(nil)
_ GraphNodeProvider = (*NodeAbstractProvider)(nil) _ GraphNodeProvider = (*NodeAbstractProvider)(nil)
@ -41,12 +41,12 @@ func (n *NodeAbstractProvider) Name() string {
// GraphNodeModuleInstance // GraphNodeModuleInstance
func (n *NodeAbstractProvider) Path() addrs.ModuleInstance { func (n *NodeAbstractProvider) Path() addrs.ModuleInstance {
return n.Addr.Module return n.Addr.Module.UnkeyedInstanceShim()
} }
// GraphNodeModulePath // GraphNodeModulePath
func (n *NodeAbstractProvider) ModulePath() addrs.Module { func (n *NodeAbstractProvider) ModulePath() addrs.Module {
return n.Addr.Module.Module() return n.Addr.Module
} }
// RemovableIfNotTargeted // RemovableIfNotTargeted

View File

@ -69,7 +69,7 @@ func (t *AttachSchemaTransformer) Transform(g *Graph) error {
if t.Config == nil { if t.Config == nil {
providerFqn = addrs.NewLegacyProvider(p.LocalName) providerFqn = addrs.NewLegacyProvider(p.LocalName)
} else { } else {
modConfig := t.Config.DescendentForInstance(tv.Path()) modConfig := t.Config.Descendent(tv.ModulePath())
if modConfig == nil { if modConfig == nil {
providerFqn = addrs.NewLegacyProvider(p.LocalName) providerFqn = addrs.NewLegacyProvider(p.LocalName)
} else { } else {

View File

@ -45,7 +45,7 @@ func TestDiffTransformer(t *testing.T) {
}.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance), }.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance),
ProviderAddr: addrs.AbsProviderConfig{ ProviderAddr: addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
ChangeSrc: plans.ChangeSrc{ ChangeSrc: plans.ChangeSrc{
Action: plans.Update, Action: plans.Update,

View File

@ -24,7 +24,7 @@ func (t *ImportStateTransformer) Transform(g *Graph) error {
defaultFQN := target.Addr.Resource.Resource.DefaultProvider() defaultFQN := target.Addr.Resource.Resource.DefaultProvider()
providerAddr = addrs.AbsProviderConfig{ providerAddr = addrs.AbsProviderConfig{
Provider: defaultFQN, Provider: defaultFQN,
Module: target.Addr.Module, Module: target.Addr.Module.Module(),
} }
} }
@ -48,7 +48,7 @@ type graphNodeImportState struct {
} }
var ( var (
_ GraphNodeModuleInstance = (*graphNodeImportState)(nil) _ GraphNodeModulePath = (*graphNodeImportState)(nil)
_ GraphNodeEvalable = (*graphNodeImportState)(nil) _ GraphNodeEvalable = (*graphNodeImportState)(nil)
_ GraphNodeProviderConsumer = (*graphNodeImportState)(nil) _ GraphNodeProviderConsumer = (*graphNodeImportState)(nil)
_ GraphNodeDynamicExpandable = (*graphNodeImportState)(nil) _ GraphNodeDynamicExpandable = (*graphNodeImportState)(nil)
@ -88,6 +88,11 @@ func (n *graphNodeImportState) Path() addrs.ModuleInstance {
return n.Addr.Module return n.Addr.Module
} }
// GraphNodeModulePath
func (n *graphNodeImportState) ModulePath() addrs.Module {
return n.Addr.Module.Module()
}
// GraphNodeEvalable impl. // GraphNodeEvalable impl.
func (n *graphNodeImportState) EvalTree() EvalNode { func (n *graphNodeImportState) EvalTree() EvalNode {
var provider providers.Interface var provider providers.Interface

View File

@ -28,7 +28,7 @@ func TestOrphanResourceInstanceTransformer(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
@ -47,7 +47,7 @@ func TestOrphanResourceInstanceTransformer(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })
@ -96,7 +96,7 @@ func TestOrphanResourceInstanceTransformer_countGood(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
s.SetResourceInstanceCurrent( s.SetResourceInstanceCurrent(
@ -113,7 +113,7 @@ func TestOrphanResourceInstanceTransformer_countGood(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })
@ -161,7 +161,7 @@ func TestOrphanResourceInstanceTransformer_countBad(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
s.SetResourceInstanceCurrent( s.SetResourceInstanceCurrent(
@ -178,7 +178,7 @@ func TestOrphanResourceInstanceTransformer_countBad(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })
@ -226,7 +226,7 @@ func TestOrphanResourceInstanceTransformer_modules(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
s.SetResourceInstanceCurrent( s.SetResourceInstanceCurrent(
@ -243,7 +243,7 @@ func TestOrphanResourceInstanceTransformer_modules(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })

View File

@ -44,7 +44,7 @@ func TransformProviders(providers []string, concrete ConcreteProviderNodeFunc, c
// //
// Name returns the full name of the provider in the config. // Name returns the full name of the provider in the config.
type GraphNodeProvider interface { type GraphNodeProvider interface {
GraphNodeModuleInstance GraphNodeModulePath
ProviderAddr() addrs.AbsProviderConfig ProviderAddr() addrs.AbsProviderConfig
Name() string Name() string
} }
@ -53,7 +53,7 @@ type GraphNodeProvider interface {
// provider must implement. The CloseProviderName returned is the name of // provider must implement. The CloseProviderName returned is the name of
// the provider they satisfy. // the provider they satisfy.
type GraphNodeCloseProvider interface { type GraphNodeCloseProvider interface {
GraphNodeModuleInstance GraphNodeModulePath
CloseProviderAddr() addrs.AbsProviderConfig CloseProviderAddr() addrs.AbsProviderConfig
} }
@ -63,7 +63,7 @@ type GraphNodeCloseProvider interface {
// or in an ancestor module, with the resulting absolute address passed to // or in an ancestor module, with the resulting absolute address passed to
// SetProvider. // SetProvider.
type GraphNodeProviderConsumer interface { type GraphNodeProviderConsumer interface {
GraphNodeModuleInstance GraphNodeModulePath
// ProvidedBy returns the address of the provider configuration the node // ProvidedBy returns the address of the provider configuration the node
// refers to, if available. The following value types may be returned: // refers to, if available. The following value types may be returned:
// //
@ -139,7 +139,7 @@ func (t *ProviderTransformer) Transform(g *Graph) error {
case addrs.LocalProviderConfig: case addrs.LocalProviderConfig:
// ProvidedBy() return a LocalProviderConfig when the resource // ProvidedBy() return a LocalProviderConfig when the resource
// contains a `provider` attribute // contains a `provider` attribute
modPath := pv.Path() modPath := pv.ModulePath()
if t.Config == nil { if t.Config == nil {
absPc.Provider = addrs.NewLegacyProvider(p.LocalName) absPc.Provider = addrs.NewLegacyProvider(p.LocalName)
absPc.Module = modPath absPc.Module = modPath
@ -147,7 +147,7 @@ func (t *ProviderTransformer) Transform(g *Graph) error {
break break
} }
modConfig := t.Config.DescendentForInstance(modPath) modConfig := t.Config.Descendent(modPath)
if modConfig == nil { if modConfig == nil {
absPc.Provider = addrs.NewLegacyProvider(p.LocalName) absPc.Provider = addrs.NewLegacyProvider(p.LocalName)
} else { } else {
@ -159,7 +159,7 @@ func (t *ProviderTransformer) Transform(g *Graph) error {
case nil: case nil:
// No provider found in config or state; fall back to implied default provider. // No provider found in config or state; fall back to implied default provider.
absPc.Provider = pv.ImpliedProvider() absPc.Provider = pv.ImpliedProvider()
absPc.Module = pv.Path() absPc.Module = pv.ModulePath()
log.Printf("[TRACE] ProviderTransformer: %s is provided by %s or inherited equivalent", dag.VertexName(v), absPc) log.Printf("[TRACE] ProviderTransformer: %s is provided by %s or inherited equivalent", dag.VertexName(v), absPc)
default: default:
@ -216,7 +216,7 @@ func (t *ProviderTransformer) Transform(g *Graph) error {
// start up the provider and fetch its schema. // start up the provider and fetch its schema.
if _, exists := needConfigured[key]; target == nil && !exists { if _, exists := needConfigured[key]; target == nil && !exists {
stubAddr := addrs.AbsProviderConfig{ stubAddr := addrs.AbsProviderConfig{
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
Provider: p.Provider, Provider: p.Provider,
} }
stub := &NodeEvalableProvider{ stub := &NodeEvalableProvider{
@ -364,7 +364,7 @@ func (t *MissingProviderTransformer) Transform(g *Graph) error {
log.Println("[TRACE] MissingProviderTransformer: skipping implication of aliased config", p) log.Println("[TRACE] MissingProviderTransformer: skipping implication of aliased config", p)
continue continue
} }
modConfig := t.Config.DescendentForInstance(pv.Path()) modConfig := t.Config.Descendent(pv.ModulePath())
if modConfig == nil { if modConfig == nil {
providerFqn = addrs.NewLegacyProvider(p.LocalName) providerFqn = addrs.NewLegacyProvider(p.LocalName)
} else { } else {
@ -427,7 +427,7 @@ func (t *ParentProviderTransformer) Transform(g *Graph) error {
// Also require non-empty path, since otherwise we're in the root // Also require non-empty path, since otherwise we're in the root
// module and so cannot have a parent. // module and so cannot have a parent.
if len(pn.Path()) <= 1 { if len(pn.ModulePath()) <= 1 {
continue continue
} }
@ -513,6 +513,11 @@ func (n *graphNodeCloseProvider) Name() string {
// GraphNodeModuleInstance impl. // GraphNodeModuleInstance impl.
func (n *graphNodeCloseProvider) Path() addrs.ModuleInstance { func (n *graphNodeCloseProvider) Path() addrs.ModuleInstance {
return n.Addr.Module.UnkeyedInstanceShim()
}
// GraphNodeModulePath
func (n *graphNodeCloseProvider) ModulePath() addrs.Module {
return n.Addr.Module return n.Addr.Module
} }
@ -562,6 +567,7 @@ type graphNodeProxyProvider struct {
} }
var ( var (
_ GraphNodeModulePath = (*graphNodeProxyProvider)(nil)
_ GraphNodeProvider = (*graphNodeProxyProvider)(nil) _ GraphNodeProvider = (*graphNodeProxyProvider)(nil)
) )
@ -570,6 +576,10 @@ func (n *graphNodeProxyProvider) ProviderAddr() addrs.AbsProviderConfig {
} }
func (n *graphNodeProxyProvider) Path() addrs.ModuleInstance { func (n *graphNodeProxyProvider) Path() addrs.ModuleInstance {
return n.addr.Module.UnkeyedInstanceShim()
}
func (n *graphNodeProxyProvider) ModulePath() addrs.Module {
return n.addr.Module return n.addr.Module
} }
@ -644,19 +654,7 @@ func (t *ProviderConfigTransformer) transform(g *Graph, c *configs.Config) error
func (t *ProviderConfigTransformer) transformSingle(g *Graph, c *configs.Config) error { func (t *ProviderConfigTransformer) transformSingle(g *Graph, c *configs.Config) error {
// Get the module associated with this configuration tree node // Get the module associated with this configuration tree node
mod := c.Module mod := c.Module
staticPath := c.Path path := c.Path
// We actually need a dynamic module path here, but we've not yet updated
// our graph builders enough to support expansion of module calls with
// "count" and "for_each" set, so for now we'll shim this by converting to
// a dynamic path with no keys. At the time of writing this is the only
// possible kind of dynamic path anyway.
path := make(addrs.ModuleInstance, len(staticPath))
for i, name := range staticPath {
path[i] = addrs.ModuleInstanceStep{
Name: name,
}
}
// add all providers from the configuration // add all providers from the configuration
for _, p := range mod.ProviderConfigs { for _, p := range mod.ProviderConfigs {
@ -720,19 +718,6 @@ func (t *ProviderConfigTransformer) addProxyProviders(g *Graph, c *configs.Confi
} }
} }
// We currently don't support count/for_each for modules and so we must
// shim our path and parentPath into module instances here so that the
// rest of Terraform can behave as if we do. This shimming should be
// removed later as part of implementing count/for_each for modules.
instPath := make(addrs.ModuleInstance, len(path))
for i, name := range path {
instPath[i] = addrs.ModuleInstanceStep{Name: name}
}
parentInstPath := make(addrs.ModuleInstance, len(parentPath))
for i, name := range parentPath {
parentInstPath[i] = addrs.ModuleInstanceStep{Name: name}
}
if parentCfg == nil { if parentCfg == nil {
// this can't really happen during normal execution. // this can't really happen during normal execution.
return fmt.Errorf("parent module config not found for %s", c.Path.String()) return fmt.Errorf("parent module config not found for %s", c.Path.String())
@ -744,13 +729,13 @@ func (t *ProviderConfigTransformer) addProxyProviders(g *Graph, c *configs.Confi
fqn := c.Module.ProviderForLocalConfig(pair.InChild.Addr()) fqn := c.Module.ProviderForLocalConfig(pair.InChild.Addr())
fullAddr := addrs.AbsProviderConfig{ fullAddr := addrs.AbsProviderConfig{
Provider: fqn, Provider: fqn,
Module: instPath, Module: path,
Alias: pair.InChild.Addr().Alias, Alias: pair.InChild.Addr().Alias,
} }
fullParentAddr := addrs.AbsProviderConfig{ fullParentAddr := addrs.AbsProviderConfig{
Provider: fqn, Provider: fqn,
Module: parentInstPath, Module: parentPath,
Alias: pair.InParent.Addr().Alias, Alias: pair.InParent.Addr().Alias,
} }
@ -802,7 +787,7 @@ func (t *ProviderConfigTransformer) attachProviderConfigs(g *Graph) error {
addr := apn.ProviderAddr() addr := apn.ProviderAddr()
// Get the configuration. // Get the configuration.
mc := t.Config.DescendentForInstance(addr.Module) mc := t.Config.Descendent(addr.Module)
if mc == nil { if mc == nil {
log.Printf("[TRACE] ProviderConfigTransformer: no configuration available for %s", addr.String()) log.Printf("[TRACE] ProviderConfigTransformer: no configuration available for %s", addr.String())
continue continue

View File

@ -72,7 +72,7 @@ func TestMissingProvisionerTransformer_module(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
s.SetResourceInstanceCurrent( s.SetResourceInstanceCurrent(
@ -89,7 +89,7 @@ func TestMissingProvisionerTransformer_module(t *testing.T) {
}, },
addrs.AbsProviderConfig{ addrs.AbsProviderConfig{
Provider: addrs.NewLegacyProvider("aws"), Provider: addrs.NewLegacyProvider("aws"),
Module: addrs.RootModuleInstance, Module: addrs.RootModule,
}, },
) )
}) })