Merge pull request #976 from weaveworks/955-weave-tagger-crash

Fix weave tagger crash
This commit is contained in:
Alfonso Acosta
2016-02-18 16:54:07 +00:00
2 changed files with 16 additions and 7 deletions

View File

@@ -1,8 +1,10 @@
package kubernetes
import (
"github.com/weaveworks/scope/report"
"k8s.io/kubernetes/pkg/labels"
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/report"
)
// Reporter generate Reports containing Container and ContainerImage topologies
@@ -66,11 +68,12 @@ func (r *Reporter) podTopology(services []Service) (report.Topology, report.Topo
nodeID := report.MakePodNodeID(p.Namespace(), p.Name())
pods = pods.AddNode(nodeID, p.GetNode())
container := report.MakeNodeWith(map[string]string{
PodID: p.ID(),
Namespace: p.Namespace(),
}).WithParents(report.EmptySets.Add(report.Pod, report.MakeStringSet(nodeID)))
for _, containerID := range p.ContainerIDs() {
container := report.MakeNodeWith(map[string]string{
PodID: p.ID(),
Namespace: p.Namespace(),
docker.ContainerID: containerID,
}).WithParents(report.EmptySets.Add(report.Pod, report.MakeStringSet(nodeID)))
containers.AddNode(report.MakeContainerNodeID(containerID), container)
}
return nil

View File

@@ -134,9 +134,15 @@ func (w *Weave) Tag(r report.Report) (report.Report, error) {
}
// Put information from weave ps on the container nodes
const maxPrefixSize = 12
for id, node := range r.Container.Nodes {
prefix, _ := node.Latest.Lookup(docker.ContainerID)
prefix = prefix[:12]
prefix, ok := node.Latest.Lookup(docker.ContainerID)
if !ok {
continue
}
if len(prefix) > maxPrefixSize {
prefix = prefix[:maxPrefixSize]
}
entry, ok := w.psCache[prefix]
if !ok {
continue