Commit Graph

7434 Commits

Author SHA1 Message Date
meejah
87ad3cb8e9 fix 2880
- remember upload URI so we don't re-download
- account for empty files in "should_download"
- fix 'conflicted' asserts in tests
2017-12-05 12:02:16 -07:00
meejah
5b93e193c3 An integration test for ticket 2880 2017-12-05 12:02:16 -07:00
meejah
672475cb2b Multiple magic-folders
This moves all magic-folder configs to a single YAML
file. We load legacy config fine and don't mess with
legacy config unless you use a magic-folder command that
changes the config.

Increase test coverage
2017-12-05 10:34:48 -07:00
meejah
1b6f477549 Pull "config" handling out of Node and hide node-derivitives
This includes:

 - refactor to create_client and _Client
 - refactor to _IntroducerNode and create_introducer
2017-11-20 12:57:20 -07:00
Brian Warner
7e5a87e800 Merge PR450: delete invalid twistd.pid files
closes ticket:1680
2017-11-20 11:52:14 -08:00
meejah
50f8397c99 Merge branch 'invalid-pidfile' into delete-invalid-pidfile--lpirl
Conflicts:
	src/allmydata/scripts/startstop_node.py
	src/allmydata/test/cli/test_cli.py
2017-11-08 14:49:29 -07:00
Brian Warner
e89c99c578 Merge PR437: add tub.port=listen:i2p 2017-11-03 00:46:28 -07:00
Brian Warner
a1711088ed test_i2p_provider: exercise escaping of apiEndpoint attribute 2017-11-03 00:24:46 -07:00
Brian Warner
1f1afe65ec tor_provider.get_listener(): return a real endpoint, instead of a descriptor
get_listener() is allowed to return either, and the Tor provider is currently
simple enough to not really need more than a basic descriptor, but have it
return a full Endpoint for use as an example of what I2P can do later.
2017-11-03 00:24:46 -07:00
Brian Warner
d713e0e57d address review feedback: docstrings, better test class name 2017-11-03 00:24:46 -07:00
Brian Warner
097abb42fa tahoe.cfg: add tub.port=listen:i2p (and/or listen:tor)
This delegates the construction of the server Endpoint object to the i2p/tor
Provider, which can use the i2p/tor section of the config file to add options
which would be awkward to express as text in an endpoint descriptor string.

