)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"985145d40259b298f26b5121bed90b537853d808","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add fault info when unshelve instance failed"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the snapshot of the shelve instance is deleted, the unshelve instance"},{"line_number":10,"context_line":"reports an error, but the error message is not displayed in the detail of"},{"line_number":11,"context_line":"the instance"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I365fcc148b27959acad1d3c4f8bb45c1ed790318"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f7c97a3_ef69f4f7","line":11,"range":{"start_line":10,"start_character":40,"end_line":11,"end_character":12},"updated":"2018-07-03 07:09:02.000000000","message":"maybe need change to: fault info not added into instance fault table?","commit_id":"2d6b105f254593e4384ed4564d9bfa2734840ad7"}],"nova/conductor/manager.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b6a31a7b26e11f7b557f0c688acd62353c389f9f","unresolved":false,"context_lines":[{"line_number":748,"context_line":""},{"line_number":749,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":750,"context_line":"                        compute_utils.add_instance_fault_from_exc(context,"},{"line_number":751,"context_line":"                                instance, error, fault_message\u003dreason)"},{"line_number":752,"context_line":"                        raise exception.UnshelveException("},{"line_number":753,"context_line":"                            instance_id\u003dinstance.uuid, reason\u003dreason)"},{"line_number":754,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_04a92024","line":751,"range":{"start_line":751,"start_character":48,"end_line":751,"end_character":49},"updated":"2018-07-11 02:02:14.000000000","message":"you can pass exc info also like below. and import sys \n\n                        compute_utils.add_instance_fault_from_exc(context,\n                                instance, error, exc_info\u003dsys.exc_info(),\n                                fault_message\u003dreason)","commit_id":"ee757732ed0040ec5a16d90b863a11dfbb83c8be"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"27f97455ee0c791cfd2fd1d915bfb2f8eeddfa0f","unresolved":false,"context_lines":[{"line_number":740,"context_line":"                        context, \u0027get_image_info\u0027, self.host, instance.uuid):"},{"line_number":741,"context_line":"                    try:"},{"line_number":742,"context_line":"                        image \u003d safe_image_show(context, image_id)"},{"line_number":743,"context_line":"                    except exception.ImageNotFound as error:"},{"line_number":744,"context_line":"                        instance.vm_state \u003d vm_states.ERROR"},{"line_number":745,"context_line":"                        instance.save()"},{"line_number":746,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_bb34e64a","line":743,"range":{"start_line":743,"start_character":51,"end_line":743,"end_character":59},"updated":"2018-07-12 10:27:19.000000000","message":"why is this required?","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2a1d38b7a8affe33a1f8bdeda0127d71a33d8ef8","unresolved":false,"context_lines":[{"line_number":740,"context_line":"                        context, \u0027get_image_info\u0027, self.host, instance.uuid):"},{"line_number":741,"context_line":"                    try:"},{"line_number":742,"context_line":"                        image \u003d safe_image_show(context, image_id)"},{"line_number":743,"context_line":"                    except exception.ImageNotFound as error:"},{"line_number":744,"context_line":"                        instance.vm_state \u003d vm_states.ERROR"},{"line_number":745,"context_line":"                        instance.save()"},{"line_number":746,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_87a66854","line":743,"range":{"start_line":743,"start_character":51,"end_line":743,"end_character":59},"in_reply_to":"5f7c97a3_bb34e64a","updated":"2018-07-12 13:58:28.000000000","message":"It is used in line 752.","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79d10b4785d0d195343e8ae0e7e0fbf4f70662e5","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                                   \u0027cannot be found.\u0027) % image_id"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":751,"context_line":"                        compute_utils.add_instance_fault_from_exc(context,"},{"line_number":752,"context_line":"                                instance, error, sys.exc_info(),"},{"line_number":753,"context_line":"                                fault_message\u003dreason)"},{"line_number":754,"context_line":"                        raise exception.UnshelveException("}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_3908798f","line":751,"range":{"start_line":751,"start_character":38,"end_line":751,"end_character":65},"updated":"2018-07-17 13:41:58.000000000","message":"We could also use _set_vm_state_and_notify here to set the vm_state to ERROR, send an error notification and set the fault, but this is OK for now since using _set_vm_state_and_notify is a larger refactor.","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"058f3073af761fd658d7a7978a5749b836264005","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                                   \u0027cannot be found.\u0027) % image_id"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":751,"context_line":"                        compute_utils.add_instance_fault_from_exc(context,"},{"line_number":752,"context_line":"                                instance, error, sys.exc_info(),"},{"line_number":753,"context_line":"                                fault_message\u003dreason)"},{"line_number":754,"context_line":"                        raise exception.UnshelveException("}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_ac2d1791","line":751,"range":{"start_line":751,"start_character":38,"end_line":751,"end_character":65},"in_reply_to":"5f7c97a3_3908798f","updated":"2018-07-18 00:03:04.000000000","message":"Thank you very much, I can submit another commit to execute _set_vm_state_and_notify, set the instance state to ERROR.","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2a1d38b7a8affe33a1f8bdeda0127d71a33d8ef8","unresolved":false,"context_lines":[{"line_number":749,"context_line":""},{"line_number":750,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":751,"context_line":"                        compute_utils.add_instance_fault_from_exc(context,"},{"line_number":752,"context_line":"                                instance, error, sys.exc_info(),"},{"line_number":753,"context_line":"                                fault_message\u003dreason)"},{"line_number":754,"context_line":"                        raise exception.UnshelveException("},{"line_number":755,"context_line":"                            instance_id\u003dinstance.uuid, reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_475e1052","line":752,"range":{"start_line":752,"start_character":42,"end_line":752,"end_character":47},"updated":"2018-07-12 13:58:28.000000000","message":"Here","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"}],"nova/tests/unit/conductor/test_conductor.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"29e77f4399af17e787ae47cc04ffea55bfdecac5","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from nova.compute import flavors"},{"line_number":29,"context_line":"from nova.compute import rpcapi as compute_rpcapi"},{"line_number":30,"context_line":"from nova.compute import task_states"},{"line_number":31,"context_line":"from nova.compute import vm_states"},{"line_number":32,"context_line":"from nova.compute import utils as compute_utils"},{"line_number":33,"context_line":"from nova.conductor import api as conductor_api"},{"line_number":34,"context_line":"from nova.conductor import manager as conductor_manager"},{"line_number":35,"context_line":"from nova.conductor import rpcapi as conductor_rpcapi"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_61f8387b","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":47},"updated":"2018-07-09 08:15:42.000000000","message":"you need to add compute_utils import before vm_states. This is why pep8 is failing.","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"94e925028e24affdfa7ac1465651106965e3b91a","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from nova.compute import flavors"},{"line_number":29,"context_line":"from nova.compute import rpcapi as compute_rpcapi"},{"line_number":30,"context_line":"from nova.compute import task_states"},{"line_number":31,"context_line":"from nova.compute import vm_states"},{"line_number":32,"context_line":"from nova.compute import utils as compute_utils"},{"line_number":33,"context_line":"from nova.conductor import api as conductor_api"},{"line_number":34,"context_line":"from nova.conductor import manager as conductor_manager"},{"line_number":35,"context_line":"from nova.conductor import rpcapi as conductor_rpcapi"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_2ef772d6","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":47},"in_reply_to":"5f7c97a3_61f8387b","updated":"2018-07-10 06:55:47.000000000","message":"Done","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"f4b43f4a13e211d07f5e44b6db21892d551c802a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"from nova.db.sqlalchemy import api as db_api"},{"line_number":42,"context_line":"from nova.db.sqlalchemy import api_models"},{"line_number":43,"context_line":"from nova import exception as exc"},{"line_number":44,"context_line":"from nova.i18n import _"},{"line_number":45,"context_line":"from nova.image import api as image_api"},{"line_number":46,"context_line":"from nova import objects"},{"line_number":47,"context_line":"from nova.objects import base as obj_base"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_be066f1a","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":23},"updated":"2018-07-09 06:45:23.000000000","message":"not needed.","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"94e925028e24affdfa7ac1465651106965e3b91a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"from nova.db.sqlalchemy import api as db_api"},{"line_number":42,"context_line":"from nova.db.sqlalchemy import api_models"},{"line_number":43,"context_line":"from nova import exception as exc"},{"line_number":44,"context_line":"from nova.i18n import _"},{"line_number":45,"context_line":"from nova.image import api as image_api"},{"line_number":46,"context_line":"from nova import objects"},{"line_number":47,"context_line":"from nova.objects import base as obj_base"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_8e0c86eb","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":23},"in_reply_to":"5f7c97a3_be066f1a","updated":"2018-07-10 06:55:47.000000000","message":"Done","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"29e77f4399af17e787ae47cc04ffea55bfdecac5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"from nova.db.sqlalchemy import api as db_api"},{"line_number":42,"context_line":"from nova.db.sqlalchemy import api_models"},{"line_number":43,"context_line":"from nova import exception as exc"},{"line_number":44,"context_line":"from nova.i18n import _"},{"line_number":45,"context_line":"from nova.image import api as image_api"},{"line_number":46,"context_line":"from nova import objects"},{"line_number":47,"context_line":"from nova.objects import base as obj_base"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_81f3149f","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":23},"in_reply_to":"5f7c97a3_be066f1a","updated":"2018-07-09 08:15:42.000000000","message":"yeah, this too","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"f4b43f4a13e211d07f5e44b6db21892d551c802a","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"        system_metadata[\u0027shelved_host\u0027] \u003d \u0027fake-mini\u0027"},{"line_number":1065,"context_line":"        system_metadata[\u0027shelved_image_id\u0027] \u003d uuids.image"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        reason \u003d _(\u0027Unshelve attempted but the image %s\u0027"},{"line_number":1068,"context_line":"            \u0027 cannot be found.\u0027) % uuids.image"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"        self.assertRaises("}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_1eb3e34f","line":1067,"range":{"start_line":1067,"start_character":17,"end_line":1067,"end_character":18},"updated":"2018-07-09 06:45:23.000000000","message":"this causes pep8 failure and seems also causing the unit tests failure","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"94e925028e24affdfa7ac1465651106965e3b91a","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"        system_metadata[\u0027shelved_host\u0027] \u003d \u0027fake-mini\u0027"},{"line_number":1065,"context_line":"        system_metadata[\u0027shelved_image_id\u0027] \u003d uuids.image"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        reason \u003d _(\u0027Unshelve attempted but the image %s\u0027"},{"line_number":1068,"context_line":"            \u0027 cannot be found.\u0027) % uuids.image"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"        self.assertRaises("}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_ce06fecd","line":1067,"range":{"start_line":1067,"start_character":17,"end_line":1067,"end_character":18},"in_reply_to":"5f7c97a3_1eb3e34f","updated":"2018-07-10 06:55:47.000000000","message":"Done","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"29e77f4399af17e787ae47cc04ffea55bfdecac5","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"        system_metadata[\u0027shelved_host\u0027] \u003d \u0027fake-mini\u0027"},{"line_number":1065,"context_line":"        system_metadata[\u0027shelved_image_id\u0027] \u003d uuids.image"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        reason \u003d _(\u0027Unshelve attempted but the image %s\u0027"},{"line_number":1068,"context_line":"            \u0027 cannot be found.\u0027) % uuids.image"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"        self.assertRaises("},{"line_number":1071,"context_line":"            exc.UnshelveException,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_21f80048","line":1068,"range":{"start_line":1067,"start_character":0,"end_line":1068,"end_character":45},"updated":"2018-07-09 08:15:42.000000000","message":"Below should work-\n\n        reason \u003d (\u0027Unshelve attempted but the image %s\u0027\n            \u0027 cannot be found.\u0027) % uuids.imag","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"94e925028e24affdfa7ac1465651106965e3b91a","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"        system_metadata[\u0027shelved_host\u0027] \u003d \u0027fake-mini\u0027"},{"line_number":1065,"context_line":"        system_metadata[\u0027shelved_image_id\u0027] \u003d uuids.image"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        reason \u003d _(\u0027Unshelve attempted but the image %s\u0027"},{"line_number":1068,"context_line":"            \u0027 cannot be found.\u0027) % uuids.image"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"        self.assertRaises("},{"line_number":1071,"context_line":"            exc.UnshelveException,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_6e09ead9","line":1068,"range":{"start_line":1067,"start_character":0,"end_line":1068,"end_character":45},"in_reply_to":"5f7c97a3_21f80048","updated":"2018-07-10 06:55:47.000000000","message":"Done","commit_id":"ce509677fdb1be2a1974088348849949338ac423"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b6a31a7b26e11f7b557f0c688acd62353c389f9f","unresolved":false,"context_lines":[{"line_number":1071,"context_line":"            self.conductor_manager.unshelve_instance,"},{"line_number":1072,"context_line":"            self.context, instance)"},{"line_number":1073,"context_line":"        add_instance_fault_from_exc.assert_called_once_with(self.context,"},{"line_number":1074,"context_line":"            instance, exc.ImageNotFound(image_id\u003duuids.image),"},{"line_number":1075,"context_line":"            fault_message\u003dreason)"},{"line_number":1076,"context_line":"        self.assertEqual(instance.vm_state, vm_states.ERROR)"},{"line_number":1077,"context_line":"        mock_get.assert_called_once_with(self.context, uuids.image,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_a5bf1c5e","line":1074,"range":{"start_line":1074,"start_character":22,"end_line":1074,"end_character":61},"updated":"2018-07-11 02:02:14.000000000","message":"here you can use like below\n\n      add_instance_fault_from_exc.assert_called_once_with(self.context,\n            instance, mock.ANY, mock.ANY,\n            fault_message\u003dreason)","commit_id":"ee757732ed0040ec5a16d90b863a11dfbb83c8be"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79d10b4785d0d195343e8ae0e7e0fbf4f70662e5","unresolved":false,"context_lines":[{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"        do_test()"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    @mock.patch.object(compute_utils, \u0027add_instance_fault_from_exc\u0027)"},{"line_number":1052,"context_line":"    @mock.patch.object(image_api.API, \u0027get\u0027,"},{"line_number":1053,"context_line":"                       side_effect\u003dexc.ImageNotFound(image_id\u003duuids.image))"},{"line_number":1054,"context_line":"    def test_unshelve_offloaded_instance_glance_image_not_found("}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_f90be178","line":1051,"range":{"start_line":1051,"start_character":4,"end_line":1051,"end_character":68},"updated":"2018-07-17 13:41:58.000000000","message":"nit: you can avoid the import by just doing:\n\n@mock.patch(\u0027nova.compute.utils.add_instance_fault_from_exc\u0027)","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"058f3073af761fd658d7a7978a5749b836264005","unresolved":false,"context_lines":[{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"        do_test()"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    @mock.patch.object(compute_utils, \u0027add_instance_fault_from_exc\u0027)"},{"line_number":1052,"context_line":"    @mock.patch.object(image_api.API, \u0027get\u0027,"},{"line_number":1053,"context_line":"                       side_effect\u003dexc.ImageNotFound(image_id\u003duuids.image))"},{"line_number":1054,"context_line":"    def test_unshelve_offloaded_instance_glance_image_not_found("}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_4c5483fd","line":1051,"range":{"start_line":1051,"start_character":4,"end_line":1051,"end_character":68},"in_reply_to":"5f7c97a3_f90be178","updated":"2018-07-18 00:03:04.000000000","message":"Ok, this will be updated in the next commit that sets the instance state to ERROR.","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"d126632111da47f76fdcdc5b1fc53c22ccf493b4","unresolved":false,"context_lines":[{"line_number":1071,"context_line":"            self.conductor_manager.unshelve_instance,"},{"line_number":1072,"context_line":"            self.context, instance)"},{"line_number":1073,"context_line":"        add_instance_fault_from_exc.assert_called_once_with(self.context,"},{"line_number":1074,"context_line":"            instance, mock.ANY, mock.ANY, fault_message\u003dreason)"},{"line_number":1075,"context_line":"        self.assertEqual(instance.vm_state, vm_states.ERROR)"},{"line_number":1076,"context_line":"        mock_get.assert_called_once_with(self.context, uuids.image,"},{"line_number":1077,"context_line":"                                         show_deleted\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_b278a9f7","line":1074,"range":{"start_line":1074,"start_character":22,"end_line":1074,"end_character":30},"updated":"2018-07-11 09:02:36.000000000","message":"this can be replaced by exception.ImageNotFound ?","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2a1d38b7a8affe33a1f8bdeda0127d71a33d8ef8","unresolved":false,"context_lines":[{"line_number":1071,"context_line":"            self.conductor_manager.unshelve_instance,"},{"line_number":1072,"context_line":"            self.context, instance)"},{"line_number":1073,"context_line":"        add_instance_fault_from_exc.assert_called_once_with(self.context,"},{"line_number":1074,"context_line":"            instance, mock.ANY, mock.ANY, fault_message\u003dreason)"},{"line_number":1075,"context_line":"        self.assertEqual(instance.vm_state, vm_states.ERROR)"},{"line_number":1076,"context_line":"        mock_get.assert_called_once_with(self.context, uuids.image,"},{"line_number":1077,"context_line":"                                         show_deleted\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_a7512433","line":1074,"range":{"start_line":1074,"start_character":22,"end_line":1074,"end_character":30},"in_reply_to":"5f7c97a3_b278a9f7","updated":"2018-07-12 13:58:28.000000000","message":"+1","commit_id":"3937d4863bca2173e6c6e9d6e5e42dda8c4da8b3"}]}
