)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"19880785833d85d322a01b8bc30f8f24a9725ed4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     JiangPF \u003cjiangpf1992@outlook.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-11-22 02:39:19 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Creating a VM with a non-ASCII name will failed."},{"line_number":8,"context_line":"Libvirt\u0027s XML should be utf8 encoded text."},{"line_number":9,"context_line":"Fixes Bug 1730756"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I7afce618deca3baaa96605a6b48c1c2ef4a5f2a5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ff82abbf_4281fc49","line":11,"range":{"start_line":7,"start_character":0,"end_line":11,"end_character":52},"updated":"2017-11-22 16:16:34.000000000","message":"Can you rework this slightly, please. Commit messages should take the following form:\n\n Short summary\n\n Longer description, spread over many lines.\n\n \"Trailers\", such as \u0027Change-Id\u0027 and \u0027Resolves-bug\u0027\n\nIn addition, the summary and commit message should explain *what* the patch is doing, followed by *why*.\n\nSo this could look like:\n\n  Encode libvirt domain XML in UTF-8\n\n  Creating a VM with a non-ASCII name results in an error. Resolve\n  this by encoding the libvirt domain XML in utf-8.","commit_id":"6d49a0a02a14be9ca0164c36bf626d4fba248f0f"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6ae0911e54ea6a6bbd6329a12b17bdd0e471d5b1","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2017-11-22 02:12:37 -0500"},{"line_number":4,"context_line":"Commit:     JiangPF \u003cjiangpf1992@outlook.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-11-22 20:20:48 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Encode libvirt domain XML in UTF-8"},{"line_number":8,"context_line":"Creating a VM with a non-ASCII name results in an error."},{"line_number":9,"context_line":"Resolve this by encoding the libvirt domain XML in utf-8."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Resolves-bug 1730756"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff82abbf_bf601703","line":8,"range":{"start_line":6,"start_character":0,"end_line":8,"end_character":56},"updated":"2017-11-23 03:13:28.000000000","message":"add a blank line between these two lines","commit_id":"af0a10ddae0b1fe377140bc9c307f06ac088ad8c"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6ae0911e54ea6a6bbd6329a12b17bdd0e471d5b1","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Creating a VM with a non-ASCII name results in an error."},{"line_number":9,"context_line":"Resolve this by encoding the libvirt domain XML in utf-8."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Resolves-bug 1730756"},{"line_number":12,"context_line":"Change-Id: I7afce618deca3baaa96605a6b48c1c2ef4a5f2a5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff82abbf_7f5a8f4f","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":20},"updated":"2017-11-23 03:13:28.000000000","message":"Closes-Bug: #1730756","commit_id":"af0a10ddae0b1fe377140bc9c307f06ac088ad8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c68adcfdcfcfeaebdb7b1aeae01d11d77c492104","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     b7de3eca (Merge \"Cleanup launch instance and manage IPs docs\")"},{"line_number":2,"context_line":"Author:     Yikun Jiang \u003cyikunkero@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2018-01-31 18:36:33 +0800"},{"line_number":4,"context_line":"Commit:     Yikun Jiang \u003cyikunkero@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-02-02 22:38:29 -0500"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"3fa0c359_25ca9b6c","line":2,"updated":"2018-02-08 17:51:58.000000000","message":"The original author of this was:\n\nJiangPF \u003cjiangpf1992@outlook.com\u003e\n\nSo that should probably be fixed.\n\nMy guess is there was a bad rebase.","commit_id":"4ce62f2ea337ee71409fd87475232075f648bef0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c519ad960e13cb0f6759b9d8f68cdf6e98253872","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     b7de3eca (Merge \"Cleanup launch instance and manage IPs docs\")"},{"line_number":2,"context_line":"Author:     Yikun Jiang \u003cyikunkero@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2018-01-31 18:36:33 +0800"},{"line_number":4,"context_line":"Commit:     Yikun Jiang \u003cyikunkero@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-02-02 22:38:29 -0500"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"3fa0c359_cf0671cf","line":2,"in_reply_to":"3fa0c359_25ca9b6c","updated":"2018-02-08 20:46:09.000000000","message":"Done","commit_id":"4ce62f2ea337ee71409fd87475232075f648bef0"}],"nova/tests/unit/virt/libvirt/test_host.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"51f2a63f8095277c9ef26bfd3951626bd73ff4d4","unresolved":false,"context_lines":[{"line_number":759,"context_line":"        fake_dom_xml \u003d \"\"\""},{"line_number":760,"context_line":"                \u003cdomain type\u003d\u0027kvm\u0027\u003e"},{"line_number":761,"context_line":"                  \u003cuuid\u003ecef19ce0-0ca2-11df-855d-b19fbce37686\u003c/uuid\u003e"},{"line_number":762,"context_line":"                  \u003cname\u003e\\u865a\\u62df\\u673a\u003c/name\u003e"},{"line_number":763,"context_line":"                  \u003cdevices\u003e"},{"line_number":764,"context_line":"                    \u003cdisk type\u003d\u0027file\u0027\u003e"},{"line_number":765,"context_line":"                      \u003csource file\u003d\u0027filename\u0027/\u003e"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff82abbf_ed100eab","line":762,"range":{"start_line":762,"start_character":0,"end_line":762,"end_character":49},"updated":"2017-11-24 15:25:02.000000000","message":"I applied this without the other part of the part and ran this:\n\n  tox -e py27 nova.tests.unit.virt.libvirt.test_host.HostTestCase.test_write_instance_config\n\nThe test passed, which means this is not an effective test. Are you sure this shouldn\u0027t be actual unicode, rather than utf-8 encoded text?\n\nYou should also be checking the name, I imagine.","commit_id":"a0acd9aacd896ddf22114629a5ef232c96e314e8"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"e25fb00aa9f1e84d23e74b3faf1f4ee1019f99ee","unresolved":false,"context_lines":[{"line_number":759,"context_line":"        fake_dom_xml \u003d \"\"\""},{"line_number":760,"context_line":"                \u003cdomain type\u003d\u0027kvm\u0027\u003e"},{"line_number":761,"context_line":"                  \u003cuuid\u003ecef19ce0-0ca2-11df-855d-b19fbce37686\u003c/uuid\u003e"},{"line_number":762,"context_line":"                  \u003cname\u003e\\u865a\\u62df\\u673a\u003c/name\u003e"},{"line_number":763,"context_line":"                  \u003cdevices\u003e"},{"line_number":764,"context_line":"                    \u003cdisk type\u003d\u0027file\u0027\u003e"},{"line_number":765,"context_line":"                      \u003csource file\u003d\u0027filename\u0027/\u003e"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f93b717_f442de0e","line":762,"range":{"start_line":762,"start_character":0,"end_line":762,"end_character":49},"in_reply_to":"ff82abbf_e6da6849","updated":"2018-02-01 03:50:41.000000000","message":"The reason of we can pass the test case without the other part of the part is we mock the defineXML, but it\u0027s hard to make a end to end test.\n\nSo, I think we can emulate this case which I updated it in PS10.","commit_id":"a0acd9aacd896ddf22114629a5ef232c96e314e8"},{"author":{"_account_id":26289,"name":"jiangpf","email":"jiangpf1992@outlook.com","username":"JiangPF"},"change_message_id":"7c76a05be1719016e43cf03859cfdac5b7e891b0","unresolved":false,"context_lines":[{"line_number":759,"context_line":"        fake_dom_xml \u003d \"\"\""},{"line_number":760,"context_line":"                \u003cdomain type\u003d\u0027kvm\u0027\u003e"},{"line_number":761,"context_line":"                  \u003cuuid\u003ecef19ce0-0ca2-11df-855d-b19fbce37686\u003c/uuid\u003e"},{"line_number":762,"context_line":"                  \u003cname\u003e\\u865a\\u62df\\u673a\u003c/name\u003e"},{"line_number":763,"context_line":"                  \u003cdevices\u003e"},{"line_number":764,"context_line":"                    \u003cdisk type\u003d\u0027file\u0027\u003e"},{"line_number":765,"context_line":"                      \u003csource file\u003d\u0027filename\u0027/\u003e"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff82abbf_e6da6849","line":762,"range":{"start_line":762,"start_character":0,"end_line":762,"end_character":49},"in_reply_to":"ff82abbf_ed100eab","updated":"2017-11-28 15:15:57.000000000","message":"I tested inside the python2.7 environment, changes to non-ascii encoded virtual machine name is valid. Maybe I need to change the test case again.","commit_id":"a0acd9aacd896ddf22114629a5ef232c96e314e8"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"c9ccdf461ca1f2d0697e0f8977e7df86bb3b2941","unresolved":false,"context_lines":[{"line_number":755,"context_line":"            stats)"},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    @mock.patch.object(fakelibvirt.virConnect, \"defineXML\")"},{"line_number":758,"context_line":"    def test_write_instance_config(self, mock_defineXML):"},{"line_number":759,"context_line":"        fake_dom_xml \u003d u\"\"\""},{"line_number":760,"context_line":"                \u003cdomain type\u003d\u0027kvm\u0027\u003e"},{"line_number":761,"context_line":"                  \u003cuuid\u003ecef19ce0-0ca2-11df-855d-b19fbce37686\u003c/uuid\u003e"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f93b717_f053e569","line":758,"range":{"start_line":758,"start_character":8,"end_line":758,"end_character":34},"updated":"2018-01-31 09:51:06.000000000","message":"Maybe we should add new testcase for test_write_instance_config_with_unicode.\n\nI know the difficult of a end-to-end case, I think we can emulate the case for test.","commit_id":"4ae4c910a32fbc833d50389922459b1b00ea922e"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"c9ccdf461ca1f2d0697e0f8977e7df86bb3b2941","unresolved":false,"context_lines":[{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        :returns: an instance of Guest"},{"line_number":825,"context_line":"        \"\"\""},{"line_number":826,"context_line":"        if not six.PY3:"},{"line_number":827,"context_line":"            xml \u003d xml.encode(\"utf-8\")"},{"line_number":828,"context_line":"        domain \u003d self.get_connection().defineXML(xml)"},{"line_number":829,"context_line":"        return libvirt_guest.Guest(domain)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f93b717_30370d50","line":826,"range":{"start_line":826,"start_character":8,"end_line":826,"end_character":23},"updated":"2018-01-31 09:51:06.000000000","message":"This works in my env. : )","commit_id":"4ae4c910a32fbc833d50389922459b1b00ea922e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"947138cfc1c6c88e8d02282087acc6550255d24d","unresolved":false,"context_lines":[{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        :returns: an instance of Guest"},{"line_number":825,"context_line":"        \"\"\""},{"line_number":826,"context_line":"        if six.PY2 and isinstance(xml, six.text_type):"},{"line_number":827,"context_line":"            xml \u003d xml.encode(\u0027utf-8\u0027)"},{"line_number":828,"context_line":"        domain \u003d self.get_connection().defineXML(xml)"},{"line_number":829,"context_line":"        return libvirt_guest.Guest(domain)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f93b717_39def1d9","line":826,"updated":"2018-02-01 13:55:48.000000000","message":"Can safe_encode be used here?\n\nhttps://github.com/openstack/oslo.utils/blob/master/oslo_utils/encodeutils.py#L66","commit_id":"ac4e056519b258f0a83ac2df666a9a2566cca24b"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"7b91bd022ed8ba8a4695029709073c1b008a78a5","unresolved":false,"context_lines":[{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        :returns: an instance of Guest"},{"line_number":825,"context_line":"        \"\"\""},{"line_number":826,"context_line":"        if six.PY2 and isinstance(xml, six.text_type):"},{"line_number":827,"context_line":"            xml \u003d xml.encode(\u0027utf-8\u0027)"},{"line_number":828,"context_line":"        domain \u003d self.get_connection().defineXML(xml)"},{"line_number":829,"context_line":"        return libvirt_guest.Guest(domain)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f93b717_9df4bff2","line":826,"in_reply_to":"5f93b717_39def1d9","updated":"2018-02-02 03:39:51.000000000","message":"Yeah, better choice! We can replace with it.","commit_id":"ac4e056519b258f0a83ac2df666a9a2566cca24b"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"ae25a3e5b8b6b655674ac4416da5cdc18bb52c6f","unresolved":false,"context_lines":[{"line_number":825,"context_line":"        :returns: an instance of Guest"},{"line_number":826,"context_line":"        \"\"\""},{"line_number":827,"context_line":"        if six.PY2:"},{"line_number":828,"context_line":"            xml \u003d encodeutils.safe_encode(xml)"},{"line_number":829,"context_line":"        domain \u003d self.get_connection().defineXML(xml)"},{"line_number":830,"context_line":"        return libvirt_guest.Guest(domain)"},{"line_number":831,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa0c359_95e69216","line":828,"range":{"start_line":828,"start_character":12,"end_line":828,"end_character":46},"updated":"2018-02-06 03:11:07.000000000","message":"Just a question, I saw you mentioned name in commit message, but here we encoded the whole xml, I wonder if we can deal with this in API layer? probably more efficient than do it here?","commit_id":"4ce62f2ea337ee71409fd87475232075f648bef0"}]}
