Commit Graph
6694 Commits
Author SHA1 Message Date
Matthias Radestock 3ba5a5024e refactor: Peer no longer needs Router
Hooray!
2014-12-25 13:05:22 +00:00
Matthias Radestock 465915d7d4 refactor: split out LocalPeer
This has been a source of confusion for a long time.
2014-12-25 12:57:45 +00:00
Matthias Radestock 059360416a gofmt 2014-12-25 11:27:42 +00:00
rade c367914984 Merge pull request #299 from viirya/fix_doc_link
Minor fix of document link
2014-12-25 08:49:20 +00:00
Liang-Chi Hsieh d557f2ff31 Fix document link. 2014-12-25 16:25:19 +08:00
Matthias Radestock da8e9fd0eb refactor: further reduce dependency on router 2014-12-24 20:43:35 +00:00
Matthias Radestock 2d4baa8dba refactor: reduce dependency on peer.Router
now the only code depending on it is Peer itself
2014-12-24 20:12:48 +00:00
Matthias Radestock 945a5cf7fe refactor: reduce dependencies of ConnectionMaker
it doesn't need to know about Router, just Ourself and Peers
2014-12-24 19:53:11 +00:00
Matthias Radestock 71cd83bf20 refactor: move ConnectionMaker and related types 2014-12-24 19:46:12 +00:00
Matthias Radestock 03b338a252 remove cruft 2014-12-24 19:42:49 +00:00
Matthias Radestock b3be24248e refactor: narrow dependencies of Routes
it doesn't need to know about the Router, just Ourself and Peers.
2014-12-24 19:40:18 +00:00
Matthias Radestock 2b2f47c031 refactor: rename PeerCache to Peers
It was never much of a cache, and that aspect of it is certainly not
its defining characteristic.
2014-12-24 19:23:43 +00:00
Matthias Radestock e8f836ad85 refactor: rename 'Topology' to 'Routes'
Since that is what it is. By contrast, when the docs talk about
topology they actually refer to the peer connectivity graph.
2014-12-24 19:12:01 +00:00
Matthias Radestock fc1ec6ada2 refactor: go straight to PeerCache for fetching topology
There is no need to go via Topology. Fetching does not access or
modify the Topology state, and none of the functions on Topology
update the PeerCache. So there is no point serialising the fetching
with RebuildRoutes (or anything else).

This does mean the connections' receiveTCP goroutines will take a
direct lock on PeerCache, but a) it is only a read lock, and b) they
already take a write lock in another code path.

There may be some extra load on the PeerCache as a result of this
change, due to the topology fetching of multiple connections no longer
being funneled through the single Topology goroutine. Consequently,
write locks on the PeerCache may take a little longer to
acquire. Until we encounter this as a genuine problem though it's
better to stick with the simpler code.
2014-12-24 18:34:59 +00:00
Matthias Radestock aa5fc62184 remove cruft 2014-12-24 16:06:31 +00:00
Bryan Boreham 47f4933c92 Merge pull request #295 from rade/eliminate_heartbeater
LGTM.  Fixes #294
2014-12-24 13:41:03 +00:00
Matthias Radestock 1c5d720db4 simplify some more 2014-12-24 13:38:17 +00:00
Matthias Radestock fecbf220cc simplify 2014-12-24 13:35:51 +00:00
Matthias Radestock 9cd652ef0b refactor: introduce small helper 2014-12-24 13:29:13 +00:00
Michael Bridgen f842b22eb8 Do better with checking the changelog
Before, this could fail without a message if there was a changelog but
no matching line.

Also change the changelog format
      == Release v0.0.1
to
      == Release 0.0.1
