Merge pull request #126 from tomwilkie/bring-back-the-good-old-days

Restore the internet node to the container topologies.
This commit is contained in:
Tom Wilkie
2015-05-27 18:12:48 +01:00
2 changed files with 11 additions and 6 deletions

View File

@@ -46,7 +46,7 @@ type topologyView struct {
var topologyRegistry = map[string]topologyView{
"applications": {"Applications", selectProcess, report.ProcessPID, report.GenericPseudoNode, "applications-grouped"},
"applications-grouped": {"Applications", selectProcess, report.ProcessName, report.GenericGroupedPseudoNode, ""},
"containers": {"Containers", selectProcess, report.ProcessContainer, report.NoPseudoNode, "containers-grouped"},
"containers-grouped": {"Containers", selectProcess, report.ProcessContainerImage, report.NoPseudoNode, ""},
"containers": {"Containers", selectProcess, report.ProcessContainer, report.InternetOnlyPseudoNode, "containers-grouped"},
"containers-grouped": {"Containers", selectProcess, report.ProcessContainerImage, report.InternetOnlyPseudoNode, ""},
"hosts": {"Hosts", selectNetwork, report.NetworkHostname, report.GenericPseudoNode, ""},
}

View File

@@ -5,6 +5,8 @@ import (
"strings"
)
const humanTheInternet = "the Internet"
// MappedNode is returned by the MapFuncs.
type MappedNode struct {
ID string
@@ -129,7 +131,7 @@ func GenericPseudoNode(src string, srcMapped RenderableNode, dst string) (Mapped
if dst == TheInternet {
outputID = dst
maj, min = "the Internet", ""
maj, min = humanTheInternet, ""
} else {
// Rule for non-internet psuedo nodes; emit 1 new node for each
// dstNodeAddr, srcNodeAddr, srcNodePort.
@@ -154,7 +156,7 @@ func GenericGroupedPseudoNode(src string, srcMapped RenderableNode, dst string)
if dst == TheInternet {
outputID = dst
maj, min = "the Internet", ""
maj, min = humanTheInternet, ""
} else {
// When grouping, emit one pseudo node per (srcNodeAddress, dstNodeAddr)
dstNodeAddr, _ := trySplitAddr(dst)
@@ -170,8 +172,11 @@ func GenericGroupedPseudoNode(src string, srcMapped RenderableNode, dst string)
}, true
}
// NoPseudoNode never creates a pseudo node.
func NoPseudoNode(string, RenderableNode, string) (MappedNode, bool) {
// InternetOnlyPseudoNode never creates a pseudo node, unless it's the Internet.
func InternetOnlyPseudoNode(_ string, _ RenderableNode, dst string) (MappedNode, bool) {
if dst == TheInternet {
return MappedNode{ID: TheInternet, Major: humanTheInternet}, true
}
return MappedNode{}, false
}