Add local_networks to weave Overlay nodes, so we can track weave without an exposed weave ip (#1313)

This commit is contained in:
Paul Bellamy
2016-04-15 16:23:15 +01:00
committed by Tom Wilkie
parent 6ba281aabd
commit 7090855f9e
6 changed files with 54 additions and 18 deletions

View File

@@ -17,17 +17,19 @@ func LocalNetworks(r report.Report) report.Networks {
networks = map[string]struct{}{}
)
for _, md := range r.Host.Nodes {
nets, _ := md.Sets.Lookup(host.LocalNetworks)
for _, s := range nets {
_, ipNet, err := net.ParseCIDR(s)
if err != nil {
continue
}
_, ok := networks[ipNet.String()]
if !ok {
result = append(result, ipNet)
networks[ipNet.String()] = struct{}{}
for _, topology := range []report.Topology{r.Host, r.Overlay} {
for _, md := range topology.Nodes {
nets, _ := md.Sets.Lookup(host.LocalNetworks)
for _, s := range nets {
_, ipNet, err := net.ParseCIDR(s)
if err != nil {
continue
}
_, ok := networks[ipNet.String()]
if !ok {
result = append(result, ipNet)
networks[ipNet.String()] = struct{}{}
}
}
}
}

View File

@@ -22,10 +22,18 @@ func TestReportLocalNetworks(t *testing.T) {
),
},
},
Overlay: report.Topology{
Nodes: report.Nodes{
"router": report.MakeNode().WithSets(report.EmptySets.
Add(host.LocalNetworks, report.MakeStringSet("10.32.0.1/12")),
),
},
},
})
want := report.Networks([]*net.IPNet{
mustParseCIDR("10.0.0.1/8"),
mustParseCIDR("192.168.1.1/24"),
mustParseCIDR("10.32.0.1/12"),
})
have := render.LocalNetworks(r)
if !reflect.DeepEqual(want, have) {