Skip to content
Snippets Groups Projects
Unverified Commit a6493627 authored by Jean-Paul Calderone's avatar Jean-Paul Calderone Committed by GitHub
Browse files

Merge pull request #84 from PrivateStorageio/82.right-server-type

Fix handling of NativeStorageServer / actual storage server
parents 082682fa ffe789b1
No related branches found
No related tags found
No related merge requests found
...@@ -154,7 +154,11 @@ def renew_leases( ...@@ -154,7 +154,11 @@ def renew_leases(
storage_indexes = yield iter_storage_indexes(visit_assets) storage_indexes = yield iter_storage_indexes(visit_assets)
renewal_secret = secret_holder.get_renewal_secret() renewal_secret = secret_holder.get_renewal_secret()
servers = storage_broker.get_connected_servers() servers = list(
server.get_storage_server()
for server
in storage_broker.get_connected_servers()
)
for server in servers: for server in servers:
# Consider parallelizing this. # Consider parallelizing this.
......
...@@ -28,6 +28,10 @@ from datetime import ( ...@@ -28,6 +28,10 @@ from datetime import (
import attr import attr
from zope.interface import (
implementer,
)
from testtools import ( from testtools import (
TestCase, TestCase,
) )
...@@ -82,6 +86,10 @@ from allmydata.util.hashutil import ( ...@@ -82,6 +86,10 @@ from allmydata.util.hashutil import (
from allmydata.client import ( from allmydata.client import (
SecretHolder, SecretHolder,
) )
from allmydata.interfaces import (
IStorageBroker,
IServer,
)
from ..foolscap import ( from ..foolscap import (
ShareStat, ShareStat,
...@@ -179,11 +187,29 @@ def storage_servers(clocks): ...@@ -179,11 +187,29 @@ def storage_servers(clocks):
clocks, clocks,
dictionaries(storage_indexes(), share_stats()), dictionaries(storage_indexes(), share_stats()),
lease_seeds(), lease_seeds(),
).map(
DummyServer,
) )
@implementer(IServer)
@attr.s
class DummyServer(object):
"""
A partial implementation of a Tahoe-LAFS "native" storage server.
"""
_storage_server = attr.ib()
def get_storage_server(self):
return self._storage_server
@implementer(IStorageBroker)
@attr.s @attr.s
class DummyStorageBroker(object): class DummyStorageBroker(object):
"""
A partial implementation of a Tahoe-LAFS storage broker.
"""
clock = attr.ib() clock = attr.ib()
_storage_servers = attr.ib() _storage_servers = attr.ib()
...@@ -455,7 +481,11 @@ class RenewLeasesTests(TestCase): ...@@ -455,7 +481,11 @@ class RenewLeasesTests(TestCase):
) )
self.assertThat( self.assertThat(
storage_broker.get_connected_servers(), list(
server.get_storage_server()
for server
in storage_broker.get_connected_servers()
),
AllMatch(leases_current( AllMatch(leases_current(
relevant_storage_indexes, relevant_storage_indexes,
get_now(), get_now(),
...@@ -506,7 +536,11 @@ class MaintainLeasesFromRootTests(TestCase): ...@@ -506,7 +536,11 @@ class MaintainLeasesFromRootTests(TestCase):
) )
self.assertThat( self.assertThat(
storage_broker.get_connected_servers(), list(
server.get_storage_server()
for server
in storage_broker.get_connected_servers()
),
AllMatch(leases_current( AllMatch(leases_current(
relevant_storage_indexes, relevant_storage_indexes,
get_now(), get_now(),
...@@ -550,9 +584,9 @@ class MaintainLeasesFromRootTests(TestCase): ...@@ -550,9 +584,9 @@ class MaintainLeasesFromRootTests(TestCase):
expected = [] expected = []
for node in root_node.flatten(): for node in root_node.flatten():
for storage_server in storage_broker.get_connected_servers(): for server in storage_broker.get_connected_servers():
try: try:
stat = storage_server.buckets[node.get_storage_index()] stat = server.get_storage_server().buckets[node.get_storage_index()]
except KeyError: except KeyError:
continue continue
else: else:
......
...@@ -52,6 +52,7 @@ from testtools.content import ( ...@@ -52,6 +52,7 @@ from testtools.content import (
) )
from hypothesis import ( from hypothesis import (
given, given,
settings,
) )
from hypothesis.strategies import ( from hypothesis.strategies import (
just, just,
...@@ -478,6 +479,9 @@ class LeaseMaintenanceServiceTests(TestCase): ...@@ -478,6 +479,9 @@ class LeaseMaintenanceServiceTests(TestCase):
# of those at the right time. :/ # of those at the right time. :/
tempfile.tempdir = original_tempdir tempfile.tempdir = original_tempdir
@settings(
deadline=None,
)
@given( @given(
tahoe_configs_with_dummy_redeemer, tahoe_configs_with_dummy_redeemer,
sampled_from([SERVERS_YAML, TWO_SERVERS_YAML]), sampled_from([SERVERS_YAML, TWO_SERVERS_YAML]),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment