mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-27 01:01:44 +00:00
Squash of: - use detailed.Summaries to render topology nodes - ban merging nodes of different topologies (they should be mapped) - need to prune parents when mapping node types - render container images by id if they have no name - remove separate render ids and prune parents in NewDerived* - don't render metrics/metadata for groups of nodes - fixing up tests - removing pending unit tests (for mapping.go, for now) - updating experimental dir for RenderableNode removal
36 lines
931 B
Go
36 lines
931 B
Go
package detailed
|
|
|
|
import (
|
|
"sort"
|
|
|
|
"github.com/weaveworks/scope/probe/docker"
|
|
"github.com/weaveworks/scope/report"
|
|
)
|
|
|
|
// NodeDockerLabels produces a table (to be consumed directly by the UI) based
|
|
// on an origin ID, which is (optimistically) a node ID in one of our
|
|
// topologies.
|
|
func NodeDockerLabels(nmd report.Node) []MetadataRow {
|
|
if _, ok := nmd.Counters.Lookup(nmd.Topology); ok {
|
|
// This is a group of nodes, so no docker labels!
|
|
return nil
|
|
}
|
|
|
|
if nmd.Topology != report.Container && nmd.Topology != report.ContainerImage {
|
|
return nil
|
|
}
|
|
|
|
var rows []MetadataRow
|
|
// Add labels in alphabetical order
|
|
labels := docker.ExtractLabels(nmd)
|
|
labelKeys := make([]string, 0, len(labels))
|
|
for k := range labels {
|
|
labelKeys = append(labelKeys, k)
|
|
}
|
|
sort.Strings(labelKeys)
|
|
for _, labelKey := range labelKeys {
|
|
rows = append(rows, MetadataRow{ID: "label_" + labelKey, Value: labels[labelKey]})
|
|
}
|
|
return rows
|
|
}
|