)]}'
{"nova/tests/unit/virt/libvirt/storage/test_rbd.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d40fc9484be629ae42a0abb0cf6be8e00ea5263b","unresolved":false,"context_lines":[{"line_number":327,"context_line":"    @mock.patch.object(rbd_utils, \u0027RADOSClient\u0027)"},{"line_number":328,"context_line":"    def test_cleanup_volumes(self, mock_client, mock_rados, mock_rbd):"},{"line_number":329,"context_line":"        instance \u003d objects.Instance(id\u003d1, uuid\u003d\u002712345\u0027,"},{"line_number":330,"context_line":"                                    task_state\u003dtask_states.DELETING)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        rbd \u003d mock_rbd.RBD.return_value"},{"line_number":333,"context_line":"        rbd.list.return_value \u003d [\u002712345_test\u0027, \u0027111_test\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_e9f4f35b","line":330,"updated":"2016-04-07 04:05:33.000000000","message":"This change looks unrelated?","commit_id":"cf0212199cb6cd25fb4813c5a35901d39800903b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d40fc9484be629ae42a0abb0cf6be8e00ea5263b","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                                    task_state\u003dtask_states.UNRESCUING)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"        rbd \u003d mock_rbd.RBD.return_value"},{"line_number":349,"context_line":"        rbd.list.return_value \u003d [\u00271234_test\u0027, \u00271234_test.rescue\u0027, \u0027111_test\u0027]"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        client \u003d mock_client.return_value"},{"line_number":352,"context_line":"        self.driver.cleanup_volumes(instance, suffix\u003d\u0027.rescue\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_a92afb8d","line":349,"updated":"2016-04-07 04:05:33.000000000","message":"I think this should also have a case where the suffix matches but the prefix doesn\u0027t, to verify something like 111_test.rescue wouldn\u0027t be removed.","commit_id":"cf0212199cb6cd25fb4813c5a35901d39800903b"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d40fc9484be629ae42a0abb0cf6be8e00ea5263b","unresolved":false,"context_lines":[{"line_number":15173,"context_line":"            self.assertEqual(unrescue_xml_path,"},{"line_number":15174,"context_line":"                             mock_del.call_args_list[0][0][0])"},{"line_number":15175,"context_line":"            self.assertEqual(rescue_file, mock_del.call_args_list[1][0][0])"},{"line_number":15176,"context_line":"            mock_remove_volumes.assert_called_once_with([\u0027lvm.rescue\u0027])"},{"line_number":15177,"context_line":""},{"line_number":15178,"context_line":"    @mock.patch.object(libvirt_utils, \u0027get_instance_path\u0027)"},{"line_number":15179,"context_line":"    @mock.patch.object(libvirt_utils, \u0027load_file\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_64400a35","line":15176,"updated":"2016-04-07 04:05:33.000000000","message":"I was thinking maybe we should mock _cleanup_rbd in this test and assert it\u0027s not called in the non-rbd case. It\u0027s guarded by the images_type\u003d\u0027rbd\u0027 and we test that it\u0027s called when configured that way, but don\u0027t test that it\u0027s not called when not configured that way.","commit_id":"cf0212199cb6cd25fb4813c5a35901d39800903b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9e91d5062d750d60a84f3108bb8de46024ac4526","unresolved":false,"context_lines":[{"line_number":15295,"context_line":"            mock_destroy.assert_called_once_with(instance)"},{"line_number":15296,"context_line":"            mock_create.assert_called_once_with(\"fake_unrescue_xml\","},{"line_number":15297,"context_line":"                                                 fake_dom)"},{"line_number":15298,"context_line":"            mock_cleanup_rbd.assert_not_called()"},{"line_number":15299,"context_line":"            self.assertEqual(2, mock_del.call_count)"},{"line_number":15300,"context_line":"            self.assertEqual(unrescue_xml_path,"},{"line_number":15301,"context_line":"                             mock_del.call_args_list[0][0][0])"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_5a008501","line":15298,"updated":"2016-05-25 22:09:36.000000000","message":"Cool, didn\u0027t know about assert_not_called() until now","commit_id":"cafb2c0d1cc07db032e1831bfd6bcaa74afd2699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9e91d5062d750d60a84f3108bb8de46024ac4526","unresolved":false,"context_lines":[{"line_number":15322,"context_line":"        mock_load_file.return_value \u003d \"fake_unrescue_xml\""},{"line_number":15323,"context_line":""},{"line_number":15324,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":15325,"context_line":"        with test.nested("},{"line_number":15326,"context_line":"                mock.patch.object(drvr, \u0027_destroy\u0027),"},{"line_number":15327,"context_line":"                mock.patch.object(drvr, \u0027_create_domain\u0027),"},{"line_number":15328,"context_line":"                mock.patch.object(libvirt_utils, \u0027file_delete\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_0f040116","line":15325,"updated":"2016-05-25 22:09:36.000000000","message":"Here we need like on L15281:\n\n mock.patch.object(libvirt_utils, \u0027write_to_file\u0027),","commit_id":"cafb2c0d1cc07db032e1831bfd6bcaa74afd2699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9e91d5062d750d60a84f3108bb8de46024ac4526","unresolved":false,"context_lines":[{"line_number":15327,"context_line":"                mock.patch.object(drvr, \u0027_create_domain\u0027),"},{"line_number":15328,"context_line":"                mock.patch.object(libvirt_utils, \u0027file_delete\u0027),"},{"line_number":15329,"context_line":"                mock.patch.object(drvr, \u0027_lvm_disks\u0027,"},{"line_number":15330,"context_line":"                                  return_value\u003d[]),"},{"line_number":15331,"context_line":"                mock.patch.object(glob, \u0027iglob\u0027, return_value\u003d[]),"},{"line_number":15332,"context_line":"                mock.patch.object(drvr, \u0027_cleanup_rbd\u0027)"},{"line_number":15333,"context_line":"                ) as (mock_destroy, mock_create, mock_delete, mock_lvm_disks,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_1a1b9d74","line":15330,"updated":"2016-05-25 22:09:36.000000000","message":"Here we need like on L15287:\n\n mock.patch.object(lvm, \u0027remove_volumes\u0027),","commit_id":"cafb2c0d1cc07db032e1831bfd6bcaa74afd2699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9e91d5062d750d60a84f3108bb8de46024ac4526","unresolved":false,"context_lines":[{"line_number":15331,"context_line":"                mock.patch.object(glob, \u0027iglob\u0027, return_value\u003d[]),"},{"line_number":15332,"context_line":"                mock.patch.object(drvr, \u0027_cleanup_rbd\u0027)"},{"line_number":15333,"context_line":"                ) as (mock_destroy, mock_create, mock_delete, mock_lvm_disks,"},{"line_number":15334,"context_line":"                      mock_glob, mock_cleanup_rbd):"},{"line_number":15335,"context_line":"            drvr.unrescue(instance, None)"},{"line_number":15336,"context_line":"            mock_cleanup_rbd.assert_called_once_with(instance,"},{"line_number":15337,"context_line":"                                                     suffix\u003d\u0027.rescue\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_1a327df2","line":15334,"updated":"2016-05-25 22:09:36.000000000","message":"and add them to the args","commit_id":"cafb2c0d1cc07db032e1831bfd6bcaa74afd2699"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d1b5464a3de34b14e6a9636e1189ed3ed280feec","unresolved":false,"context_lines":[{"line_number":2476,"context_line":"        lvm.remove_volumes([lvmdisk for lvmdisk in self._lvm_disks(instance)"},{"line_number":2477,"context_line":"                                if lvmdisk.endswith(\u0027.rescue\u0027)])"},{"line_number":2478,"context_line":"        if CONF.libvirt.images_type \u003d\u003d \u0027rbd\u0027:"},{"line_number":2479,"context_line":"            self._cleanup_rbd(instance, suffix\u003d\u0027.rescue\u0027)"},{"line_number":2480,"context_line":""},{"line_number":2481,"context_line":"    def poll_rebooting_instances(self, timeout, instances):"},{"line_number":2482,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_f6f94ac9","line":2479,"updated":"2015-11-23 21:59:56.000000000","message":"I think this bit is untested.","commit_id":"652143f88b5518996f9d6752b4eb90c9a764594c"}]}
