WIP part-way through trying to rewrite detailed renderers

This commit is contained in:
Bryan Boreham
2020-06-21 15:00:47 +00:00
parent e0bb1cd385
commit 2549d5e1e1
4 changed files with 30 additions and 11 deletions
+10
View File
@@ -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
+4 -3
View File
@@ -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)
+6
View File
@@ -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)
}
+10 -8
View File
@@ -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))
}
})
}
}