)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"7fd3bb9e41005ac37868f0914646174eb468dfb9","unresolved":false,"context_lines":[{"line_number":4509,"context_line":"            # a concurrent transaction has been committed,"},{"line_number":4510,"context_line":"            # try again unless this was the last attempt"},{"line_number":4511,"context_line":"            if attempt \u003d\u003d max_retries - 1:"},{"line_number":4512,"context_line":"                raise exception.FlavorExtraSpecUpdateCreateFailed("},{"line_number":4513,"context_line":"                                     id\u003dflavor_id, retries\u003dmax_retries)"},{"line_number":4514,"context_line":""},{"line_number":4515,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FSXg%3D","line":4512,"updated":"2014-01-15 13:55:44.000000000","message":"This is what I had in mind, but I don\u0027t really like the name of the exception. See other examples - most of them are like \u0027SomethingExists\u0027\n\nAlso - do we really need that loop up there? I\u0027d reamove it but up to you - I won\u0027t block the patch on it.","commit_id":"cf988884773083785e11747c198a680eda07655f"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"3cb62d8f97fd21f2f98640b631d2b29f7a3d2e1e","unresolved":false,"context_lines":[{"line_number":4509,"context_line":"            # a concurrent transaction has been committed,"},{"line_number":4510,"context_line":"            # try again unless this was the last attempt"},{"line_number":4511,"context_line":"            if attempt \u003d\u003d max_retries - 1:"},{"line_number":4512,"context_line":"                raise exception.FlavorExtraSpecUpdateCreateFailed("},{"line_number":4513,"context_line":"                                     id\u003dflavor_id, retries\u003dmax_retries)"},{"line_number":4514,"context_line":""},{"line_number":4515,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FSLo%3D","line":4512,"in_reply_to":"AAAAUH%2F%2FSL8%3D","updated":"2014-01-15 14:06:29.000000000","message":"Sorry, I mean FlavorIdExists","commit_id":"cf988884773083785e11747c198a680eda07655f"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"aebd528f2d42fa317590ebdce657e9d26975d331","unresolved":false,"context_lines":[{"line_number":4509,"context_line":"            # a concurrent transaction has been committed,"},{"line_number":4510,"context_line":"            # try again unless this was the last attempt"},{"line_number":4511,"context_line":"            if attempt \u003d\u003d max_retries - 1:"},{"line_number":4512,"context_line":"                raise exception.FlavorExtraSpecUpdateCreateFailed("},{"line_number":4513,"context_line":"                                     id\u003dflavor_id, retries\u003dmax_retries)"},{"line_number":4514,"context_line":""},{"line_number":4515,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FSL8%3D","line":4512,"in_reply_to":"AAAAUH%2F%2FSXg%3D","updated":"2014-01-15 14:05:11.000000000","message":"I will use FlavorExists","commit_id":"cf988884773083785e11747c198a680eda07655f"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d0f8260f35aafe9c34042ea516988a4d62ab88ce","unresolved":false,"context_lines":[{"line_number":4515,"context_line":"            # a concurrent transaction has been committed,"},{"line_number":4516,"context_line":"            # try again unless this was the last attempt"},{"line_number":4517,"context_line":"            if attempt \u003d\u003d max_retries - 1:"},{"line_number":4518,"context_line":"                raise exception.FlavorIdExists(flavor_id\u003dflavor_id)"},{"line_number":4519,"context_line":""},{"line_number":4520,"context_line":""},{"line_number":4521,"context_line":"####################"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FSMQ%3D","line":4518,"updated":"2014-02-14 08:19:27.000000000","message":"The message of FlavorIdExists is\n\n Flavor with ID %(flavor_id)s already exists.\n\nThis method is also for updating flavor extra_specs, so it is not problem even if flavor exists already.","commit_id":"add05ab45c60cb1e0f2249b4915b9410fe2d6ce1"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"b86a2d9db7d4428eae7a062696e17434f371db16","unresolved":false,"context_lines":[{"line_number":4515,"context_line":"            # a concurrent transaction has been committed,"},{"line_number":4516,"context_line":"            # try again unless this was the last attempt"},{"line_number":4517,"context_line":"            if attempt \u003d\u003d max_retries - 1:"},{"line_number":4518,"context_line":"                raise exception.FlavorIdExists(flavor_id\u003dflavor_id)"},{"line_number":4519,"context_line":""},{"line_number":4520,"context_line":""},{"line_number":4521,"context_line":"####################"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAU3%2F%2F%2FKk%3D","line":4518,"in_reply_to":"AAAAUX%2F%2FSMQ%3D","updated":"2014-02-23 01:16:49.000000000","message":"OK, I will create a new exception for this. Thanks.","commit_id":"add05ab45c60cb1e0f2249b4915b9410fe2d6ce1"}]}
