mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-06-23 01:08:53 +00:00
Add t=mkdir-immutable to the webapi. Closes #607.
* change t=mkdir-with-children to not use multipart/form encoding. Instead, the request body is all JSON. t=mkdir-immutable uses this format too. * make nodemaker.create_immutable_dirnode() get convergence from SecretHolder, but let callers override it * raise NotDeepImmutableError instead of using assert() * add mutable= argument to DirectoryNode.create_subdirectory(), default True
This commit is contained in:
@ -188,6 +188,8 @@ class DirectoryNode:
|
||||
filenode_class = MutableFileNode
|
||||
|
||||
def __init__(self, filenode, nodemaker, uploader):
|
||||
assert IFileNode.providedBy(filenode), filenode
|
||||
assert not IDirectoryNode.providedBy(filenode), filenode
|
||||
self._node = filenode
|
||||
filenode_cap = filenode.get_cap()
|
||||
self._uri = wrap_dirnode_cap(filenode_cap)
|
||||
@ -491,11 +493,15 @@ class DirectoryNode:
|
||||
d.addCallback(lambda res: deleter.old_child)
|
||||
return d
|
||||
|
||||
def create_subdirectory(self, name, initial_children={}, overwrite=True):
|
||||
def create_subdirectory(self, name, initial_children={}, overwrite=True,
|
||||
mutable=True):
|
||||
assert isinstance(name, unicode)
|
||||
if self.is_readonly():
|
||||
return defer.fail(NotMutableError())
|
||||
d = self._nodemaker.create_new_mutable_directory(initial_children)
|
||||
if mutable:
|
||||
d = self._nodemaker.create_new_mutable_directory(initial_children)
|
||||
else:
|
||||
d = self._nodemaker.create_immutable_directory(initial_children)
|
||||
def _created(child):
|
||||
entries = {name: (child, None)}
|
||||
a = Adder(self, entries, overwrite=overwrite)
|
||||
|
Reference in New Issue
Block a user