mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-04-08 03:14:21 +00:00
Make StorageFarmBroker use specified or default handler
This commit is contained in:
parent
de61cd260c
commit
140c9a92cd
@ -377,8 +377,11 @@ class Client(node.Node, pollmixin.PollMixin):
|
||||
|
||||
# utilize the loaded static server specifications
|
||||
for key, server in self.connections_config['servers'].items():
|
||||
handlers = None
|
||||
if server.haskey("transport_handlers"):
|
||||
handlers = server["transport_handlers"]
|
||||
eventually(self.storage_broker.got_static_announcement,
|
||||
key, server['announcement'])
|
||||
key, server['announcement'], handlers)
|
||||
|
||||
sb.use_introducer(self.introducer_client)
|
||||
|
||||
|
@ -134,17 +134,20 @@ class StorageFarmBroker(service.MultiService):
|
||||
remaining.append( (threshold, d) )
|
||||
self._threshold_listeners = remaining
|
||||
|
||||
def got_static_announcement(self, key_s, ann):
|
||||
def got_static_announcement(self, key_s, ann, handlers):
|
||||
server_id = get_serverid_from_furl(ann["anonymous-storage-FURL"])
|
||||
assert server_id not in self.static_servers # XXX
|
||||
self.static_servers.append(server_id)
|
||||
self._got_announcement(key_s, ann)
|
||||
self._got_announcement(key_s, ann, handlers=handlers)
|
||||
|
||||
def _got_announcement(self, key_s, ann):
|
||||
def _got_announcement(self, key_s, ann, handlers=None):
|
||||
precondition(isinstance(key_s, str), key_s)
|
||||
precondition(key_s.startswith("v0-"), key_s)
|
||||
precondition(ann["service-name"] == "storage", ann["service-name"])
|
||||
s = NativeStorageServer(key_s, ann, self._tub_options, self._tub_handlers)
|
||||
if handlers is not None:
|
||||
s = NativeStorageServer(key_s, ann, self._tub_options, handlers)
|
||||
else:
|
||||
s = NativeStorageServer(key_s, ann, self._tub_options, self._tub_handlers)
|
||||
s.on_status_changed(lambda _: self._got_connection())
|
||||
server_id = s.get_serverid()
|
||||
old = self.servers.get(server_id)
|
||||
|
@ -47,7 +47,7 @@ class TestStorageFarmBroker(unittest.TestCase):
|
||||
"anonymous-storage-FURL": "pb://{}@nowhere/fake".format(base32.b2a(str(1))),
|
||||
"permutation-seed-base32": "aaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
}
|
||||
broker.got_static_announcement(key_s, ann)
|
||||
broker.got_static_announcement(key_s, ann, None)
|
||||
self.failUnlessEqual(len(broker.static_servers), 1)
|
||||
self.failUnlessEqual(broker.servers['1'].announcement, ann)
|
||||
self.failUnlessEqual(broker.servers['1'].key_s, key_s)
|
||||
|
Loading…
x
Reference in New Issue
Block a user