// Report generates a Report containing Container and ContainerImage topologies func (r *Reporter) Report() (report.Report, error) { localAddrs, err := report.LocalAddresses() if err != nil { return report.MakeReport(), nil } result := report.MakeReport() result.Container = result.Container.Merge(r.containerTopology(localAddrs)) result.ContainerImage = result.ContainerImage.Merge(r.containerImageTopology()) return result, nil }
// ContainerUpdated should be called whenever a container is updated. func (r *Reporter) ContainerUpdated(c Container) { localAddrs, err := report.LocalAddresses() if err != nil { log.Errorf("Error getting local address: %v", err) return } // Publish a 'short cut' report container just this container rpt := report.MakeReport() rpt.Shortcut = true rpt.Container.AddNode(report.MakeContainerNodeID(c.ID()), c.GetNode(r.hostID, localAddrs)) r.probe.Publish(rpt) }