From d503cc2d824f6c5cd3fbc18e9887faecf6f14bb9 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 5 May 2015 12:45:28 -0700 Subject: [PATCH] terraform: flattenable graphNodeMissingProvisioner --- terraform/transform_provisioner.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/terraform/transform_provisioner.go b/terraform/transform_provisioner.go index 316a8f31e9..bf661f88a4 100644 --- a/terraform/transform_provisioner.go +++ b/terraform/transform_provisioner.go @@ -111,6 +111,14 @@ func (n *graphNodeMissingProvisioner) ProvisionerName() string { return n.ProvisionerNameValue } +// GraphNodeFlattenable impl. +func (n *graphNodeMissingProvisioner) Flatten(p []string) (dag.Vertex, error) { + return &graphNodeMissingProvisionerFlat{ + graphNodeMissingProvisioner: n, + PathValue: p, + }, nil +} + func provisionerVertexMap(g *Graph) map[string]dag.Vertex { m := make(map[string]dag.Vertex) for _, v := range g.Vertices() { @@ -121,3 +129,25 @@ func provisionerVertexMap(g *Graph) map[string]dag.Vertex { return m } + +// Same as graphNodeMissingProvisioner, but for flattening +type graphNodeMissingProvisionerFlat struct { + *graphNodeMissingProvisioner + + PathValue []string +} + +func (n *graphNodeMissingProvisionerFlat) Name() string { + return fmt.Sprintf( + "%s.%s", modulePrefixStr(n.PathValue), n.graphNodeMissingProvisioner.Name()) +} + +func (n *graphNodeMissingProvisionerFlat) Path() []string { + return n.PathValue +} + +func (n *graphNodeMissingProvisionerFlat) ProvisionerName() string { + return fmt.Sprintf( + "%s.%s", modulePrefixStr(n.PathValue), + n.graphNodeMissingProvisioner.ProvisionerName()) +}