)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"be9230a82ae2b71313da9fa858288e16f75773ba","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Merge of exception, remove unused exceptions, make more"},{"line_number":10,"context_line":"humanreadable view."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I26ee53334ad9df5369127ca9c567274b2067dc03"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_e43c95c1","line":11,"updated":"2015-07-30 12:41:42.000000000","message":"IMO a bug should be reported for this which will helpful for tracking","commit_id":"99b9568d653d3f80d674004178b56a99ef0bc924"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"0dd11c591161e83e37b768a8ba954cdb03889b4b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Merge of exception, remove unused exceptions, make more"},{"line_number":10,"context_line":"humanreadable view."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I26ee53334ad9df5369127ca9c567274b2067dc03"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_cf4dd89a","line":11,"updated":"2015-07-31 01:24:08.000000000","message":"There\u0027s no bug here though, just a fair amount of duplicated/inconsistent code. I don\u0027t feel there should be a bug for that since it\u0027s not exactly a defect.","commit_id":"99b9568d653d3f80d674004178b56a99ef0bc924"}],"glance/api/v2/images.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"0dd11c591161e83e37b768a8ba954cdb03889b4b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            LOG.debug(\"User not permitted to update image \u0027%s\u0027\", image_id)"},{"line_number":162,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.msg)"},{"line_number":163,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":164,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":165,"context_line":"        except exception.StorageQuotaFull as e:"},{"line_number":166,"context_line":"            msg \u003d (_(\"Denying attempt to upload image because it exceeds the\""},{"line_number":167,"context_line":"                     \" quota: %s\") % encodeutils.exception_to_unicode(e))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_2f5d5c48","side":"PARENT","line":164,"updated":"2015-07-31 01:24:08.000000000","message":"Did I miss where this was moved to?","commit_id":"4ec1e7d4dbaed459906e71f6f45e7a4e86762f31"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"1131b1d53eaa26fe020f186adc7ac3491756ea37","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                                            tags\u003dtags, **image)"},{"line_number":66,"context_line":"            image_repo.add(image)"},{"line_number":67,"context_line":"        except exception.DuplicateLocation as dup:"},{"line_number":68,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003ddup.msg)"},{"line_number":69,"context_line":"        except exception.Invalid as e:"},{"line_number":70,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":71,"context_line":"        except exception.Forbidden as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_66b548eb","side":"PARENT","line":68,"updated":"2015-08-12 15:02:54.000000000","message":"Please, bring this exception back","commit_id":"4ec1e7d4dbaed459906e71f6f45e7a4e86762f31"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"2025b2ed0f1f216cc5dc21046680eb278a828e59","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            image \u003d image_factory.new_image(extra_properties\u003dextra_properties,"},{"line_number":65,"context_line":"                                            tags\u003dtags, **image)"},{"line_number":66,"context_line":"            image_repo.add(image)"},{"line_number":67,"context_line":"        except exception.DuplicateLocation as e:"},{"line_number":68,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":69,"context_line":"        except (exception.ReservedProperty,"},{"line_number":70,"context_line":"                exception.ReadonlyProperty) as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_1d7feb15","line":67,"updated":"2015-08-12 16:26:10.000000000","message":"Since both DuplicateLocation and Invalid both have the same body you can combine them together. And TypeError too, by the way.","commit_id":"ecf2ed458827bff7315b554359e5ddf31528fd8c"},{"author":{"_account_id":16658,"name":"Darja Shakhray","email":"damalyavkina@gmail.com","username":"dshakhray"},"change_message_id":"80aee0139ab8e601b43e944f0e860c9843e30035","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            image \u003d image_factory.new_image(extra_properties\u003dextra_properties,"},{"line_number":65,"context_line":"                                            tags\u003dtags, **image)"},{"line_number":66,"context_line":"            image_repo.add(image)"},{"line_number":67,"context_line":"        except exception.DuplicateLocation as e:"},{"line_number":68,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":69,"context_line":"        except (exception.ReservedProperty,"},{"line_number":70,"context_line":"                exception.ReadonlyProperty) as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_9322eb50","line":67,"in_reply_to":"1a4dcd0f_1d7feb15","updated":"2015-08-13 09:07:49.000000000","message":"Done","commit_id":"ecf2ed458827bff7315b554359e5ddf31528fd8c"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"55fa2ca9775ef6e1d92651f5667d4b7326dc1784","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            raise webob.exc.HTTPUnauthorized(explanation\u003de.msg)"},{"line_number":84,"context_line":"        except TypeError as e:"},{"line_number":85,"context_line":"            LOG.debug(encodeutils.exception_to_unicode(e))"},{"line_number":86,"context_line":"            raise webob.exc.HTTPBadRequest("},{"line_number":87,"context_line":"                explanation\u003dencodeutils.exception_to_unicode(e))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        return image"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_2e78d6c3","line":86,"updated":"2015-10-05 12:37:31.000000000","message":"I\u0027m just curious if we can combine this HTTPBadRequest with one on line #69.\n\nBut anyway there is no reason to call \u0027encodeutils.exception_to_unicode\u0027 twice, because we can assign this value to some variable and then pass it to debug and exception.","commit_id":"3f1039e32f604ee5b314a629d987b76f4299a892"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"46c5d22a9736366ef20a23526da15a6fa9d3a9f8","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                                            tags\u003dtags, **image)"},{"line_number":66,"context_line":"            image_repo.add(image)"},{"line_number":67,"context_line":"        except (exception.DuplicateLocation,"},{"line_number":68,"context_line":"                exception.Invalid) as e:"},{"line_number":69,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":70,"context_line":"        except (exception.ReservedProperty,"},{"line_number":71,"context_line":"                exception.ReadonlyProperty) as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a2ca52d_fd0f1f86","line":68,"updated":"2015-10-14 12:31:46.000000000","message":"Perhaps empty line is useless here.","commit_id":"30c76b0dc6d41f6ced7730f4348f3c922fe82601"}],"glance/api/v3/artifacts.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"0dd11c591161e83e37b768a8ba954cdb03889b4b","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                                                        new_artifact.id)"},{"line_number":149,"context_line":"        except (TypeError,"},{"line_number":150,"context_line":"                exception.ArtifactNotFound,"},{"line_number":151,"context_line":"                exception.Invalid) as e:"},{"line_number":152,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de)"},{"line_number":153,"context_line":"        except exception.Forbidden as e:"},{"line_number":154,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_6f42846a","line":151,"updated":"2015-07-31 01:24:08.000000000","message":"Does this now handle exception.InvalidParameterValue?","commit_id":"99b9568d653d3f80d674004178b56a99ef0bc924"},{"author":{"_account_id":16658,"name":"Darja Shakhray","email":"damalyavkina@gmail.com","username":"dshakhray"},"change_message_id":"960237d4d4e566f10db0d66538475f79632b5a30","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                                                        new_artifact.id)"},{"line_number":149,"context_line":"        except (TypeError,"},{"line_number":150,"context_line":"                exception.ArtifactNotFound,"},{"line_number":151,"context_line":"                exception.Invalid) as e:"},{"line_number":152,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de)"},{"line_number":153,"context_line":"        except exception.Forbidden as e:"},{"line_number":154,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_109d1f65","line":151,"in_reply_to":"3a50d1a3_6f42846a","updated":"2015-08-04 13:07:59.000000000","message":"Yes, Invalid catch InvalidParameterValue, because Invalid - parent class","commit_id":"99b9568d653d3f80d674004178b56a99ef0bc924"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"0dd11c591161e83e37b768a8ba954cdb03889b4b","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        except exception.LimitExceeded as e:"},{"line_number":156,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge("},{"line_number":157,"context_line":"                explanation\u003de.msg, request\u003dreq, content_type\u003d\u0027text/plain\u0027)"},{"line_number":158,"context_line":"        except exception.Duplicate as e:"},{"line_number":159,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.msg)"},{"line_number":160,"context_line":"        except exception.NotAuthenticated as e:"},{"line_number":161,"context_line":"            raise webob.exc.HTTPUnauthorized(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_8f47d076","line":158,"updated":"2015-07-31 01:24:08.000000000","message":"Does this now also catch exception.DuplicateLocation?","commit_id":"99b9568d653d3f80d674004178b56a99ef0bc924"},{"author":{"_account_id":16658,"name":"Darja Shakhray","email":"damalyavkina@gmail.com","username":"dshakhray"},"change_message_id":"960237d4d4e566f10db0d66538475f79632b5a30","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        except exception.LimitExceeded as e:"},{"line_number":156,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge("},{"line_number":157,"context_line":"                explanation\u003de.msg, request\u003dreq, content_type\u003d\u0027text/plain\u0027)"},{"line_number":158,"context_line":"        except exception.Duplicate as e:"},{"line_number":159,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.msg)"},{"line_number":160,"context_line":"        except exception.NotAuthenticated as e:"},{"line_number":161,"context_line":"            raise webob.exc.HTTPUnauthorized(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_0bae5785","line":158,"in_reply_to":"3a50d1a3_8f47d076","updated":"2015-08-04 13:07:59.000000000","message":"Yes, Duplicate catch DuplicateLocation, because Duplicate - parent class","commit_id":"99b9568d653d3f80d674004178b56a99ef0bc924"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"2025b2ed0f1f216cc5dc21046680eb278a828e59","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de)"},{"line_number":151,"context_line":"        except exception.ArtifactNotFound as e:"},{"line_number":152,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":153,"context_line":"        except exception.DuplicateLocation as dup:"},{"line_number":154,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003ddup.msg)"},{"line_number":155,"context_line":"        except exception.Forbidden as e:"},{"line_number":156,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_fd423faa","side":"PARENT","line":153,"updated":"2015-08-12 16:26:10.000000000","message":"Bring the DuplicateLocation back, too.","commit_id":"4ec1e7d4dbaed459906e71f6f45e7a4e86762f31"},{"author":{"_account_id":16658,"name":"Darja Shakhray","email":"damalyavkina@gmail.com","username":"dshakhray"},"change_message_id":"80aee0139ab8e601b43e944f0e860c9843e30035","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de)"},{"line_number":151,"context_line":"        except exception.ArtifactNotFound as e:"},{"line_number":152,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":153,"context_line":"        except exception.DuplicateLocation as dup:"},{"line_number":154,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003ddup.msg)"},{"line_number":155,"context_line":"        except exception.Forbidden as e:"},{"line_number":156,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_5cbf95cf","side":"PARENT","line":153,"in_reply_to":"1a4dcd0f_fd423faa","updated":"2015-08-13 09:07:49.000000000","message":"Done","commit_id":"4ec1e7d4dbaed459906e71f6f45e7a4e86762f31"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"2025b2ed0f1f216cc5dc21046680eb278a828e59","unresolved":false,"context_lines":[{"line_number":203,"context_line":"                updated \u003d self._do_update_op(updated, change)"},{"line_number":204,"context_line":"            artifact_repo.save(updated)"},{"line_number":205,"context_line":"            return self._get_artifact_with_dependencies(artifact_repo, id)"},{"line_number":206,"context_line":"        except (exception.InvalidJsonPatchPath,"},{"line_number":207,"context_line":"                exception.Invalid) as e:"},{"line_number":208,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":209,"context_line":"        except exception.NotFound as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_7de94f7e","line":206,"updated":"2015-08-12 16:26:10.000000000","message":"You can remove InvalidJsonPatchPath here. It\u0027s inherited from Invalid.","commit_id":"ecf2ed458827bff7315b554359e5ddf31528fd8c"},{"author":{"_account_id":16658,"name":"Darja Shakhray","email":"damalyavkina@gmail.com","username":"dshakhray"},"change_message_id":"80aee0139ab8e601b43e944f0e860c9843e30035","unresolved":false,"context_lines":[{"line_number":203,"context_line":"                updated \u003d self._do_update_op(updated, change)"},{"line_number":204,"context_line":"            artifact_repo.save(updated)"},{"line_number":205,"context_line":"            return self._get_artifact_with_dependencies(artifact_repo, id)"},{"line_number":206,"context_line":"        except (exception.InvalidJsonPatchPath,"},{"line_number":207,"context_line":"                exception.Invalid) as e:"},{"line_number":208,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":209,"context_line":"        except exception.NotFound as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_dc1de50f","line":206,"in_reply_to":"1a4dcd0f_7de94f7e","updated":"2015-08-13 09:07:49.000000000","message":"No, I can\u0027t. InvalidJsonPatchPath inherited from JsonPatchException","commit_id":"ecf2ed458827bff7315b554359e5ddf31528fd8c"}],"glance/tests/unit/v2/test_images_resource.py":[{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"1131b1d53eaa26fe020f186adc7ac3491756ea37","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        request \u003d unit_test_utils.get_fake_request()"},{"line_number":710,"context_line":"        location \u003d {\u0027url\u0027: \u0027%s/fake_location\u0027 % BASE_URI, \u0027metadata\u0027: {}}"},{"line_number":711,"context_line":"        image \u003d {\u0027name\u0027: \u0027image-1\u0027, \u0027locations\u0027: [location, location]}"},{"line_number":712,"context_line":"        self.assertRaises(webob.exc.HTTPConflict, self.controller.create,"},{"line_number":713,"context_line":"                          request, image\u003dimage, extra_properties\u003d{},"},{"line_number":714,"context_line":"                          tags\u003d[])"},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_6313fa65","line":712,"updated":"2015-08-12 15:02:54.000000000","message":"Why did you change the exception type?","commit_id":"1d3e8afda20f14456eb78e251b4199d6098eb772"}]}
