Tolerate unknown URI types in directory structures. Part of #683.
authorBrian Warner <warner@lothar.com>
Fri, 3 Jul 2009 01:07:49 +0000 (18:07 -0700)
committerBrian Warner <warner@lothar.com>
Fri, 3 Jul 2009 01:07:49 +0000 (18:07 -0700)
commitef1b6ae8e312af2177733b8fb162d9356e1d3b1a
treee774bc8376c16343f60ac7e6e842fe16c6e1bbb1
parent4a46e91192fb3d159593cd04e224f37c22518015
Tolerate unknown URI types in directory structures. Part of #683.

The idea is that future versions of Tahoe will add new URI types that this
version won't recognize, but might store them in directories that we *can*
read. We should handle these "objects from the future" as best we can.
Previous releases of Tahoe would just explode. With this change, we'll
continue to be able to work with everything else in the directory.

The code change is to wrap anything we don't recognize as an UnknownNode
instance (as opposed to a FileNode or DirectoryNode). Then webapi knows how
to render these (mostly by leaving fields blank), deep-check knows to skip
over them, deep-stats counts them in "count-unknown". You can rename and
delete these things, but you can't add new ones (because we wouldn't know how
to generate a readcap to put into the dirnode's rocap slot, and because this
lets us catch typos better).
14 files changed:
docs/frontends/webapi.txt
src/allmydata/client.py
src/allmydata/dirnode.py
src/allmydata/interfaces.py
src/allmydata/test/test_client.py
src/allmydata/test/test_dirnode.py
src/allmydata/test/test_uri.py
src/allmydata/test/test_web.py
src/allmydata/unknown.py [new file with mode: 0644]
src/allmydata/uri.py
src/allmydata/web/directory.py
src/allmydata/web/filenode.py
src/allmydata/web/info.py
src/allmydata/web/info.xhtml