/
githubmirror
/
terraform
Обзор
Документация
Войти
/
githubmirror
/
terraform
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
internal/moduletest/graph/transform_references.go
42 строки
1 KB
James Bardin
update moduletest/graph for new dag
03 авг 2026, 17:17
03 авг 2026, 17:17
c5fc7c1
Код
Авторство
О чём код?
// Copyright IBM Corp. 2014, 2026 // SPDX-License-Identifier: BUSL-1.1 package graph import ( "github.com/hashicorp/terraform/internal/addrs" "github.com/hashicorp/terraform/internal/dag" "github.com/hashicorp/terraform/internal/terraform" ) type GraphNodeReferenceable interface { dag.Vertex Referenceable() addrs.Referenceable } type GraphNodeReferencer interface { dag.Vertex References() []*addrs.Reference } var _ terraform.GraphTransformer = (*ReferenceTransformer)(nil) type ReferenceTransformer struct{} func (r *ReferenceTransformer) Transform(graph *terraform.Graph) error { nodes := addrs.MakeMap[addrs.Referenceable, dag.Vertex]() for referenceable := range dag.SelectSeq[GraphNodeReferenceable](graph.VerticesSeq()) { nodes.Put(referenceable.Referenceable(), referenceable) } for referencer := range dag.SelectSeq[GraphNodeReferencer](graph.VerticesSeq()) { for _, reference := range referencer.References() { if target, ok := nodes.GetOk(reference.Subject); ok { graph.Connect(referencer, target) } } } return nil }