@ -6,6 +6,7 @@ package terraform
import (
"log"
"github.com/hashicorp/terraform/internal/addrs"
"github.com/hashicorp/terraform/internal/configs"
"github.com/hashicorp/terraform/internal/dag"
)
@ -48,63 +49,25 @@ func (t *AttachResourceConfigTransformer) Transform(g *Graph) error {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: %q (%T) has no configuration available" , dag . VertexName ( v ) , v )
continue
}
for _ , r := range config . Module . ManagedResources {
rAddr := r . Addr ( )
if rAddr != addr . Resource {
// Not the same resource
continue
}
log . Printf ( "[TRACE] AttachResourceConfigTransformer: attaching to %q (%T) config from %s" , dag . VertexName ( v ) , v , r . DeclRange )
arn . AttachResourceConfig ( r )
// attach the provider_meta info
if gnapmc , ok := v . ( GraphNodeAttachProviderMetaConfigs ) ; ok {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: attaching provider meta configs to %s" , dag . VertexName ( v ) )
if config == nil {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: no config set on the transformer for %s" , dag . VertexName ( v ) )
continue
}
if config . Module == nil {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: no module in config for %s" , dag . VertexName ( v ) )
continue
}
if config . Module . ProviderMetas == nil {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: no provider metas defined for %s" , dag . VertexName ( v ) )
continue
}
gnapmc . AttachProviderMetaConfigs ( config . Module . ProviderMetas )
}
var m map [ string ] * configs . Resource
if addr . Resource . Mode == addrs . ManagedResourceMode {
m = config . Module . ManagedResources
} else if addr . Resource . Mode == addrs . DataResourceMode {
m = config . Module . DataResources
} else {
panic ( "unknown resource mode: " + addr . Resource . Mode . String ( ) )
}
for _ , r := range config . Module . DataResources {
rAddr := r . Addr ( )
if rAddr != addr . Resource {
// Not the same resource
continue
}
coord := addr . Resource . String ( )
if r , ok := m [ coord ] ; ok && r . Addr ( ) == addr . Resource {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: attaching to %q (%T) config from %#v" , dag . VertexName ( v ) , v , r . DeclRange )
arn . AttachResourceConfig ( r )
// attach the provider_meta info
if gnapmc , ok := v . ( GraphNodeAttachProviderMetaConfigs ) ; ok {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: attaching provider meta configs to %s" , dag . VertexName ( v ) )
if config == nil {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: no config set on the transformer for %s" , dag . VertexName ( v ) )
continue
}
if config . Module == nil {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: no module in config for %s" , dag . VertexName ( v ) )
continue
}
if config . Module . ProviderMetas == nil {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: no provider metas defined for %s" , dag . VertexName ( v ) )
continue
if config . Module . ProviderMetas != nil {
gnapmc . AttachProviderMetaConfigs ( config . Module . ProviderMetas )
} else {
log . Printf ( "[TRACE] AttachResourceConfigTransformer: no provider meta configs available to attach to %s" , dag . VertexName ( v ) )
}
gnapmc . AttachProviderMetaConfigs ( config . Module . ProviderMetas )
}
}
}