Commit Graph

6982 Commits

Author SHA1 Message Date
meejah
a0fc80d544 Use "python -m allmydata.scripts.runner" instead of tahoe.exe
On windows, it seems that the generated tahoe.exe (which comes
via entry_points=) doesn't deal with signals nicely. I'm not
sure if this is a pip bug (or just "one of those Windows things")
but running with python -m allows us to kill our subprocesses.
2016-09-26 13:33:45 -07:00
meejah
a93e8d7bd0 fix create-introducer, create-node after master changes 2016-09-26 13:33:45 -07:00
Brian Warner
06cdc7e624 Merge PR352 (in rebased form)
closes tahoe-lafs/tahoe-lafs#352
2016-09-26 13:32:03 -07:00
David Stainton
4d30d698cf Minor correction to ipv6 + ipv4 configuration considerations 2016-09-26 13:31:18 -07:00
equim
f941db60ac Fix typos in garbage-collection.rst 2016-09-24 23:05:09 +01:00
Brian Warner
b7d561f458 appveyor: tox upstream moved repo to github
Once they make a new release (that includes the fix for a windows bug),
we can stop installing it from VCS, and it won't matter where the repo
lives.
2016-09-22 09:56:24 -07:00
Brian Warner
19f6f42811 Merge PR348 from david415:867.tub_multi_port_ipv6.0
closes tahoe-lafs/tahoe-lafs#348
2016-09-20 13:13:15 -07:00
Brian Warner
b00c2d21b7 test tub.port with multiple endpoints, add docs
I think the preferred way to listen on both IPv4 and IPv6 will be to use
"--port=tcp:PORT,tcp6:PORT". This is now reflected in the docs.

refs ticket:867
2016-09-20 13:04:06 -07:00
David Stainton
e6d7895865 Support comma separated endpoint list in tub.port
fixes ticket #867
2016-09-20 10:20:28 -07:00
Brian Warner
b537f470c9 Merge PR351 from str4d:2824-update-error-message 2016-09-20 10:15:29 -07:00
Brian Warner
b9b731e3e2 update test to match new output 2016-09-20 10:14:35 -07:00
str4d
e82e2c31e2 Update error message to match implementation and docs
Closes ticket:2824
2016-09-20 10:02:05 -07:00
Brian Warner
6d1b84829f Merge PR347 from david415:2830.clean_up_anonmity_docs.0
refs ticket:2830
closes tahoe-lafs/tahoe-lafs:347
2016-09-20 09:31:14 -07:00
David Stainton
ff9d3d8922 Reverse order of use-case list in anonymity config doc 2016-09-20 09:29:07 -07:00
Brian Warner
a638a97806 implement connections:tcp=disabled
This enables an I2P-only node, which disables TCP entirely (instead of
mapping TCP to Tor, which was the only other option that
reveal-IP-address=False would allow).

closes ticket:2824
2016-09-14 16:27:12 -07:00
Brian Warner
02ba2a05c3 implement --listen=none, use it for create-client
Improve docs on server configuration to explain --listen options.
2016-09-14 16:12:32 -07:00
Brian Warner
d69757e069 docs: more server/introducer setup text
running.rst: split out the server/introducer text, so someone who only
care about running a client doesn't need to read about hostnames or
--port/--location.

servers.rst: more background text on ports and locations, make section
names less storage-centric
2016-09-14 13:10:29 -07:00
Brian Warner
8a4dc213f9 Merge PR 344 from david415/2877.doc_cli_where_opts.0
closes tahoe-lafs/tahoe-lafs#344

refs ticket:2827
2016-09-14 12:46:02 -07:00
Brian Warner
460cc826fd update docs
* replace sample IPv4/IPv6 addresses with reserved ones from RFC-6890
* remove initial blank line: prevents github from rendering the .rst
* emphasize --hostname, then have --port/--location as a special-case
* list --port first (describe it "from the inside out"), then --location
* explain difference between --port and --location
* in endpoint strings, put interface= at end, to emphasize port
* add servers.rst to index.rst so it'll show up on readthedocs
* don't mention "partial-cone NAT": that's only relevant if/when we get
  real ICE-style NAT-hole-punching
2016-09-14 12:45:53 -07:00
David Stainton
f3fafa2270 Add server-side network considerations to servers.rst
This includes configuring servers to use IPv4, IPv6, IPv6 with
port forwarding firewall and suggesting the use of i2p/tor if
NAT penetration is needed: provided links to configuration and
anonymity-configuration
2016-09-14 10:58:45 -07:00
Brian Warner
aa162f5a90 close more filehandles with context managers 2016-09-13 22:17:22 -07:00
Brian Warner
3282f2aa8a Merge PR 343 from david415/2820.hide_ip_set_tcp_tor.0
Closes ticket:2820
2016-09-13 22:06:03 -07:00
Brian Warner
a8f02d6684 enhance tests 2016-09-13 22:05:48 -07:00
David Stainton
9943a268ce Make the create-node --hide-ip option set [connections]tcp=tor 2016-09-13 10:15:45 +00:00
Brian Warner
80acd565e2 docs: describe known linkability
closes ticket:2384
2016-09-13 02:14:39 -07:00
Brian Warner
a37b93ead9 create_node.py: refactor options 2016-09-13 01:14:48 -07:00
Brian Warner
2e3ec4109c document multiintroducer/introducerless config
refs ticket:68
2016-09-12 17:45:35 -07:00
Brian Warner
d802135db1 test introducerless config
refs ticket:68
2016-09-12 17:45:17 -07:00
Brian Warner
3b24e7e35e Merge PR 338 from david415/68.multi_intro.0
This enables the use of multiple introducers, via
NODEDIR/private/introducers.yaml . Still needs docs.

