)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"e580318781e3ac785177c898a0b7a8de67a8f8cf","unresolved":false,"context_lines":[{"line_number":9,"context_line":"V2.1 API use decorator expected_error protect we haven\u0027t any"},{"line_number":10,"context_line":"unexpected exception raise out. So we should use concrete exception"},{"line_number":11,"context_line":"instead of generic exception. This patch uses concrete NotFound"},{"line_number":12,"context_line":"exception instead of generic exception.NotFound."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I13a04bdc78b92de69b81333eeb529cadc4d3c856"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fa81d914_87b559cf","line":12,"updated":"2015-01-27 23:18:02.000000000","message":"nit: ...instead of the generic exception NotFound. (Note particularly the space between exception and NotFound.)","commit_id":"7484790d08e7d40ba330976a000607b561cc0d8f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b686c21070e81d3eb3d50c144320b6eec69db533","unresolved":false,"context_lines":[{"line_number":9,"context_line":"V2.1 API use decorator expected_error protect we haven\u0027t any"},{"line_number":10,"context_line":"unexpected exception raise out. So we should use concrete exception"},{"line_number":11,"context_line":"instead of generic exception. This patch uses concrete NotFound"},{"line_number":12,"context_line":"exception instead of generic exception.NotFound."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I13a04bdc78b92de69b81333eeb529cadc4d3c856"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fa81d914_9560a3d0","line":12,"in_reply_to":"fa81d914_87b559cf","updated":"2015-01-30 07:56:10.000000000","message":"thanks, will update","commit_id":"7484790d08e7d40ba330976a000607b561cc0d8f"}],"nova/api/openstack/compute/plugins/v3/fping.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"e580318781e3ac785177c898a0b7a8de67a8f8cf","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                \"project_id\": instance[\"project_id\"],"},{"line_number":149,"context_line":"                \"alive\": bool(set(ips) \u0026 alive_ips),"},{"line_number":150,"context_line":"            }"},{"line_number":151,"context_line":"        }"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"class Fping(extensions.V3APIExtensionBase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa81d914_e7fb7545","line":151,"updated":"2015-01-27 23:18:02.000000000","message":"Looks like copy-paste of above and, more importantly, dead code.","commit_id":"7484790d08e7d40ba330976a000607b561cc0d8f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b686c21070e81d3eb3d50c144320b6eec69db533","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                \"project_id\": instance[\"project_id\"],"},{"line_number":149,"context_line":"                \"alive\": bool(set(ips) \u0026 alive_ips),"},{"line_number":150,"context_line":"            }"},{"line_number":151,"context_line":"        }"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"class Fping(extensions.V3APIExtensionBase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa81d914_75396fd6","line":151,"in_reply_to":"fa81d914_e7fb7545","updated":"2015-01-30 07:56:10.000000000","message":"yes, sorry for that.","commit_id":"7484790d08e7d40ba330976a000607b561cc0d8f"}],"nova/api/openstack/compute/plugins/v3/servers.py":[{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"46946351ab4575bf19bdd08ef063b3cdf42d1a3b","unresolved":false,"context_lines":[{"line_number":728,"context_line":"            instance.update(update_dict)"},{"line_number":729,"context_line":"            instance.save()"},{"line_number":730,"context_line":"            return self._view_builder.show(req, instance)"},{"line_number":731,"context_line":"        except exception.InstanceNotFound:"},{"line_number":732,"context_line":"            msg \u003d _(\"Instance could not be found\")"},{"line_number":733,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":734,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_019dd566","line":731,"updated":"2015-02-13 14:24:44.000000000","message":"I don\u0027t see anything in save() which raises InstanceNotFound. AFAICT we might end up at https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L2407 via https://github.com/openstack/nova/blob/master/nova/objects/instance.py#L817","commit_id":"83c9d3e55e044d7095d57b4360e221909099c77a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9728a82388dbf9907d8237f634c6315721abe5df","unresolved":false,"context_lines":[{"line_number":728,"context_line":"            instance.update(update_dict)"},{"line_number":729,"context_line":"            instance.save()"},{"line_number":730,"context_line":"            return self._view_builder.show(req, instance)"},{"line_number":731,"context_line":"        except exception.InstanceNotFound:"},{"line_number":732,"context_line":"            msg \u003d _(\"Instance could not be found\")"},{"line_number":733,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":734,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_13498b32","line":731,"in_reply_to":"da86d52c_019dd566","updated":"2015-02-15 01:49:40.000000000","message":"The instance object will call \nhttps://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L2449\n\nAnd it will call \u0027_instance_get_by_uuid\u0027, you can found \u0027_instance_get_by_uuid\u0027 can raise InstanceNotFound","commit_id":"83c9d3e55e044d7095d57b4360e221909099c77a"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"4e9dae113802b8144b4a689b28f68b16d26dd06a","unresolved":false,"context_lines":[{"line_number":728,"context_line":"            instance.update(update_dict)"},{"line_number":729,"context_line":"            instance.save()"},{"line_number":730,"context_line":"            return self._view_builder.show(req, instance)"},{"line_number":731,"context_line":"        except exception.InstanceNotFound:"},{"line_number":732,"context_line":"            msg \u003d _(\"Instance could not be found\")"},{"line_number":733,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":734,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_ded5f71b","line":731,"in_reply_to":"da86d52c_13498b32","updated":"2015-02-17 13:15:46.000000000","message":"OK I have chased through all the code paths that I can, and I agree. But I think this comment is therefore wrong: https://github.com/openstack/nova/blob/07e0978fbc630ca919fc6b5f56a7f380e0823622/nova/db/sqlalchemy/api.py#L2408 - what do you think about changing it to say \u0027InstanceNotFound\u0027 in this patch?  (that\u0027s only a nit tho)","commit_id":"83c9d3e55e044d7095d57b4360e221909099c77a"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"46946351ab4575bf19bdd08ef063b3cdf42d1a3b","unresolved":false,"context_lines":[{"line_number":836,"context_line":"        \"\"\"Destroys a server.\"\"\""},{"line_number":837,"context_line":"        try:"},{"line_number":838,"context_line":"            self._delete(req.environ[\u0027nova.context\u0027], req, id)"},{"line_number":839,"context_line":"        except exception.InstanceNotFound:"},{"line_number":840,"context_line":"            msg \u003d _(\"Instance could not be found\")"},{"line_number":841,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":842,"context_line":"        except exception.InstanceIsLocked as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_c1d81df3","line":839,"updated":"2015-02-13 14:24:44.000000000","message":"I don\u0027t see where this is thrown either.","commit_id":"83c9d3e55e044d7095d57b4360e221909099c77a"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"4e9dae113802b8144b4a689b28f68b16d26dd06a","unresolved":false,"context_lines":[{"line_number":836,"context_line":"        \"\"\"Destroys a server.\"\"\""},{"line_number":837,"context_line":"        try:"},{"line_number":838,"context_line":"            self._delete(req.environ[\u0027nova.context\u0027], req, id)"},{"line_number":839,"context_line":"        except exception.InstanceNotFound:"},{"line_number":840,"context_line":"            msg \u003d _(\"Instance could not be found\")"},{"line_number":841,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":842,"context_line":"        except exception.InstanceIsLocked as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_9eeb7fdb","line":839,"in_reply_to":"da86d52c_b32fdf3d","updated":"2015-02-17 13:15:46.000000000","message":"thanks.","commit_id":"83c9d3e55e044d7095d57b4360e221909099c77a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9728a82388dbf9907d8237f634c6315721abe5df","unresolved":false,"context_lines":[{"line_number":836,"context_line":"        \"\"\"Destroys a server.\"\"\""},{"line_number":837,"context_line":"        try:"},{"line_number":838,"context_line":"            self._delete(req.environ[\u0027nova.context\u0027], req, id)"},{"line_number":839,"context_line":"        except exception.InstanceNotFound:"},{"line_number":840,"context_line":"            msg \u003d _(\"Instance could not be found\")"},{"line_number":841,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":842,"context_line":"        except exception.InstanceIsLocked as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_b32fdf3d","line":839,"in_reply_to":"da86d52c_c1d81df3","updated":"2015-02-15 01:49:40.000000000","message":"It will be raised from this function https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/plugins/v3/servers.py#L693","commit_id":"83c9d3e55e044d7095d57b4360e221909099c77a"}]}
