)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"35e3da834a24a229d33b21d59d23cbb3608dc054","unresolved":false,"context_lines":[{"line_number":11,"context_line":"when expanding the disk size."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"So qemu-img convert should be skipped when migrating and resizing"},{"line_number":14,"context_line":"(when the disk image of new flavor is same the old one)."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic05b48761f09a4711a11bacfc64cbcf39b352e84"},{"line_number":17,"context_line":"Closes-Bug: #1399098"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_db1688a6","line":14,"updated":"2014-12-04 08:42:23.000000000","message":"\"... disk image size ...\" would be clearer.","commit_id":"057c8299a3eda08e92b6c5873ae443479342536f"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"c1b7d8d8ae0394fdc5af83c14c303d8cda914f7f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"qemu-img convert should be skipped when migrating"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Image conversion is done for migrate complete qcow2 image."},{"line_number":10,"context_line":"But, It is unnecessary to merge the backing file."},{"line_number":11,"context_line":"I have modified so that nova-compute just copy"},{"line_number":12,"context_line":"the file instead of conversion."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba7be1f8_00f3e573","line":9,"updated":"2015-02-27 20:00:23.000000000","message":"nit: \"...for migrate complete...\" -\u003e \"...to migrate the complete...\"","commit_id":"a7dc233f005a7d253b8f8cc2936b3092ba81c373"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"c1b7d8d8ae0394fdc5af83c14c303d8cda914f7f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"qemu-img convert should be skipped when migrating"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Image conversion is done for migrate complete qcow2 image."},{"line_number":10,"context_line":"But, It is unnecessary to merge the backing file."},{"line_number":11,"context_line":"I have modified so that nova-compute just copy"},{"line_number":12,"context_line":"the file instead of conversion."},{"line_number":13,"context_line":"It is possible to move the file in case of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba7be1f8_20e8e97b","line":10,"updated":"2015-02-27 20:00:23.000000000","message":"nit: It -\u003e it","commit_id":"a7dc233f005a7d253b8f8cc2936b3092ba81c373"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"c1b7d8d8ae0394fdc5af83c14c303d8cda914f7f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"I have modified so that nova-compute just copy"},{"line_number":12,"context_line":"the file instead of conversion."},{"line_number":13,"context_line":"It is possible to move the file in case of"},{"line_number":14,"context_line":"a shared storage environment,but nova resize-revert"},{"line_number":15,"context_line":"fails in that case."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: #1399098"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba7be1f8_e09411ea","line":14,"updated":"2015-02-27 20:00:23.000000000","message":"nit: \"environment,but\" -\u003e \"environment, but\"","commit_id":"a7dc233f005a7d253b8f8cc2936b3092ba81c373"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0a310fc89547b73bb90baa2ce8c7119bd2acd517","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Hiroyuki Eguchi \u003ch-eguchi@az.jp.nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-03 10:01:24 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"qemu-img convert should be skipped when migrating"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Image conversion is done to migrate the complete qcow2 image."},{"line_number":10,"context_line":"But, it is unnecessary to merge the backing file."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a4dcd0f_9f304eea","line":7,"updated":"2015-08-04 19:09:16.000000000","message":"Please prefix with \"libvirt:\"","commit_id":"1de2ce26ce209e40fb58f831209ad6e992dd3229"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"4a125f8ea2075b445b69b4d77d57512b555eeec2","unresolved":false,"context_lines":[{"line_number":11995,"context_line":"        def fake_is_storage_shared(dest, inst_base):"},{"line_number":11996,"context_line":"            return shared_storage"},{"line_number":11997,"context_line":""},{"line_number":11998,"context_line":"        self.stubs.Set(self.drvr, \u0027get_instance_disk_info\u0027,"},{"line_number":11999,"context_line":"                       fake_get_instance_disk_info)"},{"line_number":12000,"context_line":"        self.stubs.Set(self.drvr, \u0027_destroy\u0027, fake_destroy)"},{"line_number":12001,"context_line":"        self.stubs.Set(self.drvr, \u0027get_host_ip_addr\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_dd556b1f","line":11998,"updated":"2015-02-13 10:33:36.000000000","message":"We shouldn\u0027t use self.stubs.Set in new tests. Please use mock. Like in line #11941","commit_id":"31d95464cc2c6217d5d9c8c41d2b4940bc94fc5f"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"c1b7d8d8ae0394fdc5af83c14c303d8cda914f7f","unresolved":false,"context_lines":[{"line_number":12090,"context_line":""},{"line_number":12091,"context_line":"        def fake_execute(*args, **kwargs):"},{"line_number":12092,"context_line":"            if set([\u0027qemu-img\u0027, \u0027convert\u0027]).issubset(list(args)):"},{"line_number":12093,"context_line":"                self.convert_file_called \u003d True"},{"line_number":12094,"context_line":""},{"line_number":12095,"context_line":"        mock_execute.side_effect \u003d fake_execute"},{"line_number":12096,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_335cc125","line":12093,"updated":"2015-02-27 20:00:23.000000000","message":"I think the test could fail (assert false) at this point rather than storing and checking later.","commit_id":"a7dc233f005a7d253b8f8cc2936b3092ba81c373"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"c1b7d8d8ae0394fdc5af83c14c303d8cda914f7f","unresolved":false,"context_lines":[{"line_number":12112,"context_line":"    def test_migrate_disk_and_power_off_non_shared_storage(self):"},{"line_number":12113,"context_line":"        shared_storage \u003d False"},{"line_number":12114,"context_line":"        self._test_migrate_disk_and_power_off_backing_file(shared_storage)"},{"line_number":12115,"context_line":""},{"line_number":12116,"context_line":"    def test_migrate_disk_and_power_off_lvm(self):"},{"line_number":12117,"context_line":"        \"\"\"Test for nova.virt.libvirt.libvirt_driver.LibvirtConnection"},{"line_number":12118,"context_line":"        .migrate_disk_and_power_off."}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_93bd6d05","line":12115,"updated":"2015-02-27 20:00:23.000000000","message":"Why the two test cases -- one for shared storage and one for non-shared storage?","commit_id":"a7dc233f005a7d253b8f8cc2936b3092ba81c373"},{"author":{"_account_id":7121,"name":"Hiroyuki Eguchi","email":"h-eguchi@az.jp.nec.com","username":"HiroyukiEguchi"},"change_message_id":"38136679d8e7649e52cb9cd217010d4ab80d3a0c","unresolved":false,"context_lines":[{"line_number":12112,"context_line":"    def test_migrate_disk_and_power_off_non_shared_storage(self):"},{"line_number":12113,"context_line":"        shared_storage \u003d False"},{"line_number":12114,"context_line":"        self._test_migrate_disk_and_power_off_backing_file(shared_storage)"},{"line_number":12115,"context_line":""},{"line_number":12116,"context_line":"    def test_migrate_disk_and_power_off_lvm(self):"},{"line_number":12117,"context_line":"        \"\"\"Test for nova.virt.libvirt.libvirt_driver.LibvirtConnection"},{"line_number":12118,"context_line":"        .migrate_disk_and_power_off."}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_a901086c","line":12115,"in_reply_to":"ba7be1f8_93bd6d05","updated":"2015-03-02 01:32:03.000000000","message":"Image conversion is done in both environments (shared and non-shared) in original.\nSo I think we have to confirm that image conversion is not done in both environments.\n\nCould you tell me your opinion?","commit_id":"a7dc233f005a7d253b8f8cc2936b3092ba81c373"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"ba6fe50fad3ca95431bd6c81c36e40524cc162cd","unresolved":false,"context_lines":[{"line_number":12112,"context_line":"    def test_migrate_disk_and_power_off_non_shared_storage(self):"},{"line_number":12113,"context_line":"        shared_storage \u003d False"},{"line_number":12114,"context_line":"        self._test_migrate_disk_and_power_off_backing_file(shared_storage)"},{"line_number":12115,"context_line":""},{"line_number":12116,"context_line":"    def test_migrate_disk_and_power_off_lvm(self):"},{"line_number":12117,"context_line":"        \"\"\"Test for nova.virt.libvirt.libvirt_driver.LibvirtConnection"},{"line_number":12118,"context_line":"        .migrate_disk_and_power_off."}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_61462e23","line":12115,"in_reply_to":"ba7be1f8_a901086c","updated":"2015-03-02 15:04:05.000000000","message":"Okay. No objections, just trying to understand the code better.","commit_id":"a7dc233f005a7d253b8f8cc2936b3092ba81c373"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0a310fc89547b73bb90baa2ce8c7119bd2acd517","unresolved":false,"context_lines":[{"line_number":11708,"context_line":"        def fake_execute(*args, **kwargs):"},{"line_number":11709,"context_line":"            if set([\u0027qemu-img\u0027, \u0027convert\u0027]).issubset(list(args)):"},{"line_number":11710,"context_line":"                self.convert_file_called \u003d True"},{"line_number":11711,"context_line":"            self.assertFalse(self.convert_file_called)"},{"line_number":11712,"context_line":""},{"line_number":11713,"context_line":"        mock_execute.side_effect \u003d fake_execute"},{"line_number":11714,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_39682d87","line":11711,"updated":"2015-08-04 19:09:16.000000000","message":"This seems convoluted. How about the following instead?\n\n  def fake_execute(*args, **kwargs):\n    self.assertNotEqual(args[1:2], [\u0027qemu-img\u0027, \u0027convert\u0027])\n\n  mock_execute.side_effect \u003d fake_execute\n\n(Note: I\u0027m not 100% on the above syntax, but it\u0027s a lot cleaner in my opinion.)","commit_id":"1de2ce26ce209e40fb58f831209ad6e992dd3229"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0a310fc89547b73bb90baa2ce8c7119bd2acd517","unresolved":false,"context_lines":[{"line_number":11723,"context_line":"        self.assertEqual(out, disk_info_text)"},{"line_number":11724,"context_line":""},{"line_number":11725,"context_line":"    def test_migrate_disk_and_power_off_shared_storage(self):"},{"line_number":11726,"context_line":"        shared_storage \u003d True"},{"line_number":11727,"context_line":"        self._test_migrate_disk_and_power_off_backing_file(shared_storage)"},{"line_number":11728,"context_line":""},{"line_number":11729,"context_line":"    def test_migrate_disk_and_power_off_non_shared_storage(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_4e2bf194","line":11726,"updated":"2015-08-04 19:09:16.000000000","message":"I don\u0027t think it\u0027s necessary to define a variable here for one use -- just call\n\n  _test_migrate_disk_and_power_off_backing_file(True)","commit_id":"1de2ce26ce209e40fb58f831209ad6e992dd3229"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0a310fc89547b73bb90baa2ce8c7119bd2acd517","unresolved":false,"context_lines":[{"line_number":11727,"context_line":"        self._test_migrate_disk_and_power_off_backing_file(shared_storage)"},{"line_number":11728,"context_line":""},{"line_number":11729,"context_line":"    def test_migrate_disk_and_power_off_non_shared_storage(self):"},{"line_number":11730,"context_line":"        shared_storage \u003d False"},{"line_number":11731,"context_line":"        self._test_migrate_disk_and_power_off_backing_file(shared_storage)"},{"line_number":11732,"context_line":""},{"line_number":11733,"context_line":"    def test_migrate_disk_and_power_off_lvm(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_ee18bd86","line":11730,"updated":"2015-08-04 19:09:16.000000000","message":"Ditto","commit_id":"1de2ce26ce209e40fb58f831209ad6e992dd3229"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"4077400b6499c0290b51c34c9bfdd2f72bdf5716","unresolved":false,"context_lines":[{"line_number":11692,"context_line":"                                                      mock_execute):"},{"line_number":11693,"context_line":"        \"\"\"Test for nova.virt.libvirt.libvirt_driver.LivirtConnection"},{"line_number":11694,"context_line":"        .migrate_disk_and_power_off."},{"line_number":11695,"context_line":"        \"\"\""},{"line_number":11696,"context_line":""},{"line_number":11697,"context_line":"        self.convert_file_called \u003d False"},{"line_number":11698,"context_line":"        flavor \u003d {\u0027root_gb\u0027: 20, \u0027ephemeral_gb\u0027: 30, \u0027swap\u0027: 0}"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_8f565328","line":11695,"updated":"2015-08-12 23:55:28.000000000","message":"We don\u0027t do doc comments for unit tests, as this makes the test running hide the name of the test when an error occurs.","commit_id":"17748aa4716973021fd877d20cad8183b93fbad3"},{"author":{"_account_id":12827,"name":"Jin Dong","email":"greenmoon55@gmail.com","username":"greenmoon55"},"change_message_id":"53418f4a81529f69e2b4cd48af583af37f411a68","unresolved":false,"context_lines":[{"line_number":11706,"context_line":"        mock_is_shared_storage.return_value \u003d shared_storage"},{"line_number":11707,"context_line":""},{"line_number":11708,"context_line":"        def fake_execute(*args, **kwargs):"},{"line_number":11709,"context_line":"            self.assertNotEqual(args[1:2], [\u0027qemu-img\u0027, \u0027convert\u0027])"},{"line_number":11710,"context_line":""},{"line_number":11711,"context_line":"        mock_execute.side_effect \u003d fake_execute"},{"line_number":11712,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_09d11157","line":11709,"updated":"2015-08-12 05:48:46.000000000","message":"It should be args[0:2]?","commit_id":"17748aa4716973021fd877d20cad8183b93fbad3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"4077400b6499c0290b51c34c9bfdd2f72bdf5716","unresolved":false,"context_lines":[{"line_number":11706,"context_line":"        mock_is_shared_storage.return_value \u003d shared_storage"},{"line_number":11707,"context_line":""},{"line_number":11708,"context_line":"        def fake_execute(*args, **kwargs):"},{"line_number":11709,"context_line":"            self.assertNotEqual(args[1:2], [\u0027qemu-img\u0027, \u0027convert\u0027])"},{"line_number":11710,"context_line":""},{"line_number":11711,"context_line":"        mock_execute.side_effect \u003d fake_execute"},{"line_number":11712,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_aae0dd26","line":11709,"in_reply_to":"1a4dcd0f_09d11157","updated":"2015-08-12 23:55:28.000000000","message":"Agreed. I logged the values for args during a test run and got:\n\n Captured stdout:\n ~~~~~~~~~~~~~~~~\n    (\u0027mv\u0027, \u0027/home/mikal/src/openstack/nova/instances/52d3b512-1152-431f-a8f7-28f0288a622b\u0027, \u0027/home/mikal/src/openstack/nova/instances/52d3b512-1152-431f-a8f7-28f0288a622b_resize\u0027)\n    (\u0027mkdir\u0027, \u0027-p\u0027, \u0027/home/mikal/src/openstack/nova/instances/52d3b512-1152-431f-a8f7-28f0288a622b\u0027)\n    (\u0027cp\u0027, u\u0027/home/mikal/src/openstack/nova/instances/52d3b512-1152-431f-a8f7-28f0288a622b_resize/disk\u0027, u\u0027/test/disk\u0027)\n\nSo its still correct for the test to be passing, but this logic is wrong.","commit_id":"17748aa4716973021fd877d20cad8183b93fbad3"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"35e3da834a24a229d33b21d59d23cbb3608dc054","unresolved":false,"context_lines":[{"line_number":5711,"context_line":"                if (info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 and info[\u0027backing_file\u0027] and"},{"line_number":5712,"context_line":"                       shared_storage and not need_convert_disk):"},{"line_number":5713,"context_line":"                    # skip convirt image. just copy."},{"line_number":5714,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest)"},{"line_number":5715,"context_line":"                elif info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 and info[\u0027backing_file\u0027]:"},{"line_number":5716,"context_line":"                    tmp_path \u003d from_path + \"_rbase\""},{"line_number":5717,"context_line":"                    # merge backing file"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_db2f68f4","line":5714,"updated":"2014-12-04 08:42:23.000000000","message":"Why do you want to skip the conversion only for the shared_storage case?\n\nAlso the current action would be just to move the converted file to the destination path locally, why would you want to copy the image to the destination host over the network when you have shared storage?","commit_id":"057c8299a3eda08e92b6c5873ae443479342536f"},{"author":{"_account_id":11531,"name":"warewang","email":"libra1588@126.com","username":"warewang"},"change_message_id":"27e73c8e334fb950cd3f2991f384ffc67ce4ca91","unresolved":false,"context_lines":[{"line_number":5711,"context_line":"                if (info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 and info[\u0027backing_file\u0027] and"},{"line_number":5712,"context_line":"                       shared_storage and not need_convert_disk):"},{"line_number":5713,"context_line":"                    # skip convirt image. just copy."},{"line_number":5714,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest)"},{"line_number":5715,"context_line":"                elif info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 and info[\u0027backing_file\u0027]:"},{"line_number":5716,"context_line":"                    tmp_path \u003d from_path + \"_rbase\""},{"line_number":5717,"context_line":"                    # merge backing file"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_96d3f7ff","line":5714,"updated":"2014-12-04 09:08:59.000000000","message":"agreed to Jens.","commit_id":"057c8299a3eda08e92b6c5873ae443479342536f"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"4a125f8ea2075b445b69b4d77d57512b555eeec2","unresolved":false,"context_lines":[{"line_number":5884,"context_line":""},{"line_number":5885,"context_line":"                    # We will not copy over the swap disk here, and rely on"},{"line_number":5886,"context_line":"                    # finish_migration/_create_image to re-create it for us."},{"line_number":5887,"context_line":"                    continue"},{"line_number":5888,"context_line":""},{"line_number":5889,"context_line":"                else:  # raw or qcow2"},{"line_number":5890,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_1d938301","line":5887,"updated":"2015-02-13 10:33:36.000000000","message":"nit: I think now we can remove this \u0027continue\u0027","commit_id":"31d95464cc2c6217d5d9c8c41d2b4940bc94fc5f"}]}
