terraform: remove graph annotations
This commit is contained in:
parent
a561934f61
commit
348cfa0ed7
|
@ -29,11 +29,6 @@ type Graph struct {
|
|||
// RootModuleName
|
||||
Path []string
|
||||
|
||||
// annotations are the annotations that are added to vertices. Annotations
|
||||
// are arbitrary metadata taht is used for various logic. Annotations
|
||||
// should have unique keys that are referenced via constants.
|
||||
annotations map[dag.Vertex]map[string]interface{}
|
||||
|
||||
// dependableMap is a lookaside table for fast lookups for connecting
|
||||
// dependencies by their GraphNodeDependable value to avoid O(n^3)-like
|
||||
// situations and turn them into O(1) with respect to the number of new
|
||||
|
@ -52,29 +47,6 @@ func (g *Graph) DirectedGraph() dag.Grapher {
|
|||
return &g.AcyclicGraph
|
||||
}
|
||||
|
||||
// Annotations returns the annotations that are configured for the
|
||||
// given vertex. The map is guaranteed to be non-nil but may be empty.
|
||||
//
|
||||
// The returned map may be modified to modify the annotations of the
|
||||
// vertex.
|
||||
func (g *Graph) Annotations(v dag.Vertex) map[string]interface{} {
|
||||
g.once.Do(g.init)
|
||||
|
||||
// If this vertex isn't in the graph, then just return an empty map
|
||||
if !g.HasVertex(v) {
|
||||
return map[string]interface{}{}
|
||||
}
|
||||
|
||||
// Get the map, if it doesn't exist yet then initialize it
|
||||
m, ok := g.annotations[v]
|
||||
if !ok {
|
||||
m = make(map[string]interface{})
|
||||
g.annotations[v] = m
|
||||
}
|
||||
|
||||
return m
|
||||
}
|
||||
|
||||
// Add is the same as dag.Graph.Add.
|
||||
func (g *Graph) Add(v dag.Vertex) dag.Vertex {
|
||||
g.once.Do(g.init)
|
||||
|
@ -89,14 +61,6 @@ func (g *Graph) Add(v dag.Vertex) dag.Vertex {
|
|||
}
|
||||
}
|
||||
|
||||
// If this initializes annotations, then do that
|
||||
if av, ok := v.(GraphNodeAnnotationInit); ok {
|
||||
as := g.Annotations(v)
|
||||
for k, v := range av.AnnotationInit() {
|
||||
as[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
return v
|
||||
}
|
||||
|
||||
|
@ -111,9 +75,6 @@ func (g *Graph) Remove(v dag.Vertex) dag.Vertex {
|
|||
}
|
||||
}
|
||||
|
||||
// Remove the annotations
|
||||
delete(g.annotations, v)
|
||||
|
||||
// Call upwards to remove it from the actual graph
|
||||
return g.Graph.Remove(v)
|
||||
}
|
||||
|
@ -133,12 +94,6 @@ func (g *Graph) Replace(o, n dag.Vertex) bool {
|
|||
}
|
||||
}
|
||||
|
||||
// Move the annotation if it exists
|
||||
if m, ok := g.annotations[o]; ok {
|
||||
g.annotations[n] = m
|
||||
delete(g.annotations, o)
|
||||
}
|
||||
|
||||
return g.Graph.Replace(o, n)
|
||||
}
|
||||
|
||||
|
@ -195,13 +150,6 @@ func (g *Graph) ConnectTo(v dag.Vertex, targets []string) []string {
|
|||
return missing
|
||||
}
|
||||
|
||||
// Dependable finds the vertices in the graph that have the given dependable
|
||||
// names and returns them.
|
||||
func (g *Graph) Dependable(n string) dag.Vertex {
|
||||
// TODO: do we need this?
|
||||
return nil
|
||||
}
|
||||
|
||||
// Walk walks the graph with the given walker for callbacks. The graph
|
||||
// will be walked with full parallelism, so the walker should expect
|
||||
// to be called in concurrently.
|
||||
|
@ -210,10 +158,6 @@ func (g *Graph) Walk(walker GraphWalker) error {
|
|||
}
|
||||
|
||||
func (g *Graph) init() {
|
||||
if g.annotations == nil {
|
||||
g.annotations = make(map[dag.Vertex]map[string]interface{})
|
||||
}
|
||||
|
||||
if g.dependableMap == nil {
|
||||
g.dependableMap = make(map[string]dag.Vertex)
|
||||
}
|
||||
|
@ -346,16 +290,6 @@ func (g *Graph) walk(walker GraphWalker) error {
|
|||
return g.AcyclicGraph.Walk(walkFn)
|
||||
}
|
||||
|
||||
// GraphNodeAnnotationInit is an interface that allows a node to
|
||||
// initialize it's annotations.
|
||||
//
|
||||
// AnnotationInit will be called _once_ when the node is added to a
|
||||
// graph for the first time and is expected to return it's initial
|
||||
// annotations.
|
||||
type GraphNodeAnnotationInit interface {
|
||||
AnnotationInit() map[string]interface{}
|
||||
}
|
||||
|
||||
// GraphNodeDependable is an interface which says that a node can be
|
||||
// depended on (an edge can be placed between this node and another) according
|
||||
// to the well-known name returned by DependableName.
|
||||
|
|
Loading…
Reference in New Issue