mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-06-19 07:48:11 +00:00
more refactoring: move get_all_serverids() and get_nickname_for_serverid() from Client to storage_broker
This commit is contained in:
@ -375,11 +375,6 @@ class Client(node.Node, pollmixin.PollMixin):
|
|||||||
self.log("hotline file missing, shutting down")
|
self.log("hotline file missing, shutting down")
|
||||||
reactor.stop()
|
reactor.stop()
|
||||||
|
|
||||||
def get_all_serverids(self):
|
|
||||||
return self.storage_broker.get_all_serverids()
|
|
||||||
def get_nickname_for_serverid(self, serverid):
|
|
||||||
return self.storage_broker.get_nickname_for_serverid(serverid)
|
|
||||||
|
|
||||||
def get_encoding_parameters(self):
|
def get_encoding_parameters(self):
|
||||||
return self.DEFAULT_ENCODING_PARAMETERS
|
return self.DEFAULT_ENCODING_PARAMETERS
|
||||||
|
|
||||||
@ -400,7 +395,7 @@ class Client(node.Node, pollmixin.PollMixin):
|
|||||||
temporary test network and need to know when it is safe to proceed
|
temporary test network and need to know when it is safe to proceed
|
||||||
with an upload or download."""
|
with an upload or download."""
|
||||||
def _check():
|
def _check():
|
||||||
current_clients = list(self.get_all_serverids())
|
current_clients = list(self.storage_broker.get_all_serverids())
|
||||||
return len(current_clients) >= num_clients
|
return len(current_clients) >= num_clients
|
||||||
d = self.poll(_check, 0.5)
|
d = self.poll(_check, 0.5)
|
||||||
d.addCallback(lambda res: None)
|
d.addCallback(lambda res: None)
|
||||||
|
@ -108,6 +108,8 @@ class NoNetworkStorageBroker:
|
|||||||
def get_servers(self, key):
|
def get_servers(self, key):
|
||||||
return sorted(self.client._servers,
|
return sorted(self.client._servers,
|
||||||
key=lambda x: sha.new(key+x[0]).digest())
|
key=lambda x: sha.new(key+x[0]).digest())
|
||||||
|
def get_nickname_for_serverid(self, serverid):
|
||||||
|
return None
|
||||||
|
|
||||||
class NoNetworkClient(Client):
|
class NoNetworkClient(Client):
|
||||||
|
|
||||||
@ -140,9 +142,6 @@ class NoNetworkClient(Client):
|
|||||||
def get_servers(self, service_name):
|
def get_servers(self, service_name):
|
||||||
return self._servers
|
return self._servers
|
||||||
|
|
||||||
def get_nickname_for_serverid(self, serverid):
|
|
||||||
return None
|
|
||||||
|
|
||||||
class SimpleStats:
|
class SimpleStats:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.counters = {}
|
self.counters = {}
|
||||||
|
@ -7,8 +7,6 @@ from allmydata.storage_client import StorageFarmBroker, NativeStorageClient
|
|||||||
from common_web import WebRenderingMixin
|
from common_web import WebRenderingMixin
|
||||||
|
|
||||||
class FakeClient:
|
class FakeClient:
|
||||||
def get_nickname_for_serverid(self, serverid):
|
|
||||||
return self.storage_broker.get_nickname_for_serverid(serverid)
|
|
||||||
def get_storage_broker(self):
|
def get_storage_broker(self):
|
||||||
return self.storage_broker
|
return self.storage_broker
|
||||||
|
|
||||||
|
@ -179,8 +179,6 @@ class FakeClient:
|
|||||||
fss = FakeStorageServer(peerid, self._storage)
|
fss = FakeStorageServer(peerid, self._storage)
|
||||||
self.storage_broker.add_server(peerid, fss)
|
self.storage_broker.add_server(peerid, fss)
|
||||||
|
|
||||||
def get_all_serverids(self):
|
|
||||||
return self.storage_broker.get_all_serverids()
|
|
||||||
def get_storage_broker(self):
|
def get_storage_broker(self):
|
||||||
return self.storage_broker
|
return self.storage_broker
|
||||||
def debug_break_connection(self, peerid):
|
def debug_break_connection(self, peerid):
|
||||||
@ -275,7 +273,8 @@ class Filenode(unittest.TestCase, testutil.ShouldFailMixin):
|
|||||||
def _created(n):
|
def _created(n):
|
||||||
self.failUnless(isinstance(n, FastMutableFileNode))
|
self.failUnless(isinstance(n, FastMutableFileNode))
|
||||||
self.failUnlessEqual(n.get_storage_index(), n._storage_index)
|
self.failUnlessEqual(n.get_storage_index(), n._storage_index)
|
||||||
peer0 = sorted(self.client.get_all_serverids())[0]
|
sb = self.client.get_storage_broker()
|
||||||
|
peer0 = sorted(sb.get_all_serverids())[0]
|
||||||
shnums = self.client._storage._peers[peer0].keys()
|
shnums = self.client._storage._peers[peer0].keys()
|
||||||
self.failUnlessEqual(len(shnums), 1)
|
self.failUnlessEqual(len(shnums), 1)
|
||||||
d.addCallback(_created)
|
d.addCallback(_created)
|
||||||
@ -1573,8 +1572,9 @@ class MultipleEncodings(unittest.TestCase):
|
|||||||
places = [2, 2, 3, 2, 1, 1, 1, 2]
|
places = [2, 2, 3, 2, 1, 1, 1, 2]
|
||||||
|
|
||||||
sharemap = {}
|
sharemap = {}
|
||||||
|
sb = self._client.get_storage_broker()
|
||||||
|
|
||||||
for i,peerid in enumerate(self._client.get_all_serverids()):
|
for i,peerid in enumerate(sb.get_all_serverids()):
|
||||||
peerid_s = shortnodeid_b2a(peerid)
|
peerid_s = shortnodeid_b2a(peerid)
|
||||||
for shnum in self._shares1.get(peerid, {}):
|
for shnum in self._shares1.get(peerid, {}):
|
||||||
if shnum < len(places):
|
if shnum < len(places):
|
||||||
@ -1958,8 +1958,9 @@ class Problems(unittest.TestCase, testutil.ShouldFailMixin):
|
|||||||
# not prevent an update from succeeding either.
|
# not prevent an update from succeeding either.
|
||||||
basedir = os.path.join("mutable/CollidingWrites/test_bad_server")
|
basedir = os.path.join("mutable/CollidingWrites/test_bad_server")
|
||||||
self.client = LessFakeClient(basedir, 10)
|
self.client = LessFakeClient(basedir, 10)
|
||||||
|
sb = self.client.get_storage_broker()
|
||||||
|
|
||||||
peerids = list(self.client.get_all_serverids())
|
peerids = list(sb.get_all_serverids())
|
||||||
self.client.debug_break_connection(peerids[0])
|
self.client.debug_break_connection(peerids[0])
|
||||||
|
|
||||||
d = self.client.create_mutable_file("contents 1")
|
d = self.client.create_mutable_file("contents 1")
|
||||||
@ -1982,7 +1983,8 @@ class Problems(unittest.TestCase, testutil.ShouldFailMixin):
|
|||||||
# Break all servers: the publish should fail
|
# Break all servers: the publish should fail
|
||||||
basedir = os.path.join("mutable/CollidingWrites/publish_all_servers_bad")
|
basedir = os.path.join("mutable/CollidingWrites/publish_all_servers_bad")
|
||||||
self.client = LessFakeClient(basedir, 20)
|
self.client = LessFakeClient(basedir, 20)
|
||||||
for peerid in self.client.get_all_serverids():
|
sb = self.client.get_storage_broker()
|
||||||
|
for peerid in sb.get_all_serverids():
|
||||||
self.client.debug_break_connection(peerid)
|
self.client.debug_break_connection(peerid)
|
||||||
d = self.shouldFail(NotEnoughServersError,
|
d = self.shouldFail(NotEnoughServersError,
|
||||||
"test_publish_all_servers_bad",
|
"test_publish_all_servers_bad",
|
||||||
|
@ -72,7 +72,7 @@ class SystemTest(SystemTestMixin, unittest.TestCase):
|
|||||||
def _check(extra_node):
|
def _check(extra_node):
|
||||||
self.extra_node = extra_node
|
self.extra_node = extra_node
|
||||||
for c in self.clients:
|
for c in self.clients:
|
||||||
all_peerids = list(c.get_all_serverids())
|
all_peerids = list(c.get_storage_broker().get_all_serverids())
|
||||||
self.failUnlessEqual(len(all_peerids), self.numclients+1)
|
self.failUnlessEqual(len(all_peerids), self.numclients+1)
|
||||||
sb = c.storage_broker
|
sb = c.storage_broker
|
||||||
permuted_peers = list(sb.get_servers("a"))
|
permuted_peers = list(sb.get_servers("a"))
|
||||||
@ -110,7 +110,7 @@ class SystemTest(SystemTestMixin, unittest.TestCase):
|
|||||||
d = self.set_up_nodes()
|
d = self.set_up_nodes()
|
||||||
def _check_connections(res):
|
def _check_connections(res):
|
||||||
for c in self.clients:
|
for c in self.clients:
|
||||||
all_peerids = list(c.get_all_serverids())
|
all_peerids = list(c.get_storage_broker().get_all_serverids())
|
||||||
self.failUnlessEqual(len(all_peerids), self.numclients)
|
self.failUnlessEqual(len(all_peerids), self.numclients)
|
||||||
sb = c.storage_broker
|
sb = c.storage_broker
|
||||||
permuted_peers = list(sb.get_servers("a"))
|
permuted_peers = list(sb.get_servers("a"))
|
||||||
|
@ -65,9 +65,6 @@ class FakeClient(service.MultiService):
|
|||||||
def connected_to_introducer(self):
|
def connected_to_introducer(self):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_nickname_for_serverid(self, serverid):
|
|
||||||
return u"John Doe"
|
|
||||||
|
|
||||||
storage_broker = StorageFarmBroker()
|
storage_broker = StorageFarmBroker()
|
||||||
def get_storage_broker(self):
|
def get_storage_broker(self):
|
||||||
return self.storage_broker
|
return self.storage_broker
|
||||||
|
@ -80,6 +80,7 @@ class ResultsBase:
|
|||||||
def _render_results(self, ctx, cr):
|
def _render_results(self, ctx, cr):
|
||||||
assert ICheckResults(cr)
|
assert ICheckResults(cr)
|
||||||
c = self.client
|
c = self.client
|
||||||
|
sb = c.get_storage_broker()
|
||||||
data = cr.get_data()
|
data = cr.get_data()
|
||||||
r = []
|
r = []
|
||||||
def add(name, value):
|
def add(name, value):
|
||||||
@ -95,7 +96,7 @@ class ResultsBase:
|
|||||||
if data["list-corrupt-shares"]:
|
if data["list-corrupt-shares"]:
|
||||||
badsharemap = []
|
badsharemap = []
|
||||||
for (serverid, si, shnum) in data["list-corrupt-shares"]:
|
for (serverid, si, shnum) in data["list-corrupt-shares"]:
|
||||||
nickname = c.get_nickname_for_serverid(serverid)
|
nickname = sb.get_nickname_for_serverid(serverid)
|
||||||
badsharemap.append(T.tr[T.td["sh#%d" % shnum],
|
badsharemap.append(T.tr[T.td["sh#%d" % shnum],
|
||||||
T.td[T.div(class_="nickname")[nickname],
|
T.td[T.div(class_="nickname")[nickname],
|
||||||
T.div(class_="nodeid")[T.tt[base32.b2a(serverid)]]],
|
T.div(class_="nodeid")[T.tt[base32.b2a(serverid)]]],
|
||||||
@ -123,7 +124,7 @@ class ResultsBase:
|
|||||||
shareid_s = ""
|
shareid_s = ""
|
||||||
if i == 0:
|
if i == 0:
|
||||||
shareid_s = shareid
|
shareid_s = shareid
|
||||||
nickname = c.get_nickname_for_serverid(serverid)
|
nickname = sb.get_nickname_for_serverid(serverid)
|
||||||
sharemap.append(T.tr[T.td[shareid_s],
|
sharemap.append(T.tr[T.td[shareid_s],
|
||||||
T.td[T.div(class_="nickname")[nickname],
|
T.td[T.div(class_="nickname")[nickname],
|
||||||
T.div(class_="nodeid")[T.tt[base32.b2a(serverid)]]]
|
T.div(class_="nodeid")[T.tt[base32.b2a(serverid)]]]
|
||||||
@ -145,7 +146,7 @@ class ResultsBase:
|
|||||||
num_shares_left = sum([len(shares) for shares in servers.values()])
|
num_shares_left = sum([len(shares) for shares in servers.values()])
|
||||||
servermap = []
|
servermap = []
|
||||||
for serverid in permuted_peer_ids:
|
for serverid in permuted_peer_ids:
|
||||||
nickname = c.get_nickname_for_serverid(serverid)
|
nickname = sb.get_nickname_for_serverid(serverid)
|
||||||
shareids = servers.get(serverid, [])
|
shareids = servers.get(serverid, [])
|
||||||
shareids.reverse()
|
shareids.reverse()
|
||||||
shareids_s = [ T.tt[shareid, " "] for shareid in sorted(shareids) ]
|
shareids_s = [ T.tt[shareid, " "] for shareid in sorted(shareids) ]
|
||||||
@ -419,7 +420,8 @@ class DeepCheckResults(rend.Page, ResultsBase, ReloadMixin):
|
|||||||
def render_server_problem(self, ctx, data):
|
def render_server_problem(self, ctx, data):
|
||||||
serverid = data
|
serverid = data
|
||||||
data = [idlib.shortnodeid_b2a(serverid)]
|
data = [idlib.shortnodeid_b2a(serverid)]
|
||||||
nickname = self.client.get_nickname_for_serverid(serverid)
|
sb = self.client.get_storage_broker()
|
||||||
|
nickname = sb.get_nickname_for_serverid(serverid)
|
||||||
if nickname:
|
if nickname:
|
||||||
data.append(" (%s)" % self._html(nickname))
|
data.append(" (%s)" % self._html(nickname))
|
||||||
return ctx.tag[data]
|
return ctx.tag[data]
|
||||||
@ -433,7 +435,8 @@ class DeepCheckResults(rend.Page, ResultsBase, ReloadMixin):
|
|||||||
return self.monitor.get_status().get_corrupt_shares()
|
return self.monitor.get_status().get_corrupt_shares()
|
||||||
def render_share_problem(self, ctx, data):
|
def render_share_problem(self, ctx, data):
|
||||||
serverid, storage_index, sharenum = data
|
serverid, storage_index, sharenum = data
|
||||||
nickname = self.client.get_nickname_for_serverid(serverid)
|
sb = self.client.get_storage_broker()
|
||||||
|
nickname = sb.get_nickname_for_serverid(serverid)
|
||||||
ctx.fillSlots("serverid", idlib.shortnodeid_b2a(serverid))
|
ctx.fillSlots("serverid", idlib.shortnodeid_b2a(serverid))
|
||||||
if nickname:
|
if nickname:
|
||||||
ctx.fillSlots("nickname", self._html(nickname))
|
ctx.fillSlots("nickname", self._html(nickname))
|
||||||
|
Reference in New Issue
Block a user