100 Commits

Author SHA1 Message Date
Jean-Paul Calderone
875f4d3414 Better setup error re-raising 2020-11-18 14:48:40 -05:00
Chad Whitacre
fe07078859 Turn web service back on in test for Python 3 2020-11-06 19:44:08 -05:00
Jean-Paul Calderone
2960a270ce Declare and document what LocalWrapper is/does 2020-10-15 12:00:03 -04:00
Jean-Paul Calderone
b0159a898e Parameterize the callRemote scheduling 2020-10-14 11:08:40 -04:00
Itamar Turner-Trauring
139bcb1500
Merge pull request #814 from tahoe-lafs/3419.test-encode-python-3-trying-again
Port test_encode to Python 3

Fixes ticket:3419
2020-09-21 11:52:34 -04:00
Itamar Turner-Trauring
02b4ec8101 Get rid of stray print(). 2020-09-21 10:33:16 -04:00
Itamar Turner-Trauring
050388ee12 Work better on Python 3, until Nevow is gone. 2020-09-18 14:31:21 -04:00
Itamar Turner-Trauring
2588e757e5 Only semi-break the web service. 2020-09-16 14:42:39 -04:00
Itamar Turner-Trauring
7cb574f7c5 Port to Python 3. 2020-09-16 11:23:11 -04:00
Itamar Turner-Trauring
7d8320b843 Python 3 fixes. 2020-09-16 11:13:23 -04:00
meejah
4b0c730adf use 'with open' correctly 2020-05-04 21:59:15 -06:00
meejah
3099b188ae check NoNetworkGrid for startup errors 2019-12-21 03:56:13 -07:00
Jean-Paul Calderone
72cf590320 Use IStorageServer instead of RemoteReference in a lot of places 2019-05-31 13:41:07 -04:00
tpltnt
c8f11dc2d3 ported old-style classes to new-style 2019-05-26 08:28:18 +02:00
heartsucker
a087a5be72
removed tuple unpacking in function definitons for python3 compatibility 2019-04-18 13:37:18 +02:00
heartsucker
129ef22185
updated instances of octal literals to use the format 0o123 for python3 compatibility 2019-03-29 11:08:44 +01:00
Jean-Paul Calderone
4265cc8afd And for the NoNetworkGrid clients' web port config 2019-03-28 15:02:53 -04:00
Jean-Paul Calderone
3814ccb947 Fix some setUp and tearDown 2019-03-07 14:04:17 -05:00
Jean-Paul Calderone
2b475777d9 Return the result of the base stopService
It is a Deferred that indicates when things have actually stopped.  Failing to
return it means callers will think everything stopped synchronously.  This is
certainly not the case.
2019-01-31 08:16:57 -05:00
meejah
8a6a477ef7 don't depend on .called and .result (use Deferred callbacks properly) 2018-09-10 21:58:28 -06:00
meejah
376a1dcbd5 turn XXX into a ticket 2018-09-10 21:58:28 -06:00
meejah
8b5e988755 use docstring to mark method as async 2018-09-10 21:58:28 -06:00
meejah
714b0887dc more docstrings 2018-09-10 21:58:27 -06:00
meejah
045af64c2b dead code 2018-09-10 21:58:27 -06:00
meejah
06de4c88c4 codecleanup (incorrect merge?) 2018-09-10 21:58:27 -06:00
meejah
edc50f655b get rid of is_tub_listening 2018-09-10 21:58:27 -06:00
meejah
e74d2a7d01 get rid of redundant 'introducer_clients' var 2018-09-10 21:58:27 -06:00
meejah
c7b47f44d2 flake8 2018-09-10 21:58:27 -06:00
meejah
17fa32633c post-rebase fixups; needs review 2018-09-10 21:58:27 -06:00
meejah
23d304814f not required for tests 2018-09-10 21:58:27 -06:00
meejah
26007f363b pull 'StorageFarmBroker' out of __init__
This means also pulling out introducer-clients and some
related utility methods
2018-09-10 21:58:27 -06:00
meejah
329ef1256a refactor create_client to be async (works to run, some unit-test fails still) 2018-09-10 21:58:27 -06:00
meejah
4d7f8ec9dd keep clientdir for now, improve how we access it 2018-08-25 02:10:44 -06:00
meejah
107ddcd1ba get rid of get_clientdir 2018-08-25 02:10:44 -06:00
meejah
86a9ce5793 create _NoNetworkClient using same code as _Client 2018-08-25 02:10:44 -06:00
meejah
35810a5692 pull 'basedir' entirely into _Config
Put all config-related methods into _Config; change
code to ask config for paths instead of using basedir;
add some better docstrings
2018-08-25 02:10:44 -06:00
meejah
3723945296 Actually validate configs when loading them
An indenting problem meant the validators weren't being
called, which revealed some follow-on errors.
2018-08-17 15:53:59 -06: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
5a895b5fb6 GridTestMixin.GET: use treq instead of HTTPClientGETFactory 2017-07-27 16:31:44 -07:00
David Stainton
19c5bbb43b Fix test test_lost_servers
Remove old hypothesis tests

