Use Node.Sets for Host Local Networks.

This commit is contained in:
Tom Wilkie
2015-10-27 14:35:07 +00:00
parent 6e9ad995b0
commit ec4425fb80
7 changed files with 20 additions and 18 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ func getOriginHost(t report.Topology, nodeID string) (OriginHost, bool) {
return OriginHost{
Hostname: h.Metadata[host.HostName],
OS: h.Metadata[host.OS],
Networks: strings.Split(h.Metadata[host.LocalNetworks], " "),
Networks: h.Sets[host.LocalNetworks],
Load: h.Metadata[host.Load],
}, true
}
+2 -2
View File
@@ -2,7 +2,6 @@ package host
import (
"runtime"
"strings"
"time"
"github.com/weaveworks/scope/report"
@@ -71,11 +70,12 @@ func (r *Reporter) Report() (report.Report, error) {
rep.Host.AddNode(report.MakeHostNodeID(r.hostID), report.MakeNodeWith(map[string]string{
Timestamp: Now(),
HostName: r.hostName,
LocalNetworks: strings.Join(localCIDRs, " "),
OS: runtime.GOOS,
Load: GetLoad(),
KernelVersion: kernel,
Uptime: uptime.String(),
}).WithSets(report.Sets{
LocalNetworks: report.MakeStringSet(localCIDRs...),
}))
return rep, nil
+2 -1
View File
@@ -48,11 +48,12 @@ func TestReporter(t *testing.T) {
want.Host.AddNode(report.MakeHostNodeID(hostID), report.MakeNodeWith(map[string]string{
host.Timestamp: now,
host.HostName: hostname,
host.LocalNetworks: network,
host.OS: runtime.GOOS,
host.Load: load,
host.Uptime: uptime,
host.KernelVersion: kernel,
}).WithSets(report.Sets{
host.LocalNetworks: report.MakeStringSet(network),
}))
have, _ := host.NewReporter(hostID, hostname, localNets).Report()
if !reflect.DeepEqual(want, have) {
+6 -4
View File
@@ -7,6 +7,7 @@ import (
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/endpoint"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/render"
"github.com/weaveworks/scope/report"
"github.com/weaveworks/scope/test"
@@ -48,9 +49,9 @@ var (
Container: report.Topology{
Nodes: report.Nodes{
containerNodeID: report.MakeNode().WithMetadata(map[string]string{
docker.ContainerID: containerID,
docker.ContainerName: containerName,
report.HostNodeID: serverHostNodeID,
docker.ContainerID: containerID,
docker.ContainerName: containerName,
report.HostNodeID: serverHostNodeID,
}).WithSets(report.Sets{
docker.ContainerIPs: report.MakeStringSet(containerIP),
docker.ContainerPorts: report.MakeStringSet(fmt.Sprintf("%s:%s->%s/tcp", serverIP, serverPort, serverPort)),
@@ -60,8 +61,9 @@ var (
Host: report.Topology{
Nodes: report.Nodes{
serverHostNodeID: report.MakeNodeWith(map[string]string{
"local_networks": "192.168.0.0/16",
report.HostNodeID: serverHostNodeID,
}).WithSets(report.Sets{
host.LocalNetworks: report.MakeStringSet("192.168.0.0/16"),
}),
},
},
+1 -6
View File
@@ -2,7 +2,6 @@ package render
import (
"net"
"strings"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/report"
@@ -19,11 +18,7 @@ func LocalNetworks(r report.Report) report.Networks {
)
for _, md := range r.Host.Nodes {
val, ok := md.Metadata[host.LocalNetworks]
if !ok {
continue
}
for _, s := range strings.Fields(val) {
for _, s := range md.Sets[host.LocalNetworks] {
_, ipNet, err := net.ParseCIDR(s)
if err != nil {
continue
+3 -2
View File
@@ -16,8 +16,9 @@ func TestReportLocalNetworks(t *testing.T) {
Host: report.Topology{
Nodes: report.Nodes{
"nonets": report.MakeNode(),
"foo": report.MakeNodeWith(map[string]string{
host.LocalNetworks: "10.0.0.1/8 192.168.1.1/24 10.0.0.1/8 badnet/33",
"foo": report.MakeNode().WithSets(report.Sets{
host.LocalNetworks: report.MakeStringSet(
"10.0.0.1/8", "192.168.1.1/24", "10.0.0.1/8", "badnet/33"),
}),
},
},
+5 -2
View File
@@ -5,6 +5,7 @@ import (
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/endpoint"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/probe/kubernetes"
"github.com/weaveworks/scope/probe/process"
"github.com/weaveworks/scope/render"
@@ -282,17 +283,19 @@ var (
Nodes: report.Nodes{
ClientHostNodeID: report.MakeNodeWith(map[string]string{
"host_name": ClientHostName,
"local_networks": "10.10.10.0/24",
"os": "Linux",
"load": "0.01 0.01 0.01",
report.HostNodeID: ClientHostNodeID,
}).WithSets(report.Sets{
host.LocalNetworks: report.MakeStringSet("10.10.10.0/24"),
}),
ServerHostNodeID: report.MakeNodeWith(map[string]string{
"host_name": ServerHostName,
"local_networks": "10.10.10.0/24",
"os": "Linux",
"load": "0.01 0.01 0.01",
report.HostNodeID: ServerHostNodeID,
}).WithSets(report.Sets{
host.LocalNetworks: report.MakeStringSet("10.10.10.0/24"),
}),
},
},