diff --git a/render/topologies.go b/render/topologies.go index 92c87029d..4c88c241b 100644 --- a/render/topologies.go +++ b/render/topologies.go @@ -140,7 +140,7 @@ func (r containerWithImageNameRenderer) Render(rpt report.Report) RenderableNode continue } c.Rank = ImageNameWithoutVersion(image.LabelMajor) - c.Latest = c.Latest.Merge(c.Latest) + c.Latest = image.Latest.Merge(c.Latest) containers[id] = c } diff --git a/render/topologies_test.go b/render/topologies_test.go index 7c01b0ec3..63ce03859 100644 --- a/render/topologies_test.go +++ b/render/topologies_test.go @@ -51,6 +51,20 @@ func TestContainerFilterRenderer(t *testing.T) { } } +func TestContainerFilterRendererImageName(t *testing.T) { + // Test nodes are filtered by image name as well. + input := fixture.Report.Copy() + input.ContainerImage.Nodes[fixture.ClientContainerImageNodeID] = input.ContainerImage.Nodes[fixture.ClientContainerImageNodeID].WithLatests(map[string]string{ + docker.ImageName: "beta.gcr.io/google_containers/pause", + }) + have := render.FilterSystem(render.ContainerWithImageNameRenderer).Render(input).Prune() + want := expected.RenderedContainers.Copy() + delete(want, expected.ClientContainerRenderedID) + if !reflect.DeepEqual(want, have) { + t.Error(test.Diff(want, have)) + } +} + func TestContainerImageRenderer(t *testing.T) { have := render.ContainerImageRenderer.Render(fixture.Report).Prune() want := expected.RenderedContainerImages