Commit Graph

9076 Commits

Author SHA1 Message Date
Jean-Paul Calderone
166c5ab53f there is only a NativeStorageServer
though it is used by the client
2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
c752fc76f1 pass the new config to StorageFarmBroker 2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
48b8bd6eb0 pass config down and use it to make the client plugin 2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
3c3ebc368a note about some logging we should do 2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
2e0e9f0cad remove duplication of NativeStorageServer instantiation 2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
bbd1c706e4 teach StorageConfigClient to load storage client plugins 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
6e3cd2d91c Reflect announcement changes from ticket:3119 2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
f3218e6f62 basic positive path test 2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
09acde41b9 refactor test_ignored_non_enabled_plugin to support more tests 2019-08-03 06:39:31 -04:00
Jean-Paul Calderone
7e9e380912 adjust to the changed parameter name 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
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