from allmydata.web import filenode, directory, unlinked, status, operations
from allmydata.web import reliability, storage
from allmydata.web.common import abbreviate_size, getxmlfile, WebError, \
- get_arg, RenderMixin, boolean_of_arg, parse_mutable_type_arg
+ get_arg, RenderMixin, get_format, get_mutable_type
class URIHandler(RenderMixin, rend.Page):
# "PUT /uri?t=mkdir" to create an unlinked directory
t = get_arg(req, "t", "").strip()
if t == "":
- mutable = boolean_of_arg(get_arg(req, "mutable", "false").strip())
- if mutable:
- arg = get_arg(req, "mutable-type", None)
- version = parse_mutable_type_arg(arg)
- if version == "invalid":
- errmsg = "Unknown type: %s" % arg
- raise WebError(errmsg, http.BAD_REQUEST)
-
- return unlinked.PUTUnlinkedSSK(req, self.client, version)
+ file_format = get_format(req, "CHK")
+ mutable_type = get_mutable_type(file_format)
+ if mutable_type is not None:
+ return unlinked.PUTUnlinkedSSK(req, self.client, mutable_type)
else:
return unlinked.PUTUnlinkedCHK(req, self.client)
if t == "mkdir":
req = IRequest(ctx)
t = get_arg(req, "t", "").strip()
if t in ("", "upload"):
- mutable = bool(get_arg(req, "mutable", "").strip())
- if mutable:
- arg = get_arg(req, "mutable-type", None)
- version = parse_mutable_type_arg(arg)
- if version is "invalid":
- raise WebError("Unknown type: %s" % arg, http.BAD_REQUEST)
- return unlinked.POSTUnlinkedSSK(req, self.client, version)
+ file_format = get_format(req)
+ mutable_type = get_mutable_type(file_format)
+ if mutable_type is not None:
+ return unlinked.POSTUnlinkedSSK(req, self.client, mutable_type)
else:
return unlinked.POSTUnlinkedCHK(req, self.client)
if t == "mkdir":