rename NewDirectoryNode to DirectoryNode, NewDirectoryURI to DirectoryURI

This commit is contained in:
Brian Warner 2009-07-16 20:01:03 -05:00
parent 8536db4e64
commit 531cc7899f
11 changed files with 60 additions and 62 deletions

View File

@ -21,13 +21,13 @@ from allmydata.util import hashutil, base32, pollmixin, cachedir, log
from allmydata.util.abbreviate import parse_abbreviated_size
from allmydata.util.time_format import parse_duration, parse_date
from allmydata.uri import LiteralFileURI, UnknownURI
from allmydata.dirnode import NewDirectoryNode
from allmydata.dirnode import DirectoryNode
from allmydata.mutable.filenode import MutableFileNode
from allmydata.unknown import UnknownNode
from allmydata.stats import StatsProvider
from allmydata.history import History
from allmydata.interfaces import IURI, INewDirectoryURI, IStatsProducer, \
IReadonlyNewDirectoryURI, IFileURI, IMutableFileURI, RIStubClient, \
from allmydata.interfaces import IURI, IDirectoryURI, IStatsProducer, \
IReadonlyDirectoryURI, IFileURI, IMutableFileURI, RIStubClient, \
UnhandledCapTypeError
KiB=1024
@ -419,12 +419,12 @@ class Client(node.Node, pollmixin.PollMixin):
return UnknownNode(writecap, readcap)
u_s = u.to_string()
if u_s not in self._node_cache:
if IReadonlyNewDirectoryURI.providedBy(u):
# new-style read-only dirnodes
node = NewDirectoryNode(self).init_from_uri(u)
elif INewDirectoryURI.providedBy(u):
# new-style dirnodes
node = NewDirectoryNode(self).init_from_uri(u)
if IReadonlyDirectoryURI.providedBy(u):
# read-only dirnodes
node = DirectoryNode(self).init_from_uri(u)
elif IDirectoryURI.providedBy(u):
# dirnodes
node = DirectoryNode(self).init_from_uri(u)
elif IFileURI.providedBy(u):
if isinstance(u, LiteralFileURI):
node = LiteralFileNode(u, self) # LIT
@ -439,7 +439,7 @@ class Client(node.Node, pollmixin.PollMixin):
def create_empty_dirnode(self):
d = self.create_mutable_file()
d.addCallback(NewDirectoryNode.create_with_mutablefile, self)
d.addCallback(DirectoryNode.create_with_mutablefile, self)
return d
def create_mutable_file(self, contents="", keysize=None):

View File

@ -18,7 +18,7 @@ from allmydata.monitor import Monitor
from allmydata.util import hashutil, mathutil, base32, log
from allmydata.util.assertutil import _assert, precondition
from allmydata.util.netstring import netstring, split_netstring
from allmydata.uri import NewDirectoryURI, LiteralFileURI, from_string
from allmydata.uri import DirectoryURI, LiteralFileURI, from_string
from pycryptopp.cipher.aes import AES
class CachingDict(dict):
@ -140,7 +140,7 @@ class Adder:
new_contents = self.node._pack_contents(children)
return new_contents
class NewDirectoryNode:
class DirectoryNode:
implements(IDirectoryNode, ICheckable, IDeepCheckable)
filenode_class = MutableFileNode
@ -175,7 +175,7 @@ class NewDirectoryNode:
d.addCallback(self._filenode_created)
return d
def _filenode_created(self, res):
self._uri = NewDirectoryURI(IMutableFileURI(self._node.get_uri()))
self._uri = DirectoryURI(IMutableFileURI(self._node.get_uri()))
return self
def get_size(self):

View File

