mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-20 17:52:50 +00:00
Make more of the unittests pass again with the StorageServer factoring.
This commit is contained in:
parent
439e5f2998
commit
90f8480cf0
@ -91,4 +91,4 @@ class HTTPServer(object):
|
||||
|
||||
@_authorized_route(_app, "/v1/version", methods=["GET"])
|
||||
def version(self, request, authorization):
|
||||
return self._cbor(request, self._storage_server.remote_get_version())
|
||||
return self._cbor(request, self._storage_server.get_version())
|
||||
|
@ -64,6 +64,7 @@ class StorageServer(service.MultiService):
|
||||
"""
|
||||
Implement the business logic for the storage server.
|
||||
"""
|
||||
name = "storage"
|
||||
LeaseCheckerClass = LeaseCheckingCrawler
|
||||
|
||||
def __init__(self, storedir, nodeid, reserved_space=0,
|
||||
|
@ -50,7 +50,9 @@ from allmydata.util.assertutil import _assert
|
||||
|
||||
from allmydata import uri as tahoe_uri
|
||||
from allmydata.client import _Client
|
||||
from allmydata.storage.server import StorageServer, storage_index_to_dir
|
||||
from allmydata.storage.server import (
|
||||
StorageServer, storage_index_to_dir, FoolscapStorageServer,
|
||||
)
|
||||
from allmydata.util import fileutil, idlib, hashutil
|
||||
from allmydata.util.hashutil import permute_server_hash
|
||||
from allmydata.util.fileutil import abspath_expanduser_unicode
|
||||
@ -417,7 +419,7 @@ class NoNetworkGrid(service.MultiService):
|
||||
ss.setServiceParent(middleman)
|
||||
serverid = ss.my_nodeid
|
||||
self.servers_by_number[i] = ss
|
||||
wrapper = wrap_storage_server(ss)
|
||||
wrapper = wrap_storage_server(FoolscapStorageServer(ss))
|
||||
self.wrappers_by_id[serverid] = wrapper
|
||||
self.proxies_by_id[serverid] = NoNetworkServer(serverid, wrapper)
|
||||
self.rebuild_serverlist()
|
||||
|
@ -773,13 +773,13 @@ class AddLease(GridTestMixin, unittest.TestCase):
|
||||
d.addCallback(_check_cr, "mutable-normal")
|
||||
|
||||
really_did_break = []
|
||||
# now break the server's remote_add_lease call
|
||||
# now break the server's add_lease call
|
||||
def _break_add_lease(ign):
|
||||
def broken_add_lease(*args, **kwargs):
|
||||
really_did_break.append(1)
|
||||
raise KeyError("intentional failure, should be ignored")
|
||||
assert self.g.servers_by_number[0].remote_add_lease
|
||||
self.g.servers_by_number[0].remote_add_lease = broken_add_lease
|
||||
assert self.g.servers_by_number[0].add_lease
|
||||
self.g.servers_by_number[0].add_lease = broken_add_lease
|
||||
d.addCallback(_break_add_lease)
|
||||
|
||||
# and confirm that the files still look healthy
|
||||
|
@ -601,7 +601,7 @@ class Basic(testutil.ReallyEqualMixin, unittest.TestCase):
|
||||
"enabled = true\n")
|
||||
c = yield client.create_client(basedir)
|
||||
ss = c.getServiceNamed("storage")
|
||||
verdict = ss.remote_get_version()
|
||||
verdict = ss.get_version()
|
||||
self.failUnlessReallyEqual(verdict[b"application-version"],
|
||||
allmydata.__full_version__.encode("ascii"))
|
||||
self.failIfEqual(str(allmydata.__version__), "unknown")
|
||||
|
@ -27,7 +27,7 @@ from allmydata.util import fileutil, hashutil, pollmixin
|
||||
from allmydata.storage.server import StorageServer, si_b2a
|
||||
from allmydata.storage.crawler import ShareCrawler, TimeSliceExceeded
|
||||
|
||||
from allmydata.test.common_util import StallMixin, FakeCanary
|
||||
from allmydata.test.common_util import StallMixin
|
||||
|
||||
class BucketEnumeratingCrawler(ShareCrawler):
|
||||
cpu_slice = 500 # make sure it can complete in a single slice
|
||||
@ -124,12 +124,12 @@ class Basic(unittest.TestCase, StallMixin, pollmixin.PollMixin):
|
||||
def write(self, i, ss, serverid, tail=0):
|
||||
si = self.si(i)
|
||||
si = si[:-1] + bytes(bytearray((tail,)))
|
||||
had,made = ss.remote_allocate_buckets(si,
|
||||
self.rs(i, serverid),
|
||||
self.cs(i, serverid),
|
||||
set([0]), 99, FakeCanary())
|
||||
made[0].remote_write(0, b"data")
|
||||
made[0].remote_close()
|
||||
had,made = ss.allocate_buckets(si,
|
||||
self.rs(i, serverid),
|
||||
self.cs(i, serverid),
|
||||
set([0]), 99)
|
||||
made[0].write(0, b"data")
|
||||
made[0].close()
|
||||
return si_b2a(si)
|
||||
|
||||
def test_immediate(self):
|
||||
|
@ -39,6 +39,7 @@ from allmydata.crypto import aes
|
||||
from allmydata.storage.server import (
|
||||
si_b2a,
|
||||
StorageServer,
|
||||
FoolscapStorageServer,
|
||||
)
|
||||
from allmydata.storage_client import StorageFarmBroker
|
||||
from allmydata.immutable.layout import (
|
||||
@ -427,7 +428,7 @@ class CHKCheckerAndUEBFetcherTests(SyncTestCase):
|
||||
"""
|
||||
storage_index = b"a" * 16
|
||||
serverid = b"b" * 20
|
||||
storage = StorageServer(self.mktemp(), serverid)
|
||||
storage = FoolscapStorageServer(StorageServer(self.mktemp(), serverid))
|
||||
rref_without_ueb = LocalWrapper(storage, fireNow)
|
||||
yield write_bad_share(rref_without_ueb, storage_index)
|
||||
server_without_ueb = NoNetworkServer(serverid, rref_without_ueb)
|
||||
@ -451,7 +452,7 @@ class CHKCheckerAndUEBFetcherTests(SyncTestCase):
|
||||
"""
|
||||
storage_index = b"a" * 16
|
||||
serverid = b"b" * 20
|
||||
storage = StorageServer(self.mktemp(), serverid)
|
||||
storage = FoolscapStorageServer(StorageServer(self.mktemp(), serverid))
|
||||
rref_with_ueb = LocalWrapper(storage, fireNow)
|
||||
ueb = {
|
||||
"needed_shares": 2,
|
||||
@ -487,7 +488,7 @@ class CHKCheckerAndUEBFetcherTests(SyncTestCase):
|
||||
in [b"b", b"c"]
|
||||
)
|
||||
storages = list(
|
||||
StorageServer(self.mktemp(), serverid)
|
||||
FoolscapStorageServer(StorageServer(self.mktemp(), serverid))
|
||||
for serverid
|
||||
in serverids
|
||||
)
|
||||
|
@ -73,7 +73,7 @@ class HungServerDownloadTest(GridTestMixin, ShouldFailMixin, PollMixin,
|
||||
def _copy_share(self, share, to_server):
|
||||
(sharenum, sharefile) = share
|
||||
(id, ss) = to_server
|
||||
shares_dir = os.path.join(ss.original.storedir, "shares")
|
||||
shares_dir = os.path.join(ss.original._server.storedir, "shares")
|
||||
si = uri.from_string(self.uri).get_storage_index()
|
||||
si_dir = os.path.join(shares_dir, storage_index_to_dir(si))
|
||||
if not os.path.exists(si_dir):
|
||||
@ -82,7 +82,7 @@ class HungServerDownloadTest(GridTestMixin, ShouldFailMixin, PollMixin,
|
||||
shutil.copy(sharefile, new_sharefile)
|
||||
self.shares = self.find_uri_shares(self.uri)
|
||||
# Make sure that the storage server has the share.
|
||||
self.failUnless((sharenum, ss.original.my_nodeid, new_sharefile)
|
||||
self.failUnless((sharenum, ss.original._server.my_nodeid, new_sharefile)
|
||||
in self.shares)
|
||||
|
||||
def _corrupt_share(self, share, corruptor_func):
|
||||
|
@ -65,5 +65,5 @@ class HTTPTests(TestCase):
|
||||
The client can return the version.
|
||||
"""
|
||||
version = yield self.client.get_version()
|
||||
expected_version = self.storage_server.remote_get_version()
|
||||
expected_version = self.storage_server.get_version()
|
||||
self.assertEqual(version, expected_version)
|
||||
|
Loading…
x
Reference in New Issue
Block a user