)]}'
{"glance/api/v1/upload_utils.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"1c73ee1f1ba047c236a6d69c22eddcd3084c6f8e","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        except exception.NotFound as e:"},{"line_number":131,"context_line":"            msg \u003d _(\"Image %s was deleted during upload.\" % image_id)"},{"line_number":132,"context_line":"            LOG.info(msg)"},{"line_number":133,"context_line":"            raise HTTPPreconditionFailed(explanation\u003dmsg, request\u003dreq,"},{"line_number":134,"context_line":"                                         content_type\u003d\u0027text/plain\u0027)"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F73A%3D","line":132,"updated":"2013-05-16 18:31:01.000000000","message":"Could anything else cause the NotFound exceptions?  I am concerned that while this is going to be the reason most of the time, such a specific error message could send a user on a wild goose chase if it is not the case.  Would something longer like \u0027Image information was not found after upload.  A client may have removed it during the upload\".","commit_id":"75d9f7dff16c3b5675ca53ab59c1b489ea41446a"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"12079be5be0a26f63685a7c0829bd747a9da2b52","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        except exception.NotFound as e:"},{"line_number":131,"context_line":"            msg \u003d _(\"Image %s could not be found after upload. The image may \""},{"line_number":132,"context_line":"                    \"have been deleted during the upload.\") % image_id"},{"line_number":133,"context_line":"            LOG.info(msg)"},{"line_number":134,"context_line":"            raise HTTPPreconditionFailed(explanation\u003dmsg, request\u003dreq,"},{"line_number":135,"context_line":"                                         content_type\u003d\u0027text/plain\u0027)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F%2BME%3D","line":133,"updated":"2013-05-17 14:22:56.000000000","message":"What is the policy of defining log levels? What about use LOG.exception()? We can get the back trace this way. Comments?","commit_id":"57a487e8f0a8ce71a92f1f3cb7f3cefe5fee02bd"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"68ce2d751b5f150bacf0e098ec9ff6aed3ff2409","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        except exception.NotFound as e:"},{"line_number":131,"context_line":"            msg \u003d _(\"Image %s could not be found after upload. The image may \""},{"line_number":132,"context_line":"                    \"have been deleted during the upload.\") % image_id"},{"line_number":133,"context_line":"            LOG.info(msg)"},{"line_number":134,"context_line":"            raise HTTPPreconditionFailed(explanation\u003dmsg, request\u003dreq,"},{"line_number":135,"context_line":"                                         content_type\u003d\u0027text/plain\u0027)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F99E%3D","line":133,"in_reply_to":"AAAAPH%2F%2F%2BME%3D","updated":"2013-05-17 15:32:57.000000000","message":"I\u0027m not sure if there is a clear policy anywhere. My logic here is that it\u0027s not really something going wrong in the system since it will probably happen naturally so that\u0027s why I went with LOG.info. Feel free to disagree though","commit_id":"57a487e8f0a8ce71a92f1f3cb7f3cefe5fee02bd"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"979c79ae5218acd115b5774dca675ded49a2591e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        except exception.NotFound as e:"},{"line_number":131,"context_line":"            msg \u003d _(\"Image %s could not be found after upload. The image may \""},{"line_number":132,"context_line":"                    \"have been deleted during the upload.\") % image_id"},{"line_number":133,"context_line":"            LOG.info(msg)"},{"line_number":134,"context_line":"            raise HTTPPreconditionFailed(explanation\u003dmsg, request\u003dreq,"},{"line_number":135,"context_line":"                                         content_type\u003d\u0027text/plain\u0027)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F9ko%3D","line":133,"in_reply_to":"AAAAPH%2F%2F99E%3D","updated":"2013-05-17 17:15:38.000000000","message":"log exception will log this event at ERROR level.  As Alex mentioned, this is not really an error case.  It is the expected result when the user deletes an image while uploading.","commit_id":"57a487e8f0a8ce71a92f1f3cb7f3cefe5fee02bd"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"8216a86d940c512efa94a855be86f34ab1e08aa3","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        except exception.NotFound as e:"},{"line_number":131,"context_line":"            msg \u003d _(\"Image %s could not be found after upload. The image may \""},{"line_number":132,"context_line":"                    \"have been deleted during the upload.\") % image_id"},{"line_number":133,"context_line":"            LOG.info(msg)"},{"line_number":134,"context_line":"            raise HTTPPreconditionFailed(explanation\u003dmsg, request\u003dreq,"},{"line_number":135,"context_line":"                                         content_type\u003d\u0027text/plain\u0027)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8l4%3D","line":133,"in_reply_to":"AAAAPH%2F%2F9ko%3D","updated":"2013-05-18 03:53:19.000000000","message":"Thanks John and Alex, I\u0027m OK we set it as INFO level. ;-)","commit_id":"57a487e8f0a8ce71a92f1f3cb7f3cefe5fee02bd"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"14956fc5a5592483365cd8088ef9f3e0774a514f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            LOG.info(msg)"},{"line_number":122,"context_line":"            raise webob.exc.HTTPPreconditionFailed(explanation\u003dmsg,"},{"line_number":123,"context_line":"                                                   request\u003dreq,"},{"line_number":124,"context_line":"                                                   content_type\u003d\u0027text/plain\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    except exception.Duplicate as e:"},{"line_number":127,"context_line":"        msg \u003d _(\"Attempt to upload duplicate image: %s\") % e"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FxrU%3D","line":124,"updated":"2013-05-23 09:49:45.000000000","message":"why is content_type needed here and not in other exceptions? I\u0027d prefer keeping it consistent with other exceptions","commit_id":"d2c5406a48d0f08f023fde508abc81f5d0cb25c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"f580a271e56f098ccf8c0b70710bc4676f74a80d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            LOG.info(msg)"},{"line_number":122,"context_line":"            raise webob.exc.HTTPPreconditionFailed(explanation\u003dmsg,"},{"line_number":123,"context_line":"                                                   request\u003dreq,"},{"line_number":124,"context_line":"                                                   content_type\u003d\u0027text/plain\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    except exception.Duplicate as e:"},{"line_number":127,"context_line":"        msg \u003d _(\"Attempt to upload duplicate image: %s\") % e"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fsdg%3D","line":124,"in_reply_to":"AAAAPH%2F%2FwXU%3D","updated":"2013-05-26 07:45:46.000000000","message":"interesting, I guess the default content_type is text/html.\n\nFiled a bug #1184279","commit_id":"d2c5406a48d0f08f023fde508abc81f5d0cb25c5"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"181674895e86c52af7a21b0507b38f152180537e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            LOG.info(msg)"},{"line_number":122,"context_line":"            raise webob.exc.HTTPPreconditionFailed(explanation\u003dmsg,"},{"line_number":123,"context_line":"                                                   request\u003dreq,"},{"line_number":124,"context_line":"                                                   content_type\u003d\u0027text/plain\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    except exception.Duplicate as e:"},{"line_number":127,"context_line":"        msg \u003d _(\"Attempt to upload duplicate image: %s\") % e"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FwXU%3D","line":124,"in_reply_to":"AAAAPH%2F%2FxrU%3D","updated":"2013-05-23 19:24:44.000000000","message":"It looks like it is in other exceptions. The HTTPConflict directly below this seems to be missing it however, as well as the HTTPInternalServerError below.","commit_id":"d2c5406a48d0f08f023fde508abc81f5d0cb25c5"}]}
