Filter out docker overlay peers

This commit is contained in:
Alfonso Acosta
2016-10-24 17:37:53 +00:00
parent 8e4dfd7987
commit e80a01aab9
6 changed files with 49 additions and 22 deletions
+5 -7
View File
@@ -13,11 +13,10 @@ import (
// Keys for use in Node
const (
ImageID = "docker_image_id"
ImageName = "docker_image_name"
ImageLabelPrefix = "docker_image_label_"
OverlayPeerPrefix = "docker_peer_"
IsInHostNetwork = "docker_is_in_host_network"
ImageID = "docker_image_id"
ImageName = "docker_image_name"
ImageLabelPrefix = "docker_image_label_"
IsInHostNetwork = "docker_is_in_host_network"
)
// Exposed for testing
@@ -261,10 +260,9 @@ func (r *Reporter) overlayTopology() report.Topology {
}
})
peerID := OverlayPeerPrefix + r.hostID
// Add both local and global networks to the LocalNetworks Set
// since we treat container IPs as local
node := report.MakeNode(report.MakeOverlayNodeID(peerID)).WithSets(
node := report.MakeNode(report.MakeOverlayNodeID(report.DockerOverlayPeerPrefix, r.hostID)).WithSets(
report.MakeSets().Add(host.LocalNetworks, report.MakeStringSet(subnets...)))
return report.MakeTopology().AddNode(node)
}
+1 -2
View File
@@ -134,8 +134,7 @@ func TestReporter(t *testing.T) {
// Reporter should add a container network
{
peerID := docker.OverlayPeerPrefix + hostID
overlayNodeID := report.MakeOverlayNodeID(peerID)
overlayNodeID := report.MakeOverlayNodeID(report.DockerOverlayPeerPrefix, hostID)
node, ok := rpt.Overlay.Nodes[overlayNodeID]
if !ok {
t.Fatalf("Expected report to have overlay node %q, but not found", overlayNodeID)
+7 -6
View File
@@ -164,24 +164,25 @@ func (w *Weave) Report() (report.Report, error) {
WeaveDNSHostname: {ID: WeaveDNSHostname, Label: "Weave DNS Name", From: report.FromLatest, Priority: 18},
})
for _, peer := range w.statusCache.Router.Peers {
node := report.MakeNodeWith(report.MakeOverlayNodeID(peer.Name), map[string]string{
WeavePeerName: peer.Name,
WeavePeerNickName: peer.NickName,
})
node := report.MakeNodeWith(report.MakeOverlayNodeID(report.WeaveOverlayPeerPrefix, peer.Name),
map[string]string{
WeavePeerName: peer.Name,
WeavePeerNickName: peer.NickName,
})
if peer.Name == w.statusCache.Router.Name {
node = node.WithLatest(report.HostNodeID, mtime.Now(), w.hostID)
node = node.WithParents(report.EmptySets.Add(report.Host, report.MakeStringSet(w.hostID)))
}
for _, conn := range peer.Connections {
if conn.Outbound {
node = node.WithAdjacent(report.MakeOverlayNodeID(conn.Name))
node = node.WithAdjacent(report.MakeOverlayNodeID(report.WeaveOverlayPeerPrefix, conn.Name))
}
}
r.Overlay.AddNode(node)
}
if w.statusCache.IPAM.DefaultSubnet != "" {
r.Overlay.AddNode(
report.MakeNode(report.MakeOverlayNodeID(w.statusCache.Router.Name)).WithSets(
report.MakeNode(report.MakeOverlayNodeID(report.WeaveOverlayPeerPrefix, w.statusCache.Router.Name)).WithSets(
report.MakeSets().Add(host.LocalNetworks, report.MakeStringSet(w.statusCache.IPAM.DefaultSubnet)),
),
)
+1 -1
View File
@@ -35,7 +35,7 @@ func TestWeaveTaggerOverlayTopology(t *testing.T) {
t.Fatal(err)
}
nodeID := report.MakeOverlayNodeID(weave.MockWeavePeerName)
nodeID := report.MakeOverlayNodeID(report.WeaveOverlayPeerPrefix, weave.MockWeavePeerName)
node, ok := have.Overlay.Nodes[nodeID]
if !ok {
t.Errorf("Expected overlay node %q, but not found", nodeID)