@ -467,9 +467,9 @@ class IImmutableFileURI(IFileURI):
class IMutableFileURI(Interface):
"""I am a URI which represents a mutable filenode."""
class INewDirectoryURI(Interface):
class IDirectoryURI(Interface):
pass
class IReadonlyNewDirectoryURI(Interface):
class IReadonlyDirectoryURI(Interface):
pass
class CannotPackUnknownNodeError(Exception):
@ -2023,7 +2023,7 @@ class IClient(Interface):
IFileNode or IMutableFileNode -providing instances, like
FileNode, LiteralFileNode, or MutableFileNode.
Directory-specifying URIs will result in
IDirectoryNode-providing instances, like NewDirectoryNode.
IDirectoryNode-providing instances, like DirectoryNode.
"""
class IClientStatus(Interface):

View File

@ -430,15 +430,15 @@ def dump_uri_instance(u, nodeid, secret, out, show_header=True):
print >>out, " storage index:", si_b2a(u.storage_index)
print >>out, " fingerprint:", base32.b2a(u.fingerprint)
elif isinstance(u, uri.NewDirectoryURI):
elif isinstance(u, uri.DirectoryURI):
if show_header:
print >>out, "Directory Writeable URI:"
dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
elif isinstance(u, uri.ReadonlyNewDirectoryURI):
elif isinstance(u, uri.ReadonlyDirectoryURI):
if show_header:
print >>out, "Directory Read-only URI:"
dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
elif isinstance(u, uri.NewDirectoryURIVerifier):
elif isinstance(u, uri.DirectoryURIVerifier):
if show_header:
print >>out, "Directory Verifier URI:"
dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)

View File

@ -25,19 +25,19 @@ class FakeMutableFileNode(mut_filenode.MutableFileNode):
mut_filenode.MutableFileNode.__init__(self, client)
self._uri = uri.WriteableSSKFileURI(randutil.insecurerandstr(16), randutil.insecurerandstr(32))
class FakeDirectoryNode(dirnode.NewDirectoryNode):
class FakeDirectoryNode(dirnode.DirectoryNode):
def __init__(self, client):
dirnode.NewDirectoryNode.__init__(self, client)
dirnode.DirectoryNode.__init__(self, client)
mutfileuri = uri.WriteableSSKFileURI(randutil.insecurerandstr(16), randutil.insecurerandstr(32))
myuri = uri.NewDirectoryURI(mutfileuri)
myuri = uri.DirectoryURI(mutfileuri)
self.init_from_uri(myuri)
children = [] # tuples of (k, v) (suitable for passing to dict())
packstr = None
fakeclient = FakeClient()
testdirnode = dirnode.NewDirectoryNode(fakeclient)
testdirnode.init_from_uri(uri.NewDirectoryURI(uri.WriteableSSKFileURI(randutil.insecurerandstr(16), randutil.insecurerandstr(32))))
testdirnode = dirnode.DirectoryNode(fakeclient)
testdirnode.init_from_uri(uri.DirectoryURI(uri.WriteableSSKFileURI(randutil.insecurerandstr(16), randutil.insecurerandstr(32))))
def random_unicode(l):
while True:

View File

@ -290,7 +290,7 @@ def make_verifier_uri():
return uri.SSKVerifierURI(storage_index=os.urandom(16),
fingerprint=os.urandom(32))
class FakeDirectoryNode(dirnode.NewDirectoryNode):
class FakeDirectoryNode(dirnode.DirectoryNode):
"""This offers IDirectoryNode, but uses a FakeMutableFileNode for the
backing store, so it doesn't go to the grid. The child data is still
encrypted and serialized, so this isn't useful for tests that want to

View File

