mirror of
https://github.com/weaveworks/scope.git
synced 2026-02-14 18:09:59 +00:00
This dependency makes it harder to see the structure of the program, and sometimes complicates compilation. Mostly just changing the source of strings that are already exported from the report package. A few new strings have to be moved there, plus the function `IsPauseImageName()`.
37 lines
908 B
Go
37 lines
908 B
Go
package render
|
|
|
|
import (
|
|
"github.com/weaveworks/scope/report"
|
|
)
|
|
|
|
// WeaveRenderer is a Renderer which produces a renderable weave topology.
|
|
//
|
|
// not memoised
|
|
var WeaveRenderer = MakeMap(
|
|
MapWeaveIdentity,
|
|
SelectOverlay,
|
|
)
|
|
|
|
// MapWeaveIdentity maps an overlay topology node to a weave topology node.
|
|
func MapWeaveIdentity(m report.Node) report.Node {
|
|
peerPrefix, _ := report.ParseOverlayNodeID(m.ID)
|
|
if peerPrefix != report.WeaveOverlayPeerPrefix {
|
|
return report.Node{}
|
|
}
|
|
|
|
var (
|
|
node = m
|
|
nickname, _ = m.Latest.Lookup(report.WeavePeerNickName)
|
|
)
|
|
|
|
// Nodes without a host id indicate they are not monitored by Scope
|
|
// (their info doesn't come from a probe monitoring that peer directly)
|
|
// , display them as pseudo nodes.
|
|
if _, ok := node.Latest.Lookup(report.HostNodeID); !ok {
|
|
id := MakePseudoNodeID(UnmanagedID, nickname)
|
|
node = NewDerivedPseudoNode(id, m)
|
|
}
|
|
|
|
return node
|
|
}
|