From 1b3e40ccb582a5ddee7320727813c274d1a2c250 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 17 Oct 2017 18:13:54 +0000 Subject: [PATCH] Refactor: extract pseudoNodeID function --- render/id.go | 15 +++++++++++++++ render/process.go | 12 +++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/render/id.go b/render/id.go index e482f50bf..441638d9d 100644 --- a/render/id.go +++ b/render/id.go @@ -45,6 +45,21 @@ func NewDerivedExternalNode(n report.Node, addr string, local report.Networks) ( return NewDerivedPseudoNode(id, n), true } +func pseudoNodeID(n report.Node, local report.Networks) (string, bool) { + _, addr, _, ok := report.ParseEndpointNodeID(n.ID) + if !ok { + return "", false + } + + if id, ok := externalNodeID(n, addr, local); ok { + return id, ok + } + + // due to https://github.com/weaveworks/scope/issues/1323 we are dropping + // all non-external pseudo nodes for now. + return "", false +} + // figure out if a node should be considered external and returns an ID which can be used to create a pseudo node func externalNodeID(n report.Node, addr string, local report.Networks) (string, bool) { // First, check if it's a known service and emit a a specific node if it diff --git a/render/process.go b/render/process.go index 5093ed3ec..724e20b47 100644 --- a/render/process.go +++ b/render/process.go @@ -91,18 +91,12 @@ var ProcessNameRenderer = ConditionalRenderer(renderProcesses, // MapEndpoint2Pseudo makes internet of host pesudo nodes from a endpoint node. func MapEndpoint2Pseudo(n report.Node, local report.Networks) report.Nodes { - _, addr, _, ok := report.ParseEndpointNodeID(n.ID) + id, ok := pseudoNodeID(n, local) if !ok { return report.Nodes{} } - - if externalNode, ok := NewDerivedExternalNode(n, addr, local); ok { - return report.Nodes{externalNode.ID: externalNode} - } - - // due to https://github.com/weaveworks/scope/issues/1323 we are dropping - // all non-external pseudo nodes for now. - return report.Nodes{} + externalNode := NewDerivedPseudoNode(id, n) + return report.Nodes{externalNode.ID: externalNode} } // MapEndpoint2Process maps endpoint Nodes to process