Commit Graph

512 Commits

Author SHA1 Message Date
Jean-Paul Calderone
21bf7fc25c Merge remote-tracking branch 'origin/master' into integration/storage-economics 2019-08-16 15:39:31 -04:00
Jean-Paul Calderone
b7e3633056 Fix a lot of classic classes in Tahoe-LAFS 2019-08-13 16:55:40 -04:00
Jean-Paul Calderone
3b6e1e344b Don't blow up the web status if we get an unrecognized announcement 2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
fb4c5cf91f Allow for dynamic configuration validation rules 2019-08-03 05:34:21 -04:00
meejah
c6d41b310a str -> bytes 2019-07-08 14:16:37 -06:00
meejah
c2c2eda52e bytes 2019-07-08 14:16:28 -06:00
meejah
a27a5ce581 test all error-cases, and some fixups 2019-06-17 21:56:06 -06:00
meejah
310fb60247 move AES to a helper-function style 2019-06-17 15:54:46 -06:00
heartsucker
96ba55dd5c autopep8 on hashutil to make it more readable 2019-06-13 22:19:28 -06:00
heartsucker
9e31bfe2f4 update code/test to use new ed25512 module 2019-06-13 22:19:28 -06:00
heartsucker
3a5a0fb572 replaced uses of pycryptopp's ed25519 with our own 2019-06-13 22:18:55 -06:00
heartsucker
008825b0fd replaced referecnes to pycryptopp AES with own wrapper 2019-06-13 22:18:55 -06:00
tpltnt
4c2f0db5d2 made OneShotObserverList a new-style class 2019-05-26 08:28:18 +02:00
tpltnt
c8f11dc2d3 ported old-style classes to new-style 2019-05-26 08:28:18 +02:00
Jean-Paul Calderone
b5659bd312 Some gc hinting and docs 2019-05-09 15:45:07 -06:00
Jean-Paul Calderone
b31acb790a Try to clean up the fds created by listenOnUnused that might leak 2019-05-09 15:45:07 -06:00
meejah
fee6eb38a9
Merge pull request #603 from tahoe-lafs/3028-string-literals
updated string literal syntax for python3 compatibility
2019-04-26 17:39:38 +00:00
meejah
27a0a7400d
Merge pull request #600 from tahoe-lafs/3019-remove-tuple-unpacking
3019 remove tuple unpacking, Fixes: ticket:3019
2019-04-26 17:37:56 +00:00
heartsucker
05e0d19cca
updated string literal syntax for python3 compatibility 2019-04-25 11:18:33 +02:00
heartsucker
c0939e9b99
removed use of backticks for repr for python3 compatibility 2019-04-18 13:50:21 +02:00
heartsucker
a087a5be72
removed tuple unpacking in function definitons for python3 compatibility 2019-04-18 13:37:18 +02:00
Jean-Paul Calderone
9a30eaa83c move listenOnUnused to a place where implementation code can use it 2019-04-16 11:26:15 -04:00
heartsucker
ae5e282e2f
update raise syntax for python3 compatibility 2019-04-05 11:39:10 +02:00
heartsucker
0750dbac38
updated all python files to use pep-3110 exception syntax for python3 compatibility 2019-04-04 11:57:58 +02:00
heartsucker
f4ff91a6c1
updated python2 long numeric literals for python3 compatibility 2019-04-03 10:04:02 +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
heartsucker
64f4dfa8ca
replaced all remaining instances of the print statement with the print function 2019-03-24 14:14:00 +01:00
Jean-Paul Calderone
f7f9cf6abc
Merge pull request #576 from tahoe-lafs/3005.upstream-inline_callbacks
Use upstream inline_callbacks implementation.

