)]}'
{"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"898690c338e1192142742a6cf7529d791df16abc","unresolved":false,"context_lines":[{"line_number":16847,"context_line":""},{"line_number":16848,"context_line":"        self.assertEqual(2, mock_guest.poweroff.call_count)"},{"line_number":16849,"context_line":""},{"line_number":16850,"context_line":"    @mock.patch.object(libvirt_driver.LOG, \u0027warning\u0027)"},{"line_number":16851,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027,"},{"line_number":16852,"context_line":"                       return_value\u003dversionutils.convert_version_to_int("},{"line_number":16853,"context_line":"                           libvirt_driver.MIN_LIBVIRT_BETTER_SIGKILL_HANDLING))"},{"line_number":16854,"context_line":"    def test_min_libvirt_better_sigkill_handling_warning(self,"},{"line_number":16855,"context_line":"                                                 mock_warning,"},{"line_number":16856,"context_line":"                                                 mock_get_libversion):"},{"line_number":16857,"context_line":"        ex \u003d fakelibvirt.make_libvirtError("},{"line_number":16858,"context_line":"                fakelibvirt.libvirtError,"},{"line_number":16859,"context_line":"                (\"Failed to terminate process 26425 with SIGKILL: \""},{"line_number":16860,"context_line":"                                     \"Device or resource busy\"),"},{"line_number":16861,"context_line":"                error_code\u003dfakelibvirt.VIR_ERR_SYSTEM_ERROR,"},{"line_number":16862,"context_line":"                int1\u003derrno.EBUSY)"},{"line_number":16863,"context_line":""},{"line_number":16864,"context_line":"        mock_guest \u003d mock.Mock(libvirt_guest.Guest, id\u003d1)"},{"line_number":16865,"context_line":"        mock_guest.poweroff \u003d mock.Mock(side_effect\u003dex)"},{"line_number":16866,"context_line":""},{"line_number":16867,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":16868,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":16869,"context_line":""},{"line_number":16870,"context_line":"        with mock.patch.object(drvr._host, \u0027get_guest\u0027,"},{"line_number":16871,"context_line":"                               return_value\u003dmock_guest):"},{"line_number":16872,"context_line":"            raised \u003d self.assertRaises(fakelibvirt.libvirtError,"},{"line_number":16873,"context_line":"                                       drvr._destroy,"},{"line_number":16874,"context_line":"                                       instance)"},{"line_number":16875,"context_line":"            self.assertEqual(fakelibvirt.VIR_ERR_SYSTEM_ERROR,"},{"line_number":16876,"context_line":"                             raised.get_error_code())"},{"line_number":16877,"context_line":""},{"line_number":16878,"context_line":"        mock_warning.assert_called_once()"},{"line_number":16879,"context_line":"        mock_guest.poweroff.assert_called_once()"},{"line_number":16880,"context_line":""},{"line_number":16881,"context_line":"    @mock.patch.object(fakelibvirt.libvirtError, \u0027get_error_code\u0027)"},{"line_number":16882,"context_line":"    @mock.patch.object(host.Host, \u0027_get_domain\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_2abfb4fc","side":"PARENT","line":16879,"range":{"start_line":16850,"start_character":0,"end_line":16879,"end_character":48},"updated":"2020-09-04 15:54:49.000000000","message":"This test probably should have been kept and simply renamed/the version mock dropped","commit_id":"30f307b8eb401f64626d7368c5dee7f093fab66d"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d62b8fd5a86a98e239b3167847979781c3d7a9d6","unresolved":false,"context_lines":[{"line_number":1187,"context_line":"                    raise exception.InstancePowerOffFailure(reason\u003dreason)"},{"line_number":1188,"context_line":"                elif errcode \u003d\u003d libvirt.VIR_ERR_SYSTEM_ERROR:"},{"line_number":1189,"context_line":"                    LOG.warning(\"Cannot destroy instance, general system call \""},{"line_number":1190,"context_line":"                                \"failure\", instance\u003dinstance)"},{"line_number":1191,"context_line":"                    reason \u003d \"VIR_ERR_SYSTEM_ERROR general system call failure\""},{"line_number":1192,"context_line":"                    raise exception.InstancePowerOffFailure(reason\u003dreason)"},{"line_number":1193,"context_line":"                if not is_okay:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_7c9b2d72","line":1190,"updated":"2020-08-20 14:58:04.000000000","message":"can you also do \n e.get_error_message()\nand log that.\nit does not need to be in the exception but it would be nice to have it in the logs","commit_id":"54dd24a668d00ce52c01d204c6353140daf68d10"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"898690c338e1192142742a6cf7529d791df16abc","unresolved":false,"context_lines":[{"line_number":1216,"context_line":"                    LOG.warning(\"Cannot destroy instance, general system call \""},{"line_number":1217,"context_line":"                                \"failure\", instance\u003dinstance)"},{"line_number":1218,"context_line":"                    reason \u003d \"VIR_ERR_SYSTEM_ERROR general system call failure\""},{"line_number":1219,"context_line":"                    raise exception.InstancePowerOffFailure(reason\u003dreason)"},{"line_number":1220,"context_line":"                if not is_okay:"},{"line_number":1221,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":1222,"context_line":"                        LOG.error(\u0027Error from libvirt during destroy. \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_8a908097","line":1219,"updated":"2020-09-04 15:54:49.000000000","message":"This has changed behavior. Assuming I\u0027m reading things correctly, this previously would have resulted in the libvirt error being re-raised. Do we actually want to make this change or should we just drop this entire conditional block?","commit_id":"86e8ae9294627f8ec6eda72d4063912461e9886e"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"318877976a38f1631bef4d554326667dc8579351","unresolved":false,"context_lines":[{"line_number":1216,"context_line":"                    LOG.warning(\"Cannot destroy instance, general system call \""},{"line_number":1217,"context_line":"                                \"failure\", instance\u003dinstance)"},{"line_number":1218,"context_line":"                    reason \u003d \"VIR_ERR_SYSTEM_ERROR general system call failure\""},{"line_number":1219,"context_line":"                    raise exception.InstancePowerOffFailure(reason\u003dreason)"},{"line_number":1220,"context_line":"                if not is_okay:"},{"line_number":1221,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":1222,"context_line":"                        LOG.error(\u0027Error from libvirt during destroy. \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_2d1e975e","line":1219,"in_reply_to":"9f560f44_42b47a82","updated":"2020-09-07 18:30:34.000000000","message":"*later* Actually I\u0027ll do this in a FUP.","commit_id":"86e8ae9294627f8ec6eda72d4063912461e9886e"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"47e305172cc0104039b359a90576b0dd3a88410c","unresolved":false,"context_lines":[{"line_number":1216,"context_line":"                    LOG.warning(\"Cannot destroy instance, general system call \""},{"line_number":1217,"context_line":"                                \"failure\", instance\u003dinstance)"},{"line_number":1218,"context_line":"                    reason \u003d \"VIR_ERR_SYSTEM_ERROR general system call failure\""},{"line_number":1219,"context_line":"                    raise exception.InstancePowerOffFailure(reason\u003dreason)"},{"line_number":1220,"context_line":"                if not is_okay:"},{"line_number":1221,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":1222,"context_line":"                        LOG.error(\u0027Error from libvirt during destroy. \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_42b47a82","line":1219,"in_reply_to":"9f560f44_8a908097","updated":"2020-09-07 18:05:05.000000000","message":"True but it looks like that was a bug and would lead to networks being de-allocated prematurely in the compute manager:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/manager.py#L2856-L2876\n\nI can cover this in a commit message respin.","commit_id":"86e8ae9294627f8ec6eda72d4063912461e9886e"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"47e305172cc0104039b359a90576b0dd3a88410c","unresolved":false,"context_lines":[{"line_number":1217,"context_line":"                                \"failure\", instance\u003dinstance)"},{"line_number":1218,"context_line":"                    reason \u003d \"VIR_ERR_SYSTEM_ERROR general system call failure\""},{"line_number":1219,"context_line":"                    raise exception.InstancePowerOffFailure(reason\u003dreason)"},{"line_number":1220,"context_line":"                if not is_okay:"},{"line_number":1221,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":1222,"context_line":"                        LOG.error(\u0027Error from libvirt during destroy. \u0027"},{"line_number":1223,"context_line":"                                  \u0027Code\u003d%(errcode)s Error\u003d%(e)s\u0027,"},{"line_number":1224,"context_line":"                                  {\u0027errcode\u0027: errcode, \u0027e\u0027: e},"},{"line_number":1225,"context_line":"                                  instance\u003dinstance)"},{"line_number":1226,"context_line":""},{"line_number":1227,"context_line":"        def _wait_for_destroy(expected_domid):"},{"line_number":1228,"context_line":"            \"\"\"Called at an interval until the VM is gone.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_22b98678","line":1225,"range":{"start_line":1220,"start_character":0,"end_line":1225,"end_character":52},"updated":"2020-09-07 18:05:05.000000000","message":"I might follow up here and replace this with InstancePowerOffFailure given the above.","commit_id":"86e8ae9294627f8ec6eda72d4063912461e9886e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"54cd547d4a8b7591a49e14b3a963a6d04a4369d0","unresolved":false,"context_lines":[{"line_number":1159,"context_line":"                  instance\u003dinstance)"},{"line_number":1160,"context_line":"        disk_api.teardown_container(container_dir, rootfs_dev)"},{"line_number":1161,"context_line":""},{"line_number":1162,"context_line":"    def _destroy(self, instance, attempt\u003d1):"},{"line_number":1163,"context_line":"        try:"},{"line_number":1164,"context_line":"            guest \u003d self._host.get_guest(instance)"},{"line_number":1165,"context_line":"            if CONF.serial_console.enabled:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_665c247d","line":1162,"range":{"start_line":1162,"start_character":31,"end_line":1162,"end_character":42},"updated":"2020-09-08 14:56:16.000000000","message":"this parameter is never used now","commit_id":"4946d0e5836d98dfa4b6f152cbb1b24011eeb341"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6f18433d95cd9b19ece5a437127657379e97b9c3","unresolved":false,"context_lines":[{"line_number":1227,"context_line":"                    reason \u003d _(\"operation time out\")"},{"line_number":1228,"context_line":"                    raise exception.InstancePowerOffFailure(reason\u003dreason)"},{"line_number":1229,"context_line":"                elif errcode \u003d\u003d libvirt.VIR_ERR_SYSTEM_ERROR:"},{"line_number":1230,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":1231,"context_line":"                        LOG.warning(\"Cannot destroy instance, general system\""},{"line_number":1232,"context_line":"                                    \"call failure\", instance\u003dinstance)"},{"line_number":1233,"context_line":"                if not is_okay:"},{"line_number":1234,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":1235,"context_line":"                        LOG.error(\u0027Error from libvirt during destroy. \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_5bb497f2","line":1232,"range":{"start_line":1230,"start_character":0,"end_line":1232,"end_character":70},"updated":"2020-09-18 10:01:11.000000000","message":"This could simply be:\n\n  LOG.warning(...)\n  raise\n\nThat context manager is for use where you think the things inside its scope might raise their own exceptions. Fair to say if the logger raises an exception we\u0027re already too far gone","commit_id":"d2c592c1405600aec71e215b2069b6d155b7ddd1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6f18433d95cd9b19ece5a437127657379e97b9c3","unresolved":false,"context_lines":[{"line_number":1231,"context_line":"                        LOG.warning(\"Cannot destroy instance, general system\""},{"line_number":1232,"context_line":"                                    \"call failure\", instance\u003dinstance)"},{"line_number":1233,"context_line":"                if not is_okay:"},{"line_number":1234,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":1235,"context_line":"                        LOG.error(\u0027Error from libvirt during destroy. \u0027"},{"line_number":1236,"context_line":"                                  \u0027Code\u003d%(errcode)s Error\u003d%(e)s\u0027,"},{"line_number":1237,"context_line":"                                  {\u0027errcode\u0027: errcode, \u0027e\u0027: e},"},{"line_number":1238,"context_line":"                                  instance\u003dinstance)"},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":"        def _wait_for_destroy(expected_domid):"},{"line_number":1241,"context_line":"            \"\"\"Called at an interval until the VM is gone.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_db9c276c","line":1238,"range":{"start_line":1234,"start_character":0,"end_line":1238,"end_character":52},"updated":"2020-09-18 10:01:11.000000000","message":"unrelated, but this is as above","commit_id":"d2c592c1405600aec71e215b2069b6d155b7ddd1"}]}