@ -37,7 +37,7 @@ class CLI(unittest.TestCase):
open("cli/test_options/node.url","w").write("http://localhost:8080/\n")
filenode_uri = uri.WriteableSSKFileURI(writekey="\x00"*16,
fingerprint="\x00"*32)
private_uri = uri.NewDirectoryURI(filenode_uri).to_string()
private_uri = uri.DirectoryURI(filenode_uri).to_string()
open("cli/test_options/private/root_dir.cap", "w").write(private_uri + "\n")
o = cli.ListOptions()
o.parseOptions(["--node-directory", "cli/test_options"])
@ -62,7 +62,7 @@ class CLI(unittest.TestCase):
o = cli.ListOptions()
other_filenode_uri = uri.WriteableSSKFileURI(writekey="\x11"*16,
fingerprint="\x11"*32)
other_uri = uri.NewDirectoryURI(other_filenode_uri).to_string()
other_uri = uri.DirectoryURI(other_filenode_uri).to_string()
o.parseOptions(["--node-directory", "cli/test_options",
"--dir-cap", other_uri])
self.failUnlessEqual(o['node-url'], "http://localhost:8080/")
@ -199,7 +199,7 @@ class CLI(unittest.TestCase):
writekey = "\x01" * 16
fingerprint = "\xfe" * 32
u1 = uri.WriteableSSKFileURI(writekey, fingerprint)
u = uri.NewDirectoryURI(u1)
u = uri.DirectoryURI(u1)
output = self._dump_cap(u.to_string())
self.failUnless("Directory Writeable URI:" in output, output)

View File

@ -7,7 +7,7 @@ from allmydata import uri, dirnode
from allmydata.client import Client
from allmydata.immutable import upload
from allmydata.interfaces import IURI, IClient, IMutableFileNode, \
INewDirectoryURI, IReadonlyNewDirectoryURI, IFileNode, \
IDirectoryURI, IReadonlyDirectoryURI, IFileNode, \
ExistingChildError, NoSuchChildError, \
IDeepCheckResults, IDeepCheckAndRepairResults, CannotPackUnknownNodeError
from allmydata.mutable.filenode import MutableFileNode
@ -83,8 +83,8 @@ class FakeClient:
if not u:
u = readcap
u = IURI(u)
if (INewDirectoryURI.providedBy(u)
or IReadonlyNewDirectoryURI.providedBy(u)):
if (IDirectoryURI.providedBy(u)
or IReadonlyDirectoryURI.providedBy(u)):
return FakeDirectoryNode(self).init_from_uri(u)
return Marker(u.to_string())
@ -929,7 +929,7 @@ class UCWEingMutableFileNode(MutableFileNode):
return res
d.addCallback(_ucwe)
return d
class UCWEingNewDirectoryNode(dirnode.NewDirectoryNode):
class UCWEingDirectoryNode(dirnode.DirectoryNode):
filenode_class = UCWEingMutableFileNode
@ -957,7 +957,7 @@ class Deleter(GridTestMixin, unittest.TestCase):
return dn.add_file(u"file", small)
d.addCallback(_created_dir)
def _do_delete(ignored):
n = UCWEingNewDirectoryNode(c0).init_from_uri(self.root_uri)
n = UCWEingDirectoryNode(c0).init_from_uri(self.root_uri)
assert n._node.please_ucwe_after_next_upload == False
n._node.please_ucwe_after_next_upload = True
# This should succeed, not raise an exception

View File

