)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c623d02abfa70537f7e1cf2dd17f05cdbb2e600f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"in this API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I9aa30c516c33ca4418f2442da0dbd2670deefc06"},{"line_number":20,"context_line":"Implements: blueprint instance-crash-dump"},{"line_number":21,"context_line":"Signed-off-by: Hironori Shiina \u003cshiina.hironori@jp.fujitsu.com\u003e"},{"line_number":22,"context_line":"Signed-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7a740942_a14d413f","line":20,"updated":"2015-12-14 16:16:05.000000000","message":"Nit: its nice to use Partially-implements as this doesn\u0027t complete the blueprint","commit_id":"1668b2356a66b7c58e23721c3b9a716cf833329c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c7ab4d5101d7c1b26d82fe9ff214945d25524b58","unresolved":false,"context_lines":[{"line_number":17,"context_line":"in this API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I9aa30c516c33ca4418f2442da0dbd2670deefc06"},{"line_number":20,"context_line":"Implements: blueprint instance-crash-dump"},{"line_number":21,"context_line":"Signed-off-by: Hironori Shiina \u003cshiina.hironori@jp.fujitsu.com\u003e"},{"line_number":22,"context_line":"Signed-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"5a710552_0aa1a1a9","line":20,"in_reply_to":"7a740942_a14d413f","updated":"2015-12-15 01:18:09.000000000","message":"Will pay attention next time since I have had two +2 here.  Thank you very much.","commit_id":"1668b2356a66b7c58e23721c3b9a716cf833329c"}],"nova/compute/manager.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"837791d5e908df694fe095031670606432b45218","unresolved":false,"context_lines":[{"line_number":2481,"context_line":""},{"line_number":2482,"context_line":"    @messaging.expected_exceptions(NotImplementedError,"},{"line_number":2483,"context_line":"                                   exception.NMINotSupported,"},{"line_number":2484,"context_line":"                                   exception.InstanceNMIFailure)"},{"line_number":2485,"context_line":"    @wrap_exception()"},{"line_number":2486,"context_line":"    @wrap_instance_event"},{"line_number":2487,"context_line":"    @wrap_instance_fault"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_eed8eb1f","line":2484,"updated":"2015-08-04 06:46:24.000000000","message":"this is too generic, it is include all kind of exception as expected.","commit_id":"35b7a3074e9b0f0153145bf0b9d26f1f2bc986db"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"b779aac7d40c1ae61c88c92575ec248fde3d3e51","unresolved":false,"context_lines":[{"line_number":2481,"context_line":""},{"line_number":2482,"context_line":"    @messaging.expected_exceptions(NotImplementedError,"},{"line_number":2483,"context_line":"                                   exception.NMINotSupported,"},{"line_number":2484,"context_line":"                                   exception.InstanceNMIFailure)"},{"line_number":2485,"context_line":"    @wrap_exception()"},{"line_number":2486,"context_line":"    @wrap_instance_event"},{"line_number":2487,"context_line":"    @wrap_instance_fault"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_153368ac","line":2484,"in_reply_to":"1a4dcd0f_eed8eb1f","updated":"2015-08-06 04:09:13.000000000","message":"Done","commit_id":"35b7a3074e9b0f0153145bf0b9d26f1f2bc986db"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8821f0d126996314f8365c117a662928caaef108","unresolved":false,"context_lines":[{"line_number":2239,"context_line":"            LOG.exception(_LE(\u0027Error from libvirt while injecting an NMI to \u0027"},{"line_number":2240,"context_line":"                              \u0027%(instance_uuid)s: \u0027"},{"line_number":2241,"context_line":"                              \u0027[Error Code %(error_code)s] %(ex)s\u0027)"},{"line_number":2242,"context_line":"                          % {\u0027instance_uuid\u0027: instance.uuid,"},{"line_number":2243,"context_line":"                             \u0027error_code\u0027: error_code, \u0027ex\u0027: ex})"},{"line_number":2244,"context_line":""},{"line_number":2245,"context_line":"            if error_code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_6ecffbb0","line":2242,"updated":"2015-08-04 06:46:07.000000000","message":"we should use \u0027,\u0027 instead of \u0027%\u0027, When exception level message won\u0027t log, use \u0027,\u0027 avoid extra compute for the message.","commit_id":"ded60de37d15d8f0db342d7c2c5ea337ec224b76"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"7b7620c4538e0110ef0a01570b838430af09b82e","unresolved":false,"context_lines":[{"line_number":2239,"context_line":"            LOG.exception(_LE(\u0027Error from libvirt while injecting an NMI to \u0027"},{"line_number":2240,"context_line":"                              \u0027%(instance_uuid)s: \u0027"},{"line_number":2241,"context_line":"                              \u0027[Error Code %(error_code)s] %(ex)s\u0027)"},{"line_number":2242,"context_line":"                          % {\u0027instance_uuid\u0027: instance.uuid,"},{"line_number":2243,"context_line":"                             \u0027error_code\u0027: error_code, \u0027ex\u0027: ex})"},{"line_number":2244,"context_line":""},{"line_number":2245,"context_line":"            if error_code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_75fbccc1","line":2242,"in_reply_to":"1a4dcd0f_6ecffbb0","updated":"2015-08-06 04:08:27.000000000","message":"Done","commit_id":"ded60de37d15d8f0db342d7c2c5ea337ec224b76"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8821f0d126996314f8365c117a662928caaef108","unresolved":false,"context_lines":[{"line_number":2247,"context_line":"            elif error_code \u003d\u003d libvirt.VIR_ERR_OPERATION_INVALID:"},{"line_number":2248,"context_line":"                reason \u003d _(\u0027instance is not running\u0027)"},{"line_number":2249,"context_line":"            else:"},{"line_number":2250,"context_line":"                reason \u003d ex"},{"line_number":2251,"context_line":""},{"line_number":2252,"context_line":"            raise exception.InstanceNMIFailure(reason\u003dreason)"},{"line_number":2253,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_2ee57308","line":2250,"updated":"2015-08-04 06:46:07.000000000","message":"In this case, we should just raise it up, because it is unexpected case.","commit_id":"ded60de37d15d8f0db342d7c2c5ea337ec224b76"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"7b7620c4538e0110ef0a01570b838430af09b82e","unresolved":false,"context_lines":[{"line_number":2247,"context_line":"            elif error_code \u003d\u003d libvirt.VIR_ERR_OPERATION_INVALID:"},{"line_number":2248,"context_line":"                reason \u003d _(\u0027instance is not running\u0027)"},{"line_number":2249,"context_line":"            else:"},{"line_number":2250,"context_line":"                reason \u003d ex"},{"line_number":2251,"context_line":""},{"line_number":2252,"context_line":"            raise exception.InstanceNMIFailure(reason\u003dreason)"},{"line_number":2253,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_150cc8eb","line":2250,"in_reply_to":"1a4dcd0f_2ee57308","updated":"2015-08-06 04:08:27.000000000","message":"Done","commit_id":"ded60de37d15d8f0db342d7c2c5ea337ec224b76"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8821f0d126996314f8365c117a662928caaef108","unresolved":false,"context_lines":[{"line_number":2249,"context_line":"            else:"},{"line_number":2250,"context_line":"                reason \u003d ex"},{"line_number":2251,"context_line":""},{"line_number":2252,"context_line":"            raise exception.InstanceNMIFailure(reason\u003dreason)"},{"line_number":2253,"context_line":""},{"line_number":2254,"context_line":"    def suspend(self, context, instance):"},{"line_number":2255,"context_line":"        \"\"\"Suspend the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_2ecc9388","line":2252,"updated":"2015-08-04 06:46:07.000000000","message":"This is too generic. This convert all the unexpected exception to an expect exception.\n\nWe can raise an more specific exception for the instance not running at line 2248","commit_id":"ded60de37d15d8f0db342d7c2c5ea337ec224b76"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"7b7620c4538e0110ef0a01570b838430af09b82e","unresolved":false,"context_lines":[{"line_number":2249,"context_line":"            else:"},{"line_number":2250,"context_line":"                reason \u003d ex"},{"line_number":2251,"context_line":""},{"line_number":2252,"context_line":"            raise exception.InstanceNMIFailure(reason\u003dreason)"},{"line_number":2253,"context_line":""},{"line_number":2254,"context_line":"    def suspend(self, context, instance):"},{"line_number":2255,"context_line":"        \"\"\"Suspend the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_b50cf4ec","line":2252,"in_reply_to":"1a4dcd0f_2ecc9388","updated":"2015-08-06 04:08:27.000000000","message":"Done","commit_id":"ded60de37d15d8f0db342d7c2c5ea337ec224b76"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"314699b85ccc852089f7a14acc0d59051eb67b12","unresolved":false,"context_lines":[{"line_number":2371,"context_line":"            if error_code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":2372,"context_line":"                raise exception.NMINotSupported()"},{"line_number":2373,"context_line":"            elif error_code \u003d\u003d libvirt.VIR_ERR_OPERATION_INVALID:"},{"line_number":2374,"context_line":"                raise exception.InstanceNotRunning(instance_id\u003dinstance.uuid)"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"            LOG.exception(_LE(\u0027Error from libvirt while injecting an NMI to \u0027"},{"line_number":2377,"context_line":"                              \u0027%(instance_uuid)s: \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a740942_0a56e1cd","line":2374,"updated":"2015-12-08 08:29:30.000000000","message":"according to https://github.com/libvirt/libvirt/blob/master/src/qemu/qemu_driver.c#L2526 and https://github.com/libvirt/libvirt/blob/master/src/qemu/qemu_driver.c#L2537 , this translation is right.","commit_id":"267a05a8ea69b0ebda5061a580311c0b86f98b8b"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"4ad08e08a46d3c8b9808a0620ddd09464e507284","unresolved":false,"context_lines":[{"line_number":2371,"context_line":"            if error_code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":2372,"context_line":"                raise exception.NMINotSupported()"},{"line_number":2373,"context_line":"            elif error_code \u003d\u003d libvirt.VIR_ERR_OPERATION_INVALID:"},{"line_number":2374,"context_line":"                raise exception.InstanceNotRunning(instance_id\u003dinstance.uuid)"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"            LOG.exception(_LE(\u0027Error from libvirt while injecting an NMI to \u0027"},{"line_number":2377,"context_line":"                              \u0027%(instance_uuid)s: \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a740942_8a2df1a9","line":2374,"in_reply_to":"7a740942_0a56e1cd","updated":"2015-12-08 08:44:44.000000000","message":"Thanks.","commit_id":"267a05a8ea69b0ebda5061a580311c0b86f98b8b"}]}