Fixes: ticket:3005
2019-03-21 16:24:21 -04:00
Jean-Paul Calderone
1f254fbdcc log the unicode instead of the localized byte string 2019-03-20 16:17:55 -04:00
Jean-Paul Calderone
e2d242d299 remove our implementation of inline_callbacks
re-publish Eliot's
2019-03-20 12:53:24 -04:00
Jean-Paul Calderone
1d0c862c54 convert some tests over to the new base class
in support of better logging
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
6ccd9f4b44 try to get some indication of fake behavior in the log 2019-03-14 11:23:16 -04:00
Jean-Paul Calderone
831452f776 Add missing import 2019-03-12 20:32:15 -04:00
Jean-Paul Calderone
0e3c4d40b8 Add some Eliot events related to fs notifications 2019-03-12 19:35:36 -04:00
Jean-Paul Calderone
39694fcfde this include_args is basically useless 2019-03-07 13:30:54 -05:00
Jean-Paul Calderone
5de4f4094e let it not return a Deferred 2019-03-07 13:30:47 -05:00
Jean-Paul Calderone
7d6e36d9c7 A basic implementation of the idea. 2019-03-07 13:07:02 -05:00
Jean-Paul Calderone
26a7cc4f21 The log directory may not yet exist. 2019-03-04 10:08:53 -05:00
Jean-Paul Calderone
fe60980ccc and switch away from Windows drive separator... 2019-02-27 06:42:57 -05:00
Jean-Paul Calderone
d203fde9f6 Change away from the Windows directory separator for the escape char 2019-02-26 19:06:35 -05:00
Jean-Paul Calderone
25a62001dd Improve the failure case user experience
And test it
2019-02-26 19:05:39 -05:00
Jean-Paul Calderone
ca82d4f83d Merge remote-tracking branch 'origin/master' into 2972.magic-folder-eliot-logs 2019-02-26 13:33:39 -05:00
Jean-Paul Calderone
7fb695f956 Add user-facing help about destinations 2019-02-25 13:34:02 -05:00
Jean-Paul Calderone
4f238d0f64 Clarify possible usage here 2019-02-25 13:11:52 -05:00
Jean-Paul Calderone
abae1be9c6 Add helpers for configuring and using Eliot logging 2019-02-25 11:52:50 -05:00
Jean-Paul Calderone
f90a137552 Basic housekeeping previously missed 2019-02-25 08:57:38 -05:00
Jean-Paul Calderone
f1a7dcf309 A fair bit more Eliot conversion 2019-02-25 08:35:57 -05:00
Jean-Paul Calderone
3020fb979d Hoist some of this to a shared module 2019-02-25 08:35:57 -05:00
Jean-Paul Calderone
6ca328ba94 Fix comparison of NummedObj against non-NummedObj
Previously this would explode with AttributeError.
2019-02-25 08:35:57 -05:00
Jean-Paul Calderone
19f06809e2 That was all nonsense. Throw it out. 2019-02-22 09:11:44 -05:00
Jean-Paul Calderone
e55ee7d044 Move generator context state to a generator context manager 2019-02-22 08:40:16 -05:00
Jean-Paul Calderone
05807ace40 Split the implementation helpers out of the test suite 2019-02-21 12:54:10 -05:00
meejah
136495e405 basedir fixup 2018-09-10 21:58:27 -06:00
meejah
7685fb34cd 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-09-10 21:58:27 -06:00
meejah
739aaa3ef9 put create() methods in i2p_, tor_provider
Also Provider -> _Provider, improve docs and update tests
2018-09-10 21:58:27 -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
c9e00a988a
Merge pull request #475 from meejah/2909.backup-behavior.0
#2909 fix .backup file behavior and (some of) the incorrect .conflict cases (#2911)
2018-05-01 15:52:10 -06:00
meejah
b54d5d88f8 unused var 2018-04-30 14:55:52 -06:00
meejah
c71116d45e keep original exception behavior 2018-04-30 14:55:51 -06:00
meejah
c2aec93209 fix windows move_into_place logic 2018-04-30 14:55:51 -06:00
meejah
99c3d7f23f this shouldn't have gotten removed 2018-04-30 14:55:51 -06:00
meejah
cc93a12a85 Test fixups 2018-04-30 14:55:51 -06:00
meejah
affb80e39e test fixups 2018-04-30 14:55:51 -06:00
meejah
47b1787633 stop writing .backup files for normal overwrites 2018-04-30 14:55:51 -06:00
Jean-Paul Calderone
b623a4a199 Remove dead Tor TCP control port setup code.
If someone wants this I bet they can figure it out.
2018-04-26 15:32:27 -04:00
Jean-Paul Calderone
8d4d000132 Fix pre-release matching regex character class
Previously matched any single character from `abc|r` (with duplicate
specification of `c`).  Now matches any single character from `abc` or
the two character sequence `rc`.

