Commit Graph

9063 Commits

Author SHA1 Message Date
Jean-Paul Calderone
e8b38d8cd6 move some testing helpers into the common module 2019-08-03 06:39:27 -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
4133febad6 news fragment 2019-08-03 06:19:01 -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
07bf8a3b8c Change this helper to reflect the fact that old announcements are irrelevant 2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
624591e412 Change the tests to match against the announcement we need 2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
016e18ac9c news fragment 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
8516459fa3 Python 3 syntax compatibility 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
e825e63590 This returned to being synchronous 2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
deb3109f43 please report all errors 2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
1c68157c1f verify behavior if there is a poorly behaved plugin 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
23e1631259 switch from node to client for config loading
apparently clients are the things with storage
2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
3719a107be Stop putting a useless client section in here
[client] is not a valid common section so this fails if there's validation
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
3bc21e1b72 Re-synchronize the fake with the real implementation 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
9608404b6e Factor plugin helper behavior into its own fixture 2019-08-03 06:19:01 -04:00
Jean-Paul Calderone
25287870ee Add a tool for matching the node key in the announcement
And use it in the recently added test
2019-08-03 06:18:55 -04:00
Jean-Paul Calderone
212f96dfe7 Baseline tests for anonymous storage server announcements 2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
49abfbb62a storage server plugin configuration 2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
a9687259a6 news fragment 2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
0f0ca5598a at least minimally test the other implementation 2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
87b37a7e27 be more data-type-y 2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
1c6433b43b Factor details of the storage announcement out of NativeStorageClient
A separate object can be responsible for the details of each kind of announcement.
2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
8060be556e news fragment 2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
f19b94a43d remove unused import 2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
b737c6f5c5 Use the client config helper to read/test client config 2019-08-03 05:34:21 -04:00
Jean-Paul Calderone
7e17ffb75d Also update the introducer's use of read_config 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
Jean-Paul Calderone
4216bd6ed1 news fragment 2019-08-03 05:33:01 -04:00
Jean-Paul Calderone
de1b488f64 news fragment 2019-08-03 05:33:01 -04:00
Jean-Paul Calderone
2c49c97fcd more unicode literals 2019-08-03 05:33:01 -04:00
Jean-Paul Calderone
8a22764fb1 Combine human_name and id 2019-08-03 05:33:01 -04:00
Jean-Paul Calderone
e10a032fc3 Add the basic plugin interfaces and some documentation 2019-08-03 05:33:01 -04:00
Jean-Paul Calderone
bb385d45f7 teach tox about the new --package option 2019-08-02 18:29:04 -06:00
Jean-Paul Calderone
856b3782ea add a --package option to run-deprecations so we can restrict to our own errors 2019-08-02 18:28:36 -06:00
Jean-Paul Calderone
3d624ec784 news fragment 2019-08-02 18:28:30 -06:00