mirror of
https://github.com/weaveworks/scope.git
synced 2026-08-18 20:07:06 +00:00
WIP part-way through trying to rewrite detailed renderers
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package detailed
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"sort"
|
||||
|
||||
"github.com/ugorji/go/codec"
|
||||
@@ -9,6 +11,7 @@ import (
|
||||
"github.com/weaveworks/scope/probe/docker"
|
||||
"github.com/weaveworks/scope/probe/kubernetes"
|
||||
"github.com/weaveworks/scope/probe/process"
|
||||
"github.com/weaveworks/scope/render"
|
||||
"github.com/weaveworks/scope/report"
|
||||
)
|
||||
|
||||
@@ -101,6 +104,12 @@ func MakeNode(topologyID string, rc RenderContext, ns report.Nodes, n report.Nod
|
||||
}
|
||||
}
|
||||
|
||||
func MakeDetailedHostNode(ctx context.Context, rpt report.Report, id string) Node {
|
||||
renderableNodes := render.HostRenderer.Render(ctx, rpt).Nodes
|
||||
renderableNode := renderableNodes[id]
|
||||
return MakeNode("hosts", RenderContext{Report: rpt}, renderableNodes, renderableNode)
|
||||
}
|
||||
|
||||
func controlsFor(topology report.Topology, nodeID string) []ControlInstance {
|
||||
result := []ControlInstance{}
|
||||
node, ok := topology.Nodes[nodeID]
|
||||
@@ -223,6 +232,7 @@ var nodeSummaryGroupSpecs = []struct {
|
||||
|
||||
func children(rc RenderContext, n report.Node) []NodeSummaryGroup {
|
||||
summaries := map[string][]NodeSummary{}
|
||||
fmt.Printf("children: %v\n", n.ChildIDs)
|
||||
for _, childID := range n.ChildIDs {
|
||||
if childID == n.ID {
|
||||
continue
|
||||
|
||||
@@ -30,9 +30,10 @@ func connectionID(nodeID string, addr string) string {
|
||||
}
|
||||
|
||||
func TestMakeDetailedHostNode(t *testing.T) {
|
||||
renderableNodes := render.HostRenderer.Render(context.Background(), fixture.Report).Nodes
|
||||
renderableNode := renderableNodes[fixture.ClientHostNodeID]
|
||||
have := detailed.MakeNode("hosts", detailed.RenderContext{Report: fixture.Report}, renderableNodes, renderableNode)
|
||||
//renderableNodes := render.HostRenderer.Render(context.Background(), fixture.Report).Nodes
|
||||
//renderableNode := renderableNodes[fixture.ClientHostNodeID]
|
||||
//have := detailed.MakeNode("hosts", detailed.RenderContext{Report: fixture.Report}, renderableNodes, renderableNode)
|
||||
have := detailed.MakeDetailedHostNode(context.Background(), fixture.Report, fixture.ClientHostNodeID)
|
||||
|
||||
containerImageNodeSummary := child(t, render.ContainerImageRenderer, expected.ClientContainerImageNodeID)
|
||||
containerNodeSummary := child(t, render.ContainerRenderer, fixture.ClientContainerNodeID)
|
||||
|
||||
@@ -3,6 +3,7 @@ package detailed
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"runtime/debug"
|
||||
"strings"
|
||||
|
||||
opentracing "github.com/opentracing/opentracing-go"
|
||||
@@ -128,6 +129,10 @@ func MakeBasicNodeSummary(r report.Report, n report.Node) (BasicNodeSummary, boo
|
||||
summary.Tag = t.Tag
|
||||
}
|
||||
|
||||
fmt.Printf("MakeBasicNodeSummary %s: %s\n", n.ID, n.Topology)
|
||||
if n.Topology == "host" {
|
||||
debug.PrintStack()
|
||||
}
|
||||
// Do we have a renderer for the topology?
|
||||
if renderer, ok := renderers[n.Topology]; ok {
|
||||
if renderer == nil { // we don't want to render this
|
||||
@@ -437,6 +442,7 @@ func pluralize(n report.Node, key, singular, plural string) string {
|
||||
if !ok {
|
||||
c = n.CountChildrenOfTopology(key)
|
||||
}
|
||||
fmt.Printf("pluralize: %d of %s in %s %v\n", c, key, n.ID, n.ChildIDs)
|
||||
if c == 1 {
|
||||
return fmt.Sprintf("%d %s", c, singular)
|
||||
}
|
||||
|
||||
@@ -195,15 +195,17 @@ func TestMakeNodeSummary(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, testcase := range testcases {
|
||||
have, ok := detailed.MakeNodeSummary(detailed.RenderContext{Report: fixture.Report}, testcase.input)
|
||||
if ok != testcase.ok {
|
||||
t.Errorf("%s: MakeNodeSummary failed: expected ok value to be: %v", testcase.name, testcase.ok)
|
||||
continue
|
||||
}
|
||||
t.Run(testcase.name, func(t *testing.T) {
|
||||
have, ok := detailed.MakeNodeSummary(detailed.RenderContext{Report: fixture.Report}, testcase.input)
|
||||
if ok != testcase.ok {
|
||||
t.Errorf("%s: MakeNodeSummary failed: expected ok value to be: %v", testcase.name, testcase.ok)
|
||||
return
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(testcase.want, have) {
|
||||
t.Errorf("%s: Node Summary did not match: %s", testcase.name, test.Diff(testcase.want, have))
|
||||
}
|
||||
if !reflect.DeepEqual(testcase.want, have) {
|
||||
t.Errorf("%s: Node Summary did not match: %s", testcase.name, test.Diff(testcase.want, have))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user