mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 18:20:27 +00:00
Use a special kind of selector renderer to elide replica sets from pod nodes and directly reference deployment parents instead. Do the inverse (replace replica sets with pods) during the mapping from pod to deployment. Note we can no longer use renderParents since we're using a non-standard Selector
39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
package render
|
|
|
|
import (
|
|
"github.com/weaveworks/scope/report"
|
|
)
|
|
|
|
// TopologySelector selects a single topology from a report.
|
|
// NB it is also a Renderer!
|
|
type TopologySelector string
|
|
|
|
// Render implements Renderer
|
|
func (t TopologySelector) Render(r report.Report, _ Decorator) report.Nodes {
|
|
topology, _ := r.Topology(string(t))
|
|
return topology.Nodes
|
|
}
|
|
|
|
// Stats implements Renderer
|
|
func (t TopologySelector) Stats(r report.Report, _ Decorator) Stats {
|
|
return Stats{}
|
|
}
|
|
|
|
// The topology selectors implement a Renderer which fetch the nodes from the
|
|
// various report topologies.
|
|
var (
|
|
SelectEndpoint = TopologySelector(report.Endpoint)
|
|
SelectProcess = TopologySelector(report.Process)
|
|
SelectContainer = TopologySelector(report.Container)
|
|
SelectContainerImage = TopologySelector(report.ContainerImage)
|
|
SelectHost = TopologySelector(report.Host)
|
|
SelectPod = TopologySelector(report.Pod)
|
|
SelectService = TopologySelector(report.Service)
|
|
SelectDeployment = TopologySelector(report.Deployment)
|
|
SelectDaemonSet = TopologySelector(report.DaemonSet)
|
|
SelectECSTask = TopologySelector(report.ECSTask)
|
|
SelectECSService = TopologySelector(report.ECSService)
|
|
SelectSwarmService = TopologySelector(report.SwarmService)
|
|
SelectOverlay = TopologySelector(report.Overlay)
|
|
)
|