Fix allmydata.test.cli.test_cli.Errors.test_get

this was broken due to differing share placements
whereas we need to allow this.

Fix test_5_overdue_immutable

This change makes the test not depend on the value
of PYTHONHASHSEED.

Revert "Fix test_5_overdue_immutable"

This reverts commit 5f3696d9a53e7df8781a2c463c7112282397cd69.

fix test to actually hang the first 5 *servers*

sort keys for stable output

use file-context-managers

remove probably-unneeded assert (that fails sometimes)

another non-deterministic test?
2017-06-05 16:26:46 -06:00
meejah
4f1dd95963 Add a 'tahoe status' command
This required also fixing the JSON output from
the "recent and active operations" page.
2017-04-04 12:48:41 -06:00
meejah
49ae2c5eb7 use @implementer instead of implements
Also, derive some more things from 'object'
2017-02-27 11:01:30 -07:00
Brian Warner
5ef04ef59e add hashutil.permute_server_hash
which uses SHA1 to combine the file's storage index (known as "peer
selection index" in this context) and each server's "server permutation
seed". This is the only thing in tahoe that uses SHA1.

With this change, we stop importing sha1 from anywhere else.
2016-09-26 20:42:42 -07:00
Brian Warner
73d5376b6a Implement basic connection handlers (tor/i2p)
The node now attempts to create Tor/I2P connection handlers (if the
right libraries are available), and will use them for tor/i2p FURL hints
by default. For now it only creates default handlers: there is not yet
any code to interpret the `[tor]`/`[i2p]` sections of tahoe.cfg which
would let you override that process.

The node also parses the `[connections]` section, allowing `tcp: tor` to
use Tor for all outbound TCP connections. It defaults to `tcp: tcp`, of
course.

Static storage-server connections will now honor the `connections:`
overrides in `servers.yaml`, allowing specific servers to use TCP where
they would normally be restricted to Tor.

refs ticket:2788
refs ticket:517
2016-08-28 02:41:44 -07:00
Brian Warner
cac99569e9 factor out "Tub maker"
This adds Node._create_tub(), which knows how to make a Tub with all the
right options and connection handlers that were specified in
tahoe.cfg (the connection handlers are disabled for now, but they'll get
implemented soon).

The new Node.create_main_tub() calls it. This main Tub is used:

* to connect to the Introducer
* to host the Helper (if enabled)
* to host the Storage Server (if enabled)

Node._create_tub() is also passed into the StorageFarmBroker, which
passes it into each NativeStorageServer, to create the (separate) Tub
for each server connection. _create_tub knows about the options, and
NativeStorageServer can override the connection handlers. This way we
don't need to pass tub options or default handlers into Client,
StorageFarmBroker, or NativeStorageServer.

A number of tests create NativeStorageServer objects: these were updated
to match the new arguments. test_storage_client was simplified because
we no longer need to mock out the Tub() constructor.
2016-08-27 17:36:55 -07:00
Brian Warner
8ca653c30d no_network: turn off control_tub and log_tub
These aren't needed for most tests, and saves about 7% of the total test
runtime (on my laptop, it drops from 844s to 786s).
2016-08-05 19:33:49 -04:00
Brian Warner
cd083b9a04 move SystemTestMixin from common.py to test_system.py
It's only being used in test_system.py anyways, so having it live in a
"common" file didn't provide much value.
2016-08-04 01:09:12 -04:00
Brian Warner
50df45e3a0 add GridTestMixin.set_up_grid(oneshare=True)
This configures client[0] to use k=N=1, which is a lot faster for tests
that don't care about the actual shares (e.g. most of the CLI tests).
2016-08-03 19:11:01 -04:00
Brian Warner
6f8c96e262 oops, fix NoNetworkStorageBroker to match 2016-07-21 18:13:28 -07:00
meejah
18f799bdc8 remove incorrect override 2016-07-21 12:35:59 -07:00