)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5c546e37de9cb09e58aae5f60b2f287737b3227c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"2. Error messages returned to the user are not consistent across"},{"line_number":14,"context_line":"   all apis in case of all exceptions derived from NotFound exception."},{"line_number":15,"context_line":"   Instead of returning custom error messages returned message"},{"line_number":16,"context_line":"   defined in exception class itself."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"3. Added explanation to HTTPNotFound wherever appropriate."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa32b979_ee56f65a","line":15,"updated":"2015-06-25 07:11:45.000000000","message":"returned -\u003e return","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"16385c499d9f1415e4054f0a2bb4fbc67863f54e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"2. Error messages returned to the user are not consistent across"},{"line_number":14,"context_line":"   all apis in case of all exceptions derived from NotFound exception."},{"line_number":15,"context_line":"   Instead of returning custom error messages returned message"},{"line_number":16,"context_line":"   defined in exception class itself."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"3. Added explanation to HTTPNotFound wherever appropriate."},{"line_number":19,"context_line":"   e.g. raise webob.exc.HTTPNotFound() to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa32b979_b0c148e6","line":16,"updated":"2015-06-24 15:45:13.000000000","message":"Maybe add that this doesn\u0027t apply to HostBinaryNotFound as not to leak any unintended information to users.","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"3025a487768adbb1eaace3f031c04aad6bcaef21","unresolved":false,"context_lines":[{"line_number":14,"context_line":"   all apis in case of all exceptions derived from NotFound exception."},{"line_number":15,"context_line":"   Instead of returning custom error messages return message"},{"line_number":16,"context_line":"   defined in exception class itself."},{"line_number":17,"context_line":"   NOTE: Doesn\u0027t applied to \u0027HostBinaryNotFound\u0027 as host information to"},{"line_number":18,"context_line":"         the tenant should not be leaked."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"3. Added explanation to HTTPNotFound wherever appropriate."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa32b979_f09e9753","line":17,"updated":"2015-06-26 09:39:34.000000000","message":"apply","commit_id":"cb8bce4f1bd5f6709441d45373ea3b99c7eb4b9b"}],"cinder/api/contrib/admin_actions.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a7422a363b32f71b087a2abf66b35a4b35dc837d","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        self.authorize(context, \u0027force_delete\u0027)"},{"line_number":109,"context_line":"        try:"},{"line_number":110,"context_line":"            resource \u003d self._get(context, id)"},{"line_number":111,"context_line":"        except exception.NotFound as e:"},{"line_number":112,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":113,"context_line":"        self._delete(context, resource, force\u003dTrue)"},{"line_number":114,"context_line":"        return webob.Response(status_int\u003d202)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_8b0d2640","line":111,"updated":"2015-05-29 16:39:48.000000000","message":"Replace `e` with `error` for consistency with changes in other files.","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"50103452f7d167ae7724e3b8a5d0024b0604ef71","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        self.authorize(context, \u0027force_delete\u0027)"},{"line_number":109,"context_line":"        try:"},{"line_number":110,"context_line":"            resource \u003d self._get(context, id)"},{"line_number":111,"context_line":"        except exception.NotFound as e:"},{"line_number":112,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":113,"context_line":"        self._delete(context, resource, force\u003dTrue)"},{"line_number":114,"context_line":"        return webob.Response(status_int\u003d202)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_af94648a","line":111,"in_reply_to":"7a016987_8b0d2640","updated":"2015-05-29 21:27:26.000000000","message":"I disagree with this.  I think he should be consistent with the way that e is used elsewhere in this file.  Consistency within the file is the priority.","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"d9fb60dca63cdbc5185d8e1f30f7ec4150db6052","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        self.authorize(context, \u0027force_delete\u0027)"},{"line_number":109,"context_line":"        try:"},{"line_number":110,"context_line":"            resource \u003d self._get(context, id)"},{"line_number":111,"context_line":"        except exception.NotFound as e:"},{"line_number":112,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":113,"context_line":"        self._delete(context, resource, force\u003dTrue)"},{"line_number":114,"context_line":"        return webob.Response(status_int\u003d202)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_0f291fe6","line":111,"in_reply_to":"7a016987_af94648a","updated":"2015-06-01 08:17:27.000000000","message":"Fair enough.","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a7422a363b32f71b087a2abf66b35a4b35dc837d","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        self.authorize(context, \u0027force_detach\u0027)"},{"line_number":183,"context_line":"        try:"},{"line_number":184,"context_line":"            volume \u003d self._get(context, id)"},{"line_number":185,"context_line":"        except exception.NotFound as e:"},{"line_number":186,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":187,"context_line":"        self.volume_api.terminate_connection(context, volume,"},{"line_number":188,"context_line":"                                             {}, force\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_06000b00","line":185,"updated":"2015-05-29 16:39:48.000000000","message":"Same here.","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a7422a363b32f71b087a2abf66b35a4b35dc837d","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        self.authorize(context, \u0027migrate_volume\u0027)"},{"line_number":214,"context_line":"        try:"},{"line_number":215,"context_line":"            volume \u003d self._get(context, id)"},{"line_number":216,"context_line":"        except exception.NotFound as e:"},{"line_number":217,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":218,"context_line":"        params \u003d body[\u0027os-migrate_volume\u0027]"},{"line_number":219,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_8614fb43","line":216,"updated":"2015-05-29 16:39:48.000000000","message":"Same here.","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a7422a363b32f71b087a2abf66b35a4b35dc837d","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        self.authorize(context, \u0027migrate_volume_completion\u0027)"},{"line_number":242,"context_line":"        try:"},{"line_number":243,"context_line":"            volume \u003d self._get(context, id)"},{"line_number":244,"context_line":"        except exception.NotFound as e:"},{"line_number":245,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":246,"context_line":"        params \u003d body[\u0027os-migrate_volume_completion\u0027]"},{"line_number":247,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_461a8370","line":244,"updated":"2015-05-29 16:39:48.000000000","message":"Same here.","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"}],"cinder/api/contrib/cgsnapshots.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"50103452f7d167ae7724e3b8a5d0024b0604ef71","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                context,"},{"line_number":117,"context_line":"                cgsnapshot_id\u003did)"},{"line_number":118,"context_line":"            self.cgsnapshot_api.delete_cgsnapshot(context, cgsnapshot)"},{"line_number":119,"context_line":"        except exception.CgSnapshotNotFound as error:"},{"line_number":120,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":121,"context_line":"        except exception.InvalidCgSnapshot:"},{"line_number":122,"context_line":"            msg \u003d _(\"Invalid cgsnapshot\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_2fa194f8","line":119,"updated":"2015-05-29 21:27:26.000000000","message":"This doesn\u0027t really seem to be an improvement here.  Are we going to get the fact that the CgSnapshot was not found in the error text?","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"260b2c87ab7bb00189fa000e6de2fbfb179e258b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                context,"},{"line_number":117,"context_line":"                cgsnapshot_id\u003did)"},{"line_number":118,"context_line":"            self.cgsnapshot_api.delete_cgsnapshot(context, cgsnapshot)"},{"line_number":119,"context_line":"        except exception.CgSnapshotNotFound as error:"},{"line_number":120,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":121,"context_line":"        except exception.InvalidCgSnapshot:"},{"line_number":122,"context_line":"            msg \u003d _(\"Invalid cgsnapshot\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_aceb39a3","line":119,"in_reply_to":"7a016987_2fa194f8","updated":"2015-06-01 07:38:36.000000000","message":"https://github.com/openstack/cinder/blob/master/cinder/exception.py#L888\n\nLooks like yes, it includes the ID as well.","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"260b2c87ab7bb00189fa000e6de2fbfb179e258b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            group \u003d self.cgsnapshot_api.get(context, group_id)"},{"line_number":177,"context_line":"        except exception.NotFound:"},{"line_number":178,"context_line":"            msg \u003d _(\"Consistency group could not be found\")"},{"line_number":179,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        name \u003d cgsnapshot.get(\u0027name\u0027, None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_496621bc","line":178,"updated":"2015-06-01 07:38:36.000000000","message":"One more. If we are not catching ConsistencyGroupNotFound here then we will lose information as Jay suggested.","commit_id":"6f01a8acf631431d24f737bdb91fb46b85607af2"}],"cinder/api/contrib/qos_specs_manage.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"16385c499d9f1415e4054f0a2bb4fbc67863f54e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    try:"},{"line_number":97,"context_line":"        qos_specs.get_qos_specs(context, specs_id)"},{"line_number":98,"context_line":"    except exception.QoSSpecsNotFound as ex:"},{"line_number":99,"context_line":"        raise webob.exc.HTTPNotFound(explanation\u003dsix.text_type(ex))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class QoSSpecsController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_70ff4066","line":99,"updated":"2015-06-24 15:45:13.000000000","message":"Why not ex.msg instead?","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"971db4b9648da7258a6738f4ed6606c0ded1b8dd","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    try:"},{"line_number":97,"context_line":"        qos_specs.get_qos_specs(context, specs_id)"},{"line_number":98,"context_line":"    except exception.QoSSpecsNotFound as ex:"},{"line_number":99,"context_line":"        raise webob.exc.HTTPNotFound(explanation\u003dsix.text_type(ex))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class QoSSpecsController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_482fb388","line":99,"in_reply_to":"fa32b979_3ac64768","updated":"2015-06-25 19:11:13.000000000","message":"I don\u0027t think we should be calling six.text_type, but I\u0027m not going to get picky about this.","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"},{"author":{"_account_id":10300,"name":"Pranali Deore","email":"pranalideore@gmail.com","username":"PranaliDeore"},"change_message_id":"090dfaa4e6878af2e138442c8717f3c1b2c7d5ec","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    try:"},{"line_number":97,"context_line":"        qos_specs.get_qos_specs(context, specs_id)"},{"line_number":98,"context_line":"    except exception.QoSSpecsNotFound as ex:"},{"line_number":99,"context_line":"        raise webob.exc.HTTPNotFound(explanation\u003dsix.text_type(ex))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class QoSSpecsController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_3ac64768","line":99,"in_reply_to":"fa32b979_70ff4066","updated":"2015-06-25 13:44:24.000000000","message":"Hi Gorka,\n\nFor maintaining consistency within file I have not changed to \u0027ex.msg\u0027","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"16385c499d9f1415e4054f0a2bb4fbc67863f54e","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            self._notify_qos_specs_error(context,"},{"line_number":145,"context_line":"                                         \u0027qos_specs.create\u0027,"},{"line_number":146,"context_line":"                                         notifier_err)"},{"line_number":147,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dsix.text_type(err))"},{"line_number":148,"context_line":"        except exception.QoSSpecsExists as err:"},{"line_number":149,"context_line":"            notifier_err \u003d dict(name\u003dname, error_message\u003derr)"},{"line_number":150,"context_line":"            self._notify_qos_specs_error(context,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_f0fcb0b6","line":147,"updated":"2015-06-24 15:45:13.000000000","message":"Why not err.msg instead?","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"}],"cinder/api/contrib/types_extra_specs.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5c546e37de9cb09e58aae5f60b2f287737b3227c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        if id in specs[\u0027extra_specs\u0027]:"},{"line_number":129,"context_line":"            return {id: specs[\u0027extra_specs\u0027][id]}"},{"line_number":130,"context_line":"        else:"},{"line_number":131,"context_line":"            msg \u003d _(\"Volume Type %(type_id)s has no extra specs with key \""},{"line_number":132,"context_line":"                    \"%(id)s.\") % ({\u0027type_id\u0027: type_id, \u0027id\u0027: id})"},{"line_number":133,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_2955b8f8","line":131,"updated":"2015-06-25 07:11:45.000000000","message":"no extra spec","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"}],"cinder/api/contrib/volume_replication.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"fa9e4043826194421ac88319b17172afcf7a2347","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                         \u0027 for volume %s.\u0027),"},{"line_number":73,"context_line":"                     id,"},{"line_number":74,"context_line":"                     context\u003dcontext)"},{"line_number":75,"context_line":"            self.replication_api.promote(context, vol)"},{"line_number":76,"context_line":"        except exception.VolumeNotFound as error:"},{"line_number":77,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":78,"context_line":"        except exception.ReplicationError as error:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_6986d9ba","line":75,"updated":"2015-06-30 22:09:55.000000000","message":"This should really be split into multiple try blocks, since replication_api.promote() doesn\u0027t appear to raise VolumeNotFound.","commit_id":"cb8bce4f1bd5f6709441d45373ea3b99c7eb4b9b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0181b77b03a548afdafe7d973ef0280cca9aa6b1","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                         \u0027 for volume %s.\u0027),"},{"line_number":73,"context_line":"                     id,"},{"line_number":74,"context_line":"                     context\u003dcontext)"},{"line_number":75,"context_line":"            self.replication_api.promote(context, vol)"},{"line_number":76,"context_line":"        except exception.VolumeNotFound as error:"},{"line_number":77,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":78,"context_line":"        except exception.ReplicationError as error:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_9b7a80f0","line":75,"in_reply_to":"ba3cc151_6986d9ba","updated":"2015-06-30 22:26:51.000000000","message":"I don\u0027t know if that would really add much and I think it would make it less readable. I get what you\u0027re saying though. Since that was how things were already structured I wouldn\u0027t block this change for it. Maybe just my opinion.","commit_id":"cb8bce4f1bd5f6709441d45373ea3b99c7eb4b9b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"fa9e4043826194421ac88319b17172afcf7a2347","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                     id,"},{"line_number":91,"context_line":"                     context\u003dcontext)"},{"line_number":92,"context_line":"            self.replication_api.reenable(context, vol)"},{"line_number":93,"context_line":"        except exception.VolumeNotFound as error:"},{"line_number":94,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":95,"context_line":"        except exception.ReplicationError as error:"},{"line_number":96,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dsix.text_type(error))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_e9c0a9e2","line":93,"updated":"2015-06-30 22:09:55.000000000","message":"Same","commit_id":"cb8bce4f1bd5f6709441d45373ea3b99c7eb4b9b"}],"cinder/api/v1/volumes.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"9582a0fd80e49027de97a9dd9eb12bae0f3932b8","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        try:"},{"line_number":238,"context_line":"            vol \u003d self.volume_api.get(context, id, viewable_admin_meta\u003dTrue)"},{"line_number":239,"context_line":"            req.cache_db_volume(vol)"},{"line_number":240,"context_line":"        except exception.NotFound:"},{"line_number":241,"context_line":"            raise exc.HTTPNotFound()"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_e0b28295","line":239,"updated":"2015-05-29 11:38:16.000000000","message":"I think this needs to be fixed.","commit_id":"1db79681dacf8e331cb3837444d8aa5976b937ba"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"9582a0fd80e49027de97a9dd9eb12bae0f3932b8","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        try:"},{"line_number":254,"context_line":"            volume \u003d self.volume_api.get(context, id)"},{"line_number":255,"context_line":"            self.volume_api.delete(context, volume)"},{"line_number":256,"context_line":"        except exception.NotFound:"},{"line_number":257,"context_line":"            raise exc.HTTPNotFound()"},{"line_number":258,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_00c23ee9","line":256,"updated":"2015-05-29 11:38:16.000000000","message":"Same comment. Please fix other places.","commit_id":"1db79681dacf8e331cb3837444d8aa5976b937ba"}],"cinder/api/v2/volumes.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5c546e37de9cb09e58aae5f60b2f287737b3227c","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                                    \u0027 replicated\u0027) % source_volid"},{"line_number":388,"context_line":"                    raise exc.HTTPNotFound(explanation\u003dexplanation)"},{"line_number":389,"context_line":"                kwargs[\u0027source_replica\u0027] \u003d src_vol"},{"line_number":390,"context_line":"            except exception.ReplicationNotFound as error:"},{"line_number":391,"context_line":"                raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":392,"context_line":"        else:"},{"line_number":393,"context_line":"            kwargs[\u0027source_replica\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_09947488","line":390,"updated":"2015-06-25 07:11:45.000000000","message":"This is not correct, it should be VolumeNotFound.","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"}],"cinder/tests/unit/api/v2/test_snapshots.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5c546e37de9cb09e58aae5f60b2f287737b3227c","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def stub_snapshot_delete(self, context, snapshot):"},{"line_number":65,"context_line":"    if snapshot[\u0027id\u0027] !\u003d UUID:"},{"line_number":66,"context_line":"        raise exception.NotFound"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"def stub_snapshot_get(self, context, snapshot_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_e46a95b2","line":66,"updated":"2015-06-25 07:11:45.000000000","message":"raise SnapshotNotFound","commit_id":"95cb9631ccf459ab6b14cc5843c135fbd7e66e4f"}]}