@ -185,11 +185,11 @@ class Invalid(unittest.TestCase):
class Constraint(unittest.TestCase):
def test_constraint(self):
good="http://127.0.0.1:3456/uri/URI%3ADIR2%3Agh3l5rbvnv2333mrfvalmjfr4i%3Alz6l7u3z3b7g37s4zkdmfpx5ly4ib4m6thrpbusi6ys62qtc6mma/"
uri.NewDirectoryURI.init_from_human_encoding(good)
self.failUnlessRaises(uri.BadURIError, uri.NewDirectoryURI.init_from_string, good)
uri.DirectoryURI.init_from_human_encoding(good)
self.failUnlessRaises(uri.BadURIError, uri.DirectoryURI.init_from_string, good)
bad = good + '==='
self.failUnlessRaises(uri.BadURIError, uri.NewDirectoryURI.init_from_human_encoding, bad)
self.failUnlessRaises(uri.BadURIError, uri.NewDirectoryURI.init_from_string, bad)
self.failUnlessRaises(uri.BadURIError, uri.DirectoryURI.init_from_human_encoding, bad)
self.failUnlessRaises(uri.BadURIError, uri.DirectoryURI.init_from_string, bad)
fileURI = 'URI:CHK:gh3l5rbvnv2333mrfvalmjfr4i:lz6l7u3z3b7g37s4zkdmfpx5ly4ib4m6thrpbusi6ys62qtc6mma:3:10:345834'
uri.CHKFileURI.init_from_string(fileURI)
@ -272,13 +272,13 @@ class NewDirnode(unittest.TestCase):
fingerprint = "\x02" * 32
n = uri.WriteableSSKFileURI(writekey, fingerprint)
u1 = uri.NewDirectoryURI(n)
u1 = uri.DirectoryURI(n)
self.failIf(u1.is_readonly())
self.failUnless(u1.is_mutable())
self.failUnless(IURI.providedBy(u1))
self.failIf(IFileURI.providedBy(u1))
self.failUnless(IDirnodeURI.providedBy(u1))
self.failUnless("NewDirectoryURI" in str(u1))
self.failUnless("DirectoryURI" in str(u1))
u1_filenode = u1.get_filenode_uri()
self.failUnless(u1_filenode.is_mutable())
self.failIf(u1_filenode.is_readonly())
@ -309,7 +309,7 @@ class NewDirnode(unittest.TestCase):
u3a = uri.from_string(u3.to_string())
self.failUnlessIdentical(u3a, u3a.get_readonly())
u4 = uri.ReadonlyNewDirectoryURI(u2._filenode_uri.get_readonly())
u4 = uri.ReadonlyDirectoryURI(u2._filenode_uri.get_readonly())
self.failUnlessEqual(u4.to_string(), u3.to_string())
self.failUnless(u4.is_readonly())
self.failUnless(u4.is_mutable())
@ -324,8 +324,8 @@ class NewDirnode(unittest.TestCase):
verifiers = [u1.get_verify_cap(), u2.get_verify_cap(),
u3.get_verify_cap(), u4.get_verify_cap(),
IVerifierURI(u1.get_verify_cap().to_string()),
uri.NewDirectoryURIVerifier(n.get_verify_cap()),
uri.NewDirectoryURIVerifier(n.get_verify_cap().to_string()),
uri.DirectoryURIVerifier(n.get_verify_cap()),
uri.DirectoryURIVerifier(n.get_verify_cap().to_string()),
]
for v in verifiers:
self.failUnless(IVerifierURI.providedBy(v))

View File

@ -18,9 +18,8 @@ from allmydata.util import fileutil, base32
from allmydata.util.assertutil import precondition
from allmydata.test.common import FakeDirectoryNode, FakeCHKFileNode, \
FakeMutableFileNode, create_chk_filenode, WebErrorMixin, ShouldFailMixin
from allmydata.interfaces import IURI, INewDirectoryURI, \
IReadonlyNewDirectoryURI, IFileURI, IMutableFileURI, IMutableFileNode, \
UnhandledCapTypeError
from allmydata.interfaces import IURI, IDirectoryURI, IReadonlyDirectoryURI, \
IFileURI, IMutableFileURI, IMutableFileNode, UnhandledCapTypeError
from allmydata.mutable import servermap, publish, retrieve
import common_util as testutil
from allmydata.test.no_network import GridTestMixin
@ -70,8 +69,7 @@ class FakeClient(service.MultiService):
auri = readcap
precondition(isinstance(auri, str), auri)
u = uri.from_string(auri)
if (INewDirectoryURI.providedBy(u)
or IReadonlyNewDirectoryURI.providedBy(u)):
if (IDirectoryURI.providedBy(u) or IReadonlyDirectoryURI.providedBy(u)):
return FakeDirectoryNode(self).init_from_uri(u)
if IFileURI.providedBy(u):
return FakeCHKFileNode(u, self)
@ -1868,7 +1866,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
def test_POST_mkdir_no_parentdir_noredirect(self):
d = self.POST("/uri?t=mkdir")
def _after_mkdir(res):
uri.NewDirectoryURI.init_from_string(res)
uri.DirectoryURI.init_from_string(res)
d.addCallback(_after_mkdir)
return d

View File

