)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b70bcf459a6b26b5be7966f04c200eebca58c437","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  - MIN_LIBVIRT_KVM_PPC64_VERSION"},{"line_number":47,"context_line":"  - Drop MIN_LIBVIRT_VIRTUOZZO_VERSION"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Note that subsequent patches will handle clean up of remaining (now no"},{"line_number":50,"context_line":"longer needed) version constants and compatibility code."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Change-Id: If0a091a7441f2c3269148e40ececc3696d69684c"},{"line_number":53,"context_line":"Signed-off-by: Kashyap Chamarthy \u003ckchamart@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9f6a8fd7_6f9cc30d","line":50,"range":{"start_line":49,"start_character":0,"end_line":50,"end_character":56},"updated":"2018-04-24 08:16:06.000000000","message":"Right, you can ignore all but one my comments in later files. I missed this","commit_id":"403320bc9991618b09ab55c5f650916f5c46dd75"}],"nova/tests/functional/libvirt/test_rt_servers.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"60c8b4bc37ba60a37f07471b7913e733d7b30035","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                                             cpu_cores\u003d2, cpu_threads\u003d2,"},{"line_number":74,"context_line":"                                             kB_mem\u003d15740000)"},{"line_number":75,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":76,"context_line":"                                                 version\u003d1003001,"},{"line_number":77,"context_line":"                                                 hv_version\u003d2005000,"},{"line_number":78,"context_line":"                                                 host_info\u003dhost_info)"},{"line_number":79,"context_line":"        with mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_9e058416","line":76,"updated":"2018-04-04 11:59:19.000000000","message":"Could we just move to use FAKE_LIBVIRT_VERSION here?","commit_id":"13df7ade7862fa769c46cf8148d9afcf1070cd4d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"5ad82a0870b103be4549f4eccfd8d1893483a288","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                                             cpu_cores\u003d2, cpu_threads\u003d2,"},{"line_number":74,"context_line":"                                             kB_mem\u003d15740000)"},{"line_number":75,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":76,"context_line":"                                                 version\u003d1003001,"},{"line_number":77,"context_line":"                                                 hv_version\u003d2005000,"},{"line_number":78,"context_line":"                                                 host_info\u003dhost_info)"},{"line_number":79,"context_line":"        with mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_b91422ea","line":76,"in_reply_to":"bf659307_9e058416","updated":"2018-04-04 12:19:49.000000000","message":"I think we could, since we import: from nova.tests.unit.virt.libvirt import fakelibvirt","commit_id":"13df7ade7862fa769c46cf8148d9afcf1070cd4d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"60c8b4bc37ba60a37f07471b7913e733d7b30035","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                                             cpu_cores\u003d2, cpu_threads\u003d2,"},{"line_number":100,"context_line":"                                             kB_mem\u003d15740000)"},{"line_number":101,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":102,"context_line":"                                                 version\u003d1002013,"},{"line_number":103,"context_line":"                                                 hv_version\u003d2005000,"},{"line_number":104,"context_line":"                                                 host_info\u003dhost_info)"},{"line_number":105,"context_line":"        with mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_3e3c78df","line":102,"range":{"start_line":102,"start_character":57,"end_line":102,"end_character":64},"updated":"2018-04-04 11:59:19.000000000","message":"Shouldn\u0027t that fail as its not \u003e 1003001?","commit_id":"13df7ade7862fa769c46cf8148d9afcf1070cd4d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"5ad82a0870b103be4549f4eccfd8d1893483a288","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                                             cpu_cores\u003d2, cpu_threads\u003d2,"},{"line_number":100,"context_line":"                                             kB_mem\u003d15740000)"},{"line_number":101,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":102,"context_line":"                                                 version\u003d1002013,"},{"line_number":103,"context_line":"                                                 hv_version\u003d2005000,"},{"line_number":104,"context_line":"                                                 host_info\u003dhost_info)"},{"line_number":105,"context_line":"        with mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_99b6fe3d","line":102,"range":{"start_line":102,"start_character":57,"end_line":102,"end_character":64},"in_reply_to":"bf659307_3e3c78df","updated":"2018-04-04 12:19:49.000000000","message":"Good catch, I saw it, but my eyes glazed over.  Let me fix that.","commit_id":"13df7ade7862fa769c46cf8148d9afcf1070cd4d"}],"nova/tests/functional/regressions/test_bug_1595962.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d30892f47dc8c344660696e9850ee9c5820eeb3b","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        mock_get_job_info.return_value \u003d libvirt_guest.JobInfo("},{"line_number":110,"context_line":"                    type\u003dfakelibvirt.VIR_DOMAIN_JOB_COMPLETED)"},{"line_number":111,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":112,"context_line":"                                                 version\u003d1002007,"},{"line_number":113,"context_line":"                                                 hv_version\u003d2001000)"},{"line_number":114,"context_line":"        mock_host_get_connection.return_value \u003d fake_connection"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_22f4e25a","side":"PARENT","line":112,"range":{"start_line":112,"start_character":57,"end_line":112,"end_character":64},"updated":"2018-04-19 17:51:26.000000000","message":"Not sure if it mattered for this test, but this 1.2.7 was less than the min in fakelibvirt which was 1.2.9 before.","commit_id":"619f7c23b352653a8a77ab7209abbd2500d82a09"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d30892f47dc8c344660696e9850ee9c5820eeb3b","unresolved":false,"context_lines":[{"line_number":9138,"context_line":""},{"line_number":9139,"context_line":"        # Prepare mocks"},{"line_number":9140,"context_line":"        mock_xml.return_value \u003d target_xml"},{"line_number":9141,"context_line":"        # mock_migrateToURI3.side_effect \u003d fakelibvirt.libvirtError(\"ERR\")"},{"line_number":9142,"context_line":""},{"line_number":9143,"context_line":"        disk_paths \u003d [\u0027vda\u0027, \u0027vdb\u0027]"},{"line_number":9144,"context_line":"        params \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_a268f220","line":9141,"updated":"2018-04-19 17:51:26.000000000","message":"Remove this.","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"7101f6cf445c17435bb31a72f44c5723792b0bde","unresolved":false,"context_lines":[{"line_number":9138,"context_line":""},{"line_number":9139,"context_line":"        # Prepare mocks"},{"line_number":9140,"context_line":"        mock_xml.return_value \u003d target_xml"},{"line_number":9141,"context_line":"        # mock_migrateToURI3.side_effect \u003d fakelibvirt.libvirtError(\"ERR\")"},{"line_number":9142,"context_line":""},{"line_number":9143,"context_line":"        disk_paths \u003d [\u0027vda\u0027, \u0027vdb\u0027]"},{"line_number":9144,"context_line":"        params \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_d3b847e6","line":9141,"in_reply_to":"9f6a8fd7_a268f220","updated":"2018-04-20 10:10:11.000000000","message":"Whoops, remnant of testing; will remove.","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d30892f47dc8c344660696e9850ee9c5820eeb3b","unresolved":false,"context_lines":[{"line_number":226,"context_line":"NEXT_MIN_LIBVIRT_VERSION \u003d (3, 0, 0)"},{"line_number":227,"context_line":"NEXT_MIN_QEMU_VERSION \u003d (2, 8, 0)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"# When the above version matches/exceeds this version"},{"line_number":230,"context_line":"# delete it \u0026 corresponding code using it"},{"line_number":231,"context_line":"# Libvirt version 1.2.17 is required for successful block live migration"},{"line_number":232,"context_line":"# of vm booted from image with attached devices"},{"line_number":233,"context_line":"MIN_LIBVIRT_BLOCK_LM_WITH_VOLUMES_VERSION \u003d (1, 2, 17)"},{"line_number":234,"context_line":"# PowerPC based hosts that support NUMA using libvirt"},{"line_number":235,"context_line":"MIN_LIBVIRT_NUMA_VERSION_PPC \u003d (1, 2, 19)"},{"line_number":236,"context_line":"# Versions of libvirt with known NUMA topology issues"},{"line_number":237,"context_line":"# See bug #1449028"},{"line_number":238,"context_line":"BAD_LIBVIRT_NUMA_VERSIONS \u003d [(1, 2, 9, 2)]"},{"line_number":239,"context_line":"# Versions of libvirt with broken cpu pinning support. This excludes"},{"line_number":240,"context_line":"# versions of libvirt with broken NUMA support since pinning needs"},{"line_number":241,"context_line":"# NUMA"},{"line_number":242,"context_line":"# See bug #1438226"},{"line_number":243,"context_line":"BAD_LIBVIRT_CPU_POLICY_VERSIONS \u003d [(1, 2, 10)]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"# Virtuozzo driver support"},{"line_number":246,"context_line":"MIN_VIRTUOZZO_VERSION \u003d (7, 0, 0)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_e2ea6aaa","line":243,"range":{"start_line":229,"start_character":0,"end_line":243,"end_character":46},"updated":"2018-04-19 17:51:26.000000000","message":"Is this all being handled in separate patches? If so, just make some generic statement in the commit message about how there is yet more cleanup to do for other variables but that will come in subsequent changes.","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"7101f6cf445c17435bb31a72f44c5723792b0bde","unresolved":false,"context_lines":[{"line_number":226,"context_line":"NEXT_MIN_LIBVIRT_VERSION \u003d (3, 0, 0)"},{"line_number":227,"context_line":"NEXT_MIN_QEMU_VERSION \u003d (2, 8, 0)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"# When the above version matches/exceeds this version"},{"line_number":230,"context_line":"# delete it \u0026 corresponding code using it"},{"line_number":231,"context_line":"# Libvirt version 1.2.17 is required for successful block live migration"},{"line_number":232,"context_line":"# of vm booted from image with attached devices"},{"line_number":233,"context_line":"MIN_LIBVIRT_BLOCK_LM_WITH_VOLUMES_VERSION \u003d (1, 2, 17)"},{"line_number":234,"context_line":"# PowerPC based hosts that support NUMA using libvirt"},{"line_number":235,"context_line":"MIN_LIBVIRT_NUMA_VERSION_PPC \u003d (1, 2, 19)"},{"line_number":236,"context_line":"# Versions of libvirt with known NUMA topology issues"},{"line_number":237,"context_line":"# See bug #1449028"},{"line_number":238,"context_line":"BAD_LIBVIRT_NUMA_VERSIONS \u003d [(1, 2, 9, 2)]"},{"line_number":239,"context_line":"# Versions of libvirt with broken cpu pinning support. This excludes"},{"line_number":240,"context_line":"# versions of libvirt with broken NUMA support since pinning needs"},{"line_number":241,"context_line":"# NUMA"},{"line_number":242,"context_line":"# See bug #1438226"},{"line_number":243,"context_line":"BAD_LIBVIRT_CPU_POLICY_VERSIONS \u003d [(1, 2, 10)]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"# Virtuozzo driver support"},{"line_number":246,"context_line":"MIN_VIRTUOZZO_VERSION \u003d (7, 0, 0)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_9c6ae1ea","line":243,"range":{"start_line":229,"start_character":0,"end_line":243,"end_character":46},"in_reply_to":"9f6a8fd7_e2ea6aaa","updated":"2018-04-20 10:10:11.000000000","message":"Yep, exactly -- will be handled in separate patches.  I have a TODO list of what all to be removed.\n\nAnd yes, I will make a generic comment about upcoming clean-up patches; thought I already made.  Good catch.\n\nAlso, this one needs to be removed, too MIN_LIBVIRT_BLOCK_LM_WITH_VOLUMES_VERSION, which is a bit more involved.  And I have a patch in progress for it.)","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d30892f47dc8c344660696e9850ee9c5820eeb3b","unresolved":false,"context_lines":[{"line_number":246,"context_line":"MIN_VIRTUOZZO_VERSION \u003d (7, 0, 0)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"# Ability to set the user guest password with Qemu"},{"line_number":249,"context_line":"MIN_LIBVIRT_SET_ADMIN_PASSWD \u003d (1, 2, 16)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"# Ability to set the user guest password with parallels"},{"line_number":252,"context_line":"MIN_LIBVIRT_PARALLELS_SET_ADMIN_PASSWD \u003d (2, 0, 0)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_220aa289","line":249,"updated":"2018-04-19 17:51:26.000000000","message":"same","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d30892f47dc8c344660696e9850ee9c5820eeb3b","unresolved":false,"context_lines":[{"line_number":254,"context_line":"# libvirt \u003c 1.3 reported virt_functions capability"},{"line_number":255,"context_line":"# only when VFs are enabled."},{"line_number":256,"context_line":"# libvirt 1.3 fix f391889f4e942e22b9ef8ecca492de05106ce41e"},{"line_number":257,"context_line":"MIN_LIBVIRT_PF_WITH_NO_VFS_CAP_VERSION \u003d (1, 3, 0)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"# Use the \"logd\" backend for handling stdout/stderr from QEMU processes."},{"line_number":260,"context_line":"MIN_LIBVIRT_VIRTLOGD \u003d (1, 3, 3)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_e2034a72","line":257,"updated":"2018-04-19 17:51:26.000000000","message":"same","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d30892f47dc8c344660696e9850ee9c5820eeb3b","unresolved":false,"context_lines":[{"line_number":275,"context_line":"ALLOWED_QEMU_SERIAL_PORTS \u003d QEMU_MAX_SERIAL_PORTS - 1"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"# realtime support"},{"line_number":278,"context_line":"MIN_LIBVIRT_REALTIME_VERSION \u003d (1, 2, 13)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"# libvirt postcopy support"},{"line_number":281,"context_line":"MIN_LIBVIRT_POSTCOPY_VERSION \u003d (1, 3, 3)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_222f02f7","line":278,"updated":"2018-04-19 17:51:26.000000000","message":"same","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d30892f47dc8c344660696e9850ee9c5820eeb3b","unresolved":false,"context_lines":[{"line_number":281,"context_line":"MIN_LIBVIRT_POSTCOPY_VERSION \u003d (1, 3, 3)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"# qemu postcopy support"},{"line_number":284,"context_line":"MIN_QEMU_POSTCOPY_VERSION \u003d (2, 5, 0)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"MIN_LIBVIRT_OTHER_ARCH \u003d {"},{"line_number":287,"context_line":"    fields.Architecture.AARCH64: MIN_LIBVIRT_KVM_AARCH64_VERSION,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_c235e647","line":284,"updated":"2018-04-19 17:51:26.000000000","message":"same","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"67393c5407d71bf3dfff6132d26bef0744a97bc0","unresolved":false,"context_lines":[{"line_number":559,"context_line":"                raise exception.InternalError("},{"line_number":560,"context_line":"                    _(\u0027Running Nova with qemu/kvm virt_type on %(arch)s \u0027"},{"line_number":561,"context_line":"                      \u0027requires libvirt version %(libvirt_ver)s and \u0027"},{"line_number":562,"context_line":"                      \u0027qemu version %(qemu_ver)s, or greater\u0027) %"},{"line_number":563,"context_line":"                    {\u0027arch\u0027: kvm_arch,"},{"line_number":564,"context_line":"                     \u0027libvirt_ver\u0027: self._version_to_string("},{"line_number":565,"context_line":"                         MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))})"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_d996213f","line":562,"range":{"start_line":562,"start_character":38,"end_line":562,"end_character":46},"updated":"2018-04-20 14:20:19.000000000","message":"This is broken since you didn\u0027t provide a variable. So actually my comment below is slightly wrong. You can remove the conditional on L558 and remove this entire block. The exception raised below on L566 is what you need.","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"3a9c0032f62243ac668abd054ed6f3703e593d4d","unresolved":false,"context_lines":[{"line_number":559,"context_line":"                raise exception.InternalError("},{"line_number":560,"context_line":"                    _(\u0027Running Nova with qemu/kvm virt_type on %(arch)s \u0027"},{"line_number":561,"context_line":"                      \u0027requires libvirt version %(libvirt_ver)s and \u0027"},{"line_number":562,"context_line":"                      \u0027qemu version %(qemu_ver)s, or greater\u0027) %"},{"line_number":563,"context_line":"                    {\u0027arch\u0027: kvm_arch,"},{"line_number":564,"context_line":"                     \u0027libvirt_ver\u0027: self._version_to_string("},{"line_number":565,"context_line":"                         MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))})"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_323882ec","line":562,"range":{"start_line":562,"start_character":38,"end_line":562,"end_character":46},"in_reply_to":"9f6a8fd7_9f7f2914","updated":"2018-04-22 15:34:38.000000000","message":"Re-reading this part of the change, feel a bit embarrassed on how I missed to notice the lack of \u0027qemu_ver\u0027 variable, which I deleted.  (Probably my eyes glazed over with all the squashing / merging of other little changes.)\n\nThanks for the eagle eyes.  Fixed in next iteration (PS-13).","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"67dcd2968fcea97f47208513e0c57c7187d9b345","unresolved":false,"context_lines":[{"line_number":559,"context_line":"                raise exception.InternalError("},{"line_number":560,"context_line":"                    _(\u0027Running Nova with qemu/kvm virt_type on %(arch)s \u0027"},{"line_number":561,"context_line":"                      \u0027requires libvirt version %(libvirt_ver)s and \u0027"},{"line_number":562,"context_line":"                      \u0027qemu version %(qemu_ver)s, or greater\u0027) %"},{"line_number":563,"context_line":"                    {\u0027arch\u0027: kvm_arch,"},{"line_number":564,"context_line":"                     \u0027libvirt_ver\u0027: self._version_to_string("},{"line_number":565,"context_line":"                         MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))})"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_9f7f2914","line":562,"range":{"start_line":562,"start_character":38,"end_line":562,"end_character":46},"in_reply_to":"9f6a8fd7_d996213f","updated":"2018-04-20 15:16:43.000000000","message":"Noted.  I posted PS-12 before seeing this.  Will rework.","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d30892f47dc8c344660696e9850ee9c5820eeb3b","unresolved":false,"context_lines":[{"line_number":563,"context_line":"                    {\u0027arch\u0027: kvm_arch,"},{"line_number":564,"context_line":"                     \u0027libvirt_ver\u0027: self._version_to_string("},{"line_number":565,"context_line":"                         MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))})"},{"line_number":566,"context_line":"            # no qemu version in the error message"},{"line_number":567,"context_line":"            raise exception.InternalError("},{"line_number":568,"context_line":"                _(\u0027Running Nova with qemu/kvm virt_type on %(arch)s \u0027"},{"line_number":569,"context_line":"                  \u0027requires libvirt version %(libvirt_ver)s or greater\u0027) %"},{"line_number":570,"context_line":"                {\u0027arch\u0027: kvm_arch,"},{"line_number":571,"context_line":"                 \u0027libvirt_ver\u0027: libvirt_utils.version_to_string("},{"line_number":572,"context_line":"                     MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))})"},{"line_number":573,"context_line":"        # TODO(sbauza): Remove this code once mediated devices are persisted"},{"line_number":574,"context_line":"        # across reboots."},{"line_number":575,"context_line":"        if self._host.has_min_version(MIN_LIBVIRT_MDEV_SUPPORT):"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_82284ee2","line":572,"range":{"start_line":566,"start_character":12,"end_line":572,"end_character":60},"updated":"2018-04-19 17:51:26.000000000","message":"This and the if conditional above can be dropped.","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"c358e1f4fa72a5ab9dce9f72c33c08d3953f7955","unresolved":false,"context_lines":[{"line_number":563,"context_line":"                    {\u0027arch\u0027: kvm_arch,"},{"line_number":564,"context_line":"                     \u0027libvirt_ver\u0027: self._version_to_string("},{"line_number":565,"context_line":"                         MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))})"},{"line_number":566,"context_line":"            # no qemu version in the error message"},{"line_number":567,"context_line":"            raise exception.InternalError("},{"line_number":568,"context_line":"                _(\u0027Running Nova with qemu/kvm virt_type on %(arch)s \u0027"},{"line_number":569,"context_line":"                  \u0027requires libvirt version %(libvirt_ver)s or greater\u0027) %"},{"line_number":570,"context_line":"                {\u0027arch\u0027: kvm_arch,"},{"line_number":571,"context_line":"                 \u0027libvirt_ver\u0027: libvirt_utils.version_to_string("},{"line_number":572,"context_line":"                     MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))})"},{"line_number":573,"context_line":"        # TODO(sbauza): Remove this code once mediated devices are persisted"},{"line_number":574,"context_line":"        # across reboots."},{"line_number":575,"context_line":"        if self._host.has_min_version(MIN_LIBVIRT_MDEV_SUPPORT):"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_04019705","line":572,"range":{"start_line":566,"start_character":12,"end_line":572,"end_character":60},"in_reply_to":"9f6a8fd7_82284ee2","updated":"2018-04-20 11:59:47.000000000","message":"Hmm, I left it in as it\u0027s handling AArch64, which requires:\n\n    MIN_LIBVIRT_KVM_AARCH64_VERSION \u003d (3, 6, 0)\n\nAs you can notice, the above version is much higher than what we\u0027re bumping in Rocky: (3, 0, 0).","commit_id":"09e53618065c963e8d9e68c27292e70ebfc777cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3b10c20c0610a3b8dea9f915e14b1a7d1d8aa50","unresolved":false,"context_lines":[{"line_number":598,"context_line":"                {\u0027arch\u0027: kvm_arch,"},{"line_number":599,"context_line":"                 \u0027libvirt_ver\u0027: libvirt_utils.version_to_string("},{"line_number":600,"context_line":"                     MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))})"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"        # TODO(sbauza): Remove this code once mediated devices are persisted"},{"line_number":603,"context_line":"        # across reboots."},{"line_number":604,"context_line":"        if self._host.has_min_version(MIN_LIBVIRT_MDEV_SUPPORT):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f6a8fd7_244cb240","side":"PARENT","line":601,"updated":"2018-04-23 14:39:36.000000000","message":"unrelated","commit_id":"6efbed5e708fdebfbb4d82dc45a732da7e2de47a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3b10c20c0610a3b8dea9f915e14b1a7d1d8aa50","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            kvm_arch in MIN_LIBVIRT_OTHER_ARCH and"},{"line_number":556,"context_line":"                not self._host.has_min_version("},{"line_number":557,"context_line":"                    MIN_LIBVIRT_OTHER_ARCH.get(kvm_arch))):"},{"line_number":558,"context_line":"            # no qemu version in the error message"},{"line_number":559,"context_line":"            raise exception.InternalError("},{"line_number":560,"context_line":"                _(\u0027Running Nova with qemu/kvm virt_type on %(arch)s \u0027"},{"line_number":561,"context_line":"                  \u0027requires libvirt version %(libvirt_ver)s or greater\u0027) %"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f6a8fd7_a461a2ab","line":558,"range":{"start_line":558,"start_character":12,"end_line":558,"end_character":50},"updated":"2018-04-23 14:39:36.000000000","message":"nit: we could remove this since the conditional is gone now.","commit_id":"0c1e8626b52afe07acbfd2721d8d5a42d0efd15b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b70bcf459a6b26b5be7966f04c200eebca58c437","unresolved":false,"context_lines":[{"line_number":223,"context_line":"# MIN_LIBVIRT_VERSION can be updated to match this after"},{"line_number":224,"context_line":"# NEXT_MIN_LIBVIRT_VERSION  has been at a higher value for"},{"line_number":225,"context_line":"# one cycle"},{"line_number":226,"context_line":"NEXT_MIN_LIBVIRT_VERSION \u003d (3, 0, 0)"},{"line_number":227,"context_line":"NEXT_MIN_QEMU_VERSION \u003d (2, 8, 0)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"# When the above version matches/exceeds this version"},{"line_number":230,"context_line":"# delete it \u0026 corresponding code using it"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f6a8fd7_2fdc8be2","line":227,"range":{"start_line":226,"start_character":0,"end_line":227,"end_character":33},"updated":"2018-04-24 08:16:06.000000000","message":"The reason that these preordained values weren\u0027t chosen is curiously absent from the commit message. Mind adding it?","commit_id":"403320bc9991618b09ab55c5f650916f5c46dd75"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ced16fae5fc0c38eabcf6e0413b666ef36cef2a9","unresolved":false,"context_lines":[{"line_number":223,"context_line":"# MIN_LIBVIRT_VERSION can be updated to match this after"},{"line_number":224,"context_line":"# NEXT_MIN_LIBVIRT_VERSION  has been at a higher value for"},{"line_number":225,"context_line":"# one cycle"},{"line_number":226,"context_line":"NEXT_MIN_LIBVIRT_VERSION \u003d (3, 0, 0)"},{"line_number":227,"context_line":"NEXT_MIN_QEMU_VERSION \u003d (2, 8, 0)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"# When the above version matches/exceeds this version"},{"line_number":230,"context_line":"# delete it \u0026 corresponding code using it"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f6a8fd7_44c434f5","line":227,"range":{"start_line":226,"start_character":0,"end_line":227,"end_character":33},"in_reply_to":"9f6a8fd7_2fdc8be2","updated":"2018-04-24 08:17:28.000000000","message":"From IRC, it seems this was bumped in a separate commit (b980df0d542). You can ignore this one too","commit_id":"403320bc9991618b09ab55c5f650916f5c46dd75"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b70bcf459a6b26b5be7966f04c200eebca58c437","unresolved":false,"context_lines":[{"line_number":226,"context_line":"NEXT_MIN_LIBVIRT_VERSION \u003d (3, 0, 0)"},{"line_number":227,"context_line":"NEXT_MIN_QEMU_VERSION \u003d (2, 8, 0)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"# When the above version matches/exceeds this version"},{"line_number":230,"context_line":"# delete it \u0026 corresponding code using it"},{"line_number":231,"context_line":"# Libvirt version 1.2.17 is required for successful block live migration"},{"line_number":232,"context_line":"# of vm booted from image with attached devices"},{"line_number":233,"context_line":"MIN_LIBVIRT_BLOCK_LM_WITH_VOLUMES_VERSION \u003d (1, 2, 17)"},{"line_number":234,"context_line":"# PowerPC based hosts that support NUMA using libvirt"},{"line_number":235,"context_line":"MIN_LIBVIRT_NUMA_VERSION_PPC \u003d (1, 2, 19)"},{"line_number":236,"context_line":"# Versions of libvirt with known NUMA topology issues"},{"line_number":237,"context_line":"# See bug #1449028"},{"line_number":238,"context_line":"BAD_LIBVIRT_NUMA_VERSIONS \u003d [(1, 2, 9, 2)]"},{"line_number":239,"context_line":"# Versions of libvirt with broken cpu pinning support. This excludes"},{"line_number":240,"context_line":"# versions of libvirt with broken NUMA support since pinning needs"},{"line_number":241,"context_line":"# NUMA"},{"line_number":242,"context_line":"# See bug #1438226"},{"line_number":243,"context_line":"BAD_LIBVIRT_CPU_POLICY_VERSIONS \u003d [(1, 2, 10)]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"# Virtuozzo driver support"},{"line_number":246,"context_line":"MIN_VIRTUOZZO_VERSION \u003d (7, 0, 0)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f6a8fd7_6f59238c","line":243,"range":{"start_line":229,"start_character":0,"end_line":243,"end_character":46},"updated":"2018-04-24 08:16:06.000000000","message":"Every one of these is dead now, right?","commit_id":"403320bc9991618b09ab55c5f650916f5c46dd75"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b70bcf459a6b26b5be7966f04c200eebca58c437","unresolved":false,"context_lines":[{"line_number":245,"context_line":"# Virtuozzo driver support"},{"line_number":246,"context_line":"MIN_VIRTUOZZO_VERSION \u003d (7, 0, 0)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"# Ability to set the user guest password with Qemu"},{"line_number":249,"context_line":"MIN_LIBVIRT_SET_ADMIN_PASSWD \u003d (1, 2, 16)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"# Ability to set the user guest password with parallels"},{"line_number":252,"context_line":"MIN_LIBVIRT_PARALLELS_SET_ADMIN_PASSWD \u003d (2, 0, 0)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f6a8fd7_2f57ab5a","line":249,"range":{"start_line":248,"start_character":0,"end_line":249,"end_character":41},"updated":"2018-04-24 08:16:06.000000000","message":"Ditto","commit_id":"403320bc9991618b09ab55c5f650916f5c46dd75"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b70bcf459a6b26b5be7966f04c200eebca58c437","unresolved":false,"context_lines":[{"line_number":274,"context_line":"# Qemu supports 4 serial consoles, we remove 1 because of the PTY one defined"},{"line_number":275,"context_line":"ALLOWED_QEMU_SERIAL_PORTS \u003d QEMU_MAX_SERIAL_PORTS - 1"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"# realtime support"},{"line_number":278,"context_line":"MIN_LIBVIRT_REALTIME_VERSION \u003d (1, 2, 13)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"# libvirt postcopy support"},{"line_number":281,"context_line":"MIN_LIBVIRT_POSTCOPY_VERSION \u003d (1, 3, 3)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f6a8fd7_4f545f53","line":278,"range":{"start_line":277,"start_character":0,"end_line":278,"end_character":41},"updated":"2018-04-24 08:16:06.000000000","message":"Ditto","commit_id":"403320bc9991618b09ab55c5f650916f5c46dd75"}],"releasenotes/notes/rocky-libvirt-qemu-min-versions-56412048c12f1f52.yaml":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"60c8b4bc37ba60a37f07471b7913e733d7b30035","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The minimum required version of libvirt used by the `nova-compute`"},{"line_number":5,"context_line":"    service is now 1.3.1.  And the minimum required version of QEMU used"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf659307_7e1f506b","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"updated":"2018-04-04 11:59:19.000000000","message":"Isn\u0027t that an upgrade note? I can\u0027t remember what we did in the past.","commit_id":"13df7ade7862fa769c46cf8148d9afcf1070cd4d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"5ad82a0870b103be4549f4eccfd8d1893483a288","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The minimum required version of libvirt used by the `nova-compute`"},{"line_number":5,"context_line":"    service is now 1.3.1.  And the minimum required version of QEMU used"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf659307_59862668","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"in_reply_to":"bf659307_7e1f506b","updated":"2018-04-04 12:19:49.000000000","message":"Ah, right; will fix","commit_id":"13df7ade7862fa769c46cf8148d9afcf1070cd4d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b70bcf459a6b26b5be7966f04c200eebca58c437","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The minimum required version of libvirt used by the `nova-compute`"},{"line_number":5,"context_line":"    service is now 1.3.1.  And the minimum required version of QEMU used"},{"line_number":6,"context_line":"    by the `nova-compute` service is now 2.5.0. Failing to meet these"},{"line_number":7,"context_line":"    minimum versions when using the libvirt compute driver will result"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f6a8fd7_efe1b39c","line":4,"range":{"start_line":4,"start_character":56,"end_line":4,"end_character":70},"updated":"2018-04-24 08:16:06.000000000","message":"nit: *nova-compute*","commit_id":"403320bc9991618b09ab55c5f650916f5c46dd75"}]}
