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  }