github.com/muratcelep/terraform@v1.1.0-beta2-not-internal-4/not-internal/terraform/transform_resource_count.go (about) 1 package terraform 2 3 import ( 4 "log" 5 6 "github.com/muratcelep/terraform/not-internal/addrs" 7 "github.com/muratcelep/terraform/not-internal/configs/configschema" 8 "github.com/muratcelep/terraform/not-internal/dag" 9 ) 10 11 // ResourceCountTransformer is a GraphTransformer that expands the count 12 // out for a specific resource. 13 // 14 // This assumes that the count is already interpolated. 15 type ResourceCountTransformer struct { 16 Concrete ConcreteResourceInstanceNodeFunc 17 Schema *configschema.Block 18 19 Addr addrs.ConfigResource 20 InstanceAddrs []addrs.AbsResourceInstance 21 } 22 23 func (t *ResourceCountTransformer) Transform(g *Graph) error { 24 for _, addr := range t.InstanceAddrs { 25 abstract := NewNodeAbstractResourceInstance(addr) 26 abstract.Schema = t.Schema 27 var node dag.Vertex = abstract 28 if f := t.Concrete; f != nil { 29 node = f(abstract) 30 } 31 32 log.Printf("[TRACE] ResourceCountTransformer: adding %s as %T", addr, node) 33 g.Add(node) 34 } 35 return nil 36 }