Files
weave-scope/render/selectors.go
2017-07-18 11:35:50 -07:00

41 lines
1.4 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)
SelectStatefulSet = TopologySelector(report.StatefulSet)
SelectCronJob = TopologySelector(report.CronJob)
SelectECSTask = TopologySelector(report.ECSTask)
SelectECSService = TopologySelector(report.ECSService)
SelectSwarmService = TopologySelector(report.SwarmService)
SelectOverlay = TopologySelector(report.Overlay)
)