Jean-Paul Calderone
9940beaae1
Thread a _Config all the way down
2019-08-19 16:09:26 -04:00
Jean-Paul Calderone
a47463e032
Pass _Config instead of a smaller dict to get_client_resource
2019-08-19 11:21:03 -04:00
Jean-Paul Calderone
21d735ece9
whitespace more conforming to PEP8
2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
d69de15664
implement the feature
...
improve the test slightly, too, to verify the configuration supplied to the
plugin is as expected.
2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
9842447a07
Don't start or announce anonymous access if config says not to
2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
853cf62530
Allow [storage]anonymous through the validator
...
And provide a helpful accessor for reading it
2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
311afa8a75
Test & fix supplying plugin configuration
2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
b5a2c70a4a
create a StorageClientConfig object
...
Make it easier to pass more storage configuration down into StorageFarmBroker
and beyond
2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
6b7e0dd700
add a test for the negative case
2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
895cf37a84
docstrings
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
53861e2a0f
Change the shape of the storage announcement(s)
...
Instead of generating a sequence of announcements like:
- anonymous storage server announcement
- plugin 1 storage server announcement
- ...
- plugin N storage server announcement
The client now generates a single announcement like:
- anonymous storage server details
- storage-options
- plugin 1 storage server details
- ...
- plugin N storage server details
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
9c240b61ac
Persist the furl ourselves rather than relying on Foolscap
...
Going via our config abstraction here will let us change how config is
persisted more easily, later.
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
6068b6c1b2
don't reach through the tahoe-lafs config object
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
d2e16df5cc
link to a ticket about implementing better missing-plugin behavior
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
251eda0b80
rename introducer_factory parameter to be private
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
58db131787
remove unused imports
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
fd9ae24149
fix indentation
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
756c21c251
actually provide validating client-config-from-string function
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
6cf48f7d4f
Separate async initialization from _Client.__init__
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
a6959d111c
Log init_storage and its result (particularly failures)
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
7919cf205e
Test the actual interface
...
get_storage_server is supposed to return a Deferred
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
a45e2bebfe
Allow the new plugins item in the [storage] section
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
f606beb065
Test and support plugins without any configuration
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
e2982c0129
Support multiple plugins
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
646cd452b9
Add tests for announcements for plugins
...
And a basic implementation
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
212f96dfe7
Baseline tests for anonymous storage server announcements
2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
fb4c5cf91f
Allow for dynamic configuration validation rules
2019-08-03 05:34:21 -04:00
meejah
5644f421fe
get rid of ed25519.bytes_from_* methods
2019-07-08 12:46:22 -06:00
meejah
47633fb01e
unused import
2019-06-26 14:55:35 -06:00
meejah
dd55accec8
Merge branch 'master' into 3031-replace-pycryptopp
2019-06-26 14:42:43 -06:00
meejah
47ccdb0177
refactor ed25519 helpers to functional style
...
eliminates the wrapper classes and uses some more-explicit
names throughout (e.g "sk" -> "signing_key")
2019-06-13 22:19:28 -06:00
meejah
df4671f90e
refactor away from pycryptopp "helper" classes
2019-06-13 22:19:28 -06:00
heartsucker
8063d93c6d
replaced pytcryptopp rsa with our own wrapper
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
Jean-Paul Calderone
b604d08463
Add a test for the success case
2019-06-12 16:47:25 -04:00
tpltnt
c8f11dc2d3
ported old-style classes to new-style
2019-05-26 08:28:18 +02:00
advanced4
ef127f113d
update client.py to use DEFAULT_MAX_SEGMENT_SIZE
2019-05-08 16:04:57 -04:00
Jean-Paul Calderone
53b40ef0e0
don't double start; don't try to handle double start.
2019-03-28 16:10:36 -04:00
meejah
1ad2174df9
windows yaml.safe_load returns None on unreadable files..
2018-09-11 11:14:41 -06:00
meejah
3d35723a59
windows yamlutil.safe_load returns None when files are unreadable
2018-09-10 21:58:28 -06:00
meejah
692128ad1d
better defaults handling
2018-09-10 21:58:28 -06:00
meejah
f6b62ca192
import
2018-09-10 21:58:28 -06:00
meejah
a344bb24dc
immutable default
2018-09-10 21:58:27 -06:00
meejah
dee8b72206
dead code
2018-09-10 21:58:27 -06:00
meejah
9aae4bd459
only handle ENOENT
2018-09-10 21:58:27 -06:00
meejah
a5287add80
clarify comments
2018-09-10 21:58:27 -06:00
meejah
efce7b1f6a
use Failure for all errors from async methods
2018-09-10 21:58:27 -06:00
meejah
714b0887dc
more docstrings
2018-09-10 21:58:27 -06:00
meejah
c22d7c632e
docstring improvements
2018-09-10 21:58:27 -06:00
meejah
3974af6660
redundant imports
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
a82aa4ba2c
code cleanup, docs
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
c84e50baf0
post-rebase fixup: _client_factory and docs
2018-09-10 21:58:27 -06:00
meejah
17fa32633c
post-rebase fixups; needs review
2018-09-10 21:58:27 -06:00
meejah
08e0c3b7e2
get rid of 'add_service' (just an alias to setServiceParent anyway)
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
f80e61fef6
put setServiceParent calls in create_*
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
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
f0c3db0e5a
pyflakes
2018-09-10 21:58:27 -06:00
meejah
279bd814fc
remember info for init_client_storage_broker temporarily
2018-09-10 21:58:27 -06:00
meejah
43d857a0bd
more refactor + fix some node tests
2018-09-10 21:58:27 -06:00
meejah
71484b4a12
upgrade create_introducer
2018-09-10 21:58:27 -06:00
meejah
4f2d45626c
no more reveal_ip
2018-09-10 21:58:27 -06:00
meejah
d1a83e9be0
more tests work
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
41cfd8fb16
change imports; introducer client.read_config
2018-09-10 21:58:27 -06:00
meejah
eab56276e5
introduce create_node_dir
2018-09-10 21:58:27 -06:00
meejah
91517bbad0
unused import
2018-08-25 02:12:02 -06:00
meejah
1b30e9edfc
consistently use 'config' not 'self.config' in __init__
2018-08-25 02:10:44 -06:00
meejah
a432fc35da
docstring improvements
2018-08-25 02:10:44 -06:00
meejah
5000787c18
flake8
2018-08-25 02:10:44 -06:00
meejah
2937c729e3
change imports; introducer client.read_config
2018-08-25 02:10:44 -06:00
meejah
d544284f92
introduce create_node_dir
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
79756c088e
split client, introducer READMEs
2018-08-25 02:10:44 -06:00
meejah
f37ab3b12d
get_app_version -> global function
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
Jean-Paul Calderone
e1c469e3b6
make sure we pass the client node
2018-04-23 11:41:29 -04:00
Jean-Paul Calderone
cfa33332a5
Add missing information/import
2018-04-23 11:09:24 -04:00
Jean-Paul Calderone
8d104dab1c
Move the complicated MagicFolder constructor
...
All that complexity can be part of MagicFolder itself.
2018-04-23 10:59:33 -04:00
Jean-Paul Calderone
ac6269dd2d
Only read magic-folder config from config reader
...
Also, fix the umask feature which was completely broken previously due
to failure to parse the umask string into an integer.
2018-04-23 10:41:48 -04:00
Jean-Paul Calderone
06a1ada624
Remove double-encoding of magic-folder params
2018-04-20 14:43:34 -04:00
Jean-Paul Calderone
1f92879788
improve test coverage
2018-03-19 14:21:28 -04:00
Ruben Pollan
136de7d7f7
Add storage_dir config field
...
On the [storage] section of the tahoe.cfg now there is a field
'storage_dir' where the path to the storage folder can be configured.
2018-03-19 11:20:04 -04: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
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
meejah
49ae2c5eb7
use @implementer instead of implements
...
Also, derive some more things from 'object'
2017-02-27 11:01:30 -07:00
Brian Warner
64e344b03a
introducer.yaml: ascii-fy furls before use
...
This fixes the foolscap-rejects-unicode-furls problem which prevented a
correctly-formatted introducers.yaml from working.
closes ticket:2862
2017-01-08 22:59:51 -08:00
Brian Warner
77fd41b66e
update WUI welcome page with new connection-status info
...
This shows current-connection info, and provides per-hint status details in a
tooltip.
The "Connection" section no longer shows seconds-since-loss when the server
was not connected (previously it showed seconds-since-connect when connected,
and flipped to seconds-since-loss when disconnected). We already have the
"Last RX" column, which is arguably more meaningful (and I can't think of a
good case when these would differ), so we don't really need
seconds-since-loss, and the new ConnectionStatus doesn't track it anyways.
So now the "Connection" timestamp for non-connected servers is just
"N/A" (both the main text and the tooltip). The "Introducers" section was
changed the same way.
This moves the per-server connection timestamp out of the nickname/serverid
box and over into the Connection box. It also right-floats all timestamps,
regardless of which box they're in, which makes them share the box with
connection_status more politely.
Internally, this adds code to create ConnectionStatus objects when necessary.
2016-12-08 16:24:32 -08:00
Brian Warner
6879622894
create-node: avoid introducer.furl=None
...
Previously, "tahoe create-node" without an --introducer= argument would
result in the literal string "None" being written into tahoe.cfg:
[client]
introducer.furl = None
We were using config.get("introducer",""), but that didn't suffice because
the key was actually present: it just had a value of None, which then got
stringified into "None" when writing out tahoe.cfg.
This briefly caused test/cli/test_create to fail, as the startup code tried
to parse "None" as a FURL. This only happened against a development version
of Foolscap which accidentally became sensitive to unparseable FURLs in
started Reconnectors. I fixed that in the final foolscap-0.12.5 release, so
we shouldn't hit this bug, but I wanted to fix it properly in the tahoe-side
source.
2016-12-08 15:37:49 -08:00
meejah
0636d44cc1
add poll-interval config for magic-folder
2016-10-25 12:38:57 -07:00
meejah
ddaa29ce39
refactor/white-space MagicFolder creation
2016-10-25 12:38:57 -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
74dc7194b6
validate_config: improve tests
...
closes ticket:2809
2016-09-06 19:23:51 -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