I guess this was the intent, anyway.
2018-04-26 15:20:27 -04:00
Jean-Paul Calderone
6b16afaa2e Avoid using the list comprehension loop variable
It works fine but it relies on leaky scopes.
2018-04-26 15:16:00 -04:00
Brian Warner
5e62118e14 hush somewhat-real problems found by static analysis
These would have caused problems if a certain unlikely code path was taken:
mostly error-handling pathways.
2017-12-31 00:23:43 +01:00
Brian Warner
da4e7dcfbe hush a bunch of not-really-problems caught by the lgtm.com static analyzer
This is all minor stuff: unreachable debug code (that should be commented-out
instead of in an 'if False:' block), unnecessary 'pass' and 'global'
statements, redundantly-initialized variables. No behavior changes. Nothing
here was actually broken, it just looked suspicious to the static analysis at
https://lgtm.com/projects/g/tahoe-lafs/tahoe-lafs/alerts/?mode=list .
2017-12-31 00:19:41 +01:00
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
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
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
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
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
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
meejah
05f48c3601 Various cleanups, fixes and improvements
Squashed all commits that were meejah's between
30d68fb499f300a393fa0ced5980229f4bb6efda
and
33c268ed3a8c63a809f4403e307ecc13d848b1ab
On the branch meejah:1382.markberger-rewrite-rebase.6 as
per review
2017-06-05 16:31:41 -06:00
David Stainton
e68b331bb1 Add servers of happiness hypothesis testing
Fix happiness test var names

Remove unused imports

Get rid of trailing whitespace
2017-06-05 16:26:46 -06:00
meejah
ef17ef2c62 fix happiness calculation
unit-test for happiness calculation

unused function

put old servers_of_happiness() calculation back for now

test for calculate_happiness

remove some redundant functions
2017-06-05 16:26:46 -06:00
David Stainton
42011e775d Make correction to docstring for Tahoe2ServerSelector's _handle_existing_response
Add comments 10 and 8 from the servers of happiness spec

Fix bug in _filter_g3 for servers of happiness

Remove usage of HappinessUpload class

here we modifying the PeerSelector class.
we make sure to correctly calculate the happiness value
by ignoring keys who's value are None...

Remove HappinessUpload and tests

Replace helper servers_of_happiness

we replace it's previous implementation with a new
wrapper function that uses share_placement
2017-06-05 16:26:46 -06:00
Mark Berger
17cff7a176 Implements 'Servers of Happiness' algorithm for upload
This is Mark Berger's original commits, from ticket #1382
2017-06-05 16:26:46 -06:00
meejah
49ae2c5eb7 use @implementer instead of implements
Also, derive some more things from 'object'
2017-02-27 11:01:30 -07:00
str4d
998af5c26e Pass I2P keyfile to foolscap
If no session management is performed, txi2p starts a process-wide session the
first time a connection (client or server) is opened; all subsequent connections
use that session and its configuration properties.

This commit ensures that the same properties are passed to both client and
server endpoints, so that the correct I2P Destination is started regardless of
whether the first connection made by Tahoe-LAFS is for a client or server.

Closes #2858.
2017-01-17 20:12:32 -05:00
Brian Warner
5cbe580d90 improve ConnectionStatus and welcome-page display
* replace "last_details" with "non_connected_statuses" dict
* rename "last_connection_summary" to just "summary"
* for connected servers, show other hints in a tooltip
* for not-yet-connected servers, show all hints in a list
* build the list (in STAN) on the server side, not using IContainer
2016-12-09 18:41:38 -08:00
meejah
74209e643e Show the connection-status of all hints until we're connected to one 2016-12-09 18:41:38 -08:00
Brian Warner
48fc14bd30 add IConnectionStatus and implementation
also a function to build one from a foolscap.Reconnector
2016-12-08 15:41:37 -08:00
Brian Warner
8d008967e7 tor_provider: use new Foolscap API to provide better status 2016-12-08 15:41:37 -08:00
str4d
6071c2b6f8
Implement i2p_provider and --listen=i2p
Closes ticket:2838
2016-10-23 20:30:01 -05:00
Lukas Pirl
1491e9fab1 added /sbin/ip as possible binary to detect local IP address
fixes IP detection for RHEL flavors

Signed-off-by: Lukas Pirl <git@lukas-pirl.de>
2016-10-12 12:46:12 +02:00
meejah
2ecb8171eb flip remote/local around for Onion-service 'ports' lines 2016-10-09 01:21:52 -04:00
meejah
eb6c6bee9e tor's output, for debugging 2016-10-09 01:21:52 -04:00
meejah
646fad69ed ControlPort needs "unix:" prefix for Tor, and allocate SOCKSPort 2016-10-09 01:21:52 -04:00
Brian Warner
a1741ce4dc rewrite tor_provider
This uses a unix-domain control port, and includes test coverage.

create_onion() displays pacifier messages, since the allocate-onion step
takes around 35 seconds
2016-10-09 01:21:47 -04:00
Brian Warner
8f9ad009bb move torutil.py to util/tor_provider.py 2016-10-09 00:57:02 -04: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
meejah
2732c37941 Check for unknown config options
The list of valid sections + config-items came from
grep'ing the source for `.get_config`
2016-09-06 15:05:46 -06:00