refs ticket:2889 (but note this merely makes room for a function to be
written that can process I2CP options, it does not actually handle such
options, so it does not close this ticket yet)
2017-11-03 00:24:46 -07:00
Brian Warner
d1fd43aa4f tor/i2p: rename create_onion/create_dest to create_config 2017-11-03 00:24:46 -07:00
meejah
856425fe0f blow away _trial_temp on windows 2017-10-31 11:44:31 -06:00
meejah
fd90346c88 Wait up to 60s for node start; improve messaging; look for errors 2017-09-20 00:55:19 -06:00
Brian Warner
04b34b6fd2 Merge PR417: rewrite tahoe start/stop/daemonize
* refs ticket:1148 (splits up startstop_node, improves coverage)
* refs ticket:275 ('start' probably doesn't exit until furl is written)
* refs ticket:1121 (probably improves coverage)
* refs ticket:1377 (probably fixed)
* refs ticket:2149 (might influence, probably won't fix)
* refs ticket:719 (probably improved)
2017-09-19 09:57:59 -07:00
meejah
263a3f43c1 stop chdir 2017-09-19 10:39:19 -06:00
meejah
9375056b61 Split up startstop_node and add 'tahoe daemonize'
This sets the stage for further changes to the startup
process so that "async things" are done before we create
the Client instance while still reporting early failures
to the shell where "tahoe start" is running

Also adds a bunch of test-coverage for the things that got
moved around, even though they didn't have coverage before
2017-09-19 10:39:19 -06:00
Brian Warner
17a734dfdd Merge PR445: Docker Compose docs
Closes tahoe-lafs/tahoe-lafs#445
2017-09-19 09:25:53 -07:00
Gordon Hall
593ebdfb07 add note about using docker compose to running docs 2017-09-19 09:25:39 -07:00
Gordon Hall
58a023e477 add dockerfile for hacking with docker compose file for local environment 2017-09-19 09:25:39 -07:00
Brian Warner
6d41b04cbb Merge PR444: update debian packaging notes after 'stretch' release 2017-09-19 08:40:28 -07:00
AnBuKu
e453761a0b Time goes by :-)
See https://packages.debian.org/source/stretch/tahoe-lafs
2017-09-18 07:27:09 +02:00
Lukas Pirl
89bacbb70a Merge branch 'master' into invalid-pidfile 2017-08-24 18:40:00 +02:00
meejah
5483c86d2b Merge pull request #440 from lpirl/empty-pidfile
fix crash when stopping/restarting with an invalid pidfile
2017-08-24 10:32:58 -06:00
Lukas Pirl
46305c74e1 added test for (ignoring an) invalid PID file when starting a node 2017-08-24 17:56:57 +02:00
Jean-Paul Calderone
86f79e8111 Add a test for the non-numeric case 2017-08-24 16:46:46 +02:00
Lukas Pirl
e79eb2f375 Merge pull request #1 from exarkun/empty-pidfile
Add a test for the non-numeric pidfile contents case
2017-08-24 16:42:54 +02:00
Jean-Paul Calderone
354567cb85 Add a test for the non-numeric case 2017-08-24 10:34:58 -04:00
Lukas Pirl
1bf032959f delete invalid PID file on `tahoe (re)start` 2017-08-24 15:22:25 +02:00
Lukas Pirl
dd9b951c4b fix crash when stopping/restarting with an invalid pidfile
in node directory
2017-08-23 20:23:15 +02:00
Brian Warner
04fc0e43f7 setup.py: use python_requires= to complain about py3, not an exception
This allows a python3-based tox (as is common on modern debian/ubuntu
systems) to test our py2-only package. The first thing Tox does is to build a
wheel to install into the target virtualenv (which is a py2-based venv, for
tahoe). But Tox bug (https://github.com/tox-dev/tox/issues/507) in which this
wheel is built with the same python that Tox is using, instead of the python
from the target environment. Our setup.py would see sys.version_info with py3
and launch a crowbar into the works.

With python_requires=, pip is smart enough to know that it's ok to build
wheels with the wrong python, but "pip install" still throws a sensible error
message:

```
(ve36) ~/stuff/tahoe/tahoe$ pip install .
Processing /home/warner/stuff/tahoe/tahoe
tahoe-lafs requires Python '<3.0' but the running Python is 3.6.1
```

Closes ticket:2876
2017-08-15 18:37:39 -07:00
Brian Warner
27348be795 Merge PR438 from branch '2891-remove-numdict'
This removes some code in dictutil.py that we weren't using, or which could
be replaced by something simpler. This code is troublesome, because our unit
tests only achieve intermittent coverage, so other (unrelated) PRs are
failing CI when the coverage appears to go down.

I tried to improve the tests to reliably cover everything in dictutil.py, and
discovered code that couldn't possibly have worked in the first place. So the
easiest approach was just to delete it all.

refs ticket:2891
2017-08-15 14:09:00 -07:00
Brian Warner
8dd0a5f772 dictutil: remove unused move, subtract, del_if_present 2017-08-12 21:48:05 -07:00
Brian Warner
61b85dbf78 dictutil: remove unused ValueOrderedDict 2017-08-12 21:34:24 -07:00
Brian Warner
4f493b1a03 remove unused UtilDict 2017-08-12 21:31:47 -07:00
Brian Warner
a76d9e084f dictutil: remove unused NumDict 2017-08-12 21:21:04 -07:00
Brian Warner
3afa38adb4 NummedObj: stop using dictutil.NumDict 2017-08-12 21:02:32 -07:00
Brian Warner
d91516a5c5 Merge PR421
closes tahoe-lafs/tahoe-lafs#421
refs ticket:2729
2017-08-10 12:51:12 -07:00
Chris Wood
aaf167b877 Add support for binary builds with PyInstaller
See https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2729
2017-08-10 12:43:34 -07:00
Brian Warner
3f2f7dfb05 dictutil: fix bug in str(ValueOrderedDict), and improve test coverage
It looks like str() was meant to truncate the dict, but a missing i+=1 meant
that it never actually did. I also changed the format to include a clear
"..." in case we truncate it, to avoid confusion with a non-truncated dict of
the same size.

This also improves test coverage in subtract() and
NumDict.item_with_largest_value().

refs ticket:2891
2017-08-10 10:27:02 -07:00
Brian Warner
95ac5494ff test_backupdb: tolerate newer sqlite-3.20.0 error messages 2017-08-10 10:21:39 -07:00
Brian Warner
6be3f0594a travis: only run integration test if the tor install succeeded
travis apparently behaves like buildbot's ERROR_UPON_ERROR, rather that
HALT_UPON_ERROR, and if the tor install fails, then the integration test's
last step is certain to fail.
2017-08-10 10:00:14 -07:00
Brian Warner
3eaf18eba4 Merge PR418: add 'tahoe invite' and 'tahoe create-client --join='
refs ticket:126 , although this is just the first step
2017-08-08 23:12:29 -07:00
meejah
798bf57e28 Add 'tahoe invite' and 'tahoe create-node --join' commands
This opens a wormhole and sends appropriate JSON down
it to a tahoe-gui using a wormhole server running on
tahoe-lafs.org

The other end uses the 'tahoe create-node' command (with
new --join option) to read the configuration JSON from
a 'tahoe invite' command
2017-08-08 18:27:06 -06:00
Brian Warner
b2f7d8d9f9 Merge PR433: setup.py should use find_packages
closes ticket:2897
2017-08-08 13:33:16 -07:00
meejah
e2a5751d02 at least use random port 2017-08-08 10:42:11 -06:00
Jean-Paul Calderone
31f4272919 Use find_packages
It is a shorter and more reliably way to provide a value for the packages parameter.
2017-08-08 12:06:30 -04:00
Brian Warner
e8699cd60d Merge PR434: fix pyflakes issues in misc
closes ticket:2898
2017-08-08 08:59:15 -07:00
Jean-Paul Calderone
695f40fb52 Get rid of unused names 2017-08-08 08:30:32 -04:00
Jean-Paul Calderone
95df32f9ed remove unused import 2017-08-08 08:29:57 -04:00