mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-06-19 15:53:48 +00:00
Make StorageFarmBroker use specified or default handler
This commit is contained in:
@ -377,8 +377,11 @@ class Client(node.Node, pollmixin.PollMixin):
|
|||||||
|
|
||||||
# utilize the loaded static server specifications
|
# utilize the loaded static server specifications
|
||||||
for key, server in self.connections_config['servers'].items():
|
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,
|
eventually(self.storage_broker.got_static_announcement,
|
||||||
key, server['announcement'])
|
key, server['announcement'], handlers)
|
||||||
|
|
||||||
sb.use_introducer(self.introducer_client)
|
sb.use_introducer(self.introducer_client)
|
||||||
|
|
||||||
|
@ -134,16 +134,19 @@ class StorageFarmBroker(service.MultiService):
|
|||||||
remaining.append( (threshold, d) )
|
remaining.append( (threshold, d) )
|
||||||
self._threshold_listeners = remaining
|
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"])
|
server_id = get_serverid_from_furl(ann["anonymous-storage-FURL"])
|
||||||
assert server_id not in self.static_servers # XXX
|
assert server_id not in self.static_servers # XXX
|
||||||
self.static_servers.append(server_id)
|
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(isinstance(key_s, str), key_s)
|
||||||
precondition(key_s.startswith("v0-"), key_s)
|
precondition(key_s.startswith("v0-"), key_s)
|
||||||
precondition(ann["service-name"] == "storage", ann["service-name"])
|
precondition(ann["service-name"] == "storage", ann["service-name"])
|
||||||
|
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 = NativeStorageServer(key_s, ann, self._tub_options, self._tub_handlers)
|
||||||
s.on_status_changed(lambda _: self._got_connection())
|
s.on_status_changed(lambda _: self._got_connection())
|
||||||
server_id = s.get_serverid()
|
server_id = s.get_serverid()
|
||||||
|
@ -47,7 +47,7 @@ class TestStorageFarmBroker(unittest.TestCase):
|
|||||||
"anonymous-storage-FURL": "pb://{}@nowhere/fake".format(base32.b2a(str(1))),
|
"anonymous-storage-FURL": "pb://{}@nowhere/fake".format(base32.b2a(str(1))),
|
||||||
"permutation-seed-base32": "aaaaaaaaaaaaaaaaaaaaaaaa",
|
"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(len(broker.static_servers), 1)
|
||||||
self.failUnlessEqual(broker.servers['1'].announcement, ann)
|
self.failUnlessEqual(broker.servers['1'].announcement, ann)
|
||||||
self.failUnlessEqual(broker.servers['1'].key_s, key_s)
|
self.failUnlessEqual(broker.servers['1'].key_s, key_s)
|
||||||
|
Reference in New Issue
Block a user