mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-21 18:06:46 +00:00
happinessutil.py: finally rename merge_peers to merge_servers
This commit is contained in:
parent
13d284b087
commit
ee14f2ad67
@ -14,7 +14,7 @@ from allmydata.storage.server import si_b2a
|
||||
from allmydata.immutable import encode
|
||||
from allmydata.util import base32, dictutil, idlib, log, mathutil
|
||||
from allmydata.util.happinessutil import servers_of_happiness, \
|
||||
shares_by_server, merge_peers, \
|
||||
shares_by_server, merge_servers, \
|
||||
failure_message
|
||||
from allmydata.util.assertutil import precondition
|
||||
from allmydata.util.rrefutil import add_version_to_remote_reference
|
||||
@ -324,7 +324,7 @@ class Tahoe2ServerSelector(log.PrefixingLogMixin):
|
||||
|
||||
def _loop(self):
|
||||
if not self.homeless_shares:
|
||||
merged = merge_peers(self.preexisting_shares, self.use_trackers)
|
||||
merged = merge_servers(self.preexisting_shares, self.use_trackers)
|
||||
effective_happiness = servers_of_happiness(merged)
|
||||
if self.servers_of_happiness <= effective_happiness:
|
||||
msg = ("server selection successful for %s: %s: pretty_print_merged: %s, "
|
||||
@ -436,7 +436,7 @@ class Tahoe2ServerSelector(log.PrefixingLogMixin):
|
||||
return self._loop()
|
||||
else:
|
||||
# no more servers. If we haven't placed enough shares, we fail.
|
||||
merged = merge_peers(self.preexisting_shares, self.use_trackers)
|
||||
merged = merge_servers(self.preexisting_shares, self.use_trackers)
|
||||
effective_happiness = servers_of_happiness(merged)
|
||||
if effective_happiness < self.servers_of_happiness:
|
||||
msg = failure_message(len(self.serverids_with_shares),
|
||||
|
@ -17,7 +17,7 @@ from allmydata.util.deferredutil import DeferredListShouldSucceed
|
||||
from allmydata.test.no_network import GridTestMixin
|
||||
from allmydata.test.common_util import ShouldFailMixin
|
||||
from allmydata.util.happinessutil import servers_of_happiness, \
|
||||
shares_by_server, merge_peers
|
||||
shares_by_server, merge_servers
|
||||
from allmydata.storage_client import StorageFarmBroker
|
||||
from allmydata.storage.server import storage_index_to_dir
|
||||
|
||||
@ -1347,8 +1347,8 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
return d
|
||||
|
||||
|
||||
def test_merge_peers(self):
|
||||
# merge_peers merges a list of upload_servers and a dict of
|
||||
def test_merge_servers(self):
|
||||
# merge_servers merges a list of upload_servers and a dict of
|
||||
# shareid -> serverid mappings.
|
||||
shares = {
|
||||
1 : set(["server1"]),
|
||||
@ -1359,7 +1359,7 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
}
|
||||
# if not provided with a upload_servers argument, it should just
|
||||
# return the first argument unchanged.
|
||||
self.failUnlessEqual(shares, merge_peers(shares, set([])))
|
||||
self.failUnlessEqual(shares, merge_servers(shares, set([])))
|
||||
trackers = []
|
||||
for (i, server) in [(i, "server%d" % i) for i in xrange(5, 9)]:
|
||||
t = FakeServerTracker(server, [i])
|
||||
@ -1374,7 +1374,7 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
7 : set(["server7"]),
|
||||
8 : set(["server8"]),
|
||||
}
|
||||
self.failUnlessEqual(expected, merge_peers(shares, set(trackers)))
|
||||
self.failUnlessEqual(expected, merge_servers(shares, set(trackers)))
|
||||
shares2 = {}
|
||||
expected = {
|
||||
5 : set(["server5"]),
|
||||
@ -1382,7 +1382,7 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
7 : set(["server7"]),
|
||||
8 : set(["server8"]),
|
||||
}
|
||||
self.failUnlessEqual(expected, merge_peers(shares2, set(trackers)))
|
||||
self.failUnlessEqual(expected, merge_servers(shares2, set(trackers)))
|
||||
shares3 = {}
|
||||
trackers = []
|
||||
expected = {}
|
||||
@ -1391,7 +1391,7 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
t = FakeServerTracker(server, [i])
|
||||
trackers.append(t)
|
||||
expected[i] = set([server])
|
||||
self.failUnlessEqual(expected, merge_peers(shares3, set(trackers)))
|
||||
self.failUnlessEqual(expected, merge_servers(shares3, set(trackers)))
|
||||
|
||||
|
||||
def test_servers_of_happiness_utility_function(self):
|
||||
@ -1417,7 +1417,7 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
# should be 3 instead of 4.
|
||||
happy = servers_of_happiness(test1)
|
||||
self.failUnlessEqual(3, happy)
|
||||
# The second argument of merge_peers should be a set of objects with
|
||||
# The second argument of merge_servers should be a set of objects with
|
||||
# serverid and buckets as attributes. In actual use, these will be
|
||||
# ServerTracker instances, but for testing it is fine to make a
|
||||
# FakeServerTracker whose job is to hold those instance variables to
|
||||
@ -1430,7 +1430,7 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
# = 3. Since there isn't any overlap between the shnum ->
|
||||
# set([serverid]) correspondences in test1 and those in trackers,
|
||||
# the result here should be 7.
|
||||
test2 = merge_peers(test1, set(trackers))
|
||||
test2 = merge_servers(test1, set(trackers))
|
||||
happy = servers_of_happiness(test2)
|
||||
self.failUnlessEqual(7, happy)
|
||||
# Now add an overlapping server to trackers. This is redundant,
|
||||
@ -1438,7 +1438,7 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
# to change.
|
||||
t = FakeServerTracker("server1", [1])
|
||||
trackers.append(t)
|
||||
test2 = merge_peers(test1, set(trackers))
|
||||
test2 = merge_servers(test1, set(trackers))
|
||||
happy = servers_of_happiness(test2)
|
||||
self.failUnlessEqual(7, happy)
|
||||
test = {}
|
||||
@ -1469,7 +1469,7 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
|
||||
#
|
||||
# and, since there are 5 edges in this matching, it should
|
||||
# return 5.
|
||||
test2 = merge_peers(test, set(trackers))
|
||||
test2 = merge_servers(test, set(trackers))
|
||||
happy = servers_of_happiness(test2)
|
||||
self.failUnlessEqual(5, happy)
|
||||
# Zooko's first puzzle:
|
||||
|
@ -54,13 +54,13 @@ def shares_by_server(servermap):
|
||||
ret.setdefault(peerid, set()).add(shareid)
|
||||
return ret
|
||||
|
||||
def merge_peers(servermap, upload_trackers=None):
|
||||
def merge_servers(servermap, upload_trackers=None):
|
||||
"""
|
||||
I accept a dict of shareid -> set(peerid) mappings, and optionally a
|
||||
set of PeerTrackers. If no set of PeerTrackers is provided, I return
|
||||
I accept a dict of shareid -> set(serverid) mappings, and optionally a
|
||||
set of ServerTrackers. If no set of ServerTrackers is provided, I return
|
||||
my first argument unmodified. Otherwise, I update a copy of my first
|
||||
argument to include the shareid -> peerid mappings implied in the
|
||||
set of PeerTrackers, returning the resulting dict.
|
||||
argument to include the shareid -> serverid mappings implied in the
|
||||
set of ServerTrackers, returning the resulting dict.
|
||||
"""
|
||||
# Since we mutate servermap, and are called outside of a
|
||||
# context where it is okay to do that, make a copy of servermap and
|
||||
|
Loading…
x
Reference in New Issue
Block a user