diff --git a/app/api_topology.go b/app/api_topology.go index d9d78b356..08bfe229c 100644 --- a/app/api_topology.go +++ b/app/api_topology.go @@ -84,7 +84,7 @@ func handleWebsocket( for { // just discard everything the browser sends if _, _, err := c.ReadMessage(); err != nil { if !xfer.IsExpectedWSCloseError(err) { - log.Println("err:", err) + log.Error("err:", err) } close(quit) break diff --git a/render/detailed/summary.go b/render/detailed/summary.go index 6f5f59698..caa2d0a3e 100644 --- a/render/detailed/summary.go +++ b/render/detailed/summary.go @@ -8,6 +8,7 @@ import ( "github.com/weaveworks/scope/probe/endpoint" "github.com/weaveworks/scope/probe/host" "github.com/weaveworks/scope/probe/kubernetes" + "github.com/weaveworks/scope/probe/overlay" "github.com/weaveworks/scope/probe/process" "github.com/weaveworks/scope/render" "github.com/weaveworks/scope/report" @@ -68,6 +69,7 @@ var renderers = map[string]func(NodeSummary, report.Node) (NodeSummary, bool){ report.Deployment: podGroupNodeSummary, report.ReplicaSet: podGroupNodeSummary, report.Host: hostNodeSummary, + report.Overlay: weaveNodeSummary, } var templates = map[string]struct{ Label, LabelMinor string }{ @@ -253,6 +255,18 @@ func hostNodeSummary(base NodeSummary, n report.Node) (NodeSummary, bool) { return base, true } +func weaveNodeSummary(base NodeSummary, n report.Node) (NodeSummary, bool) { + var ( + nickname, _ = n.Latest.Lookup(overlay.WeavePeerNickName) + ) + + _, peerName := report.ParseOverlayNodeID(n.ID) + + base.Label, base.LabelMinor = nickname, peerName + + return base, true +} + // groupNodeSummary renders the summary for a group node. n.Topology is // expected to be of the form: group:container:hostname func groupNodeSummary(base NodeSummary, r report.Report, n report.Node) (NodeSummary, bool) { @@ -298,6 +312,7 @@ type NodeSummaries map[string]NodeSummary // Summaries converts RenderableNodes into a set of NodeSummaries func Summaries(r report.Report, rns report.Nodes) NodeSummaries { + result := NodeSummaries{} for id, node := range rns { if summary, ok := MakeNodeSummary(r, node); ok { diff --git a/render/weave.go b/render/weave.go index 28d708e59..9855c766e 100644 --- a/render/weave.go +++ b/render/weave.go @@ -13,17 +13,20 @@ var WeaveRenderer = MakeMap( // MapWeaveIdentity maps an overlay topology node to a weave topology node. func MapWeaveIdentity(m report.Node, _ report.Networks) report.Nodes { - - peerPrefix, peerName := report.ParseOverlayNodeID(m.ID) + peerPrefix, _ := report.ParseOverlayNodeID(m.ID) if peerPrefix != report.WeaveOverlayPeerPrefix { return nil } - var node = NewDerivedNode(peerName, m) + var ( + node = m + nickname, _ = m.Latest.Lookup(overlay.WeavePeerNickName) + ) + if _, ok := node.Latest.Lookup(report.HostNodeID); !ok { - nickname, _ := m.Latest.Lookup(overlay.WeavePeerNickName) id := MakePseudoNodeID(UnmanagedID, nickname) node = NewDerivedPseudoNode(id, m) } - return report.Nodes{peerName: node} + + return report.Nodes{node.ID: node} }