From 14ab5cccebdab1a91513073a15471f9d95518a45 Mon Sep 17 00:00:00 2001 From: Mike Lang Date: Mon, 10 Apr 2017 11:48:49 -0700 Subject: [PATCH] render: Maintain a list of 'primary' api topologies for each report topology This gives us a single source of truth in a variety of situations where we want to know what view to direct a user to in order to 'open' a particular node. I wanted to put this in app/api_topologies where the views are defined, but that creates a circular import. --- render/detailed/summary.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/render/detailed/summary.go b/render/detailed/summary.go index b289bba53..85f1d1bca 100644 --- a/render/detailed/summary.go +++ b/render/detailed/summary.go @@ -81,6 +81,19 @@ var templates = map[string]struct{ Label, LabelMinor string }{ render.OutgoingInternetID: {render.OutboundMajor, render.OutboundMinor}, } +// For each report.Topology, map to a 'primary' API topology. This can then be used in a variety of places. +var primaryAPITopology = map[string]string{ + report.Container: "containers", + report.ContainerImage: "containers-by-image", + report.Pod: "pods", + report.ReplicaSet: "replica-sets", + report.Deployment: "deployments", + report.Service: "services", + report.ECSTask: "ecs-tasks", + report.ECSService: "ecs-services", + report.Host: "hosts", +} + // MakeNodeSummary summarizes a node, if possible. func MakeNodeSummary(r report.Report, n report.Node) (NodeSummary, bool) { if renderer, ok := renderers[n.Topology]; ok {