)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3f9c04a8aaa4bf081bf21322ecb496ef964d63f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2fad516f_698b1b6b","updated":"2025-06-10 15:11:54.000000000","message":"I should maybe rebase this on the latest patches... I think it\u0027ll be especially useful if we decide to make the investment to merge ring and builder formats.","commit_id":"c08aa1085e8d23684495587e26d2f176718841d5"}],"swift/cli/ring_packer.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3f9c04a8aaa4bf081bf21322ecb496ef964d63f0","unresolved":true,"context_lines":[{"line_number":101,"context_line":"def list_handler(args):"},{"line_number":102,"context_line":"    with RingReader(args.ring_gz) as reader:"},{"line_number":103,"context_line":"        if reader.version !\u003d 2:"},{"line_number":104,"context_line":"            # TODO: well, I mean... we *could* load up a v1/v0 ring..."},{"line_number":105,"context_line":"            print(\"Only v2 rings can be listed; %r seems to be v%d\" % ("},{"line_number":106,"context_line":"                args.ring_gz, reader.version))"},{"line_number":107,"context_line":"            return 1"}],"source_content_type":"text/x-python","patch_set":2,"id":"45690052_31534da1","line":104,"range":{"start_line":104,"start_character":36,"end_line":104,"end_character":67},"updated":"2025-06-10 15:11:54.000000000","message":"...though it\u0027s not clear that we can do much with it if we did. I guess maybe we special-case it and let all the compressed sizes and compression ratios come out as `????`, drop `swift/ring/devices` entirely, calculate uncompressed length for `swift/ring/assignments`, and estimate `swift/ring/metadata` with `len(json.dumps())`.","commit_id":"c08aa1085e8d23684495587e26d2f176718841d5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3f9c04a8aaa4bf081bf21322ecb496ef964d63f0","unresolved":true,"context_lines":[{"line_number":165,"context_line":"    unpack.set_defaults(handler\u003dunpack_handler)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    pack \u003d subparsers.add_parser(\"pack\")"},{"line_number":168,"context_line":"    pack.add_argument(\"ring_dir\")"},{"line_number":169,"context_line":"    pack.add_argument(\"-d\", \"--destination\")"},{"line_number":170,"context_line":"    pack.add_argument(\"-m\", \"--mtime\","},{"line_number":171,"context_line":"                      type\u003ddate_or_int, default\u003dint(time.time()))"}],"source_content_type":"text/x-python","patch_set":2,"id":"a462b1b5_db2b24eb","line":168,"updated":"2025-06-10 15:11:54.000000000","message":"It\u0027d be reasonably interesting to have `/etc/swift/object.ring.gz` actually be a _directory_ and get `Ring` to be able to load from _that_.\n\nMight even be something that could go into git at that point...","commit_id":"c08aa1085e8d23684495587e26d2f176718841d5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3f9c04a8aaa4bf081bf21322ecb496ef964d63f0","unresolved":true,"context_lines":[{"line_number":171,"context_line":"                      type\u003ddate_or_int, default\u003dint(time.time()))"},{"line_number":172,"context_line":"    pack.set_defaults(handler\u003dpack_handler)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    list \u003d subparsers.add_parser(\"list\")"},{"line_number":175,"context_line":"    list.add_argument(\"ring_gz\")"},{"line_number":176,"context_line":"    list.set_defaults(handler\u003dlist_handler)"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5fb51803_730aaa01","line":174,"range":{"start_line":174,"start_character":4,"end_line":174,"end_character":8},"updated":"2025-06-10 15:11:54.000000000","message":"Shadows built-in -- we should probably name these `unpack_cmd`, `pack_cmd`, `list_cmd` or something.","commit_id":"c08aa1085e8d23684495587e26d2f176718841d5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"92d02dc7e759d56ea9c30624060de297fd6f5533","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                      type\u003ddate_or_int, default\u003dint(time.time()))"},{"line_number":172,"context_line":"    pack.set_defaults(handler\u003dpack_handler)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    list \u003d subparsers.add_parser(\"list\")"},{"line_number":175,"context_line":"    list.add_argument(\"ring_gz\")"},{"line_number":176,"context_line":"    list.set_defaults(handler\u003dlist_handler)"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"aa9387a5_497c08df","line":174,"range":{"start_line":174,"start_character":4,"end_line":174,"end_character":8},"in_reply_to":"5fb51803_730aaa01","updated":"2026-04-20 22:13:47.000000000","message":"Done","commit_id":"c08aa1085e8d23684495587e26d2f176718841d5"}]}
