)]}'
{"swift/common/utils.py":[{"author":{"_account_id":8542,"name":"Prashanth Pai","email":"ppai@redhat.com","username":"pai"},"change_message_id":"325d6936e441611cf12d4f47ce2795420c6ef65f","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"        f.write(\u0027%s\u0027 % contents)"},{"line_number":1932,"context_line":""},{"line_number":1933,"context_line":""},{"line_number":1934,"context_line":"def remove_file(path):"},{"line_number":1935,"context_line":"    \"\"\"Quiet wrapper for os.unlink, OSErrors are suppressed"},{"line_number":1936,"context_line":""},{"line_number":1937,"context_line":"    :param path: first and only argument passed to os.unlink"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_e7a02e44","line":1934,"updated":"2015-01-07 08:52:45.000000000","message":"This is also invoked from ./swift/common/manager.py to remove stale pid file.\nAnd also in hash_cleanup_listdir(). So, you may want to validate the path.","commit_id":"8fec2b405c5cd05654bb382fe0770c2924a6c48e"},{"author":{"_account_id":8542,"name":"Prashanth Pai","email":"ppai@redhat.com","username":"pai"},"change_message_id":"7cb547a62b0124eddeadf7251529db7d47451e34","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"        f.write(\u0027%s\u0027 % contents)"},{"line_number":1932,"context_line":""},{"line_number":1933,"context_line":""},{"line_number":1934,"context_line":"def remove_file(path):"},{"line_number":1935,"context_line":"    \"\"\"Quiet wrapper for os.unlink, OSErrors are suppressed"},{"line_number":1936,"context_line":""},{"line_number":1937,"context_line":"    :param path: first and only argument passed to os.unlink"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_272236b9","line":1934,"in_reply_to":"3a961159_e7a02e44","updated":"2015-01-07 08:54:09.000000000","message":"I just noticed you take care of this below. Sorry.","commit_id":"8fec2b405c5cd05654bb382fe0770c2924a6c48e"},{"author":{"_account_id":8542,"name":"Prashanth Pai","email":"ppai@redhat.com","username":"pai"},"change_message_id":"325d6936e441611cf12d4f47ce2795420c6ef65f","unresolved":false,"context_lines":[{"line_number":1959,"context_line":"            try:"},{"line_number":1960,"context_line":"                renamer(path, dst)"},{"line_number":1961,"context_line":"            except OSError:"},{"line_number":1962,"context_line":"                pass"},{"line_number":1963,"context_line":""},{"line_number":1964,"context_line":"    try:"},{"line_number":1965,"context_line":"        os.unlink(path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_a730e656","line":1962,"updated":"2015-01-07 08:52:45.000000000","message":"If something goes wrong, it would go unnoticed if we do a \"pass\" here, logging instead seems like a nice idea.","commit_id":"8fec2b405c5cd05654bb382fe0770c2924a6c48e"},{"author":{"_account_id":8542,"name":"Prashanth Pai","email":"ppai@redhat.com","username":"pai"},"change_message_id":"325d6936e441611cf12d4f47ce2795420c6ef65f","unresolved":false,"context_lines":[{"line_number":1961,"context_line":"            except OSError:"},{"line_number":1962,"context_line":"                pass"},{"line_number":1963,"context_line":""},{"line_number":1964,"context_line":"    try:"},{"line_number":1965,"context_line":"        os.unlink(path)"},{"line_number":1966,"context_line":"    except OSError:"},{"line_number":1967,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_67427eac","line":1964,"updated":"2015-01-07 08:52:45.000000000","message":"The following try block will be executed even if renamer is successful. You can put this try block in an else block OR return after renamer() above is successful.. Depending on whether you want to delete objects or not when renamer fails.","commit_id":"8fec2b405c5cd05654bb382fe0770c2924a6c48e"}]}
