refactor: lift closures and extract constants

This commit is contained in:
Matthias Radestock
2017-12-28 02:27:26 +00:00
parent 2d6badba79
commit a7b6bb09a1
2 changed files with 15 additions and 9 deletions

View File

@@ -335,6 +335,8 @@ func MapContainerImage2Name(n report.Node) report.Nodes {
return report.Nodes{n.ID: n}
}
var containerHostnameTopology = MakeGroupNodeTopology(report.Container, docker.ContainerHostname)
// MapContainer2Hostname maps container Nodes to 'hostname' renderabled nodes..
func MapContainer2Hostname(n report.Node) report.Nodes {
// Propagate all pseudo nodes
@@ -349,7 +351,7 @@ func MapContainer2Hostname(n report.Node) report.Nodes {
return report.Nodes{}
}
node := NewDerivedNode(id, n).WithTopology(MakeGroupNodeTopology(n.Topology, docker.ContainerHostname))
node := NewDerivedNode(id, n).WithTopology(containerHostnameTopology)
node.Counters = node.Counters.Add(n.Topology, 1)
return report.Nodes{id: node}
}

View File

@@ -76,6 +76,10 @@ var ProcessNameRenderer = CustomRenderer{RenderFunc: processes2Names, Renderer:
type endpoints2Processes struct {
}
func newProcessNode(id string) report.Node {
return report.MakeNode(id).WithTopology(report.Process)
}
func (e endpoints2Processes) Render(rpt report.Report) Nodes {
if len(rpt.Process.Nodes) == 0 {
return Nodes{}
@@ -102,11 +106,7 @@ func (e endpoints2Processes) Render(rpt report.Report) Nodes {
hostID, _ := report.ParseHostNodeID(hostNodeID)
id := report.MakeProcessNodeID(hostID, pid)
ret.addChild(n, id, func(id string) report.Node {
// we have a pid, but no matching process node;
// create a new one rather than dropping the data
return report.MakeNode(id).WithTopology(report.Process)
})
ret.addChild(n, id, newProcessNode)
}
}
return ret.result(endpoints)
@@ -139,6 +139,12 @@ func hasMoreThanOneConnection(n report.Node, endpoints report.Nodes) bool {
return false
}
var processNameTopology = MakeGroupNodeTopology(report.Process, process.Name)
func newProcessNameNode(id string) report.Node {
return report.MakeNode(id).WithTopology(processNameTopology)
}
// processes2Names maps process Nodes to Nodes for each process name.
func processes2Names(processes Nodes) Nodes {
ret := newJoinResults(nil)
@@ -147,9 +153,7 @@ func processes2Names(processes Nodes) Nodes {
if n.Topology == Pseudo {
ret.passThrough(n)
} else if name, ok := n.Latest.Lookup(process.Name); ok {
ret.addChildAndChildren(n, name, func(id string) report.Node {
return report.MakeNode(id).WithTopology(MakeGroupNodeTopology(n.Topology, process.Name))
})
ret.addChildAndChildren(n, name, newProcessNameNode)
}
}
return ret.result(processes)