)]}'
{"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":"d5bc86dfbf0af59eac1613d4c350f53e0afd2fd6","unresolved":false,"context_lines":[{"line_number":792,"context_line":"                break"},{"line_number":793,"context_line":"        self.assertFalse(version_arg_found)"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"    min_libvirt \u003d {arch.S390: libvirt_driver.MIN_LIBVIRT_KVM_S390_VERSION,"},{"line_number":796,"context_line":"                   arch.S390X: libvirt_driver.MIN_LIBVIRT_KVM_S390_VERSION,"},{"line_number":797,"context_line":"                   arch.PPC: libvirt_driver.MIN_LIBVIRT_KVM_PPC64_VERSION,"},{"line_number":798,"context_line":"                   arch.PPC64: libvirt_driver.MIN_LIBVIRT_KVM_PPC64_VERSION,"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_a0669aea","line":795,"updated":"2016-01-15 16:39:52.000000000","message":"ewww, I\u0027d recommend pulling these maps out as global constants in the libvirt driver, then re-use them in both places.","commit_id":"891a0889796f1f7524b0b478f9414d468de44269"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"143d654c20fd22408fe9b7bd87cd453c4c071d19","unresolved":false,"context_lines":[{"line_number":805,"context_line":"                arch.PPC64: libvirt_driver.MIN_QEMU_PPC64_VERSION,"},{"line_number":806,"context_line":"                arch.PPC64LE: libvirt_driver.MIN_QEMU_PPC64_VERSION,"},{"line_number":807,"context_line":"               }"},{"line_number":808,"context_line":"    for kvm_arch in min_libvirt:"},{"line_number":809,"context_line":"        @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027,"},{"line_number":810,"context_line":"                           return_value\u003dversionutils.convert_version_to_int("},{"line_number":811,"context_line":"                               min_libvirt.get(kvm_arch)) - 1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_0061a6a8","line":808,"updated":"2016-01-15 16:43:36.000000000","message":"This doesn\u0027t appear to actually be running the tests more than once like you expect it to:\n\nhttp://logs.openstack.org/55/226555/6/check/gate-nova-python27/361d875/console.html#_2016-01-13_19_02_14_213\n\nSeems you should be using testscenarios for something like this, or just iterate in the test cases themselves.","commit_id":"891a0889796f1f7524b0b478f9414d468de44269"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d087dd2145cb8393887bb95d1ea97ddf3ac5b8a6","unresolved":false,"context_lines":[{"line_number":805,"context_line":"                arch.PPC64: libvirt_driver.MIN_QEMU_PPC64_VERSION,"},{"line_number":806,"context_line":"                arch.PPC64LE: libvirt_driver.MIN_QEMU_PPC64_VERSION,"},{"line_number":807,"context_line":"               }"},{"line_number":808,"context_line":"    for kvm_arch in min_libvirt:"},{"line_number":809,"context_line":"        @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027,"},{"line_number":810,"context_line":"                           return_value\u003dversionutils.convert_version_to_int("},{"line_number":811,"context_line":"                               min_libvirt.get(kvm_arch)) - 1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_60c2e254","line":808,"in_reply_to":"da6ed579_0061a6a8","updated":"2016-01-15 16:46:15.000000000","message":"ddt could also be used here, but it\u0027d be a new test dependency for nova.","commit_id":"891a0889796f1f7524b0b478f9414d468de44269"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7ae6fae7513181c69471f35a9f2d1ca3b2b5d4e7","unresolved":false,"context_lines":[{"line_number":805,"context_line":"                arch.PPC64: libvirt_driver.MIN_QEMU_PPC64_VERSION,"},{"line_number":806,"context_line":"                arch.PPC64LE: libvirt_driver.MIN_QEMU_PPC64_VERSION,"},{"line_number":807,"context_line":"               }"},{"line_number":808,"context_line":"    for kvm_arch in min_libvirt:"},{"line_number":809,"context_line":"        @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027,"},{"line_number":810,"context_line":"                           return_value\u003dversionutils.convert_version_to_int("},{"line_number":811,"context_line":"                               min_libvirt.get(kvm_arch)) - 1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_d484b3d3","line":808,"in_reply_to":"da6ed579_60c2e254","updated":"2016-01-15 17:12:07.000000000","message":"this will not work because it keeps redefining the same test name, so the last iteration of the loop is the value that gets tested.","commit_id":"891a0889796f1f7524b0b478f9414d468de44269"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9fd7ebf2112ddcc7b244b1fe3241167a5fba5e79","unresolved":false,"context_lines":[{"line_number":794,"context_line":""},{"line_number":795,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027,"},{"line_number":796,"context_line":"                      return_value\u003dversionutils.convert_version_to_int("},{"line_number":797,"context_line":"                      libvirt_driver.min_libvirt.get(arch.PPC64)) - 1)"},{"line_number":798,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getVersion\u0027,"},{"line_number":799,"context_line":"                      return_value\u003dversionutils.convert_version_to_int("},{"line_number":800,"context_line":"                      libvirt_driver.min_qemu.get(arch.PPC64)))"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_c2c4c393","line":797,"updated":"2016-01-21 00:27:20.000000000","message":"These tests aren\u0027t actually testing your whole mapping like the previous attempt was trying to do, they are only testing the ppc64 and s390x keys. That misses ppc, s390 and ppc64le. Maybe we don\u0027t care, but it seems like we could use testscenarios here to hit the mapping values in a single test - but that might require some guidance from gmann or sdague.","commit_id":"e3a742c14cf7d34a2c0306586b265a70a405bf1a"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f90d3c42d5cc56037329b90e6d456955877ef048","unresolved":false,"context_lines":[{"line_number":794,"context_line":""},{"line_number":795,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027,"},{"line_number":796,"context_line":"                      return_value\u003dversionutils.convert_version_to_int("},{"line_number":797,"context_line":"                      libvirt_driver.min_libvirt.get(arch.PPC64)) - 1)"},{"line_number":798,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getVersion\u0027,"},{"line_number":799,"context_line":"                      return_value\u003dversionutils.convert_version_to_int("},{"line_number":800,"context_line":"                      libvirt_driver.min_qemu.get(arch.PPC64)))"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_556dd496","line":797,"in_reply_to":"9a68dd71_c2c4c393","updated":"2016-01-21 12:02:46.000000000","message":"The original code has tests for s390x only. Since both s390/s390x require the same levels, only one is tested in that arch group. Same idea was applied to ppc/ppc64/ppc64le.\nI can create multiple testscenarios if that makes the test more robust, though.","commit_id":"e3a742c14cf7d34a2c0306586b265a70a405bf1a"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"6b413ed5de999e3a5d987320543f395417915c1b","unresolved":false,"context_lines":[{"line_number":422,"context_line":"MIN_LIBVIRT_KVM_PPC64_VERSION \u003d (1, 2, 9)"},{"line_number":423,"context_line":"MIN_QEMU_PPC64_VERSION \u003d (1, 6, 0)"},{"line_number":424,"context_line":"MIN_LIBVIRT_KVM_PPC64LE_VERSION \u003d (1, 2, 11)"},{"line_number":425,"context_line":"MIN_QEMU_PPC64LE_VERSION \u003d (2, 1, 0)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":428,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a7b0d38_b1d806f1","line":425,"updated":"2015-12-22 23:00:10.000000000","message":"I\u0027m not convinced these are correct.  My gut tells me this will result in tears if we try to run a ppc64le *guest* on a ppc64 *host*.","commit_id":"1d0975c9969249410b9542017777019504279f00"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d6e5fea38a47af419e676a458f6a644b1a715b9a","unresolved":false,"context_lines":[{"line_number":422,"context_line":"MIN_LIBVIRT_KVM_PPC64_VERSION \u003d (1, 2, 9)"},{"line_number":423,"context_line":"MIN_QEMU_PPC64_VERSION \u003d (1, 6, 0)"},{"line_number":424,"context_line":"MIN_LIBVIRT_KVM_PPC64LE_VERSION \u003d (1, 2, 11)"},{"line_number":425,"context_line":"MIN_QEMU_PPC64LE_VERSION \u003d (2, 1, 0)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":428,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_b807691c","line":425,"in_reply_to":"1a7b0d38_7e69c6bd","updated":"2016-01-08 06:15:33.000000000","message":"That would seem to be a reasonable solution.","commit_id":"1d0975c9969249410b9542017777019504279f00"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"e25ee2a4b90090426b8940f7717d78ea2334e32b","unresolved":false,"context_lines":[{"line_number":422,"context_line":"MIN_LIBVIRT_KVM_PPC64_VERSION \u003d (1, 2, 9)"},{"line_number":423,"context_line":"MIN_QEMU_PPC64_VERSION \u003d (1, 6, 0)"},{"line_number":424,"context_line":"MIN_LIBVIRT_KVM_PPC64LE_VERSION \u003d (1, 2, 11)"},{"line_number":425,"context_line":"MIN_QEMU_PPC64LE_VERSION \u003d (2, 1, 0)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":428,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a7b0d38_7e69c6bd","line":425,"in_reply_to":"1a7b0d38_8697a48f","updated":"2015-12-24 14:37:43.000000000","message":"I agree Tony. The mix of ppc64/ppc64le would ignore the ppc64le min levels since the host is what really matters.\nThe easy solution here is to raise min levels for ppc64 the same as ppc64le. I guess this is OK since f21 EOL was Dec 5th and it had already the min levels.\n\nI did some more research and this bug - https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1396070 - has an additional driver patch which was included in Libvirt 1.2.12, so I think it is safer to use 1.2.12 instead.\n\nSome more evidences that these levels are accurate:\nhttps://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1358268\nhttps://launchpad.net/ubuntu/utopic/+source/qemu/+changelog\nhttp://ppc.koji.fedoraproject.org/koji/buildinfo?buildID\u003d254598\n\nSince current active distros (vivid, f22) has the min levels, are you OK on setting the same levels for ppc64/ppc64le or you see any issues with this approach ? \n\nThanks for your attention to details on this patch.","commit_id":"1d0975c9969249410b9542017777019504279f00"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f7a8f7a2d51e0b958d0ed174b4b5dee569cd089a","unresolved":false,"context_lines":[{"line_number":422,"context_line":"MIN_LIBVIRT_KVM_PPC64_VERSION \u003d (1, 2, 9)"},{"line_number":423,"context_line":"MIN_QEMU_PPC64_VERSION \u003d (1, 6, 0)"},{"line_number":424,"context_line":"MIN_LIBVIRT_KVM_PPC64LE_VERSION \u003d (1, 2, 11)"},{"line_number":425,"context_line":"MIN_QEMU_PPC64LE_VERSION \u003d (2, 1, 0)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":428,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a7b0d38_e2954740","line":425,"in_reply_to":"1a7b0d38_b1d806f1","updated":"2015-12-23 13:19:14.000000000","message":"The criteria I used for defining QEMU min version for ppc64le was based on git log history, not on distro packaging levels. This seems to be reasonable to me, since it allows ppc64le guest to run on a ppc64 host. The commit below is in QEMU 2.1.0 release: \n\ncommit 0c967de9c00321f893a57617a4e3dfcda05266f5\nAuthor: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nDate:   Mon May 19 19:58:35 2014 +0200\n\n    target-ppc: Support dump for little endian ppc64\n\nFix ppc64 arch specific dump code to support all combinations of little/big endian hosts/guests.\n\n\nFor ppc64 min version, it is a bit more fuzzy as we know that powerpc is \"supported\" in qemu since 2003. We defined as min version the **upstream** (open source) levels that correspond to the \"new era\" of PowerKVM, that is, the first release of IBM PowerKVM Host OS build for POWER8. You find these levels in Fedora 20, where KVM on Power CI successfully runs 98% of Tempest.\n\nRunning QEMU \u003c 1.6 may work with limited functionality, but will require local customizations and fixes. More info, see\nhttp://www.linux-kvm.org/images/7/77/01x09a-KVMPower.pdf, Page 4 - Open Source.","commit_id":"1d0975c9969249410b9542017777019504279f00"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"eb5c2281a8544ce3891374200efe7da43f6edd1b","unresolved":false,"context_lines":[{"line_number":422,"context_line":"MIN_LIBVIRT_KVM_PPC64_VERSION \u003d (1, 2, 9)"},{"line_number":423,"context_line":"MIN_QEMU_PPC64_VERSION \u003d (1, 6, 0)"},{"line_number":424,"context_line":"MIN_LIBVIRT_KVM_PPC64LE_VERSION \u003d (1, 2, 11)"},{"line_number":425,"context_line":"MIN_QEMU_PPC64LE_VERSION \u003d (2, 1, 0)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":428,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a7b0d38_8697a48f","line":425,"in_reply_to":"1a7b0d38_e2954740","updated":"2015-12-23 22:34:50.000000000","message":"I have no doubt that the leveles you\u0027ve supplied are reasonable and correct for the simple case where the host and guest run the same endianness.  I\u0027m interested in the mixed endian case.\n\nConsider this scenario where the host is ppc64, you have libvirt somewhere in the range 1.2.9 \u003c\u003d 1.2.11 and qemu in the range 1.6.0 \u003c 2.1.0.  To simplify assume straight upstream code bases *NOT* distribution modified.\n\nAt what point does libvirt report that it can run ppc64le guests and how are those checks implemented (in libvirt)? Is there *any* possibility that we\u0027ll pass the checks in init_host() and then fail in weird and wonderful ways when we try to launch an ppc64le guest?  If nova aborts with a nice GuestNotSupported (or similar) exception that\u0027s fine.\n\nI know in the F20 timeframe I hit just that scenario, ppc64 host launching ppc64le gusts that would get to qemu and \"go bang\".  What I can\u0027t claim to know for sure is what kernel/libvirt/qemu versions those were.","commit_id":"1d0975c9969249410b9542017777019504279f00"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5980ccb4e12b2da397e01edbf5aefec93463e08d","unresolved":false,"context_lines":[{"line_number":446,"context_line":"# NOTE(rfolco): Same levels for Libvirt/Qemu on Big Endian and Little"},{"line_number":447,"context_line":"# Endian giving the nuance around guest vs host architectures"},{"line_number":448,"context_line":"MIN_LIBVIRT_KVM_PPC64_VERSION \u003d (1, 2, 12)"},{"line_number":449,"context_line":"MIN_QEMU_PPC64_VERSION \u003d (2, 1, 0)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":452,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_c5b40083","line":449,"updated":"2016-01-15 16:34:44.000000000","message":"Hmm, the powerkvm ci is running with qemu 2.2:\n\nhttp://dal05.objectstorage.softlayer.net/v1/AUTH_3d8e6ecb-f597-448c-8ec2-164e9f710dd6/pkvmci/nova/55/226555/6/check/check-ibm-tempest-dsvm-full/53a2137/dpkg-l.txt.gz\n\nIs there a link to some qemu docs that say qemu 2.1.0 is a good min version? That would be good to have in the commit message probably.","commit_id":"891a0889796f1f7524b0b478f9414d468de44269"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d5bc86dfbf0af59eac1613d4c350f53e0afd2fd6","unresolved":false,"context_lines":[{"line_number":446,"context_line":"# NOTE(rfolco): Same levels for Libvirt/Qemu on Big Endian and Little"},{"line_number":447,"context_line":"# Endian giving the nuance around guest vs host architectures"},{"line_number":448,"context_line":"MIN_LIBVIRT_KVM_PPC64_VERSION \u003d (1, 2, 12)"},{"line_number":449,"context_line":"MIN_QEMU_PPC64_VERSION \u003d (2, 1, 0)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":452,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_6529949a","line":449,"in_reply_to":"da6ed579_c5b40083","updated":"2016-01-15 16:39:52.000000000","message":"I guess https://launchpad.net/ubuntu/utopic/+source/qemu/+changelog points out that ppc* support was added in 2.1.","commit_id":"891a0889796f1f7524b0b478f9414d468de44269"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9fd7ebf2112ddcc7b244b1fe3241167a5fba5e79","unresolved":false,"context_lines":[{"line_number":454,"context_line":"# realtime suppport"},{"line_number":455,"context_line":"MIN_LIBVIRT_REALTIME_VERSION \u003d (1, 2, 13)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"min_libvirt \u003d {arch.S390: MIN_LIBVIRT_KVM_S390_VERSION,"},{"line_number":458,"context_line":"               arch.S390X: MIN_LIBVIRT_KVM_S390_VERSION,"},{"line_number":459,"context_line":"               arch.PPC: MIN_LIBVIRT_KVM_PPC64_VERSION,"},{"line_number":460,"context_line":"               arch.PPC64: MIN_LIBVIRT_KVM_PPC64_VERSION,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_a2b66f3b","line":457,"range":{"start_line":457,"start_character":0,"end_line":457,"end_character":11},"updated":"2016-01-21 00:27:20.000000000","message":"nit: I\u0027d make this and the var below caps since they are constants, like the rest of the constants in here.\n\nThe name is also a tad confusing since they are only for z and p. I don\u0027t have any suggestions there though. Maybe something like:\n\nNON_INTEL_MIN_LIBVIRT_MAP","commit_id":"e3a742c14cf7d34a2c0306586b265a70a405bf1a"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f90d3c42d5cc56037329b90e6d456955877ef048","unresolved":false,"context_lines":[{"line_number":454,"context_line":"# realtime suppport"},{"line_number":455,"context_line":"MIN_LIBVIRT_REALTIME_VERSION \u003d (1, 2, 13)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"min_libvirt \u003d {arch.S390: MIN_LIBVIRT_KVM_S390_VERSION,"},{"line_number":458,"context_line":"               arch.S390X: MIN_LIBVIRT_KVM_S390_VERSION,"},{"line_number":459,"context_line":"               arch.PPC: MIN_LIBVIRT_KVM_PPC64_VERSION,"},{"line_number":460,"context_line":"               arch.PPC64: MIN_LIBVIRT_KVM_PPC64_VERSION,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_b5f45087","line":457,"range":{"start_line":457,"start_character":0,"end_line":457,"end_character":11},"in_reply_to":"9a68dd71_a2b66f3b","updated":"2016-01-21 12:02:46.000000000","message":"Ok. Maybe MIN_LIBVIRT_OTHER_ARCH_MAP.","commit_id":"e3a742c14cf7d34a2c0306586b265a70a405bf1a"}]}
