From 3e8bdcc854473a130ecf9542f344758bd0be376b Mon Sep 17 00:00:00 2001 From: Peter Bourgon Date: Mon, 15 Jun 2015 10:26:22 +0200 Subject: [PATCH] Sub-topolgies rendered in one place only --- app/api_topologies.go | 14 ++++++++++---- app/api_topologies_test.go | 2 +- app/router.go | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/api_topologies.go b/app/api_topologies.go index 4684b2231..f7ac4157b 100644 --- a/app/api_topologies.go +++ b/app/api_topologies.go @@ -23,15 +23,21 @@ type topologyStats struct { // makeTopologyList returns a handler that yields an APITopologyList. func makeTopologyList(rep Reporter) func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) { - rpt := rep.Report() - topologies := []APITopologyDesc{} + var ( + rpt = rep.Report() + topologies = []APITopologyDesc{} + ) for name, def := range topologyRegistry { + if def.parent != "" { + continue // subtopology, don't show at top level + } subTopologies := []APITopologyDesc{} for subName, subDef := range topologyRegistry { if subDef.parent == name { subTopologies = append(subTopologies, APITopologyDesc{ - Name: subDef.human, - URL: "/api/topology/" + subName, + Name: subDef.human, + URL: "/api/topology/" + subName, + Stats: stats(render(rpt, subDef.maps)), }) } } diff --git a/app/api_topologies_test.go b/app/api_topologies_test.go index 7009c6542..6b5aff968 100644 --- a/app/api_topologies_test.go +++ b/app/api_topologies_test.go @@ -16,7 +16,7 @@ func TestAPITopology(t *testing.T) { if err := json.Unmarshal(body, &topologies); err != nil { t.Fatalf("JSON parse error: %s", err) } - equals(t, 5, len(topologies)) + equals(t, 3, len(topologies)) for _, topology := range topologies { is200(t, ts, topology.URL) diff --git a/app/router.go b/app/router.go index 7bd30f178..4616eb8bc 100644 --- a/app/router.go +++ b/app/router.go @@ -54,7 +54,7 @@ var topologyRegistry = map[string]topologyView{ }, }, "applications-by-name": { - human: "Applications by name", + human: "by name", parent: "applications", maps: []topologyMapper{ {report.SelectEndpoint, report.ProcessName, report.GenericGroupedPseudoNode}, @@ -69,7 +69,7 @@ var topologyRegistry = map[string]topologyView{ }, }, "containers-by-image": { - human: "Containers by image", + human: "by image", parent: "containers", maps: []topologyMapper{ {report.SelectEndpoint, report.ProcessContainerImage, report.InternetOnlyPseudoNode},