mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-20 13:33:09 +00:00
All of test_storage passes on Python 3.
This commit is contained in:
parent
2b37da9ca0
commit
1cfe58a52d
@ -1,3 +1,5 @@
|
|||||||
|
from future.utils import bytes_to_native_str
|
||||||
|
|
||||||
import os, stat, struct, time
|
import os, stat, struct, time
|
||||||
|
|
||||||
from foolscap.api import Referenceable
|
from foolscap.api import Referenceable
|
||||||
@ -298,7 +300,9 @@ class BucketReader(Referenceable):
|
|||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<%s %s %s>" % (self.__class__.__name__,
|
return "<%s %s %s>" % (self.__class__.__name__,
|
||||||
base32.b2a(self.storage_index[:8])[:12],
|
bytes_to_native_str(
|
||||||
|
base32.b2a(self.storage_index[:8])[:12]
|
||||||
|
),
|
||||||
self.shnum)
|
self.shnum)
|
||||||
|
|
||||||
def remote_read(self, offset, length):
|
def remote_read(self, offset, length):
|
||||||
@ -309,7 +313,7 @@ class BucketReader(Referenceable):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
def remote_advise_corrupt_share(self, reason):
|
def remote_advise_corrupt_share(self, reason):
|
||||||
return self.ss.remote_advise_corrupt_share("immutable",
|
return self.ss.remote_advise_corrupt_share(b"immutable",
|
||||||
self.storage_index,
|
self.storage_index,
|
||||||
self.shnum,
|
self.shnum,
|
||||||
reason)
|
reason)
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from future.utils import bytes_to_native_str
|
||||||
import os, re, struct, time
|
import os, re, struct, time
|
||||||
import weakref
|
import weakref
|
||||||
import six
|
import six
|
||||||
@ -676,6 +677,10 @@ class StorageServer(service.MultiService, Referenceable):
|
|||||||
|
|
||||||
def remote_advise_corrupt_share(self, share_type, storage_index, shnum,
|
def remote_advise_corrupt_share(self, share_type, storage_index, shnum,
|
||||||
reason):
|
reason):
|
||||||
|
# This is a remote API, I believe, so this has to be bytes for legacy
|
||||||
|
# protocol backwards compatibility reasons.
|
||||||
|
assert isinstance(share_type, bytes)
|
||||||
|
assert isinstance(reason, bytes)
|
||||||
fileutil.make_dirs(self.corruption_advisory_dir)
|
fileutil.make_dirs(self.corruption_advisory_dir)
|
||||||
now = time_format.iso_utc(sep="T")
|
now = time_format.iso_utc(sep="T")
|
||||||
si_s = si_b2a(storage_index)
|
si_s = si_b2a(storage_index)
|
||||||
@ -684,11 +689,11 @@ class StorageServer(service.MultiService, Referenceable):
|
|||||||
"%s--%s-%d" % (now, si_s, shnum)).replace(":","")
|
"%s--%s-%d" % (now, si_s, shnum)).replace(":","")
|
||||||
with open(fn, "w") as f:
|
with open(fn, "w") as f:
|
||||||
f.write("report: Share Corruption\n")
|
f.write("report: Share Corruption\n")
|
||||||
f.write("type: %s\n" % share_type)
|
f.write("type: %s\n" % bytes_to_native_str(share_type))
|
||||||
f.write("storage_index: %s\n" % si_s)
|
f.write("storage_index: %s\n" % bytes_to_native_str(si_s))
|
||||||
f.write("share_number: %d\n" % shnum)
|
f.write("share_number: %d\n" % shnum)
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
f.write(reason)
|
f.write(bytes_to_native_str(reason))
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
log.msg(format=("client claims corruption in (%(share_type)s) " +
|
log.msg(format=("client claims corruption in (%(share_type)s) " +
|
||||||
"%(si)s-%(shnum)d: %(reason)s"),
|
"%(si)s-%(shnum)d: %(reason)s"),
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from future.utils import native_str, PY3
|
from future.utils import native_str, PY3, bytes_to_native_str
|
||||||
|
|
||||||
import time
|
import time
|
||||||
import os.path
|
import os.path
|
||||||
@ -731,7 +731,7 @@ class Server(unittest.TestCase):
|
|||||||
|
|
||||||
si0_s = base32.b2a(b"si0")
|
si0_s = base32.b2a(b"si0")
|
||||||
ss.remote_advise_corrupt_share(b"immutable", b"si0", 0,
|
ss.remote_advise_corrupt_share(b"immutable", b"si0", 0,
|
||||||
"This share smells funny.\n")
|
b"This share smells funny.\n")
|
||||||
reportdir = os.path.join(workdir, "corruption-advisories")
|
reportdir = os.path.join(workdir, "corruption-advisories")
|
||||||
reports = os.listdir(reportdir)
|
reports = os.listdir(reportdir)
|
||||||
self.failUnlessEqual(len(reports), 1)
|
self.failUnlessEqual(len(reports), 1)
|
||||||
@ -755,11 +755,11 @@ class Server(unittest.TestCase):
|
|||||||
|
|
||||||
b = ss.remote_get_buckets(b"si1")
|
b = ss.remote_get_buckets(b"si1")
|
||||||
self.failUnlessEqual(set(b.keys()), set([1]))
|
self.failUnlessEqual(set(b.keys()), set([1]))
|
||||||
b[1].remote_advise_corrupt_share("This share tastes like dust.\n")
|
b[1].remote_advise_corrupt_share(b"This share tastes like dust.\n")
|
||||||
|
|
||||||
reports = os.listdir(reportdir)
|
reports = os.listdir(reportdir)
|
||||||
self.failUnlessEqual(len(reports), 2)
|
self.failUnlessEqual(len(reports), 2)
|
||||||
report_si1 = [r for r in reports if si1_s in r][0]
|
report_si1 = [r for r in reports if bytes_to_native_str(si1_s) in r][0]
|
||||||
f = open(os.path.join(reportdir, report_si1), "rb")
|
f = open(os.path.join(reportdir, report_si1), "rb")
|
||||||
report = f.read()
|
report = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
|
Loading…
Reference in New Issue
Block a user