mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-06-18 23:38:18 +00:00
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.
This commit is contained in:
@ -353,9 +353,9 @@ class Client(node.Node, pollmixin.PollMixin):
|
||||
ps = self.get_config("client", "peers.preferred", "").split(",")
|
||||
preferred_peers = tuple([p.strip() for p in ps if p != ""])
|
||||
sb = storage_client.StorageFarmBroker(permute_peers=True,
|
||||
tub_maker=self._create_tub,
|
||||
preferred_peers=preferred_peers,
|
||||
tub_options=self.tub_options,
|
||||
tub_handlers=self.tub_handlers)
|
||||
)
|
||||
self.storage_broker = sb
|
||||
sb.setServiceParent(self)
|
||||
|
||||
|
Reference in New Issue
Block a user