diff --git a/ipam/testutils_test.go b/ipam/testutils_test.go index 60392403..f817c1ea 100644 --- a/ipam/testutils_test.go +++ b/ipam/testutils_test.go @@ -49,7 +49,7 @@ func (m *mockGossipComms) String() string { // that the contents of messages are never re-ordered. Which, for instance, // requires they are not based off iterating through a map. -func (m *mockGossipComms) GossipBroadcast(update mesh.GossipData) error { +func (m *mockGossipComms) GossipBroadcast(update mesh.GossipData) { m.Lock() defer m.Unlock() buf := []byte{} @@ -63,7 +63,6 @@ func (m *mockGossipComms) GossipBroadcast(update mesh.GossipData) error { // Swallow this message m.messages = m.messages[1:] } - return nil } func equalByteBuffer(a, b []byte) bool { diff --git a/nameserver/http.go b/nameserver/http.go index 5cd70f5a..ece2b6c2 100644 --- a/nameserver/http.go +++ b/nameserver/http.go @@ -40,16 +40,11 @@ func (n *Nameserver) HandleHTTP(router *mux.Router, dockerCli *docker.Client) { return } - if err := n.AddEntry(hostname, container, n.ourName, ip); err != nil { - n.badRequest(w, fmt.Errorf("Unable to add entry: %v", err)) - return - } + n.AddEntry(hostname, container, n.ourName, ip) if r.FormValue("check-alive") == "true" && dockerCli != nil && dockerCli.IsContainerNotRunning(container) { n.infof("container '%s' is not running: removing", container) - if err := n.Delete(hostname, container, ipStr, ip); err != nil { - n.infof("failed to remove: %v", err) - } + n.Delete(hostname, container, ipStr, ip) } w.WriteHeader(204) @@ -79,10 +74,7 @@ func (n *Nameserver) HandleHTTP(router *mux.Router, dockerCli *docker.Client) { ipStr = "*" } - if err := n.Delete(hostname, container, ipStr, ip); err != nil { - n.badRequest(w, fmt.Errorf("Unable to delete entries: %v", err)) - return - } + n.Delete(hostname, container, ipStr, ip) w.WriteHeader(204) } router.Methods("DELETE").Path("/name/{container}/{ip}").HandlerFunc(deleteHandler) diff --git a/nameserver/nameserver.go b/nameserver/nameserver.go index 4febe154..e50748d8 100644 --- a/nameserver/nameserver.go +++ b/nameserver/nameserver.go @@ -73,22 +73,22 @@ func (n *Nameserver) Stop() { n.quit <- struct{}{} } -func (n *Nameserver) broadcastEntries(es ...Entry) error { +func (n *Nameserver) broadcastEntries(es ...Entry) { if n.gossip == nil || len(es) == 0 { - return nil + return } - return n.gossip.GossipBroadcast(&GossipData{ + n.gossip.GossipBroadcast(&GossipData{ Entries: Entries(es), Timestamp: now(), }) } -func (n *Nameserver) AddEntry(hostname, containerid string, origin mesh.PeerName, addr address.Address) error { +func (n *Nameserver) AddEntry(hostname, containerid string, origin mesh.PeerName, addr address.Address) { n.infof("adding entry %s -> %s", hostname, addr.String()) n.Lock() entry := n.entries.add(hostname, containerid, origin, addr) n.Unlock() - return n.broadcastEntries(entry) + n.broadcastEntries(entry) } func (n *Nameserver) Lookup(hostname string) []address.Address { @@ -134,9 +134,7 @@ func (n *Nameserver) ContainerDied(ident string) { return false }) n.Unlock() - if err := n.broadcastEntries(entries...); err != nil { - n.errorf("failed to broadcast container %s death: %v", ident, err) - } + n.broadcastEntries(entries...) } func (n *Nameserver) PeerGone(peer mesh.PeerName) { @@ -148,7 +146,7 @@ func (n *Nameserver) PeerGone(peer mesh.PeerName) { }) } -func (n *Nameserver) Delete(hostname, containerid, ipStr string, ip address.Address) error { +func (n *Nameserver) Delete(hostname, containerid, ipStr string, ip address.Address) { n.Lock() n.infof("tombstoning hostname=%s, container=%s, ip=%s", hostname, containerid, ipStr) entries := n.entries.tombstone(n.ourName, func(e *Entry) bool { @@ -168,7 +166,7 @@ func (n *Nameserver) Delete(hostname, containerid, ipStr string, ip address.Addr return true }) n.Unlock() - return n.broadcastEntries(entries...) + n.broadcastEntries(entries...) } func (n *Nameserver) deleteTombstones() { diff --git a/nameserver/nameserver_test.go b/nameserver/nameserver_test.go index c283cff7..ce409443 100644 --- a/nameserver/nameserver_test.go +++ b/nameserver/nameserver_test.go @@ -117,7 +117,7 @@ func TestNameservers(t *testing.T) { mapping := mapping{hostname, []pair{{nameserver.ourName, addr}}} mappings = append(mappings, mapping) - require.Nil(t, nameserver.AddEntry(hostname, "", nameserver.ourName, addr)) + nameserver.AddEntry(hostname, "", nameserver.ourName, addr) check(nameserver, mapping) } @@ -132,7 +132,7 @@ func TestNameservers(t *testing.T) { mapping.addrs = append(mapping.addrs, pair{nameserver.ourName, addr}) mappings[i] = mapping - require.Nil(t, nameserver.AddEntry(mapping.hostname, "", nameserver.ourName, addr)) + nameserver.AddEntry(mapping.hostname, "", nameserver.ourName, addr) check(nameserver, mapping) } @@ -157,7 +157,7 @@ func TestNameservers(t *testing.T) { mappings[i] = mapping nameserver := nameserversByName[pair.origin] - require.Nil(t, nameserver.Delete(mapping.hostname, "*", pair.addr.String(), pair.addr)) + nameserver.Delete(mapping.hostname, "*", pair.addr.String(), pair.addr) check(nameserver, mapping) } @@ -223,15 +223,13 @@ func TestContainerAndPeerDeath(t *testing.T) { require.Nil(t, err) nameserver := makeNameserver(peername) - err = nameserver.AddEntry("hostname", "containerid", peername, address.Address(0)) - require.Nil(t, err) + nameserver.AddEntry("hostname", "containerid", peername, address.Address(0)) require.Equal(t, []address.Address{0}, nameserver.Lookup("hostname")) nameserver.ContainerDied("containerid") require.Equal(t, []address.Address{}, nameserver.Lookup("hostname")) - err = nameserver.AddEntry("hostname", "containerid", peername, address.Address(0)) - require.Nil(t, err) + nameserver.AddEntry("hostname", "containerid", peername, address.Address(0)) require.Equal(t, []address.Address{0}, nameserver.Lookup("hostname")) nameserver.PeerGone(peername) @@ -247,15 +245,13 @@ func TestTombstoneDeletion(t *testing.T) { require.Nil(t, err) nameserver := makeNameserver(peername) - err = nameserver.AddEntry("hostname", "containerid", peername, address.Address(0)) - require.Nil(t, err) + nameserver.AddEntry("hostname", "containerid", peername, address.Address(0)) require.Equal(t, []address.Address{0}, nameserver.Lookup("hostname")) nameserver.deleteTombstones() require.Equal(t, []address.Address{0}, nameserver.Lookup("hostname")) - err = nameserver.Delete("hostname", "containerid", "", address.Address(0)) - require.Nil(t, err) + nameserver.Delete("hostname", "containerid", "", address.Address(0)) require.Equal(t, []address.Address{}, nameserver.Lookup("hostname")) require.Equal(t, l(Entries{Entry{ ContainerID: "containerid", diff --git a/testing/gossip/mocks.go b/testing/gossip/mocks.go index c3084adc..124afe30 100644 --- a/testing/gossip/mocks.go +++ b/testing/gossip/mocks.go @@ -46,7 +46,7 @@ func (grouter *TestRouter) Stop() { } } -func (grouter *TestRouter) gossipBroadcast(sender mesh.PeerName, update mesh.GossipData) error { +func (grouter *TestRouter) gossipBroadcast(sender mesh.PeerName, update mesh.GossipData) { for _, gossipChan := range grouter.gossipChans { select { case gossipChan <- broadcastMessage{sender: sender, data: update}: @@ -54,7 +54,6 @@ func (grouter *TestRouter) gossipBroadcast(sender mesh.PeerName, update mesh.Gos common.Log.Errorf("Dropping message") } } - return nil } func (grouter *TestRouter) gossip(sender mesh.PeerName, update mesh.GossipData) error { @@ -174,6 +173,6 @@ func (client TestRouterClient) GossipUnicast(dstPeerName mesh.PeerName, buf []by return nil } -func (client TestRouterClient) GossipBroadcast(update mesh.GossipData) error { - return client.router.gossipBroadcast(client.sender, update) +func (client TestRouterClient) GossipBroadcast(update mesh.GossipData) { + client.router.gossipBroadcast(client.sender, update) } diff --git a/vendor/github.com/weaveworks/mesh b/vendor/github.com/weaveworks/mesh index 31a1ea3a..e23da82f 160000 --- a/vendor/github.com/weaveworks/mesh +++ b/vendor/github.com/weaveworks/mesh @@ -1 +1 @@ -Subproject commit 31a1ea3afca85af0fd98026f2168ee4b709a33be +Subproject commit e23da82f319954cc0e146699b519f9aa0edc5b94