Merge branch 'pr317'

closes #317

refs ticket:2788
This commit is contained in:
Brian Warner 2016-08-26 13:58:12 -07:00
commit 66fcd6e12a
3 changed files with 10 additions and 6 deletions

View File

@ -377,8 +377,9 @@ class Client(node.Node, pollmixin.PollMixin):
# utilize the loaded static server specifications
for key, server in self.connections_config['servers'].items():
handlers = server.get("transport_handlers")
eventually(self.storage_broker.got_static_announcement,
key, server['announcement'])
key, server['announcement'], handlers)
sb.use_introducer(self.introducer_client)

View File

@ -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)

View File

@ -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)