Revert "fast network membership check"

This reverts commit 98f036359b.
This commit is contained in:
Matthias Radestock
2017-06-20 20:51:27 +01:00
parent 4a54b75419
commit 9e75331e9a
10 changed files with 55 additions and 747 deletions
+4 -2
View File
@@ -2,6 +2,7 @@ package render_test
import (
"fmt"
"net"
"testing"
"github.com/weaveworks/common/test"
@@ -45,10 +46,11 @@ type testcase struct {
}
func testMap(t *testing.T, f render.MapFunc, input testcase) {
localNetworks := report.NewNetworks()
if err := localNetworks.AddCIDR("1.2.3.0/16"); err != nil {
_, ipNet, err := net.ParseCIDR("1.2.3.0/16")
if err != nil {
t.Fatalf(err.Error())
}
localNetworks := report.Networks([]*net.IPNet{ipNet})
if have := f(input.n, localNetworks); input.ok != (len(have) > 0) {
name := input.name
if name == "" {
+15 -3
View File
@@ -1,6 +1,7 @@
package render
import (
"net"
"regexp"
"strings"
@@ -67,15 +68,26 @@ func isKnownService(hostname string) bool {
// used to determine which nodes in the report are "remote", i.e. outside of
// our infrastructure.
func LocalNetworks(r report.Report) report.Networks {
networks := report.NewNetworks()
var (
result = report.Networks{}
networks = map[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 {
networks.AddCIDR(s)
_, ipNet, err := net.ParseCIDR(s)
if err != nil {
continue
}
_, ok := networks[ipNet.String()]
if !ok {
result = append(result, ipNet)
networks[ipNet.String()] = struct{}{}
}
}
}
}
return networks
return result
}
+14 -6
View File
@@ -1,6 +1,7 @@
package render_test
import (
"net"
"reflect"
"testing"
@@ -29,14 +30,21 @@ func TestReportLocalNetworks(t *testing.T) {
},
},
})
want := report.NewNetworks()
for _, cidr := range []string{"10.0.0.1/8", "192.168.1.1/24", "10.32.0.1/12"} {
if err := want.AddCIDR(cidr); err != nil {
panic(err)
}
}
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) {
t.Errorf("%s", test.Diff(want, have))
}
}
func mustParseCIDR(s string) *net.IPNet {
_, ipNet, err := net.ParseCIDR(s)
if err != nil {
panic(err)
}
return ipNet
}