)]}'
{"swift/obj/updater.py":[{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"639c6e375c1129b93f7fdf8fa904a32fe84b7296","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        # loop through async pending dirs for all policies"},{"line_number":141,"context_line":"        for asyncdir in [d for d in os.listdir(device)]:"},{"line_number":142,"context_line":"            # skip stuff like \"accounts\", \"containers\", etc."},{"line_number":143,"context_line":"            if not (asyncdir \u003d\u003d ASYNCDIR_BASE or"},{"line_number":144,"context_line":"                    asyncdir.startswith(ASYNCDIR_BASE + \u0027-\u0027)):"},{"line_number":145,"context_line":"                continue"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Fr0A%3D","line":143,"updated":"2014-02-11 14:30:49.000000000","message":"Good call, I didn\u0027t consider \"junk\" in these dirs.  Are these specific scenarios that would result in extra files/dirs in here or are you just thinking because anyone can write here we might as well limit to what we care about?","commit_id":"6dd45150cd5a85d8a3bffb2a5f47e23745cd1488"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"43500033dcecea50c6693bfc08a2e3d03f7bd31d","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        # loop through async pending dirs for all policies"},{"line_number":141,"context_line":"        for asyncdir in [d for d in os.listdir(device)]:"},{"line_number":142,"context_line":"            # skip stuff like \"accounts\", \"containers\", etc."},{"line_number":143,"context_line":"            if not (asyncdir \u003d\u003d ASYNCDIR_BASE or"},{"line_number":144,"context_line":"                    asyncdir.startswith(ASYNCDIR_BASE + \u0027-\u0027)):"},{"line_number":145,"context_line":"                continue"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FqMU%3D","line":143,"in_reply_to":"AAAAUX%2F%2Fr0A%3D","updated":"2014-02-11 17:42:01.000000000","message":"Sometimes directories turn into 0-byte files when there\u0027s XFS filesystem corruption.\n\nMostly it\u0027s just paranoia. :) You get enough clusters with enough different operators and someone\u0027s gonna do something dumb in here.","commit_id":"6dd45150cd5a85d8a3bffb2a5f47e23745cd1488"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"639c6e375c1129b93f7fdf8fa904a32fe84b7296","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        for node in nodes:"},{"line_number":222,"context_line":"            if node[\u0027id\u0027] not in successes:"},{"line_number":223,"context_line":"                headers \u003d update[\u0027headers\u0027].copy()"},{"line_number":224,"context_line":"                headers[\u0027X-Storage-Policy-Index\u0027] \u003d str(policy_idx)"},{"line_number":225,"context_line":"                status \u003d self.object_update(node, part, update[\u0027op\u0027], obj,"},{"line_number":226,"context_line":"                                            headers)"},{"line_number":227,"context_line":"                if not is_success(status) and status !\u003d HTTP_NOT_FOUND:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Frzc%3D","line":224,"updated":"2014-02-11 14:30:49.000000000","message":"So I\u0027ve been consistently the defined header string in storage_policy.py POLICY_INDEX since the beginning when we hadn\u0027t bottomed out on header names.  Would probably be good to use that here for consistency","commit_id":"6dd45150cd5a85d8a3bffb2a5f47e23745cd1488"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"43500033dcecea50c6693bfc08a2e3d03f7bd31d","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        for node in nodes:"},{"line_number":222,"context_line":"            if node[\u0027id\u0027] not in successes:"},{"line_number":223,"context_line":"                headers \u003d update[\u0027headers\u0027].copy()"},{"line_number":224,"context_line":"                headers[\u0027X-Storage-Policy-Index\u0027] \u003d str(policy_idx)"},{"line_number":225,"context_line":"                status \u003d self.object_update(node, part, update[\u0027op\u0027], obj,"},{"line_number":226,"context_line":"                                            headers)"},{"line_number":227,"context_line":"                if not is_success(status) and status !\u003d HTTP_NOT_FOUND:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FqME%3D","line":224,"in_reply_to":"AAAAUX%2F%2Frzc%3D","updated":"2014-02-11 17:42:01.000000000","message":"Will fix.","commit_id":"6dd45150cd5a85d8a3bffb2a5f47e23745cd1488"}],"test/unit/obj/test_updater.py":[{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"639c6e375c1129b93f7fdf8fa904a32fe84b7296","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                            line.split(\u0027:\u0027)[1].strip()"},{"line_number":287,"context_line":"                        line \u003d inc.readline()"},{"line_number":288,"context_line":"                    self.assertTrue(\u0027x-container-timestamp\u0027 in headers)"},{"line_number":289,"context_line":"                    self.assertTrue(\u0027x-storage-policy-index\u0027 in headers)"},{"line_number":290,"context_line":"            except BaseException as err:"},{"line_number":291,"context_line":"                return err"},{"line_number":292,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FrzI%3D","line":289,"updated":"2014-02-11 14:30:49.000000000","message":"not so important in test code, but again could use POLICY_INDEX here","commit_id":"6dd45150cd5a85d8a3bffb2a5f47e23745cd1488"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"43500033dcecea50c6693bfc08a2e3d03f7bd31d","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                            line.split(\u0027:\u0027)[1].strip()"},{"line_number":287,"context_line":"                        line \u003d inc.readline()"},{"line_number":288,"context_line":"                    self.assertTrue(\u0027x-container-timestamp\u0027 in headers)"},{"line_number":289,"context_line":"                    self.assertTrue(\u0027x-storage-policy-index\u0027 in headers)"},{"line_number":290,"context_line":"            except BaseException as err:"},{"line_number":291,"context_line":"                return err"},{"line_number":292,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FqIA%3D","line":289,"in_reply_to":"AAAAUX%2F%2FrzI%3D","updated":"2014-02-11 17:42:01.000000000","message":"I sort of like having it spelled out explicitly in test code. It\u0027s more repetitive, but it makes things easier to read IMHO.","commit_id":"6dd45150cd5a85d8a3bffb2a5f47e23745cd1488"}]}