refs ticket:68
2016-09-12 17:31:16 -07:00
Brian Warner
4ae574cca0 test_multi_introducers: add more tests 2016-09-12 17:30:06 -07:00
David Stainton
4f717ba808 Add a multi-introducer implementation
this is based the previous work of warner, killyourtv and leif
 fixes ticket #68
2016-09-13 00:15:52 +00:00
Brian Warner
a8899c8fc3 Merge branch '2773-listen-port'
This adds several arguments to "tahoe create-node" and
create-introducer:

* --location=/--port=: always provided as a pair, directly set the
  listening port and the advertised location
* --hostname=: provides the node's hostname so it doesn't have to crawl
  the network interfaces for IP addresses, when listening on TCP
* --listen=: can only be "tcp" for now, but will soon be the way to
  enable automatic listener setup for Tor and I2P services

This is a rebased and cleaned-up version of #336, which fixes a bunch of
tests, and simplifies the argument validation slightly.

closes tahoe-lafs/tahoe-lafs#336
closes ticket:2773
2016-09-09 19:11:11 -07:00
Brian Warner
3b17289569 create_node: simplify validation, clean up tests 2016-09-09 18:53:22 -07:00
Brian Warner
229e306e9d test_runner: fix to use new conventions
create-node needs --hostname=, and we can't expect the node to write
client.port at startup (because tahoe.cfg now has tub.port= set
properly)
2016-09-09 18:53:22 -07:00
Brian Warner
38ebdfac20 create-node: reject --listen=tcp without --hostname= 2016-09-09 18:53:22 -07:00
Brian Warner
9a1a186197 simplify tests: use parse_cli, assertRaises, assertFailure
parse_cli() got added during the async-CLI-dispatch work

assertRaises/assertFailure have been in Twisted for a while, but I only
learned about them recently. Over time I'm looking forward to changing
all tahoe tests to use them (and getting rid of ShouldFailMixin/etc).
2016-09-09 18:52:01 -07:00
Brian Warner
7d3b4149ae remove leftover debug prints 2016-09-09 18:51:57 -07:00
Brian Warner
09ce7963c6 fixes 2016-09-09 17:29:20 -07:00
David Stainton
e9c1075ac5 Make corrections from Daira's code review 2016-09-09 17:29:16 -07:00
David Stainton
31dfee2dcd fix cli test create tests 2016-09-09 17:10:22 -07:00
David Stainton
83db7e8b43 Add create node args: listen, port, hostname, location
fixes ticket: 2773
2016-09-09 17:10:22 -07:00
Brian Warner
2a44a8e8cc setup.py: use python3-safe print() call 2016-09-09 17:09:42 -07:00
Brian Warner
3aac5aa577 'setup.py test' prints message about tox
closes ticket:2799
2016-09-09 16:43:58 -07:00
Brian Warner
ecc2080372 Merge branch '2826-async-dispatch' 2016-09-09 16:27:10 -07:00
Brian Warner
802cfc87fe CLI: allow dispatch functions to return Deferred
In addition, CLI functions are allowed to use sys.exit() instead of
always needing to return the exit code as an integer.

runner.py now knows about the blocking httplib calls in scripts/cli and
scripts/magic_folder, and uses deferToThread() to invoke them. Those
functions cannot return a Deferred: when rewrite them to use twisted.web
or treq, we'll remove this deferToThread call.

Option parsing was split out to a separate function for testing. We now
use twisted.internet.task.react() to start the reactor, which required
changing the way runner.py is tested.

closes ticket:2826
2016-09-09 15:52:42 -07:00
Brian Warner
97c29a3c0b test_runner: factor out parse_cli() helper 2016-09-09 15:41:00 -07:00
Brian Warner
7193bff48b tests: use shared run_cli()/do_cli()
A couple of test classes which defined their own flavors were changed to
use the common one.
2016-09-09 15:41:00 -07:00
Brian Warner
07e4c491f5 move run_cli() up to test/common_util.py 2016-09-09 15:40:01 -07:00
Brian Warner
442468f599 do_cli(): split out run_cli()
The main part of CLITestMixin.do_cli() was split into a standalone
function named run_cli(), leaving do_cli() as a method which includes a
nodedir in the arguments (for use by GridTestMixin tests which do a lot
of CLI operations against one of their client nodes, for which adding
the extra --nodedir argument would be ugly).
2016-09-09 15:40:01 -07:00
Brian Warner
1877bd38b9 consolidate skip_if_cannot_represent_filename()
Remove duplicate copies of this utility, move it from a mixin/test-class
method to being a simple function in common_util.py
2016-09-09 15:40:01 -07:00