)]}'
{"nova/test.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"59fedf0fd534c34055a98cda89fb5b0bcc98bb3a","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        # Reset the traits sync flag"},{"line_number":306,"context_line":"        objects.resource_provider._TRAITS_SYNCED \u003d False"},{"line_number":307,"context_line":"        # Reset the global QEMU version flag."},{"line_number":308,"context_line":"        images.QEMU_VERSION \u003d None"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        mox_fixture \u003d self.useFixture(moxstubout.MoxStubout())"},{"line_number":311,"context_line":"        self.mox \u003d mox_fixture.mox"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_8e113107","line":308,"updated":"2017-09-28 12:56:20.000000000","message":"That\u0027s one of the reasons why I said I dislike to see a global variable, but given it\u0027s the only way to pass the qemu version to the module helper, meh.","commit_id":"807579755c4a116309eca5b2bcdbab9d1f393bab"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"daaa4816e653346cbce94372f8224bac9affd618","unresolved":false,"context_lines":[{"line_number":11606,"context_line":"            mock.patch.object(host.Host, \"get_capabilities\")):"},{"line_number":11607,"context_line":""},{"line_number":11608,"context_line":"            self.assertRaises(exception.HypervisorUnavailable,"},{"line_number":11609,"context_line":"                              drvr.init_host, (\"wibble\",))"},{"line_number":11610,"context_line":"            self.assertTrue(service_mock.disabled)"},{"line_number":11611,"context_line":""},{"line_number":11612,"context_line":"    def test_service_resume_after_broken_connection(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f5c4f37_1107351f","line":11609,"updated":"2017-09-22 11:53:23.000000000","message":"we trigger the same fail earlier here, it should have the same result in a full stack case","commit_id":"de5bfa8560c803b45cfc7c0a962e3015959e7a36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bd140e733678d0d77362920cf08eadc33b0ad647","unresolved":false,"context_lines":[{"line_number":996,"context_line":"        \"\"\""},{"line_number":997,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"},{"line_number":998,"context_line":"        drvr.init_host(\"dummyhost\")"},{"line_number":999,"context_line":"        self.assertEqual(images.QEMU_VERSION, mock.sentinel.qemu_version)"},{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027,"},{"line_number":1002,"context_line":"                       return_value\u003dversionutils.convert_version_to_int("}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_9c807d48","line":999,"range":{"start_line":999,"start_character":25,"end_line":999,"end_character":44},"updated":"2017-09-27 02:47:05.000000000","message":"This is being set elsewhere in tests, since it\u0027s a global, and not getting reset, which makes this test fail.","commit_id":"700d2447f316f359c93a496e8194ebe2403fe570"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a7c908b2cd701b029b425176b39d7811d781e8e8","unresolved":false,"context_lines":[{"line_number":994,"context_line":"        A sentinel is used here so that we aren\u0027t chasing this value"},{"line_number":995,"context_line":"        against minimums that get raised over time."},{"line_number":996,"context_line":"        \"\"\""},{"line_number":997,"context_line":"        images.QEMU_VERSION \u003d None"},{"line_number":998,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"},{"line_number":999,"context_line":"        drvr.init_host(\"dummyhost\")"},{"line_number":1000,"context_line":"        self.assertEqual(images.QEMU_VERSION, mock.sentinel.qemu_version)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_6b0720cc","line":997,"updated":"2017-09-27 16:36:04.000000000","message":"We reset some other globals in the base test setup:\n\nhttps://github.com/openstack/nova/blob/master/nova/test.py#L299-L305\n\nMaybe we need to do it there. Or we need to reset this in the setUp of this class.","commit_id":"c558edfe56e477f3bc7fb98e01ea1325845d2b91"}],"nova/tests/unit/virt/libvirt/test_utils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"db579de3085dadb419a5a17c4d0013a230023599","unresolved":false,"context_lines":[{"line_number":186,"context_line":"virtual size: 64M (67108864 bytes)"},{"line_number":187,"context_line":"cluster_size: 65536"},{"line_number":188,"context_line":"disk size: 96K"},{"line_number":189,"context_line":"blah BLAH: bb"},{"line_number":190,"context_line":"\"\"\""},{"line_number":191,"context_line":"        mock_execute.return_value \u003d (example_output, \u0027\u0027)"},{"line_number":192,"context_line":"        image_info \u003d images.qemu_img_info(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_1d6639ef","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":13},"updated":"2017-09-22 08:52:37.000000000","message":"What\u0027s this bit about?","commit_id":"99b869ae59dc1ec41cf916135c6eed0f261ba542"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"daaa4816e653346cbce94372f8224bac9affd618","unresolved":false,"context_lines":[{"line_number":186,"context_line":"virtual size: 64M (67108864 bytes)"},{"line_number":187,"context_line":"cluster_size: 65536"},{"line_number":188,"context_line":"disk size: 96K"},{"line_number":189,"context_line":"blah BLAH: bb"},{"line_number":190,"context_line":"\"\"\""},{"line_number":191,"context_line":"        mock_execute.return_value \u003d (example_output, \u0027\u0027)"},{"line_number":192,"context_line":"        image_info \u003d images.qemu_img_info(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_69f20b09","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":13},"in_reply_to":"7f515b1d_1d6639ef","updated":"2017-09-22 11:53:23.000000000","message":"it was in the equivalent test above","commit_id":"99b869ae59dc1ec41cf916135c6eed0f261ba542"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"780c2cfe8350be58b6af1f29bddefb317e0f72a7","unresolved":false,"context_lines":[{"line_number":186,"context_line":"virtual size: 64M (67108864 bytes)"},{"line_number":187,"context_line":"cluster_size: 65536"},{"line_number":188,"context_line":"disk size: 96K"},{"line_number":189,"context_line":"blah BLAH: bb"},{"line_number":190,"context_line":"\"\"\""},{"line_number":191,"context_line":"        mock_execute.return_value \u003d (example_output, \u0027\u0027)"},{"line_number":192,"context_line":"        image_info \u003d images.qemu_img_info(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_6e9f8703","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":13},"in_reply_to":"7f515b1d_69f20b09","updated":"2017-09-25 12:50:18.000000000","message":"Fair enough","commit_id":"99b869ae59dc1ec41cf916135c6eed0f261ba542"}],"nova/virt/images.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a42707576672b2f252d5981c57c97affeff45538","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            cmd \u003d cmd + (\u0027-f\u0027, format)"},{"line_number":68,"context_line":"        # Check to see if the qemu version is \u003e\u003d 2.10 because if so, we need"},{"line_number":69,"context_line":"        # to add the --force-share flag."},{"line_number":70,"context_line":"        if QEMU_VERSION and operator.ge(QEMU_VERSION, 2001000):"},{"line_number":71,"context_line":"            cmd \u003d cmd + (\u0027--force-share\u0027,)"},{"line_number":72,"context_line":"        out, err \u003d utils.execute(*cmd, prlimit\u003dQEMU_IMG_LIMITS)"},{"line_number":73,"context_line":"    except processutils.ProcessExecutionError as exp:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_0b2144fc","line":70,"range":{"start_line":70,"start_character":54,"end_line":70,"end_character":61},"updated":"2017-09-20 16:33:55.000000000","message":"This should be 2010000.","commit_id":"9e9081e41a0465afe0a83b375b3e1a1ef91ec501"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"daaa4816e653346cbce94372f8224bac9affd618","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # Check to see if the qemu version is \u003e\u003d 2.10 because if so, we need"},{"line_number":69,"context_line":"        # to add the --force-share flag."},{"line_number":70,"context_line":"        if QEMU_VERSION and operator.ge(QEMU_VERSION, 2001000):"},{"line_number":71,"context_line":"            cmd \u003d cmd + (\u0027--force-share\u0027,)"},{"line_number":72,"context_line":"        out, err \u003d utils.execute(*cmd, prlimit\u003dQEMU_IMG_LIMITS)"},{"line_number":73,"context_line":"    except processutils.ProcessExecutionError as exp:"},{"line_number":74,"context_line":"        # this means we hit prlimits, make the exception more specific"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_41aba3d5","line":71,"updated":"2017-09-22 11:53:23.000000000","message":"cmd.append(...) also works to ensure people don\u0027t miss the extra , in here","commit_id":"9e9081e41a0465afe0a83b375b3e1a1ef91ec501"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"354ae40ce0ef18c3684165127d22cedd144a6434","unresolved":false,"context_lines":[{"line_number":46,"context_line":"# This is set by the libvirt driver on startup. The version is used to"},{"line_number":47,"context_line":"# determine what flags need to be set on the command line."},{"line_number":48,"context_line":"QEMU_VERSION \u003d None"},{"line_number":49,"context_line":"QEMU_VERSION_REQ_SHARED \u003d 2010000"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def qemu_img_info(path, format\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_4307d583","line":49,"updated":"2017-09-26 15:53:35.000000000","message":"I\u0027m not a big fan of using global module variables for passing flags but since that whole file is just an helper module, looks like it\u0027s the only way for that that is not that ugly.","commit_id":"99b869ae59dc1ec41cf916135c6eed0f261ba542"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":3189,"name":"Chet Burgess","email":"cfb@metacloud.com","username":"cfb-n"},"change_message_id":"6cff655a8f00ba84ac57364d1096d4214f74b7f7","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            if self._host.has_min_version(hv_ver\u003dMIN_QEMU_VERSION):"},{"line_number":486,"context_line":"                # \"qemu-img info\" calls are version dependent, so we need to"},{"line_number":487,"context_line":"                # store the version in the images module."},{"line_number":488,"context_line":"                images.QEMU_VERSION \u003d self._host.get_connection().getVersion()"},{"line_number":489,"context_line":"            else:"},{"line_number":490,"context_line":"                raise exception.InternalError("},{"line_number":491,"context_line":"                    _(\u0027Nova requires QEMU version %s or greater.\u0027) %"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_50f008ca","line":488,"updated":"2017-09-22 18:14:38.000000000","message":"This assumes that the version of QEMU that libvirt picks as its default version is the same version as the first instance of qemu-image found in nova\u0027s path. While thats probably safe assumption in your basic distro installs I don\u0027t know that its always a safe assumption to make.","commit_id":"99b869ae59dc1ec41cf916135c6eed0f261ba542"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b2ed04a7e23997aef9cfc9f2fc03443feb41c8a8","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            if self._host.has_min_version(hv_ver\u003dMIN_QEMU_VERSION):"},{"line_number":486,"context_line":"                # \"qemu-img info\" calls are version dependent, so we need to"},{"line_number":487,"context_line":"                # store the version in the images module."},{"line_number":488,"context_line":"                images.QEMU_VERSION \u003d self._host.get_connection().getVersion()"},{"line_number":489,"context_line":"            else:"},{"line_number":490,"context_line":"                raise exception.InternalError("},{"line_number":491,"context_line":"                    _(\u0027Nova requires QEMU version %s or greater.\u0027) %"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_a379e92f","line":488,"in_reply_to":"7f515b1d_50f008ca","updated":"2017-09-26 15:03:25.000000000","message":"Can we have unit test coverage about this change? It seems only the change in the image.py is covered now.","commit_id":"99b869ae59dc1ec41cf916135c6eed0f261ba542"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e1b6c22033f0290e43c7d748ff48c74c4eddda7e","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            if self._host.has_min_version(hv_ver\u003dMIN_QEMU_VERSION):"},{"line_number":486,"context_line":"                # \"qemu-img info\" calls are version dependent, so we need to"},{"line_number":487,"context_line":"                # store the version in the images module."},{"line_number":488,"context_line":"                images.QEMU_VERSION \u003d self._host.get_connection().getVersion()"},{"line_number":489,"context_line":"            else:"},{"line_number":490,"context_line":"                raise exception.InternalError("},{"line_number":491,"context_line":"                    _(\u0027Nova requires QEMU version %s or greater.\u0027) %"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_3ed4f21f","line":488,"in_reply_to":"7f515b1d_a379e92f","updated":"2017-09-26 15:25:50.000000000","message":"Yeah, good catch. Will do.","commit_id":"99b869ae59dc1ec41cf916135c6eed0f261ba542"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d5b1785578dc62091555a48ca8d904ab65e68f66","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            if self._host.has_min_version(hv_ver\u003dMIN_QEMU_VERSION):"},{"line_number":486,"context_line":"                # \"qemu-img info\" calls are version dependent, so we need to"},{"line_number":487,"context_line":"                # store the version in the images module."},{"line_number":488,"context_line":"                images.QEMU_VERSION \u003d self._host.get_connection().getVersion()"},{"line_number":489,"context_line":"            else:"},{"line_number":490,"context_line":"                raise exception.InternalError("},{"line_number":491,"context_line":"                    _(\u0027Nova requires QEMU version %s or greater.\u0027) %"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_e06d9404","line":488,"range":{"start_line":488,"start_character":16,"end_line":488,"end_character":35},"updated":"2017-09-26 15:52:24.000000000","message":"I just want to say that I hate this, but I know it\u0027s been discussed already.","commit_id":"700d2447f316f359c93a496e8194ebe2403fe570"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"3fb42b3275ca1f96b52a54863ec1dab2cafe93e7","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            if self._host.has_min_version(hv_ver\u003dMIN_QEMU_VERSION):"},{"line_number":486,"context_line":"                # \"qemu-img info\" calls are version dependent, so we need to"},{"line_number":487,"context_line":"                # store the version in the images module."},{"line_number":488,"context_line":"                images.QEMU_VERSION \u003d self._host.get_connection().getVersion()"},{"line_number":489,"context_line":"            else:"},{"line_number":490,"context_line":"                raise exception.InternalError("},{"line_number":491,"context_line":"                    _(\u0027Nova requires QEMU version %s or greater.\u0027) %"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_23d3b662","line":488,"range":{"start_line":488,"start_character":16,"end_line":488,"end_character":35},"in_reply_to":"7f515b1d_e06d9404","updated":"2017-09-26 15:58:13.000000000","message":"yeh, the alternative was kind of gross because this is called through different static methods and the information isn\u0027t readily available there. The current abstraction of images outside of driver ends up being the wrong abstraction in a world where qemu-img\u0027s public interface changes, but such it is.","commit_id":"700d2447f316f359c93a496e8194ebe2403fe570"}]}
