)]}'
{"swift/cli/shard-info.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8557f487937a3cc21c2fade6a1451317dd66748e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        print_shard_range_info(node, shard_ranges,"},{"line_number":130,"context_line":"                               indent_level\u003dindent_level + 1)"},{"line_number":131,"context_line":"    print(indent + \u0027Shard ranges:\u0027)"},{"line_number":132,"context_line":"    shard_names \u003d set()"},{"line_number":133,"context_line":"    for node, broker in node2broker.items():"},{"line_number":134,"context_line":"        shard_ranges \u003d broker.get_shard_ranges(include_deleted\u003dTrue)"},{"line_number":135,"context_line":"        for sr_name in shard_ranges:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_7cee5f89","line":132,"updated":"2018-03-07 18:31:15.000000000","message":"Should we drop this redefinition? I\u0027m not sure what the point of the\n\n for sr_name in shard_ranges:\n     shard_names.add(sr_name.name)\n\nis otherwise.","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3aaff929a1450917cc6d8d1e7eb87543c8fd19d6","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        print_shard_range_info(node, shard_ranges,"},{"line_number":130,"context_line":"                               indent_level\u003dindent_level + 1)"},{"line_number":131,"context_line":"    print(indent + \u0027Shard ranges:\u0027)"},{"line_number":132,"context_line":"    shard_names \u003d set()"},{"line_number":133,"context_line":"    for node, broker in node2broker.items():"},{"line_number":134,"context_line":"        shard_ranges \u003d broker.get_shard_ranges(include_deleted\u003dTrue)"},{"line_number":135,"context_line":"        for sr_name in shard_ranges:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_733d2dba","line":132,"in_reply_to":"df7087c5_7cee5f89","updated":"2018-03-07 20:18:41.000000000","message":"cut and paste error, will fix","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"}],"swift/container/backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8557f487937a3cc21c2fade6a1451317dd66748e","unresolved":false,"context_lines":[{"line_number":1655,"context_line":"                                             exclude_others\u003dTrue)"},{"line_number":1656,"context_line":"        now \u003d Timestamp.now()"},{"line_number":1657,"context_line":"        if shard_ranges:"},{"line_number":1658,"context_line":"            own_shard_range \u003d shard_ranges[0]"},{"line_number":1659,"context_line":"        elif no_default:"},{"line_number":1660,"context_line":"            return None"},{"line_number":1661,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_7c717fe0","line":1658,"updated":"2018-03-07 18:31:15.000000000","message":"How are these sorted? I\u0027m not sure item 0 is necessarily the most up-to-date...","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3aaff929a1450917cc6d8d1e7eb87543c8fd19d6","unresolved":false,"context_lines":[{"line_number":1655,"context_line":"                                             exclude_others\u003dTrue)"},{"line_number":1656,"context_line":"        now \u003d Timestamp.now()"},{"line_number":1657,"context_line":"        if shard_ranges:"},{"line_number":1658,"context_line":"            own_shard_range \u003d shard_ranges[0]"},{"line_number":1659,"context_line":"        elif no_default:"},{"line_number":1660,"context_line":"            return None"},{"line_number":1661,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_f3d7fd22","line":1658,"in_reply_to":"df7087c5_7c717fe0","updated":"2018-03-07 20:18:41.000000000","message":"there\u0027s only ever one row for a given name and exclude other means we\u0027re only selecting one name... or have I misunderstood?","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"abad1608b8338073393b87a6abaa73b9174088f2","unresolved":false,"context_lines":[{"line_number":1655,"context_line":"                                             exclude_others\u003dTrue)"},{"line_number":1656,"context_line":"        now \u003d Timestamp.now()"},{"line_number":1657,"context_line":"        if shard_ranges:"},{"line_number":1658,"context_line":"            own_shard_range \u003d shard_ranges[0]"},{"line_number":1659,"context_line":"        elif no_default:"},{"line_number":1660,"context_line":"            return None"},{"line_number":1661,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_86451d73","line":1658,"in_reply_to":"df7087c5_f3d7fd22","updated":"2018-03-07 20:36:02.000000000","message":"Good point.","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"}],"swift/container/sharder.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8557f487937a3cc21c2fade6a1451317dd66748e","unresolved":false,"context_lines":[{"line_number":864,"context_line":"        headers \u003d {"},{"line_number":865,"context_line":"            \u0027X-Storage-Policy\u0027: policy.name,"},{"line_number":866,"context_line":"            \u0027X-Container-Sysmeta-Shard-Root\u0027:"},{"line_number":867,"context_line":"                \u0027%s\u0027 % broker.root_path,"},{"line_number":868,"context_line":"            \u0027X-Container-Sysmeta-Sharding\u0027: True,"},{"line_number":869,"context_line":"            \u0027X-Container-Sysmeta-Shard-Lower\u0027: str(shard_range.lower),"},{"line_number":870,"context_line":"            \u0027X-Container-Sysmeta-Shard-Upper\u0027: str(shard_range.upper),"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_104aa754","side":"PARENT","line":867,"range":{"start_line":867,"start_character":16,"end_line":867,"end_character":39},"updated":"2018-03-07 18:31:15.000000000","message":"Yeah, that was a little silly.","commit_id":"ee6c57f3cbae678690d7381445c745efe046ee22"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8557f487937a3cc21c2fade6a1451317dd66748e","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                # info; do this even when sharded in case previous attempts"},{"line_number":690,"context_line":"                # failed; don\u0027t do this if there is no shard range info."},{"line_number":691,"context_line":"                own_shard_range \u003d broker.get_own_shard_range(no_default\u003dTrue)"},{"line_number":692,"context_line":"                # TODO: persist the reported meta-timestamp?"},{"line_number":693,"context_line":"                # broker.merge_shard_ranges([own_shard_range])"},{"line_number":694,"context_line":"                if own_shard_range:"},{"line_number":695,"context_line":"                    self._update_shard_ranges("}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_30324bf3","line":692,"updated":"2018-03-07 18:31:15.000000000","message":"...and counts.\n\nDo we ever update our own stats in the shard table? Should we?","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3aaff929a1450917cc6d8d1e7eb87543c8fd19d6","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                # info; do this even when sharded in case previous attempts"},{"line_number":690,"context_line":"                # failed; don\u0027t do this if there is no shard range info."},{"line_number":691,"context_line":"                own_shard_range \u003d broker.get_own_shard_range(no_default\u003dTrue)"},{"line_number":692,"context_line":"                # TODO: persist the reported meta-timestamp?"},{"line_number":693,"context_line":"                # broker.merge_shard_ranges([own_shard_range])"},{"line_number":694,"context_line":"                if own_shard_range:"},{"line_number":695,"context_line":"                    self._update_shard_ranges("}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_73476d1f","line":692,"in_reply_to":"df7087c5_30324bf3","updated":"2018-03-07 20:18:41.000000000","message":"Stats are not persisted every time they are reported. Stats may get persisted as a side-effect of another event in the sharder lifecycle, or another container putting shard ranges. \n\nIf we were to do it then this would be the place, and I have been in two minds - hence the commented line. The stats reported to the root would never be read from the db - they are updated dynamically - so we don\u0027t need to persist them, but it might be nice to see something recent if inspecting the db. I think originally I was concerned about persisting a synthesised default shard range but later added the no_default guard against that.\n\nhmmm, I\u0027ll uncomment the line - better to be persisting and testing with that behaviour than not.","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8557f487937a3cc21c2fade6a1451317dd66748e","unresolved":false,"context_lines":[{"line_number":859,"context_line":"            \u0027X-Storage-Policy\u0027: policy.name,"},{"line_number":860,"context_line":"            \u0027X-Container-Sysmeta-Shard-Root\u0027: broker.root_path,"},{"line_number":861,"context_line":"            \u0027X-Container-Sysmeta-Sharding\u0027: True,"},{"line_number":862,"context_line":"            \u0027X-Backend-Record-Type\u0027: \u0027shard\u0027}"},{"line_number":863,"context_line":"        if extra_headers:"},{"line_number":864,"context_line":"            headers.update(extra_headers)"},{"line_number":865,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_d0750f9a","line":862,"updated":"2018-03-07 18:31:15.000000000","message":"?\n\nDo we use this?","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"abad1608b8338073393b87a6abaa73b9174088f2","unresolved":false,"context_lines":[{"line_number":859,"context_line":"            \u0027X-Storage-Policy\u0027: policy.name,"},{"line_number":860,"context_line":"            \u0027X-Container-Sysmeta-Shard-Root\u0027: broker.root_path,"},{"line_number":861,"context_line":"            \u0027X-Container-Sysmeta-Sharding\u0027: True,"},{"line_number":862,"context_line":"            \u0027X-Backend-Record-Type\u0027: \u0027shard\u0027}"},{"line_number":863,"context_line":"        if extra_headers:"},{"line_number":864,"context_line":"            headers.update(extra_headers)"},{"line_number":865,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_2656912b","line":862,"in_reply_to":"df7087c5_930ec1e3","updated":"2018-03-07 20:36:02.000000000","message":"Cool -- just making sure I wasn\u0027t missing something :-)","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3aaff929a1450917cc6d8d1e7eb87543c8fd19d6","unresolved":false,"context_lines":[{"line_number":859,"context_line":"            \u0027X-Storage-Policy\u0027: policy.name,"},{"line_number":860,"context_line":"            \u0027X-Container-Sysmeta-Shard-Root\u0027: broker.root_path,"},{"line_number":861,"context_line":"            \u0027X-Container-Sysmeta-Sharding\u0027: True,"},{"line_number":862,"context_line":"            \u0027X-Backend-Record-Type\u0027: \u0027shard\u0027}"},{"line_number":863,"context_line":"        if extra_headers:"},{"line_number":864,"context_line":"            headers.update(extra_headers)"},{"line_number":865,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_930ec1e3","line":862,"in_reply_to":"df7087c5_d0750f9a","updated":"2018-03-07 20:18:41.000000000","message":"um, no it is not currently needed.\n\nthere\u0027s a long story that involved hoping to send a shard range in the body of this request - there is a trello card to consider if that might be tractable.","commit_id":"2d0da6319fcd368ee4682a98a01ad605c84636f7"}]}
