)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"e05ca21216c1830cd05daa26c17e326484dd6f11","unresolved":false,"context_lines":[{"line_number":14,"context_line":"no-op."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Additionally _create_image will have handled all ephemeral disks"},{"line_number":17,"context_line":"correctly, which the no-op code did not."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: bp/libvirt-imagebackend-refactor"},{"line_number":20,"context_line":"Change-Id: I58a286ebfdbfd22c1360880dda8e7a4ec9df8625"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"9a629dbe_5ac3b138","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"updated":"2016-11-13 08:49:16.000000000","message":"This is not so, as we recently figured out.","commit_id":"2599842b2d922dd254a819e9c6075f3d9394ed0b"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ef36bf2aa5f3696e06ea0b4f631b20f29d1cac8c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"no-op."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Additionally _create_image will have handled all ephemeral disks"},{"line_number":17,"context_line":"correctly, which the no-op code did not."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: bp/libvirt-imagebackend-refactor"},{"line_number":20,"context_line":"Change-Id: I58a286ebfdbfd22c1360880dda8e7a4ec9df8625"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"7a77a97e_c1a98326","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"in_reply_to":"7a77a97e_4d712fe0","updated":"2016-11-21 16:40:26.000000000","message":"\\o/\n\nDone.","commit_id":"2599842b2d922dd254a819e9c6075f3d9394ed0b"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"3703649f8cf65d3935d33d6a1e384f9577e8120a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"no-op."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Additionally _create_image will have handled all ephemeral disks"},{"line_number":17,"context_line":"correctly, which the no-op code did not."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: bp/libvirt-imagebackend-refactor"},{"line_number":20,"context_line":"Change-Id: I58a286ebfdbfd22c1360880dda8e7a4ec9df8625"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"7a77a97e_4d712fe0","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"in_reply_to":"7a77a97e_ca47e549","updated":"2016-11-21 14:17:33.000000000","message":"Since https://review.openstack.org/#/c/346263/ is merged now, you can remove this part completely.","commit_id":"2599842b2d922dd254a819e9c6075f3d9394ed0b"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"0c3deda1d093f1e5f6a83c550c1608ed99efaef4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"no-op."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Additionally _create_image will have handled all ephemeral disks"},{"line_number":17,"context_line":"correctly, which the no-op code did not."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: bp/libvirt-imagebackend-refactor"},{"line_number":20,"context_line":"Change-Id: I58a286ebfdbfd22c1360880dda8e7a4ec9df8625"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"7a77a97e_ca47e549","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"in_reply_to":"9a629dbe_5ac3b138","updated":"2016-11-21 13:41:20.000000000","message":"I\u0027ll update to something like \u0027iterate correctly over all ephemeral disks\u0027. It doesn\u0027t actually do anything useful with them, but it\u0027s a step in the right direction :)","commit_id":"2599842b2d922dd254a819e9c6075f3d9394ed0b"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"258e95546d25ab385b6d699dbc60da46c6bb1048","unresolved":false,"context_lines":[{"line_number":15767,"context_line":""},{"line_number":15768,"context_line":"        with test.nested("},{"line_number":15769,"context_line":"            self._get_guest_xml_mocks(),"},{"line_number":15770,"context_line":"            mock.patch.object(self.drvr, \u0027_disk_resize\u0027)"},{"line_number":15771,"context_line":"        ):"},{"line_number":15772,"context_line":"            self.drvr.finish_migration("},{"line_number":15773,"context_line":"                          context.get_admin_context(), migration, instance,"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_65d79423","side":"PARENT","line":15770,"updated":"2016-09-06 15:37:55.000000000","message":"this replies on my question in another review :)","commit_id":"e241a0b7a11cc9564049c94ec30732cee139d5a2"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"190694d0491d7a145e7c1089d2a9503997331393","unresolved":false,"context_lines":[{"line_number":15712,"context_line":"            libvirt_guest.Guest(\u0027fake_dom\u0027)"},{"line_number":15713,"context_line":""},{"line_number":15714,"context_line":"        self.drvr.finish_migration("},{"line_number":15715,"context_line":"                      context.get_admin_context(), migration, instance,"},{"line_number":15716,"context_line":"                      disk_info, [], image_meta,"},{"line_number":15717,"context_line":"                      resize_instance, bdi, power_on)"},{"line_number":15718,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7a77a97e_751d9465","line":15715,"updated":"2016-11-22 15:47:18.000000000","message":"the indentation might be fixed","commit_id":"6524224cadb1cb07d7304262f8b41f31b1b46b4e"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":12813,"name":"Rong Han","email":"han.rong3@zte.com.cn","username":"hanrong-zte"},"change_message_id":"1fe96ce339c352b778b6ce9f70a6ae72774883fb","unresolved":false,"context_lines":[{"line_number":7129,"context_line":"            path \u003d info[\u0027path\u0027]"},{"line_number":7130,"context_line":"            disk_name \u003d os.path.basename(path)"},{"line_number":7131,"context_line":""},{"line_number":7132,"context_line":"            size \u003d self._disk_size_from_instance(instance, disk_name)"},{"line_number":7133,"context_line":"            if resize_instance:"},{"line_number":7134,"context_line":"                image \u003d imgmodel.LocalFileImage(path, info[\u0027type\u0027])"},{"line_number":7135,"context_line":"                self._disk_resize(image, size)"},{"line_number":7136,"context_line":""},{"line_number":7137,"context_line":"            # NOTE(mdbooth): The code below looks wrong, but is actually"},{"line_number":7138,"context_line":"            # required to prevent a security hole when migrating from a host"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_d48609b8","side":"PARENT","line":7135,"range":{"start_line":7132,"start_character":11,"end_line":7135,"end_character":46},"updated":"2016-06-17 13:25:06.000000000","message":"I think this code cannot be deleted。\nIf you test resize function after the modification on the actual environment?","commit_id":"a4529a2b27403a80b6185e4a442ce5839ab7d106"},{"author":{"_account_id":12813,"name":"Rong Han","email":"han.rong3@zte.com.cn","username":"hanrong-zte"},"change_message_id":"2f28f513863e7a7f9211f794e123eaf5422cc607","unresolved":false,"context_lines":[{"line_number":7129,"context_line":"            path \u003d info[\u0027path\u0027]"},{"line_number":7130,"context_line":"            disk_name \u003d os.path.basename(path)"},{"line_number":7131,"context_line":""},{"line_number":7132,"context_line":"            size \u003d self._disk_size_from_instance(instance, disk_name)"},{"line_number":7133,"context_line":"            if resize_instance:"},{"line_number":7134,"context_line":"                image \u003d imgmodel.LocalFileImage(path, info[\u0027type\u0027])"},{"line_number":7135,"context_line":"                self._disk_resize(image, size)"},{"line_number":7136,"context_line":""},{"line_number":7137,"context_line":"            # NOTE(mdbooth): The code below looks wrong, but is actually"},{"line_number":7138,"context_line":"            # required to prevent a security hole when migrating from a host"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_dbf406f2","side":"PARENT","line":7135,"range":{"start_line":7132,"start_character":11,"end_line":7135,"end_character":46},"in_reply_to":"5a9d85d2_542c464a","updated":"2016-06-27 11:41:48.000000000","message":"I tested it with resize action，disk\u0027s vitualsize had been resized, but I don\u0027t know where is the resize disk code.\n\nresize instance to the same host, disk\u0027s content does still exist.\nBut resize instance to another host, disk\u0027s content does not exist.","commit_id":"a4529a2b27403a80b6185e4a442ce5839ab7d106"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"05d529a6531e4edb04e76e97d412a38913ac1850","unresolved":false,"context_lines":[{"line_number":7129,"context_line":"            path \u003d info[\u0027path\u0027]"},{"line_number":7130,"context_line":"            disk_name \u003d os.path.basename(path)"},{"line_number":7131,"context_line":""},{"line_number":7132,"context_line":"            size \u003d self._disk_size_from_instance(instance, disk_name)"},{"line_number":7133,"context_line":"            if resize_instance:"},{"line_number":7134,"context_line":"                image \u003d imgmodel.LocalFileImage(path, info[\u0027type\u0027])"},{"line_number":7135,"context_line":"                self._disk_resize(image, size)"},{"line_number":7136,"context_line":""},{"line_number":7137,"context_line":"            # NOTE(mdbooth): The code below looks wrong, but is actually"},{"line_number":7138,"context_line":"            # required to prevent a security hole when migrating from a host"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_542c464a","side":"PARENT","line":7135,"range":{"start_line":7132,"start_character":11,"end_line":7135,"end_character":46},"in_reply_to":"7aa08908_d48609b8","updated":"2016-06-20 13:35:58.000000000","message":"I\u0027ve tested and traced this code, and it\u0027s definitely a no-op. Resize is still broken though. I filed bug 1594377, which I will submit patches to fix, including this one.","commit_id":"a4529a2b27403a80b6185e4a442ce5839ab7d106"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"fad11c387666cd96cfa901592f92a7f6e700578d","unresolved":false,"context_lines":[{"line_number":7162,"context_line":"        # backing file."},{"line_number":7163,"context_line":"        self._create_image(context, instance, block_disk_info[\u0027mapping\u0027],"},{"line_number":7164,"context_line":"                           network_info\u003dnetwork_info,"},{"line_number":7165,"context_line":"                           block_device_info\u003dblock_device_info,"},{"line_number":7166,"context_line":"                           inject_files\u003dFalse,"},{"line_number":7167,"context_line":"                           fallback_from_host\u003dmigration.source_compute)"},{"line_number":7168,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_869f6c4f","line":7165,"updated":"2016-09-05 20:30:40.000000000","message":"Just a question: have you investigated how resize works for:\n\n- resize from a flavor w/o ephemeral to a flavor with ephemeral\n\n- resize to a bigger ephemeral flavor when the instance has more than one ephemeral (e.g. specified by bdm)","commit_id":"38d0d5348ee17394e80de0aa6935db205084ca53"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"258e95546d25ab385b6d699dbc60da46c6bb1048","unresolved":false,"context_lines":[{"line_number":7162,"context_line":"        # backing file."},{"line_number":7163,"context_line":"        self._create_image(context, instance, block_disk_info[\u0027mapping\u0027],"},{"line_number":7164,"context_line":"                           network_info\u003dnetwork_info,"},{"line_number":7165,"context_line":"                           block_device_info\u003dblock_device_info,"},{"line_number":7166,"context_line":"                           inject_files\u003dFalse,"},{"line_number":7167,"context_line":"                           fallback_from_host\u003dmigration.source_compute)"},{"line_number":7168,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_10f609d7","line":7165,"in_reply_to":"9a89bdaa_72d76fbf","updated":"2016-09-06 15:37:55.000000000","message":"thx","commit_id":"38d0d5348ee17394e80de0aa6935db205084ca53"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"e3bb1a3f4436cdeb49c6c4a8ab487df37f2b4f2c","unresolved":false,"context_lines":[{"line_number":7162,"context_line":"        # backing file."},{"line_number":7163,"context_line":"        self._create_image(context, instance, block_disk_info[\u0027mapping\u0027],"},{"line_number":7164,"context_line":"                           network_info\u003dnetwork_info,"},{"line_number":7165,"context_line":"                           block_device_info\u003dblock_device_info,"},{"line_number":7166,"context_line":"                           inject_files\u003dFalse,"},{"line_number":7167,"context_line":"                           fallback_from_host\u003dmigration.source_compute)"},{"line_number":7168,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_72d76fbf","line":7165,"in_reply_to":"9a89bdaa_869f6c4f","updated":"2016-09-06 09:55:20.000000000","message":"Yes. Resize of ephemerals was broken in 2 ways:\n\n1. We weren\u0027t previously iterating over ephemerals at all here.\n\n2. The BDMs we were passed haven\u0027t had their sizes updated.\n\nThis fixes (1), but not (2), so with this change resize of ephemerals is still broken. However, it has always been broken, so this is not a regression. It\u0027s now slightly closer to not being broken :)","commit_id":"38d0d5348ee17394e80de0aa6935db205084ca53"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"fad11c387666cd96cfa901592f92a7f6e700578d","unresolved":false,"context_lines":[{"line_number":7173,"context_line":"                                          context, instance,"},{"line_number":7174,"context_line":"                                          network_info\u003dnetwork_info)"},{"line_number":7175,"context_line":""},{"line_number":7176,"context_line":"        # Convert raw disks to qcow2 if migrating to host which uses"},{"line_number":7177,"context_line":"        # qcow2 from host which uses raw."},{"line_number":7178,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7179,"context_line":"        for info in disk_info:"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_a61b901a","line":7176,"updated":"2016-09-05 20:30:40.000000000","message":"Could we move this into qcow backend? The reasons are:\n\n- it is very suspicious that here, when _create_image has already processed incoming files, we concern about file formats. Why do we assume that qcow backend does all work with raw images correctly, except conversion?\n\n- this is related to qcow backend only. It almost explained in the comment below, but probably clear self-explained code is better.","commit_id":"38d0d5348ee17394e80de0aa6935db205084ca53"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"e3bb1a3f4436cdeb49c6c4a8ab487df37f2b4f2c","unresolved":false,"context_lines":[{"line_number":7173,"context_line":"                                          context, instance,"},{"line_number":7174,"context_line":"                                          network_info\u003dnetwork_info)"},{"line_number":7175,"context_line":""},{"line_number":7176,"context_line":"        # Convert raw disks to qcow2 if migrating to host which uses"},{"line_number":7177,"context_line":"        # qcow2 from host which uses raw."},{"line_number":7178,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7179,"context_line":"        for info in disk_info:"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_f21b7f7e","line":7176,"in_reply_to":"9a89bdaa_a61b901a","updated":"2016-09-06 09:55:20.000000000","message":"Yup, that\u0027s also a complete mess. I plan to kill this when I eventually get as far as persistent storage metadata, which is the actual goal of this series.\n\nFor the moment, though, this is incremental. This patch just kills the re-resize. The format change stuff isn\u0027t related to this patch at all.","commit_id":"38d0d5348ee17394e80de0aa6935db205084ca53"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"258e95546d25ab385b6d699dbc60da46c6bb1048","unresolved":false,"context_lines":[{"line_number":7173,"context_line":"                                          context, instance,"},{"line_number":7174,"context_line":"                                          network_info\u003dnetwork_info)"},{"line_number":7175,"context_line":""},{"line_number":7176,"context_line":"        # Convert raw disks to qcow2 if migrating to host which uses"},{"line_number":7177,"context_line":"        # qcow2 from host which uses raw."},{"line_number":7178,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7179,"context_line":"        for info in disk_info:"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_504b31b0","line":7176,"in_reply_to":"9a89bdaa_f21b7f7e","updated":"2016-09-06 15:37:55.000000000","message":"ok","commit_id":"38d0d5348ee17394e80de0aa6935db205084ca53"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67c068abe9186cbfa766466f1128dffc025e02bf","unresolved":false,"context_lines":[{"line_number":7220,"context_line":"                                                  image_meta,"},{"line_number":7221,"context_line":"                                                  block_device_info)"},{"line_number":7222,"context_line":"        # assume _create_image does nothing if a target file exists."},{"line_number":7223,"context_line":"        # NOTE: This has the intended side-effect of fetching a missing"},{"line_number":7224,"context_line":"        # backing file."},{"line_number":7225,"context_line":"        self._create_image(context, instance, block_disk_info[\u0027mapping\u0027],"},{"line_number":7226,"context_line":"                           network_info\u003dnetwork_info,"},{"line_number":7227,"context_line":"                           block_device_info\u003dblock_device_info,"}],"source_content_type":"text/x-python","patch_set":17,"id":"7a77a97e_6f9ce65d","line":7224,"range":{"start_line":7223,"start_character":0,"end_line":7224,"end_character":23},"updated":"2016-11-22 14:44:32.000000000","message":"Assuming I\u0027ve understood you correctly:\n\n    # NOTE: This has the intended side-effect of fetching a missing\n    # backing file and ensuring disks are correctly resized\n\n...or something along those lines?","commit_id":"6524224cadb1cb07d7304262f8b41f31b1b46b4e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"4cf77286dc25f7065a4958c20e52b1272c47e17f","unresolved":false,"context_lines":[{"line_number":7220,"context_line":"                                                  image_meta,"},{"line_number":7221,"context_line":"                                                  block_device_info)"},{"line_number":7222,"context_line":"        # assume _create_image does nothing if a target file exists."},{"line_number":7223,"context_line":"        # NOTE: This has the intended side-effect of fetching a missing"},{"line_number":7224,"context_line":"        # backing file."},{"line_number":7225,"context_line":"        self._create_image(context, instance, block_disk_info[\u0027mapping\u0027],"},{"line_number":7226,"context_line":"                           network_info\u003dnetwork_info,"},{"line_number":7227,"context_line":"                           block_device_info\u003dblock_device_info,"}],"source_content_type":"text/x-python","patch_set":17,"id":"7a77a97e_8ad130fe","line":7224,"range":{"start_line":7223,"start_character":0,"end_line":7224,"end_character":23},"in_reply_to":"7a77a97e_6f9ce65d","updated":"2016-11-22 14:56:25.000000000","message":"Yes, it also does resizing. Intuitive, no?","commit_id":"6524224cadb1cb07d7304262f8b41f31b1b46b4e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9101d429918b2a628e442eaad52760c02b283a7","unresolved":false,"context_lines":[{"line_number":7220,"context_line":"                                                  image_meta,"},{"line_number":7221,"context_line":"                                                  block_device_info)"},{"line_number":7222,"context_line":"        # assume _create_image does nothing if a target file exists."},{"line_number":7223,"context_line":"        # NOTE: This has the intended side-effect of fetching a missing"},{"line_number":7224,"context_line":"        # backing file."},{"line_number":7225,"context_line":"        self._create_image(context, instance, block_disk_info[\u0027mapping\u0027],"},{"line_number":7226,"context_line":"                           network_info\u003dnetwork_info,"},{"line_number":7227,"context_line":"                           block_device_info\u003dblock_device_info,"}],"source_content_type":"text/x-python","patch_set":17,"id":"7a77a97e_0c47fd77","line":7224,"range":{"start_line":7223,"start_character":0,"end_line":7224,"end_character":23},"in_reply_to":"7a77a97e_8ad130fe","updated":"2016-11-22 15:14:44.000000000","message":"Exceptionally :)","commit_id":"6524224cadb1cb07d7304262f8b41f31b1b46b4e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"36f08ffdcfc7056c2c6f7cd8b97faaab0e105d4c","unresolved":false,"context_lines":[{"line_number":7267,"context_line":"            self._disk_raw_to_qcow2(image.path)"},{"line_number":7268,"context_line":""},{"line_number":7269,"context_line":"    def finish_migration(self, context, migration, instance, disk_info,"},{"line_number":7270,"context_line":"                         network_info, image_meta, resize_instance,"},{"line_number":7271,"context_line":"                         block_device_info\u003dNone, power_on\u003dTrue):"},{"line_number":7272,"context_line":"        LOG.debug(\"Starting finish_migration\", instance\u003dinstance)"},{"line_number":7273,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3a71b18c_a7d650c3","side":"PARENT","line":7270,"updated":"2016-12-01 18:38:46.000000000","message":"So resize_instance here becomes irrelevant, but because finish_migration is part of the virt.driver contract, we\u0027re stuck with it, yeah?","commit_id":"842a641819cb0f10146cefca9bd43ee082580db4"}]}