2014-12-24 12:44:19 +00:00
Michael Bridgen 8b783af832 Quote all echoings and be consistent about the message prefix 2014-12-24 12:04:53 +00:00
Michael Bridgen 0a14eb58b2 Don't hardwire executable names; use logical names instead
We could use `os.Args[0]` instead of hardwired names, but that ends up
being e.g. `/home/weave/weaver`. So, use logical names instead.
2014-12-24 11:52:50 +00:00
Michael Bridgen b0b7649c8e Switch to proper github and dockerhub repo 2014-12-24 11:04:52 +00:00
Michael Bridgen b014d98c78 Put versions in the script and weavedns too, and report them
sudo weave version
2014-12-24 11:04:52 +00:00
Michael Bridgen 0348767d73 prepare -> build to better avoid mistakes 2014-12-24 11:04:52 +00:00
Michael Bridgen ef82e81c3f Push tagged images to docker 2014-12-24 11:04:52 +00:00
Michael Bridgen 801ca43fbf Better (working) way of checking for a release 2014-12-24 11:04:52 +00:00
Michael Bridgen ab4aa21cca Up to the point of making a git release
(under my own account for the minute)
2014-12-24 11:04:52 +00:00
Michael Bridgen ccf7e9993a Add version reporting to weaver 2014-12-24 11:04:51 +00:00
Michael Bridgen bfc9df4d25 Skeleton of a release script 2014-12-24 11:04:51 +00:00
Matthias Radestock 99c1163862 fmt 2014-12-24 10:54:38 +00:00
Matthias Radestock 108e468ada Merge branch 'master' into eliminate_heartbeater
Conflicts:
	router/connection.go
2014-12-24 10:48:39 +00:00
Matthias Radestock 5ccc753367 kill stale connections
The weave protocol already effectively performs heartbeating -
FetchAll is performed at regular intervals. Hence we can detect stale
connections by the lack of receiving any data for approximately that
interval (we use x2).

We use the same interval to set a time limit on the handshake too, and
any subsequent interactions prior to the connection being fully
established.

Fixes #272.
2014-12-24 10:33:37 +00:00
Matthias Radestock 3c50909a49 nodelay is the default, according to the docs 2014-12-24 09:09:00 +00:00
Matthias Radestock e850127ed4 git rid of heartbeater goroutine
...by moving the logic into the connection actor goroutine.

The heartbeater goroutine was doing a lot more than just heartbeating;
namely it also had tickers for triggering a ProtocolFetchAll and
initiating a fragmentation test. Furhermore, ensureHeartbeats also
spawned the forwarders.

So this was quite a mix of functionality, and, furthermore, most of it
related quite closely to the connection actor. So moving the
functionality into that simplifies the code.

In the process we also fix #294.
2014-12-23 22:01:03 +00:00
Matthias Radestock ad67dc5d07 don't swallow error
Since sometimes the error is different from what we expect.
2014-12-23 19:50:08 +00:00
Matthias Radestock 34db7044e4 cosmetic 2014-12-23 17:49:16 +00:00
rade e5699fcfcb Merge pull request #292 from errordeveloper/fix_282
Simplify docker version sed expression

Fixes #282.
2014-12-23 17:00:10 +00:00
Ilya Dmitrichenko c61ed4010a Simplify docker version sed expression (close #282) 2014-12-23 16:24:10 +00:00
Matthias Radestock d0846961e3 cosmetic(ish): consistently use $(...) instead of ... 2014-12-23 14:52:15 +00:00
rade ccabdc421a Merge pull request #290 from bboreham/master
Quote $@ everywhere, to guard against spaces, globbing, etc.
2014-12-23 14:50:28 +00:00
Bryan Boreham 5bb80c7126 Quote $@ everywhere, to guard against spaces, globbing, etc. 2014-12-23 14:42:48 +00:00
Matthias Radestock 15a5e38e8b cosmetic 2014-12-23 12:59:54 +00:00
Matthias Radestock af3d2c7e7f cosmetic: break overlong lines 2014-12-23 12:27:13 +00:00
Matthias Radestock d54cc53864 install docker-ns in test VMs
handy for debugging
2014-12-23 12:14:33 +00:00
Ilya Dmitrichenko 73a8f32532 Merge pull request #288 from viirya/if_param
Assign iface parameter from defined variable
2014-12-23 12:10:53 +00:00
Liang-Chi Hsieh f5afe3b203 Merge remote-tracking branch 'upstream/master' into if_param
Conflicts:
	weave
	weaver/Dockerfile
2014-12-22 20:58:20 +08:00
Bryan Boreham affb9aef42 Merge pull request #283 from rade/275_do_not_log_password
Closes #275
2014-12-22 11:31:16 +00:00
Matthias Radestock 7ccb9e36d9 update Dockerfile MAINTAINER
and also use what appears to be (based on some sampling of the docker
registry) the correct convention for specifying the email address.

Also ditch superfluous CMD instruction in weaver.
2014-12-22 11:11:00 +00:00
Bryan Boreham 887f2adbc1 Merge pull request #284 from rade/276_alternative_password_supply
LGTM.  Closes #276
2014-12-22 11:03:28 +00:00