)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"611600e434950fc302b8aa68af8dfc6473f44b4d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Now, when add or replace a duplicate location to an image, Glance"},{"line_number":10,"context_line":"will rasie 400 HTTPBadRequest error, which is not correct. It should"},{"line_number":11,"context_line":"raise 409 HTTPConflict to keep the same with Glance client."},{"line_number":12,"context_line":"The artifacts rasie 400 as well."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"APIimpact"},{"line_number":15,"context_line":"Docimpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a8ffd7b_6ec9ef25","line":12,"updated":"2015-11-26 11:14:54.000000000","message":"nit: rasie \u003d\u003e raise","commit_id":"4bc1ccbce618913f939b12e7fc480c51c96aad20"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"7afbd4f4d4844c6b964250b6ad3dfaae31aced9a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Now, when add or replace a duplicate location to an image, Glance"},{"line_number":10,"context_line":"will rasie 400 HTTPBadRequest error, which is not correct. It should"},{"line_number":11,"context_line":"raise 409 HTTPConflict to keep the same with Glance client."},{"line_number":12,"context_line":"The artifacts rasie 400 as well."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"APIimpact"},{"line_number":15,"context_line":"Docimpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a8ffd7b_fa3d748f","line":12,"in_reply_to":"9a8ffd7b_6ec9ef25","updated":"2015-11-27 03:34:36.000000000","message":"Done","commit_id":"4bc1ccbce618913f939b12e7fc480c51c96aad20"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"a9343cbc14818d6e442822e04ce07a88d4ade80f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Duplicate location error should raise HTTPConflict"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now, when add or replace a duplicate location to an image, Glance"},{"line_number":10,"context_line":"will rasie 400 HTTPBadRequest error, which is not correct. It should"},{"line_number":11,"context_line":"raise 409 HTTPConflict to keep the same with Glance client."},{"line_number":12,"context_line":"The artifacts raise 400 as well."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a8ffd7b_22b74af6","line":10,"updated":"2015-11-27 12:11:12.000000000","message":"Ooops, I missed one the first time.\nnit: rasie \u003d\u003e raise","commit_id":"ad4953b2f2a2380f5fae15644b4de8d7d7bc1e16"}],"glance/api/v2/images.py":[{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"611600e434950fc302b8aa68af8dfc6473f44b4d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            LOG.warn(encodeutils.exception_to_unicode(e))"},{"line_number":77,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge("},{"line_number":78,"context_line":"                explanation\u003de.msg, request\u003dreq, content_type\u003d\u0027text/plain\u0027)"},{"line_number":79,"context_line":"        except (exception.DuplicateLocation, exception.Duplicate) as e:"},{"line_number":80,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.msg)"},{"line_number":81,"context_line":"        except exception.NotAuthenticated as e:"},{"line_number":82,"context_line":"            raise webob.exc.HTTPUnauthorized(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_cea57b47","line":79,"updated":"2015-11-26 11:14:54.000000000","message":"DuplicateLocation is a subclass of Duplicate, so is this exception needed as exception.Duplicate will pick it up?","commit_id":"4bc1ccbce618913f939b12e7fc480c51c96aad20"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"7afbd4f4d4844c6b964250b6ad3dfaae31aced9a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            LOG.warn(encodeutils.exception_to_unicode(e))"},{"line_number":77,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge("},{"line_number":78,"context_line":"                explanation\u003de.msg, request\u003dreq, content_type\u003d\u0027text/plain\u0027)"},{"line_number":79,"context_line":"        except (exception.DuplicateLocation, exception.Duplicate) as e:"},{"line_number":80,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.msg)"},{"line_number":81,"context_line":"        except exception.NotAuthenticated as e:"},{"line_number":82,"context_line":"            raise webob.exc.HTTPUnauthorized(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_ba436c12","line":79,"in_reply_to":"9a8ffd7b_41c879a8","updated":"2015-11-27 03:34:36.000000000","message":"Thanks, guys.","commit_id":"4bc1ccbce618913f939b12e7fc480c51c96aad20"},{"author":{"_account_id":16658,"name":"Darja Shakhray","email":"damalyavkina@gmail.com","username":"dshakhray"},"change_message_id":"a75152c430b44dee4dbfc7d16563a5a9c1aa3a58","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            LOG.warn(encodeutils.exception_to_unicode(e))"},{"line_number":77,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge("},{"line_number":78,"context_line":"                explanation\u003de.msg, request\u003dreq, content_type\u003d\u0027text/plain\u0027)"},{"line_number":79,"context_line":"        except (exception.DuplicateLocation, exception.Duplicate) as e:"},{"line_number":80,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.msg)"},{"line_number":81,"context_line":"        except exception.NotAuthenticated as e:"},{"line_number":82,"context_line":"            raise webob.exc.HTTPUnauthorized(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_41c879a8","line":79,"in_reply_to":"9a8ffd7b_cea57b47","updated":"2015-11-26 12:39:30.000000000","message":"I agree with Niall, exception.Duplicate will catch DuplicateLocation","commit_id":"4bc1ccbce618913f939b12e7fc480c51c96aad20"}],"glance/api/v3/artifacts.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"510603edac1dc58d07ee11da36d9868bb54a091e","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        except exception.LimitExceeded as e:"},{"line_number":164,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge("},{"line_number":165,"context_line":"                explanation\u003de.msg, request\u003dreq, content_type\u003d\u0027text/plain\u0027)"},{"line_number":166,"context_line":"        except (exception.DuplicateLocation, exception.Duplicate) as e:"},{"line_number":167,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.msg)"},{"line_number":168,"context_line":"        except exception.NotAuthenticated as e:"},{"line_number":169,"context_line":"            raise webob.exc.HTTPUnauthorized(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_bd6fe6fa","line":166,"updated":"2015-11-27 05:49:36.000000000","message":"same comment for DuplicateLocation will apply here as well?","commit_id":"2d17210ce44ce8b3de85f9d79e75091249d3653e"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"148cccfd0ffec77ede842bdb3bec844d7a112a57","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        except exception.LimitExceeded as e:"},{"line_number":164,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge("},{"line_number":165,"context_line":"                explanation\u003de.msg, request\u003dreq, content_type\u003d\u0027text/plain\u0027)"},{"line_number":166,"context_line":"        except (exception.DuplicateLocation, exception.Duplicate) as e:"},{"line_number":167,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.msg)"},{"line_number":168,"context_line":"        except exception.NotAuthenticated as e:"},{"line_number":169,"context_line":"            raise webob.exc.HTTPUnauthorized(explanation\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_d884380c","line":166,"in_reply_to":"9a8ffd7b_bd6fe6fa","updated":"2015-11-27 06:18:11.000000000","message":"Done","commit_id":"2d17210ce44ce8b3de85f9d79e75091249d3653e"}]}
