)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f480910cb42815087f9670b0bc67b1c8fded1f09","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: properly decode error message from qemu guest agent"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Some of error messages from qemu-guest-agent is"},{"line_number":10,"context_line":"    localized encoding."},{"line_number":11,"context_line":"    We may get GB2312(Chinese charactors) from qga\u0027s error message"},{"line_number":12,"context_line":"    from a Chinese version of Windows."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f4b6375_af6f0426","line":9,"updated":"2017-10-27 10:59:27.000000000","message":"nitpick: the indentation of the commit message is surprising.","commit_id":"63d18a04318b1683b9031285ba69880402e7645d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"46966024cf766225b6d64a48810877401f7d9d1c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: properly decode error message from qemu guest agent"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Some of error messages from qemu-guest-agent is"},{"line_number":10,"context_line":"    localized encoding."},{"line_number":11,"context_line":"    We may get GB2312(Chinese charactors) from qga\u0027s error message"},{"line_number":12,"context_line":"    from a Chinese version of Windows."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f4b6375_9a8d922c","line":9,"in_reply_to":"3f4b6375_af6f0426","updated":"2017-10-28 02:34:33.000000000","message":"Fixed, thanks.","commit_id":"63d18a04318b1683b9031285ba69880402e7645d"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"9cb22e9cd7ba9f02592ff70147de5934cf7df327","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"        mock_guest \u003d mock.Mock(spec\u003dlibvirt_guest.Guest)"},{"line_number":1415,"context_line":"        mock_guest.set_user_password.side_effect \u003d ("},{"line_number":1416,"context_line":"                fakelibvirt.libvirtError("},{"line_number":1417,"context_line":"                    \"failed to set password: \\xe9\\x94\\x99\\xe8\\xaf\\xaf\\xe3\\x80\\x82\"))"},{"line_number":1418,"context_line":"        mock_get_guest.return_value \u003d mock_guest"},{"line_number":1419,"context_line":""},{"line_number":1420,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_2316b24a","line":1417,"range":{"start_line":1417,"start_character":79,"end_line":1417,"end_character":84},"updated":"2017-10-26 09:05:57.000000000","message":"PEP8 for you","commit_id":"edbcaa2952875d146eee572cf68b414d249b245b"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"9cfcde9e76553766a6b374148cd2e332626050bb","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"        mock_guest \u003d mock.Mock(spec\u003dlibvirt_guest.Guest)"},{"line_number":1415,"context_line":"        mock_guest.set_user_password.side_effect \u003d ("},{"line_number":1416,"context_line":"                fakelibvirt.libvirtError("},{"line_number":1417,"context_line":"                    \"failed to set password: \\xe9\\x94\\x99\\xe8\\xaf\\xaf\\xe3\\x80\\x82\"))"},{"line_number":1418,"context_line":"        mock_get_guest.return_value \u003d mock_guest"},{"line_number":1419,"context_line":""},{"line_number":1420,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_353145a4","line":1417,"range":{"start_line":1417,"start_character":79,"end_line":1417,"end_character":84},"in_reply_to":"3f4b6375_2316b24a","updated":"2017-10-26 09:49:14.000000000","message":"Thanks, Fix soon.","commit_id":"edbcaa2952875d146eee572cf68b414d249b245b"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"a776429591432416568bd11470000c4f1a8a0554","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"        mock_guest \u003d mock.Mock(spec\u003dlibvirt_guest.Guest)"},{"line_number":1415,"context_line":"        mock_guest.set_user_password.side_effect \u003d ("},{"line_number":1416,"context_line":"                fakelibvirt.libvirtError("},{"line_number":1417,"context_line":"                    \"failed: \\xe9\\x94\\x99\\xe8\\xaf\\xaf\\xe3\\x80\\x82\"))"},{"line_number":1418,"context_line":"        mock_get_guest.return_value \u003d mock_guest"},{"line_number":1419,"context_line":""},{"line_number":1420,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_26ab5675","line":1417,"updated":"2017-10-26 15:35:05.000000000","message":"Hum, you may have to use the b\"...\" prefix to ensure to get a bytes string on Python 3. If the class doesn\u0027t accept a bytes string on Python 3, maybe just skip the test on Python 3?","commit_id":"dcce2d1e8c27e4f56c73331df73473e26b66687e"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"9ee9a474d0c469ec153c014e272b368f71d6d006","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"        mock_guest \u003d mock.Mock(spec\u003dlibvirt_guest.Guest)"},{"line_number":1415,"context_line":"        mock_guest.set_user_password.side_effect \u003d ("},{"line_number":1416,"context_line":"                fakelibvirt.libvirtError("},{"line_number":1417,"context_line":"                    \"failed: \\xe9\\x94\\x99\\xe8\\xaf\\xaf\\xe3\\x80\\x82\"))"},{"line_number":1418,"context_line":"        mock_get_guest.return_value \u003d mock_guest"},{"line_number":1419,"context_line":""},{"line_number":1420,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_4c10a857","line":1417,"in_reply_to":"3f4b6375_26ab5675","updated":"2017-10-27 02:57:55.000000000","message":"Thanks, we should add prefix b\"...\".","commit_id":"dcce2d1e8c27e4f56c73331df73473e26b66687e"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"50c6ac4aa5bf5a1da3d0349bcf0a79da9b531cac","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1817,"context_line":"            org_msg \u003d ex.get_error_message()"},{"line_number":1818,"context_line":"            if isinstance(org_msg, str):"},{"line_number":1819,"context_line":"                err_msg \u003d org_msg.decode(\u0027utf-8\u0027)"},{"line_number":1820,"context_line":"            else:"},{"line_number":1821,"context_line":"                err_msg \u003d org_msg"},{"line_number":1822,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_aae4dde0","line":1819,"updated":"2017-10-25 06:47:42.000000000","message":"That is assuming the guest OS is using UTF-8. Well I think by your solution we are  handling most of the cases. Let see if Victor Stinner can have a look.","commit_id":"ba9f6df28b602ffe5f811db4408e8118bca9e096"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"c020676db7badd578f21e9d8ba6c1b69cfd6a254","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1817,"context_line":"            org_msg \u003d ex.get_error_message()"},{"line_number":1818,"context_line":"            if isinstance(org_msg, str):"},{"line_number":1819,"context_line":"                err_msg \u003d org_msg.decode(\u0027utf-8\u0027)"},{"line_number":1820,"context_line":"            else:"},{"line_number":1821,"context_line":"                err_msg \u003d org_msg"},{"line_number":1822,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_57ef2ce8","line":1819,"in_reply_to":"3f4b6375_4a8afebe","updated":"2017-10-26 06:59:52.000000000","message":"Thanks for your suggestion.\nI\u0027ll use exception_to_unicode instead and add a unit tests.","commit_id":"ba9f6df28b602ffe5f811db4408e8118bca9e096"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"0dd9beb858976d337ffc652eb010879cf90c4002","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1817,"context_line":"            org_msg \u003d ex.get_error_message()"},{"line_number":1818,"context_line":"            if isinstance(org_msg, str):"},{"line_number":1819,"context_line":"                err_msg \u003d org_msg.decode(\u0027utf-8\u0027)"},{"line_number":1820,"context_line":"            else:"},{"line_number":1821,"context_line":"                err_msg \u003d org_msg"},{"line_number":1822,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_4a8afebe","line":1819,"in_reply_to":"3f4b6375_5ec76797","updated":"2017-10-25 13:42:45.000000000","message":"Thanks for your feedback Victor :)\n\n\u003e Since I expect that there are many places in nova handling libvirt exceptions, I highly suggest you to write an helper function to get the libvirt error message as Unicode. So it will be much simpler to change the encoding, and you picked the wrong one. For example, replace UTF-8 with exception_to_unicode(), or the opposite.\n\nNormally that should be OK, I guess we have this problem because libvirt is reporting a message from QGA (QEMU guest agent) installed on the guest OS and so using its local.\n\nSince we can\u0027t know the local used by guest OS your suggestion using \u0027oslo_utils.encodeutils.exception_to_unicode\u0027 looks interesting. Please Chen Hanxiao, can you look at this and update your patch?\n\n\u003e Final note: your isinstance(msg, str) check is plain wrong on Python 3, since str is already Unicode :-) Replace str with bytes (it\u0027s an alias to str in Python 2)\n\nAnd also address the above suggestion.","commit_id":"ba9f6df28b602ffe5f811db4408e8118bca9e096"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"dedc98435073a83f985f4e2d20a830c879199847","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1817,"context_line":"            org_msg \u003d ex.get_error_message()"},{"line_number":1818,"context_line":"            if isinstance(org_msg, str):"},{"line_number":1819,"context_line":"                err_msg \u003d org_msg.decode(\u0027utf-8\u0027)"},{"line_number":1820,"context_line":"            else:"},{"line_number":1821,"context_line":"                err_msg \u003d org_msg"},{"line_number":1822,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_0e652546","line":1819,"in_reply_to":"3f4b6375_5ec76797","updated":"2017-10-26 05:34:29.000000000","message":"Thanks for your hints.\nSince we could use exception_to_unicode(), we could get rid of isinstance as well.","commit_id":"ba9f6df28b602ffe5f811db4408e8118bca9e096"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"4cc1e64cf88fdadfb1e25907b92cbc003c950156","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1817,"context_line":"            org_msg \u003d ex.get_error_message()"},{"line_number":1818,"context_line":"            if isinstance(org_msg, str):"},{"line_number":1819,"context_line":"                err_msg \u003d org_msg.decode(\u0027utf-8\u0027)"},{"line_number":1820,"context_line":"            else:"},{"line_number":1821,"context_line":"                err_msg \u003d org_msg"},{"line_number":1822,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_5ec76797","line":1819,"in_reply_to":"3f4b6375_aae4dde0","updated":"2017-10-25 09:24:00.000000000","message":"If you don\u0027t know the encoding, exception_to_unicode() does its best to guess it for you.\n\nhttps://docs.openstack.org/oslo.utils/latest/reference/encodeutils.html#oslo_utils.encodeutils.exception_to_unicode\n\nSorry, I don\u0027t know the encoding used by libvirt. In my experience, usually C libraries don\u0027t use a well defined encoding, but rely on the locale encoding. In your case, it seems like UTF-8 is used on Windows, which is not the locale encoding since UTF-8 cannot be used as locale encoding on Windows. Maybe libvirt always use UTF-8?\n\nMoreover, usually exception messages are written in english and so can be safetely decoded from any encoding compatible with ASCII: ASCII, latin1, utf-8, etc. But again, it seems like in your case, it\u0027s a non-ASCII message (chinese) encoded in UTF-8.\n\nSince I expect that there are many places in nova handling libvirt exceptions, I highly suggest you to write an helper function to get the libvirt error message as Unicode. So it will be much simpler to change the encoding, and you picked the wrong one. For example, replace UTF-8 with exception_to_unicode(), or the opposite.\n\nFinal note: your isinstance(msg, str) check is plain wrong on Python 3, since str is already Unicode :-) Replace str with bytes (it\u0027s an alias to str in Python 2).","commit_id":"ba9f6df28b602ffe5f811db4408e8118bca9e096"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2354b88134d81f92ad6e8e17ef9bbfcf58c4567e","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1817,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"},{"line_number":1818,"context_line":"                     \u0027\"%(user)s\": [Error Code %(error_code)s] %(ex)s\u0027)"},{"line_number":1819,"context_line":"                   % {\u0027user\u0027: user, \u0027error_code\u0027: error_code, \u0027ex\u0027: ex})"},{"line_number":1820,"context_line":"            raise exception.InternalError(msg)"},{"line_number":1821,"context_line":""},{"line_number":1822,"context_line":"    def _can_quiesce(self, instance, image_meta):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_b27bf2f2","side":"PARENT","line":1819,"range":{"start_line":1819,"start_character":68,"end_line":1819,"end_character":70},"updated":"2017-10-27 03:27:06.000000000","message":"Can\u0027t we just do six.text_type(ex) for this?","commit_id":"df9fbbfec97a1ce13364d025bcd66621725bb7e4"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"de7fbc1a99b81b7ec1a418d2187e1f73a8500e4a","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1817,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"},{"line_number":1818,"context_line":"                     \u0027\"%(user)s\": [Error Code %(error_code)s] %(ex)s\u0027)"},{"line_number":1819,"context_line":"                   % {\u0027user\u0027: user, \u0027error_code\u0027: error_code, \u0027ex\u0027: ex})"},{"line_number":1820,"context_line":"            raise exception.InternalError(msg)"},{"line_number":1821,"context_line":""},{"line_number":1822,"context_line":"    def _can_quiesce(self, instance, image_meta):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_d54898b3","side":"PARENT","line":1819,"range":{"start_line":1819,"start_character":68,"end_line":1819,"end_character":70},"in_reply_to":"3f4b6375_b27bf2f2","updated":"2017-10-27 04:30:28.000000000","message":"On python 2.x by six.text_type, we\u0027ll get an UnicodeDecodeError too.","commit_id":"df9fbbfec97a1ce13364d025bcd66621725bb7e4"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":844,"context_line":"                        LOG.warning(\u0027Error from libvirt during destroy. \u0027"},{"line_number":845,"context_line":"                                    \u0027Code\u003d%(errcode)s Error\u003d%(e)s; \u0027"},{"line_number":846,"context_line":"                                    \u0027attempt %(attempt)d of 3\u0027,"},{"line_number":847,"context_line":"                                    {\u0027errcode\u0027: errcode, \u0027e\u0027: e,"},{"line_number":848,"context_line":"                                     \u0027attempt\u0027: attempt},"},{"line_number":849,"context_line":"                                    instance\u003dinstance)"},{"line_number":850,"context_line":"                        with excutils.save_and_reraise_exception() as ctxt:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_03ec138d","line":847,"range":{"start_line":847,"start_character":62,"end_line":847,"end_character":63},"updated":"2017-11-02 19:13:08.000000000","message":"Should we convert this to unicode too?","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":844,"context_line":"                        LOG.warning(\u0027Error from libvirt during destroy. \u0027"},{"line_number":845,"context_line":"                                    \u0027Code\u003d%(errcode)s Error\u003d%(e)s; \u0027"},{"line_number":846,"context_line":"                                    \u0027attempt %(attempt)d of 3\u0027,"},{"line_number":847,"context_line":"                                    {\u0027errcode\u0027: errcode, \u0027e\u0027: e,"},{"line_number":848,"context_line":"                                     \u0027attempt\u0027: attempt},"},{"line_number":849,"context_line":"                                    instance\u003dinstance)"},{"line_number":850,"context_line":"                        with excutils.save_and_reraise_exception() as ctxt:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_4c36b353","line":847,"range":{"start_line":847,"start_character":62,"end_line":847,"end_character":63},"in_reply_to":"3f4b6375_03ec138d","updated":"2017-11-03 06:50:05.000000000","message":"It\u0027s not necessary to convert get_error_code[1], which comes from\nvirGetLastError of libvirt.\nThe virError structure defines code as int[2].\n\nBut some other errors from libvirt should be converted,\nas we could set LANG to change the language of libvirt err messages.\n\nI\u0027ll fix this soon.\n\n\n[1]:\nhttps://github.com/libvirt/libvirt-python/blob/8018f0aa7eeb9f67be887107cf66d481893f210a/libvirt-override.py#L37\n\n[2]:\nhttps://github.com/libvirt/libvirt/blob/a1e3e8ddbd75050a20db663303b7851e1069ebe0/include/libvirt/virterror.h#L156","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":924,"context_line":"                    else:"},{"line_number":925,"context_line":"                        LOG.error(\u0027Error from libvirt during undefine. \u0027"},{"line_number":926,"context_line":"                                  \u0027Code\u003d%(errcode)s Error\u003d%(e)s\u0027,"},{"line_number":927,"context_line":"                                  {\u0027errcode\u0027: errcode, \u0027e\u0027: e},"},{"line_number":928,"context_line":"                                  instance\u003dinstance)"},{"line_number":929,"context_line":"        except exception.InstanceNotFound:"},{"line_number":930,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_83f7e359","line":927,"range":{"start_line":927,"start_character":60,"end_line":927,"end_character":61},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":924,"context_line":"                    else:"},{"line_number":925,"context_line":"                        LOG.error(\u0027Error from libvirt during undefine. \u0027"},{"line_number":926,"context_line":"                                  \u0027Code\u003d%(errcode)s Error\u003d%(e)s\u0027,"},{"line_number":927,"context_line":"                                  {\u0027errcode\u0027: errcode, \u0027e\u0027: e},"},{"line_number":928,"context_line":"                                  instance\u003dinstance)"},{"line_number":929,"context_line":"        except exception.InstanceNotFound:"},{"line_number":930,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_cd1a9dc4","line":927,"range":{"start_line":927,"start_character":60,"end_line":927,"end_character":61},"in_reply_to":"3f4b6375_83f7e359","updated":"2017-11-03 06:50:05.000000000","message":"should be fixed.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                    errcode \u003d e.get_error_code()"},{"line_number":954,"context_line":"                    LOG.exception(_(\u0027Error from libvirt during unfilter. \u0027"},{"line_number":955,"context_line":"                                    \u0027Code\u003d%(errcode)s Error\u003d%(e)s\u0027),"},{"line_number":956,"context_line":"                                  {\u0027errcode\u0027: errcode, \u0027e\u0027: e},"},{"line_number":957,"context_line":"                                  instance\u003dinstance)"},{"line_number":958,"context_line":"                    reason \u003d _(\"Error unfiltering instance.\")"},{"line_number":959,"context_line":"                    raise exception.InstanceTerminationFailure(reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_439b2b17","line":956,"range":{"start_line":956,"start_character":60,"end_line":956,"end_character":61},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                    errcode \u003d e.get_error_code()"},{"line_number":954,"context_line":"                    LOG.exception(_(\u0027Error from libvirt during unfilter. \u0027"},{"line_number":955,"context_line":"                                    \u0027Code\u003d%(errcode)s Error\u003d%(e)s\u0027),"},{"line_number":956,"context_line":"                                  {\u0027errcode\u0027: errcode, \u0027e\u0027: e},"},{"line_number":957,"context_line":"                                  instance\u003dinstance)"},{"line_number":958,"context_line":"                    reason \u003d _(\"Error unfiltering instance.\")"},{"line_number":959,"context_line":"                    raise exception.InstanceTerminationFailure(reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_6ce60fb3","line":956,"range":{"start_line":956,"start_character":60,"end_line":956,"end_character":61},"in_reply_to":"3f4b6375_439b2b17","updated":"2017-11-03 06:50:05.000000000","message":"Not necessary, get_error_code return int from libvirt.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":1003,"context_line":"                        LOG.warning("},{"line_number":1004,"context_line":"                            \"Ignoring Volume Error on vol %(vol_id)s \""},{"line_number":1005,"context_line":"                            \"during delete %(exc)s\","},{"line_number":1006,"context_line":"                            {\u0027vol_id\u0027: vol.get(\u0027volume_id\u0027), \u0027exc\u0027: exc},"},{"line_number":1007,"context_line":"                            instance\u003dinstance)"},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"        if destroy_disks:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_03a1b346","line":1006,"range":{"start_line":1006,"start_character":68,"end_line":1006,"end_character":71},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":1003,"context_line":"                        LOG.warning("},{"line_number":1004,"context_line":"                            \"Ignoring Volume Error on vol %(vol_id)s \""},{"line_number":1005,"context_line":"                            \"during delete %(exc)s\","},{"line_number":1006,"context_line":"                            {\u0027vol_id\u0027: vol.get(\u0027volume_id\u0027), \u0027exc\u0027: exc},"},{"line_number":1007,"context_line":"                            instance\u003dinstance)"},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"        if destroy_disks:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_8cccab35","line":1006,"range":{"start_line":1006,"start_character":68,"end_line":1006,"end_character":71},"in_reply_to":"3f4b6375_03a1b346","updated":"2017-11-03 06:50:05.000000000","message":"This may need an unicode convert, as it has many backends.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":1704,"context_line":"                exception.Forbidden) as e:"},{"line_number":1705,"context_line":"            if type(e) !\u003d NotImplementedError:"},{"line_number":1706,"context_line":"                LOG.warning(\u0027Performing standard snapshot because direct \u0027"},{"line_number":1707,"context_line":"                            \u0027snapshot failed: %(error)s\u0027, {\u0027error\u0027: e})"},{"line_number":1708,"context_line":"            failed_snap \u003d metadata.pop(\u0027location\u0027, None)"},{"line_number":1709,"context_line":"            if failed_snap:"},{"line_number":1710,"context_line":"                failed_snap \u003d {\u0027url\u0027: str(failed_snap)}"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_4369ebf6","line":1707,"range":{"start_line":1707,"start_character":68,"end_line":1707,"end_character":69},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":1704,"context_line":"                exception.Forbidden) as e:"},{"line_number":1705,"context_line":"            if type(e) !\u003d NotImplementedError:"},{"line_number":1706,"context_line":"                LOG.warning(\u0027Performing standard snapshot because direct \u0027"},{"line_number":1707,"context_line":"                            \u0027snapshot failed: %(error)s\u0027, {\u0027error\u0027: e})"},{"line_number":1708,"context_line":"            failed_snap \u003d metadata.pop(\u0027location\u0027, None)"},{"line_number":1709,"context_line":"            if failed_snap:"},{"line_number":1710,"context_line":"                failed_snap \u003d {\u0027url\u0027: str(failed_snap)}"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_470a0c20","line":1707,"range":{"start_line":1707,"start_character":68,"end_line":1707,"end_character":69},"in_reply_to":"3f4b6375_4369ebf6","updated":"2017-11-03 06:50:05.000000000","message":"Safer if unicode convert","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":2409,"context_line":"            try:"},{"line_number":2410,"context_line":"                soft_reboot_success \u003d self._soft_reboot(instance)"},{"line_number":2411,"context_line":"            except libvirt.libvirtError as e:"},{"line_number":2412,"context_line":"                LOG.debug(\"Instance soft reboot failed: %s\", e,"},{"line_number":2413,"context_line":"                          instance\u003dinstance)"},{"line_number":2414,"context_line":"                soft_reboot_success \u003d False"},{"line_number":2415,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_e32577c3","line":2412,"range":{"start_line":2412,"start_character":61,"end_line":2412,"end_character":62},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":2409,"context_line":"            try:"},{"line_number":2410,"context_line":"                soft_reboot_success \u003d self._soft_reboot(instance)"},{"line_number":2411,"context_line":"            except libvirt.libvirtError as e:"},{"line_number":2412,"context_line":"                LOG.debug(\"Instance soft reboot failed: %s\", e,"},{"line_number":2413,"context_line":"                          instance\u003dinstance)"},{"line_number":2414,"context_line":"                soft_reboot_success \u003d False"},{"line_number":2415,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_0739b4d5","line":2412,"range":{"start_line":2412,"start_character":61,"end_line":2412,"end_character":62},"in_reply_to":"3f4b6375_e32577c3","updated":"2017-11-03 06:50:05.000000000","message":"We should do a conversion.\nIf we specify LANG as a local encoding, such as \u0027zh_CN.UTF-8\u0027\nLibvirt may throw a non-ASCII error message.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":2655,"context_line":"                            \u0027%(instance_uuid)s: \u0027"},{"line_number":2656,"context_line":"                            \u0027[Error Code %(error_code)s] %(ex)s\u0027),"},{"line_number":2657,"context_line":"                          {\u0027instance_uuid\u0027: instance.uuid,"},{"line_number":2658,"context_line":"                           \u0027error_code\u0027: error_code, \u0027ex\u0027: ex})"},{"line_number":2659,"context_line":"            raise"},{"line_number":2660,"context_line":""},{"line_number":2661,"context_line":"    def suspend(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_a32bff92","line":2658,"range":{"start_line":2658,"start_character":59,"end_line":2658,"end_character":61},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":2655,"context_line":"                            \u0027%(instance_uuid)s: \u0027"},{"line_number":2656,"context_line":"                            \u0027[Error Code %(error_code)s] %(ex)s\u0027),"},{"line_number":2657,"context_line":"                          {\u0027instance_uuid\u0027: instance.uuid,"},{"line_number":2658,"context_line":"                           \u0027error_code\u0027: error_code, \u0027ex\u0027: ex})"},{"line_number":2659,"context_line":"            raise"},{"line_number":2660,"context_line":""},{"line_number":2661,"context_line":"    def suspend(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_e75fb80c","line":2658,"range":{"start_line":2658,"start_character":59,"end_line":2658,"end_character":61},"in_reply_to":"3f4b6375_a32bff92","updated":"2017-11-03 06:50:05.000000000","message":"error code, not necessary.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":5312,"context_line":"            LOG.warning("},{"line_number":5313,"context_line":"                \"Couldn\u0027t retrieve the online CPUs due to a Libvirt \""},{"line_number":5314,"context_line":"                \"error: %(error)s with error code: %(error_code)s\","},{"line_number":5315,"context_line":"                {\u0027error\u0027: ex, \u0027error_code\u0027: error_code})"},{"line_number":5316,"context_line":"        if online_pcpus:"},{"line_number":5317,"context_line":"            if not (available_ids \u003c\u003d online_pcpus):"},{"line_number":5318,"context_line":"                msg \u003d (_(\"Invalid vcpu_pin_set config, one or more of the \""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_83012309","line":5315,"range":{"start_line":5315,"start_character":26,"end_line":5315,"end_character":28},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":5312,"context_line":"            LOG.warning("},{"line_number":5313,"context_line":"                \"Couldn\u0027t retrieve the online CPUs due to a Libvirt \""},{"line_number":5314,"context_line":"                \"error: %(error)s with error code: %(error_code)s\","},{"line_number":5315,"context_line":"                {\u0027error\u0027: ex, \u0027error_code\u0027: error_code})"},{"line_number":5316,"context_line":"        if online_pcpus:"},{"line_number":5317,"context_line":"            if not (available_ids \u003c\u003d online_pcpus):"},{"line_number":5318,"context_line":"                msg \u003d (_(\"Invalid vcpu_pin_set config, one or more of the \""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_07ac14eb","line":5315,"range":{"start_line":5315,"start_character":26,"end_line":5315,"end_character":28},"in_reply_to":"3f4b6375_83012309","updated":"2017-11-03 06:50:05.000000000","message":"We\u0027d better fix this.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":5565,"context_line":"                self._list_devices_supported \u003d False"},{"line_number":5566,"context_line":"                LOG.warning(\"URI %(uri)s does not support \""},{"line_number":5567,"context_line":"                            \"listDevices: %(error)s\","},{"line_number":5568,"context_line":"                            {\u0027uri\u0027: self._uri(), \u0027error\u0027: ex})"},{"line_number":5569,"context_line":"                return jsonutils.dumps([])"},{"line_number":5570,"context_line":"            else:"},{"line_number":5571,"context_line":"                raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_060b0124","line":5568,"range":{"start_line":5568,"start_character":58,"end_line":5568,"end_character":60},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":5565,"context_line":"                self._list_devices_supported \u003d False"},{"line_number":5566,"context_line":"                LOG.warning(\"URI %(uri)s does not support \""},{"line_number":5567,"context_line":"                            \"listDevices: %(error)s\","},{"line_number":5568,"context_line":"                            {\u0027uri\u0027: self._uri(), \u0027error\u0027: ex})"},{"line_number":5569,"context_line":"                return jsonutils.dumps([])"},{"line_number":5570,"context_line":"            else:"},{"line_number":5571,"context_line":"                raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_72a144f7","line":5568,"range":{"start_line":5568,"start_character":58,"end_line":5568,"end_character":60},"in_reply_to":"3f4b6375_060b0124","updated":"2017-11-03 06:50:05.000000000","message":"We\u0027d better fix this.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":5709,"context_line":"                     \u0027been detached. Instance\u003d%(instance_name)s \u0027"},{"line_number":5710,"context_line":"                     \u0027Disk\u003d%(disk)s Code\u003d%(errcode)s Error\u003d%(e)s\u0027,"},{"line_number":5711,"context_line":"                     {\u0027instance_name\u0027: instance.name, \u0027disk\u0027: disk_id,"},{"line_number":5712,"context_line":"                      \u0027errcode\u0027: errcode, \u0027e\u0027: e},"},{"line_number":5713,"context_line":"                     instance\u003dinstance)"},{"line_number":5714,"context_line":"        except exception.InstanceNotFound:"},{"line_number":5715,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance %s. \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_a619cd7a","line":5712,"range":{"start_line":5712,"start_character":47,"end_line":5712,"end_character":48},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":5709,"context_line":"                     \u0027been detached. Instance\u003d%(instance_name)s \u0027"},{"line_number":5710,"context_line":"                     \u0027Disk\u003d%(disk)s Code\u003d%(errcode)s Error\u003d%(e)s\u0027,"},{"line_number":5711,"context_line":"                     {\u0027instance_name\u0027: instance.name, \u0027disk\u0027: disk_id,"},{"line_number":5712,"context_line":"                      \u0027errcode\u0027: errcode, \u0027e\u0027: e},"},{"line_number":5713,"context_line":"                     instance\u003dinstance)"},{"line_number":5714,"context_line":"        except exception.InstanceNotFound:"},{"line_number":5715,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance %s. \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_d2b11846","line":5712,"range":{"start_line":5712,"start_character":47,"end_line":5712,"end_character":48},"in_reply_to":"3f4b6375_a619cd7a","updated":"2017-11-03 06:50:05.000000000","message":"Not necessary for error code","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":6132,"context_line":"            if error_code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":6133,"context_line":"                LOG.debug(\"URI %(uri)s does not support cpu comparison. \""},{"line_number":6134,"context_line":"                          \"It will be proceeded though. Error: %(error)s\","},{"line_number":6135,"context_line":"                          {\u0027uri\u0027: self._uri(), \u0027error\u0027: e})"},{"line_number":6136,"context_line":"                return"},{"line_number":6137,"context_line":"            else:"},{"line_number":6138,"context_line":"                LOG.error(m, {\u0027ret\u0027: e, \u0027u\u0027: u})"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_261f1d5c","line":6135,"range":{"start_line":6135,"start_character":56,"end_line":6135,"end_character":57},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":6132,"context_line":"            if error_code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":6133,"context_line":"                LOG.debug(\"URI %(uri)s does not support cpu comparison. \""},{"line_number":6134,"context_line":"                          \"It will be proceeded though. Error: %(error)s\","},{"line_number":6135,"context_line":"                          {\u0027uri\u0027: self._uri(), \u0027error\u0027: e})"},{"line_number":6136,"context_line":"                return"},{"line_number":6137,"context_line":"            else:"},{"line_number":6138,"context_line":"                LOG.error(m, {\u0027ret\u0027: e, \u0027u\u0027: u})"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_4d10ed00","line":6135,"range":{"start_line":6135,"start_character":56,"end_line":6135,"end_character":57},"in_reply_to":"3f4b6375_261f1d5c","updated":"2017-11-03 06:50:05.000000000","message":"Not necessary for error code","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":6259,"context_line":"        try:"},{"line_number":6260,"context_line":"            dom.abortJob()"},{"line_number":6261,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":6262,"context_line":"            LOG.error(\"Failed to cancel migration %s\", e, instance\u003dinstance)"},{"line_number":6263,"context_line":"            raise"},{"line_number":6264,"context_line":""},{"line_number":6265,"context_line":"    def _verify_serial_console_is_disabled(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_c63969d7","line":6262,"range":{"start_line":6262,"start_character":55,"end_line":6262,"end_character":56},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":6259,"context_line":"        try:"},{"line_number":6260,"context_line":"            dom.abortJob()"},{"line_number":6261,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":6262,"context_line":"            LOG.error(\"Failed to cancel migration %s\", e, instance\u003dinstance)"},{"line_number":6263,"context_line":"            raise"},{"line_number":6264,"context_line":""},{"line_number":6265,"context_line":"    def _verify_serial_console_is_disabled(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_add3e137","line":6262,"range":{"start_line":6262,"start_character":55,"end_line":6262,"end_character":56},"in_reply_to":"3f4b6375_c63969d7","updated":"2017-11-03 06:50:05.000000000","message":"We\u0027d better do a conversion here.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":6567,"context_line":"                        guest.abort_job()"},{"line_number":6568,"context_line":"                    except libvirt.libvirtError as e:"},{"line_number":6569,"context_line":"                        LOG.warning(\"Failed to abort migration %s\","},{"line_number":6570,"context_line":"                                    e, instance\u003dinstance)"},{"line_number":6571,"context_line":"                        self._clear_empty_migration(instance)"},{"line_number":6572,"context_line":"                        raise"},{"line_number":6573,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_2654bdfd","line":6570,"range":{"start_line":6570,"start_character":36,"end_line":6570,"end_character":37},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":6567,"context_line":"                        guest.abort_job()"},{"line_number":6568,"context_line":"                    except libvirt.libvirtError as e:"},{"line_number":6569,"context_line":"                        LOG.warning(\"Failed to abort migration %s\","},{"line_number":6570,"context_line":"                                    e, instance\u003dinstance)"},{"line_number":6571,"context_line":"                        self._clear_empty_migration(instance)"},{"line_number":6572,"context_line":"                        raise"},{"line_number":6573,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_6dd96954","line":6570,"range":{"start_line":6570,"start_character":36,"end_line":6570,"end_character":37},"in_reply_to":"3f4b6375_2654bdfd","updated":"2017-11-03 06:50:05.000000000","message":"Should be fixed.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":7255,"context_line":"                        \u0027%(ex)s\u0027,"},{"line_number":7256,"context_line":"                        {\u0027instance_name\u0027: instance.name,"},{"line_number":7257,"context_line":"                         \u0027error_code\u0027: error_code,"},{"line_number":7258,"context_line":"                         \u0027ex\u0027: ex},"},{"line_number":7259,"context_line":"                        instance\u003dinstance)"},{"line_number":7260,"context_line":"            raise exception.InstanceNotFound(instance_id\u003dinstance.uuid)"},{"line_number":7261,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_e641053b","line":7258,"range":{"start_line":7258,"start_character":31,"end_line":7258,"end_character":33},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":7255,"context_line":"                        \u0027%(ex)s\u0027,"},{"line_number":7256,"context_line":"                        {\u0027instance_name\u0027: instance.name,"},{"line_number":7257,"context_line":"                         \u0027error_code\u0027: error_code,"},{"line_number":7258,"context_line":"                         \u0027ex\u0027: ex},"},{"line_number":7259,"context_line":"                        instance\u003dinstance)"},{"line_number":7260,"context_line":"            raise exception.InstanceNotFound(instance_id\u003dinstance.uuid)"},{"line_number":7261,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_cde97de3","line":7258,"range":{"start_line":7258,"start_character":31,"end_line":7258,"end_character":33},"in_reply_to":"3f4b6375_e641053b","updated":"2017-11-03 06:50:05.000000000","message":"Fix needed.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9a85dac4bfcd9a02ea1b38ad06dac6379e60153f","unresolved":false,"context_lines":[{"line_number":7324,"context_line":"                    \u0027%(instance_name)s: [Error Code %(error_code)s] %(ex)s\u0027,"},{"line_number":7325,"context_line":"                    {\u0027instance_name\u0027: guest.name,"},{"line_number":7326,"context_line":"                     \u0027error_code\u0027: error_code,"},{"line_number":7327,"context_line":"                     \u0027ex\u0027: ex})"},{"line_number":7328,"context_line":"            except OSError as e:"},{"line_number":7329,"context_line":"                if e.errno in (errno.ENOENT, errno.ESTALE):"},{"line_number":7330,"context_line":"                    LOG.warning(\u0027Periodic task is updating the host stat, \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_a6478d4c","line":7327,"range":{"start_line":7327,"start_character":27,"end_line":7327,"end_character":29},"updated":"2017-11-02 19:13:08.000000000","message":"Same","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"65ec16e34a52f57b4fc5b58829f7c8b1c73fdf9d","unresolved":false,"context_lines":[{"line_number":7324,"context_line":"                    \u0027%(instance_name)s: [Error Code %(error_code)s] %(ex)s\u0027,"},{"line_number":7325,"context_line":"                    {\u0027instance_name\u0027: guest.name,"},{"line_number":7326,"context_line":"                     \u0027error_code\u0027: error_code,"},{"line_number":7327,"context_line":"                     \u0027ex\u0027: ex})"},{"line_number":7328,"context_line":"            except OSError as e:"},{"line_number":7329,"context_line":"                if e.errno in (errno.ENOENT, errno.ESTALE):"},{"line_number":7330,"context_line":"                    LOG.warning(\u0027Periodic task is updating the host stat, \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_2dd131fc","line":7327,"range":{"start_line":7327,"start_character":27,"end_line":7327,"end_character":29},"in_reply_to":"3f4b6375_a6478d4c","updated":"2017-11-03 06:50:05.000000000","message":"Fix needed.","commit_id":"13418faa17e1034db551c8d193a7b08e8b59ef9d"}]}
