Skip to content

Commit

Permalink
Merge pull request #1398 from weaveworks/1212-whitelist
Browse files Browse the repository at this point in the history
Don't merge nodes in the rendering pipeline
  • Loading branch information
paulbellamy committed May 3, 2016
2 parents 57bc6f7 + 9eaac25 commit f2546dc
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 6 deletions.
4 changes: 3 additions & 1 deletion render/container.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var ContainerRenderer = MakeFilter(
},
MakeMap(
MapProcess2Container,
ColorConnected(ProcessRenderer),
ProcessRenderer,
),
),

Expand Down Expand Up @@ -273,6 +273,8 @@ func MapProcess2Container(n report.Node, _ report.Networks) report.Nodes {
} else {
id = MakePseudoNodeID(UncontainedID, report.ExtractHostID(n))
node = NewDerivedPseudoNode(id, n)
node = propagateLatest(report.HostNodeID, n, node)
node = propagateLatest(IsConnected, n, node)
}
return report.Nodes{id: node}
}
Expand Down
2 changes: 1 addition & 1 deletion render/host.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ var HostRenderer = MakeReduce(
),
MakeMap(
MapX2Host,
ColorConnected(ProcessRenderer),
ProcessRenderer,
),
MakeMap(
MapX2Host,
Expand Down
5 changes: 3 additions & 2 deletions render/id.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ func MakeGroupNodeTopology(originalTopology, key string) string {

// NewDerivedNode makes a node based on node, but with a new ID
func NewDerivedNode(id string, node report.Node) report.Node {
return node.WithID(id).WithChildren(report.MakeNodeSet(node)).PruneParents()
return report.MakeNode(id).WithChildren(node.Children.Add(node))
}

// NewDerivedPseudoNode makes a new pseudo node with the node as a child
func NewDerivedPseudoNode(id string, node report.Node) report.Node {
return NewDerivedNode(id, node).WithTopology(Pseudo)
output := NewDerivedNode(id, node).WithTopology(Pseudo)
return output
}
4 changes: 2 additions & 2 deletions render/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@ var EndpointRenderer = FilterNonProcspied(SelectEndpoint)

// ProcessRenderer is a Renderer which produces a renderable process
// graph by merging the endpoint graph and the process topology.
var ProcessRenderer = MakeReduce(
var ProcessRenderer = ColorConnected(MakeReduce(
MakeMap(
MapEndpoint2Process,
EndpointRenderer,
),
SelectProcess,
)
))

// processWithContainerNameRenderer is a Renderer which produces a process
// graph enriched with container names where appropriate
Expand Down
7 changes: 7 additions & 0 deletions render/render.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,10 @@ func (ad applyDecorator) Stats(rpt report.Report, dct Decorator) Stats {
func ApplyDecorators(renderer Renderer) Renderer {
return applyDecorator{renderer}
}

func propagateLatest(key string, from, to report.Node) report.Node {
if value, timestamp, ok := from.Latest.LookupEntry(key); ok {
to.Latest = to.Latest.Set(key, timestamp, value)
}
return to
}

0 comments on commit f2546dc

Please sign in to comment.