web/filenode: oops, fix test failures, not everything has a storage index

This commit is contained in:
Brian Warner 2008-10-28 18:17:20 -07:00
parent 6e1db34817
commit 4c2235fcef
2 changed files with 10 additions and 2 deletions

View File

@ -46,6 +46,9 @@ class FakeCHKFileNode:
return self.my_uri
def get_verifier(self):
return IURI(self.my_uri).get_verifier()
def get_storage_index(self):
return self.storage_index
def check(self, monitor, verify=False):
r = CheckerResults(self.storage_index)
is_bad = self.bad_shares.get(self.storage_index, None)

View File

@ -296,6 +296,8 @@ class MutableDownloadable:
self.node = node
def get_size(self):
return self.size
def is_mutable(self):
return True
def read(self, consumer, offset=0, size=None):
d = self.node.download_best_version()
d.addCallback(self._got_data, consumer, offset, size)
@ -358,8 +360,11 @@ class FileDownloader(rend.Page):
# TODO: look more closely at Request.setETag and how it interacts
# with a conditional "if-etag-equals" request, I think this may
# need to occur after the setResponseCode below
req.setETag(base32.b2a(self.filenode.get_storage_index()))
# TODO: for mutable files, use the roothash
si = self.filenode.get_storage_index()
if si:
req.setETag(base32.b2a(si))
# TODO: for mutable files, use the roothash. For LIT, hash the data.
# or maybe just use the URI for CHK and LIT.
rangeheader = req.getHeader('range')
if rangeheader:
# adapted from nevow.static.File