)]}'
{"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"0f8c3bd8b6b6eac05439de87eeaa34a94ce5fe97","unresolved":false,"context_lines":[{"line_number":226,"context_line":"    return wrapper"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"def require_backup_exists(f):"},{"line_number":230,"context_line":"    \"\"\"Decorator to require the specified snapshot to exist."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    Requires the wrapped function to use context and backup_id as"}],"source_content_type":"text/x-python","patch_set":29,"id":"ff346bd7_a1f8da48","line":229,"range":{"start_line":229,"start_character":0,"end_line":229,"end_character":29},"updated":"2017-07-25 12:33:43.000000000","message":"Probably a followup bug rather than required here, but it would be nice if this was used consistently throughout the file, rather than having the old functions like _backup_get do their own handling differently.\n\nI also wonder if there\u0027s a race with this approach since we\u0027re not holding a transaction between when we check for the backup existing and when we start querying it, so a delete request could come in during that period and cause weird results.","commit_id":"366e830fd70642e349f414572dde641f96ea48d2"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"0f8c3bd8b6b6eac05439de87eeaa34a94ce5fe97","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"def require_backup_exists(f):"},{"line_number":230,"context_line":"    \"\"\"Decorator to require the specified snapshot to exist."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    Requires the wrapped function to use context and backup_id as"},{"line_number":233,"context_line":"    their first two arguments."}],"source_content_type":"text/x-python","patch_set":29,"id":"ff346bd7_c1acfe8d","line":230,"range":{"start_line":230,"start_character":42,"end_line":230,"end_character":50},"updated":"2017-07-25 12:33:43.000000000","message":"s/snapshot/backup/","commit_id":"366e830fd70642e349f414572dde641f96ea48d2"}]}
