)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt - Unrescue will not remove rescue disk when image_type\u003drbd"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This bug will happen when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance will produce rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also product rescue disk which will saved in ceph by rbd."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_be1e36b9","line":9,"updated":"2015-09-16 15:06:58.000000000","message":"happens instead of will happen.","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt - Unrescue will not remove rescue disk when image_type\u003drbd"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This bug will happen when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance will produce rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also product rescue disk which will saved in ceph by rbd."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_86564b04","line":9,"in_reply_to":"ba15a1d1_be1e36b9","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This bug will happen when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance will produce rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also product rescue disk which will saved in ceph by rbd."},{"line_number":13,"context_line":"When users want to unrescue instance, nova will remove all rescue kernel"},{"line_number":14,"context_line":"and ramdisk disk in local."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_9e67b24c","line":11,"updated":"2015-09-16 15:06:58.000000000","message":"creates a rescue kernel instead of will produce rescue kernel","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This bug will happen when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance will produce rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also product rescue disk which will saved in ceph by rbd."},{"line_number":13,"context_line":"When users want to unrescue instance, nova will remove all rescue kernel"},{"line_number":14,"context_line":"and ramdisk disk in local."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_463ef3c1","line":11,"in_reply_to":"ba15a1d1_9e67b24c","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This bug will happen when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance will produce rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also product rescue disk which will saved in ceph by rbd."},{"line_number":13,"context_line":"When users want to unrescue instance, nova will remove all rescue kernel"},{"line_number":14,"context_line":"and ramdisk disk in local."},{"line_number":15,"context_line":"But rescue disk which was created in rescue step will still exist."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_be4cf6c8","line":12,"updated":"2015-09-16 15:06:58.000000000","message":"it also creates a rescue disk","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This bug will happen when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance will produce rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also product rescue disk which will saved in ceph by rbd."},{"line_number":13,"context_line":"When users want to unrescue instance, nova will remove all rescue kernel"},{"line_number":14,"context_line":"and ramdisk disk in local."},{"line_number":15,"context_line":"But rescue disk which was created in rescue step will still exist."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_e62ce79a","line":12,"in_reply_to":"ba15a1d1_be4cf6c8","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":15,"context_line":"But rescue disk which was created in rescue step will still exist."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Because of unrescue action will remove local rescue file and lvm disk"},{"line_number":18,"context_line":"but it didn\u0027t remove rdb disk. Therefore we need to add libvirt"},{"line_number":19,"context_line":"images_type condition statement which will remove correct type of disk."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Id8693e5f1a63c400d0e90b2e4cd1251e64984ce8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_5eeb5a78","line":18,"updated":"2015-09-16 15:06:58.000000000","message":"rbd disk instead of rdb disk?","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"But rescue disk which was created in rescue step will still exist."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Because of unrescue action will remove local rescue file and lvm disk"},{"line_number":18,"context_line":"but it didn\u0027t remove rdb disk. Therefore we need to add libvirt"},{"line_number":19,"context_line":"images_type condition statement which will remove correct type of disk."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Id8693e5f1a63c400d0e90b2e4cd1251e64984ce8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_26189f74","line":18,"in_reply_to":"ba15a1d1_5eeb5a78","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"b4dfee66324c12c9a2ee66c681f7ba0f2c4fd7e6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This bug happens when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance create a rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also create a rescue disk which will saved in ceph by rbd."},{"line_number":13,"context_line":"When users want to unrescue instance, nova will remove all rescue kernel"},{"line_number":14,"context_line":"and ramdisk disk in local."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba15a1d1_82539416","line":11,"updated":"2015-09-17 17:43:27.000000000","message":"creates","commit_id":"20b46aff6ad0809b128144ff7bbbbb28c2b3aa28"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"bd211874b6314c7135e5e17c03e16fd85610a8ff","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This bug happens when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance create a rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also create a rescue disk which will saved in ceph by rbd."},{"line_number":13,"context_line":"When users want to unrescue instance, nova will remove all rescue kernel"},{"line_number":14,"context_line":"and ramdisk disk in local."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a1a9d01_753b3f9d","line":11,"in_reply_to":"ba15a1d1_82539416","updated":"2015-10-02 08:45:47.000000000","message":"done","commit_id":"20b46aff6ad0809b128144ff7bbbbb28c2b3aa28"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"b4dfee66324c12c9a2ee66c681f7ba0f2c4fd7e6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This bug happens when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance create a rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also create a rescue disk which will saved in ceph by rbd."},{"line_number":13,"context_line":"When users want to unrescue instance, nova will remove all rescue kernel"},{"line_number":14,"context_line":"and ramdisk disk in local."},{"line_number":15,"context_line":"But rescue disk which was created in rescue step will still exist."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba15a1d1_22564806","line":12,"updated":"2015-09-17 17:43:27.000000000","message":"creates","commit_id":"20b46aff6ad0809b128144ff7bbbbb28c2b3aa28"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"bd211874b6314c7135e5e17c03e16fd85610a8ff","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This bug happens when using libvirt/QEMU and image_type\u003drbd."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Rescue instance create a rescue kernel and ramdisk disk in local."},{"line_number":12,"context_line":"It will also create a rescue disk which will saved in ceph by rbd."},{"line_number":13,"context_line":"When users want to unrescue instance, nova will remove all rescue kernel"},{"line_number":14,"context_line":"and ramdisk disk in local."},{"line_number":15,"context_line":"But rescue disk which was created in rescue step will still exist."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a1a9d01_3545c716","line":12,"in_reply_to":"ba15a1d1_22564806","updated":"2015-10-02 08:45:47.000000000","message":"done","commit_id":"20b46aff6ad0809b128144ff7bbbbb28c2b3aa28"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":9062,"context_line":"        drvr._cleanup_rbd(fake_instance)"},{"line_number":9063,"context_line":""},{"line_number":9064,"context_line":"        driver.cleanup_volumes.assert_called_once_with(fake_instance,"},{"line_number":9065,"context_line":"                                                       suffix\u003dmock.ANY)"},{"line_number":9066,"context_line":""},{"line_number":9067,"context_line":"    @mock.patch.object(objects.Instance, \u0027save\u0027)"},{"line_number":9068,"context_line":"    def test_destroy_undefines_no_undefine_flags(self, mock_save):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_59293436","line":9065,"updated":"2015-09-16 15:06:58.000000000","message":"why not assert a clear suffix, rather than mock.ANY? It\u0027s a safer test that way.","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":9062,"context_line":"        drvr._cleanup_rbd(fake_instance)"},{"line_number":9063,"context_line":""},{"line_number":9064,"context_line":"        driver.cleanup_volumes.assert_called_once_with(fake_instance,"},{"line_number":9065,"context_line":"                                                       suffix\u003dmock.ANY)"},{"line_number":9066,"context_line":""},{"line_number":9067,"context_line":"    @mock.patch.object(objects.Instance, \u0027save\u0027)"},{"line_number":9068,"context_line":"    def test_destroy_undefines_no_undefine_flags(self, mock_save):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_4bd27e29","line":9065,"in_reply_to":"ba15a1d1_59293436","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":13290,"context_line":"    @mock.patch.object(host.Host, \"get_domain\")"},{"line_number":13291,"context_line":"    def test_unrescue_with_lvm(self, mock_get_domain, mock_load_file,"},{"line_number":13292,"context_line":"                                           mock_get_instance_path):"},{"line_number":13293,"context_line":"        CONF.set_override(\u0027images_type\u0027, \u0027lvm\u0027, \u0027libvirt\u0027)"},{"line_number":13294,"context_line":"        dummyxml \u003d (\"\u003cdomain type\u003d\u0027kvm\u0027\u003e\u003cname\u003einstance-0000000a\u003c/name\u003e\""},{"line_number":13295,"context_line":"                    \"\u003cdevices\u003e\""},{"line_number":13296,"context_line":"                    \"\u003cdisk type\u003d\u0027block\u0027 device\u003d\u0027disk\u0027\u003e\""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_f974c868","line":13293,"updated":"2015-09-16 15:06:58.000000000","message":"try:\n\n    self.flags(image_type\u003d\u0027lvm\u0027, group\u003d\u0027libvirt\u0027)","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":13290,"context_line":"    @mock.patch.object(host.Host, \"get_domain\")"},{"line_number":13291,"context_line":"    def test_unrescue_with_lvm(self, mock_get_domain, mock_load_file,"},{"line_number":13292,"context_line":"                                           mock_get_instance_path):"},{"line_number":13293,"context_line":"        CONF.set_override(\u0027images_type\u0027, \u0027lvm\u0027, \u0027libvirt\u0027)"},{"line_number":13294,"context_line":"        dummyxml \u003d (\"\u003cdomain type\u003d\u0027kvm\u0027\u003e\u003cname\u003einstance-0000000a\u003c/name\u003e\""},{"line_number":13295,"context_line":"                    \"\u003cdevices\u003e\""},{"line_number":13296,"context_line":"                    \"\u003cdisk type\u003d\u0027block\u0027 device\u003d\u0027disk\u0027\u003e\""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_502469c3","line":13293,"in_reply_to":"ba15a1d1_f974c868","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":13332,"context_line":"    @mock.patch.object(host.Host, \"get_domain\")"},{"line_number":13333,"context_line":"    def test_unrescue_with_rbd(self, mock_get_domain, mock_load_file,"},{"line_number":13334,"context_line":"                               mock_get_instance_path):"},{"line_number":13335,"context_line":"        CONF.set_override(\u0027images_type\u0027, \u0027rbd\u0027, \u0027libvirt\u0027)"},{"line_number":13336,"context_line":"        dummyxml \u003d (\"\u003cdomain type\u003d\u0027kvm\u0027\u003e\u003cname\u003einstance-0000000a\u003c/name\u003e\""},{"line_number":13337,"context_line":"                    \"\u003cdevices\u003e\""},{"line_number":13338,"context_line":"                    \"\u003cdisk type\u003d\u0027block\u0027 device\u003d\u0027disk\u0027\u003e\""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_59e054fa","line":13335,"updated":"2015-09-16 15:06:58.000000000","message":"try:\n\n    self.flags(image_type\u003d\u0027rbd\u0027, group\u003d\u0027libvirt\u0027)","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":13332,"context_line":"    @mock.patch.object(host.Host, \"get_domain\")"},{"line_number":13333,"context_line":"    def test_unrescue_with_rbd(self, mock_get_domain, mock_load_file,"},{"line_number":13334,"context_line":"                               mock_get_instance_path):"},{"line_number":13335,"context_line":"        CONF.set_override(\u0027images_type\u0027, \u0027rbd\u0027, \u0027libvirt\u0027)"},{"line_number":13336,"context_line":"        dummyxml \u003d (\"\u003cdomain type\u003d\u0027kvm\u0027\u003e\u003cname\u003einstance-0000000a\u003c/name\u003e\""},{"line_number":13337,"context_line":"                    \"\u003cdevices\u003e\""},{"line_number":13338,"context_line":"                    \"\u003cdisk type\u003d\u0027block\u0027 device\u003d\u0027disk\u0027\u003e\""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_b01b8580","line":13335,"in_reply_to":"ba15a1d1_59e054fa","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":13363,"context_line":"                                                fake_dom)"},{"line_number":13364,"context_line":"            self.assertEqual(2, mock_del.call_count)"},{"line_number":13365,"context_line":"            self.assertEqual(unrescue_xml_path,"},{"line_number":13366,"context_line":"                             mock_del.call_args_list[0][0][0])"},{"line_number":13367,"context_line":"            self.assertEqual(rescue_file, mock_del.call_args_list[1][0][0])"},{"line_number":13368,"context_line":"            mock_rbd.return_value.cleanup_volumes.assert_called_once_with("},{"line_number":13369,"context_line":"                instance, suffix\u003d\u0027.rescue\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_993eec8a","line":13366,"updated":"2015-09-16 15:06:58.000000000","message":"i\u0027d preffer having mock_del.assert_called_once_with(...) or mock_del.assert_has_calls instead of matching a single exact argument.","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":13363,"context_line":"                                                fake_dom)"},{"line_number":13364,"context_line":"            self.assertEqual(2, mock_del.call_count)"},{"line_number":13365,"context_line":"            self.assertEqual(unrescue_xml_path,"},{"line_number":13366,"context_line":"                             mock_del.call_args_list[0][0][0])"},{"line_number":13367,"context_line":"            self.assertEqual(rescue_file, mock_del.call_args_list[1][0][0])"},{"line_number":13368,"context_line":"            mock_rbd.return_value.cleanup_volumes.assert_called_once_with("},{"line_number":13369,"context_line":"                instance, suffix\u003d\u0027.rescue\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_eb64b2b9","line":13366,"in_reply_to":"ba15a1d1_993eec8a","updated":"2015-09-17 16:38:56.000000000","message":"done. I had combine this and next assertion.","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":13364,"context_line":"            self.assertEqual(2, mock_del.call_count)"},{"line_number":13365,"context_line":"            self.assertEqual(unrescue_xml_path,"},{"line_number":13366,"context_line":"                             mock_del.call_args_list[0][0][0])"},{"line_number":13367,"context_line":"            self.assertEqual(rescue_file, mock_del.call_args_list[1][0][0])"},{"line_number":13368,"context_line":"            mock_rbd.return_value.cleanup_volumes.assert_called_once_with("},{"line_number":13369,"context_line":"                instance, suffix\u003d\u0027.rescue\u0027)"},{"line_number":13370,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_d9b9c416","line":13367,"updated":"2015-09-16 15:06:58.000000000","message":"i\u0027d preffer having mock_del.assert_called_once_with(...) or mock_del.assert_has_calls instead of matching a single exact argument.","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":13364,"context_line":"            self.assertEqual(2, mock_del.call_count)"},{"line_number":13365,"context_line":"            self.assertEqual(unrescue_xml_path,"},{"line_number":13366,"context_line":"                             mock_del.call_args_list[0][0][0])"},{"line_number":13367,"context_line":"            self.assertEqual(rescue_file, mock_del.call_args_list[1][0][0])"},{"line_number":13368,"context_line":"            mock_rbd.return_value.cleanup_volumes.assert_called_once_with("},{"line_number":13369,"context_line":"                instance, suffix\u003d\u0027.rescue\u0027)"},{"line_number":13370,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_ab11da05","line":13367,"in_reply_to":"ba15a1d1_d9b9c416","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"90b34baacfe019ef9294315977000e121e65df83","unresolved":false,"context_lines":[{"line_number":2455,"context_line":"        # cleanup rescue volume"},{"line_number":2456,"context_line":"        if CONF.libvirt.images_type \u003d\u003d \u0027rbd\u0027:"},{"line_number":2457,"context_line":"            self._cleanup_rbd(instance, suffix\u003d\u0027.rescue\u0027)"},{"line_number":2458,"context_line":"        if CONF.libvirt.images_type \u003d\u003d \u0027lvm\u0027:"},{"line_number":2459,"context_line":"            lvm.remove_volumes(["},{"line_number":2460,"context_line":"                lvmdisk for lvmdisk in self._lvm_disks(instance)"},{"line_number":2461,"context_line":"                if lvmdisk.endswith(\u0027.rescue\u0027)])"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_799d18bb","line":2458,"updated":"2015-09-16 15:06:58.000000000","message":"elif instead of if. the conf option cannot be 2 values at once anyways.","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"644b3c1b47cc46827611457c35697f1a90e3647b","unresolved":false,"context_lines":[{"line_number":2455,"context_line":"        # cleanup rescue volume"},{"line_number":2456,"context_line":"        if CONF.libvirt.images_type \u003d\u003d \u0027rbd\u0027:"},{"line_number":2457,"context_line":"            self._cleanup_rbd(instance, suffix\u003d\u0027.rescue\u0027)"},{"line_number":2458,"context_line":"        if CONF.libvirt.images_type \u003d\u003d \u0027lvm\u0027:"},{"line_number":2459,"context_line":"            lvm.remove_volumes(["},{"line_number":2460,"context_line":"                lvmdisk for lvmdisk in self._lvm_disks(instance)"},{"line_number":2461,"context_line":"                if lvmdisk.endswith(\u0027.rescue\u0027)])"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_0b76c63d","line":2458,"in_reply_to":"ba15a1d1_799d18bb","updated":"2015-09-17 16:38:56.000000000","message":"done","commit_id":"77e55d25da9d2d55b8672c37ee45ac309918716a"}],"nova/virt/libvirt/storage/rbd_utils.py":[{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"1fe22d18cb32f6b4137d0a1777ef327577964822","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            def belongs_to_instance(disk):"},{"line_number":273,"context_line":"                return (disk.startswith(instance.uuid) and"},{"line_number":274,"context_line":"                        (suffix is None and True or disk.endswith(suffix)))"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"            volumes \u003d rbd.RBD().list(client.ioctx)"},{"line_number":277,"context_line":"            for volume in filter(belongs_to_instance, volumes):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_2a7e6f6a","line":274,"updated":"2015-08-25 13:45:41.000000000","message":"Why you use here \u0027and True\u0027?\n\naccording rule \u0027A and True \u003d A\u0027 you can use just\n\n (suffix is None or disk.endswith(suffix))","commit_id":"0d6237f47de1314dddfa5cb4c7240661502d3515"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"e27dbe794f4820043acd96ef9b1810d3a6e4cab1","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            def belongs_to_instance(disk):"},{"line_number":273,"context_line":"                return (disk.startswith(instance.uuid) and"},{"line_number":274,"context_line":"                        (suffix is None and True or disk.endswith(suffix)))"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"            volumes \u003d rbd.RBD().list(client.ioctx)"},{"line_number":277,"context_line":"            for volume in filter(belongs_to_instance, volumes):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_8d00f5ac","line":274,"in_reply_to":"fa1b9901_2a7e6f6a","updated":"2015-08-25 14:01:33.000000000","message":"Hmmm....You are right.....I don\u0027t know why I will add the rule. I will modify it, thx.","commit_id":"0d6237f47de1314dddfa5cb4c7240661502d3515"}]}
