Fri Aug 7 18:25:42 PDT 2009 Kevan Carstensen * Fix a logic error in `tahoe_ls.py' Fri Aug 7 18:27:42 PDT 2009 Kevan Carstensen * Fix misbehavior in `filenode.py' Per the spec, if you GET a dircap with a path to a file and specify that you want json, you should get metadata back. This wasn't happening before. New patches: [Fix a logic error in `tahoe_ls.py' Kevan Carstensen **20090808012542 Ignore-this: 88d54458521e76ca039b4294ade53dcc ] hunk ./src/allmydata/scripts/tahoe_ls.py 55 children = d['children'] elif nodetype == "filenode": childname = path.split("/")[-1] - children = {childname: d} + children = {childname: [nodetype, d]} childnames = sorted(children.keys()) now = time.time() [Fix misbehavior in `filenode.py' Kevan Carstensen **20090808012742 Ignore-this: ae04a444be086f67b5e82243f12da6ac Per the spec, if you GET a dircap with a path to a file and specify that you want json, you should get metadata back. This wasn't happening before. ] { hunk ./src/allmydata/web/filenode.py 9 from nevow import url, rend from nevow.inevow import IRequest -from allmydata.interfaces import ExistingChildError, CannotPackUnknownNodeError +from allmydata.interfaces import ExistingChildError, \ + CannotPackUnknownNodeError, IDirectoryNode from allmydata.monitor import Monitor from allmydata.immutable.upload import FileHandle from allmydata.immutable.filenode import LiteralFileNode hunk ./src/allmydata/web/filenode.py 191 d.addCallback(lambda dn: FileDownloader(dn, filename)) return d if t == "json": - return FileJSONMetadata(ctx, self.node) + return FileJSONMetadata(ctx, self.node, self.parentnode, self.name) if t == "info": return MoreInfo(self.node) if t == "uri": hunk ./src/allmydata/web/filenode.py 423 return req.deferred -def FileJSONMetadata(ctx, filenode): +def FileJSONMetadata(ctx, filenode, parentnode=None, name=None): if filenode.is_readonly(): rw_uri = None ro_uri = filenode.get_uri() hunk ./src/allmydata/web/filenode.py 440 if verifycap: data[1]['verify_uri'] = verifycap.to_string() data[1]['mutable'] = filenode.is_mutable() - return text_plain(simplejson.dumps(data, indent=1) + "\n", ctx) + if parentnode and name: + assert(IDirectoryNode.providedBy(parentnode)) + d = parentnode.get_metadata_for(name) + def _handle_metadata(metadata): + data[1]["metadata"] = metadata + return text_plain(simplejson.dumps(data, indent=1) + "\n", ctx) + d.addCallback(_handle_metadata) + return d + else: + return text_plain(simplejson.dumps(data, indent=1) + "\n", ctx) def FileURI(ctx, filenode): return text_plain(filenode.get_uri(), ctx) } Context: [docs: install.html: instruct Debian users to use this document and not to go find the DownloadDebianPackages page, ignore the warning at the top of it, and try it zooko@zooko.com**20090804123840 Ignore-this: 49da654f19d377ffc5a1eff0c820e026 http://allmydata.org/pipermail/tahoe-dev/2009-August/002507.html ] [docs: relnotes.txt: reflow to 63 chars wide because google groups and some web forms seem to wrap to that zooko@zooko.com**20090802135016 Ignore-this: 53b1493a0491bc30fb2935fad283caeb ] [docs: about.html: fix English usage noticed by Amber zooko@zooko.com**20090802050533 Ignore-this: 89965c4650f9bd100a615c401181a956 ] [docs: fix mis-spelled word in about.html zooko@zooko.com**20090802050320 Ignore-this: fdfd0397bc7cef9edfde425dddeb67e5 ] [TAG allmydata-tahoe-1.5.0 zooko@zooko.com**20090802031303 Ignore-this: 94e5558e7225c39a86aae666ea00f166 ] Patch bundle hash: 06ca1ee1a686c75c55b27fd7558a54c70010bb99