@ -5,7 +5,7 @@ from twisted.python.components import registerAdapter
from allmydata.storage.server import si_a2b, si_b2a
from allmydata.util import base32, hashutil
from allmydata.interfaces import IURI, IDirnodeURI, IFileURI, IImmutableFileURI, \
IVerifierURI, IMutableFileURI, INewDirectoryURI, IReadonlyNewDirectoryURI
IVerifierURI, IMutableFileURI, IDirectoryURI, IReadonlyDirectoryURI
class BadURIError(Exception):
pass
@ -330,7 +330,7 @@ class SSKVerifierURI(_BaseURI):
return 'URI:SSK-Verifier:%s:%s' % (si_b2a(self.storage_index),
base32.b2a(self.fingerprint))
class _NewDirectoryBaseURI(_BaseURI):
class _DirectoryBaseURI(_BaseURI):
implements(IURI, IDirnodeURI)
def __init__(self, filenode_uri=None):
self._filenode_uri = filenode_uri
@ -379,13 +379,13 @@ class _NewDirectoryBaseURI(_BaseURI):
return True
def get_verify_cap(self):
return NewDirectoryURIVerifier(self._filenode_uri.get_verify_cap())
return DirectoryURIVerifier(self._filenode_uri.get_verify_cap())
def get_storage_index(self):
return self._filenode_uri.get_storage_index()
class NewDirectoryURI(_NewDirectoryBaseURI):
implements(INewDirectoryURI)
class DirectoryURI(_DirectoryBaseURI):
implements(IDirectoryURI)
BASE_STRING='URI:DIR2:'
BASE_STRING_RE=re.compile('^'+BASE_STRING)
@ -395,16 +395,16 @@ class NewDirectoryURI(_NewDirectoryBaseURI):
def __init__(self, filenode_uri=None):
if filenode_uri:
assert not filenode_uri.is_readonly()
_NewDirectoryBaseURI.__init__(self, filenode_uri)
_DirectoryBaseURI.__init__(self, filenode_uri)
def is_readonly(self):
return False
def get_readonly(self):
return ReadonlyNewDirectoryURI(self._filenode_uri.get_readonly())
return ReadonlyDirectoryURI(self._filenode_uri.get_readonly())
class ReadonlyNewDirectoryURI(_NewDirectoryBaseURI):
implements(IReadonlyNewDirectoryURI)
class ReadonlyDirectoryURI(_DirectoryBaseURI):
implements(IReadonlyDirectoryURI)
BASE_STRING='URI:DIR2-RO:'
BASE_STRING_RE=re.compile('^'+BASE_STRING)
@ -414,7 +414,7 @@ class ReadonlyNewDirectoryURI(_NewDirectoryBaseURI):
def __init__(self, filenode_uri=None):
if filenode_uri:
assert filenode_uri.is_readonly()
_NewDirectoryBaseURI.__init__(self, filenode_uri)
_DirectoryBaseURI.__init__(self, filenode_uri)
def is_readonly(self):
return True
@ -422,7 +422,7 @@ class ReadonlyNewDirectoryURI(_NewDirectoryBaseURI):
def get_readonly(self):
return self
class NewDirectoryURIVerifier(_NewDirectoryBaseURI):
class DirectoryURIVerifier(_DirectoryBaseURI):
implements(IVerifierURI)
BASE_STRING='URI:DIR2-Verifier:'
@ -460,11 +460,11 @@ def from_string(s):
elif s.startswith('URI:SSK-Verifier:'):
return SSKVerifierURI.init_from_string(s)
elif s.startswith('URI:DIR2:'):
return NewDirectoryURI.init_from_string(s)
return DirectoryURI.init_from_string(s)
elif s.startswith('URI:DIR2-RO:'):
return ReadonlyNewDirectoryURI.init_from_string(s)
return ReadonlyDirectoryURI.init_from_string(s)
elif s.startswith('URI:DIR2-Verifier:'):
return NewDirectoryURIVerifier.init_from_string(s)
return DirectoryURIVerifier.init_from_string(s)
return UnknownURI(s)
registerAdapter(from_string, str, IURI)