)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a832329082e644f04a08f78ae7e1c5a85cfa9d0e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"BDM with the new volume\u0027s connection_info after it had been used by a"},{"line_number":15,"context_line":"call to connect_volume (I19d5182d11). This is no longer required as the"},{"line_number":16,"context_line":"updated connection_info is returned to the compute layer and updated in"},{"line_number":17,"context_line":"the BDM later in the swap_volume flow."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Fture calls to swap_volume in the compute layer would not"},{"line_number":20,"context_line":"update the serial found in the old volume connection_info. This would"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a461143_25add631","line":17,"updated":"2017-02-02 14:53:21.000000000","message":"As discussed, this is a great catch but it\u0027s such a long dependency chain it needs a code comment. The mutation of connection_info is something like 4 function calls deep? No future maintainer of this code should reasonably expect it to do that, so lets not lose this hard-won context.\n\nIdeally it wouldn\u0027t do this at all, but removing the mutation of connection_info by Nova isn\u0027t in the scope of this fix.","commit_id":"b0c1e0a3384f1606d4ff60c1e5f2bf9c9f912a8f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a832329082e644f04a08f78ae7e1c5a85cfa9d0e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"that of the new volume id and remove the BDM lookup and connection_info"},{"line_number":26,"context_line":"modification from the virt layer. The serial is then updated to match"},{"line_number":27,"context_line":"the volume id returned by os-migrate-volume-completion prior to the BDM"},{"line_number":28,"context_line":"being updated in the compute layer."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"NOTE(lyarwood): While the correct serial id should already be present in"},{"line_number":31,"context_line":"the connection_info provided by Cinder the act of updating this value is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a461143_681a5570","line":28,"updated":"2017-02-02 14:53:21.000000000","message":"This is slightly more marginal imho, but also as discussed I think it\u0027s worth documenting what the return value from os-migrate-volume-completion means to us. This API has 2 modes, and is surprising to the casual observer to say the least.\n\nNot strictly our problem, but definitely nice to comment this for future maintainer. If it was me, I\u0027d want to buy you a beer for this.","commit_id":"b0c1e0a3384f1606d4ff60c1e5f2bf9c9f912a8f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a832329082e644f04a08f78ae7e1c5a85cfa9d0e","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"NOTE(lyarwood): While the correct serial id should already be present in"},{"line_number":31,"context_line":"the connection_info provided by Cinder the act of updating this value is"},{"line_number":32,"context_line":"required by our own functional tests to invoke a failure case."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"https://git.io/vDmRE"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a461143_48e75940","line":32,"updated":"2017-02-02 14:53:21.000000000","message":"Aside: connection_info is entirely generated by individual cinder backend drivers(!). During an audit for an unrelated issue recently I can across a couple of odd drivers which didn\u0027t set serial.","commit_id":"b0c1e0a3384f1606d4ff60c1e5f2bf9c9f912a8f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6582b9bedb8ca88e7bb924fe621b72f403fd3192","unresolved":false,"context_lines":[{"line_number":29,"context_line":"by os-migrate-volume-completion prior to the BDM being updated in the"},{"line_number":30,"context_line":"compute layer."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The BDM lookup and save from the virt layer is also removed as the"},{"line_number":33,"context_line":"compute layer retains a reference to new_cinfo and will update the BDM"},{"line_number":34,"context_line":"with this, including any modifications, at the end of swap_volume."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Finally, the associated Tempest admin test is also extended by the"},{"line_number":37,"context_line":"following change to now attempt a second volume swap to verify these"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a430d35_421b24ca","line":34,"range":{"start_line":32,"start_character":0,"end_line":34,"end_character":66},"updated":"2017-02-08 12:42:12.000000000","message":"This bit caught me off guard for a bit, but I\u0027m ok with what\u0027s happening here now","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6fc6edd0f7c25ac5c9aeb1f2596061ecbdec86ff","unresolved":false,"context_lines":[{"line_number":37,"context_line":"following change to now attempt a second volume swap to verify these"},{"line_number":38,"context_line":"changes :"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"I2a2c80a164b9f75d0e7e0503a24194bedfc0e66b"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Closes-bug: #1661016"},{"line_number":43,"context_line":"Change-Id: If74dd9d8e7191047b6f1cd7e35b6fc667f004f91"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a430d35_ab573756","line":40,"updated":"2017-02-08 16:36:47.000000000","message":"++","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"36b34a73dd04b9cb33ef4f65c67f982d3b68cc66","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Future calls to swap_volume in the compute layer would not"},{"line_number":16,"context_line":"update the serial found in the old volume connection_info. This would"},{"line_number":17,"context_line":"result in an invalid serial being copied into the new volume"},{"line_number":18,"context_line":"connection_info and used to preform a lookup of a BDM that didn\u0027t exist."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"To correct this we now explicitly set the serial of the new volume to"},{"line_number":21,"context_line":"that of the new volume id. While the correct serial id should already be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a430d35_5dc83555","line":18,"range":{"start_line":18,"start_character":28,"end_line":18,"end_character":35},"updated":"2017-02-09 09:59:13.000000000","message":"perform","commit_id":"1bf7ac804808eb0d4a68847e466f5fa7d1dcd55e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"36b34a73dd04b9cb33ef4f65c67f982d3b68cc66","unresolved":false,"context_lines":[{"line_number":23,"context_line":"drivers the act of updating this dict is required by our own functional"},{"line_number":24,"context_line":"tests to invoke a failure case :"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"https://git.io/vDmRE"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The serial is updated once more to match the volume id returned"},{"line_number":29,"context_line":"by os-migrate-volume-completion prior to the BDM being updated in the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a430d35_dde265d4","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":20},"updated":"2017-02-09 09:59:13.000000000","message":"nit: is this URL going to be long-lived?","commit_id":"1bf7ac804808eb0d4a68847e466f5fa7d1dcd55e"}],"nova/compute/manager.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a832329082e644f04a08f78ae7e1c5a85cfa9d0e","unresolved":false,"context_lines":[{"line_number":4958,"context_line":"        old_cinfo \u003d jsonutils.loads(bdm[\u0027connection_info\u0027])"},{"line_number":4959,"context_line":"        if old_cinfo and \u0027serial\u0027 not in old_cinfo:"},{"line_number":4960,"context_line":"            old_cinfo[\u0027serial\u0027] \u003d old_volume_id"},{"line_number":4961,"context_line":"        new_cinfo[\u0027serial\u0027] \u003d new_volume_id"},{"line_number":4962,"context_line":"        return (old_cinfo, new_cinfo)"},{"line_number":4963,"context_line":""},{"line_number":4964,"context_line":"    def _swap_volume(self, context, instance, bdm, connector,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_68eed5ed","line":4961,"updated":"2017-02-02 14:53:21.000000000","message":"Probably not required, but as noted in the commit message makes the change smaller by not interfering with a functional test.","commit_id":"b0c1e0a3384f1606d4ff60c1e5f2bf9c9f912a8f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a832329082e644f04a08f78ae7e1c5a85cfa9d0e","unresolved":false,"context_lines":[{"line_number":5058,"context_line":"                                                         resize_to)"},{"line_number":5059,"context_line":""},{"line_number":5060,"context_line":"        save_volume_id \u003d comp_ret[\u0027save_volume_id\u0027]"},{"line_number":5061,"context_line":"        new_cinfo[\u0027serial\u0027] \u003d save_volume_id"},{"line_number":5062,"context_line":""},{"line_number":5063,"context_line":"        # Update bdm"},{"line_number":5064,"context_line":"        values \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_88b5c1d1","line":5061,"updated":"2017-02-02 14:53:21.000000000","message":"save_volume_id here means \u0027the volume id of the one we swapped to\u0027, which is either old or new depending on how we were called. I\u0027m convinced this is correct, but as this was returned by migrate_volume_completion(), which is obtuse, a comment here would be really nice to have.","commit_id":"b0c1e0a3384f1606d4ff60c1e5f2bf9c9f912a8f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6fc6edd0f7c25ac5c9aeb1f2596061ecbdec86ff","unresolved":false,"context_lines":[{"line_number":4962,"context_line":"        # tests in TestInstanceNotificationSample to trigger a failure by"},{"line_number":4963,"context_line":"        # having the above initialize_connection call return a tuple. The"},{"line_number":4964,"context_line":"        # serial isn\u0027t always set by the backend volume driver in Cinder so"},{"line_number":4965,"context_line":"        # this is still useful to have around."},{"line_number":4966,"context_line":"        new_cinfo[\u0027serial\u0027] \u003d new_volume_id"},{"line_number":4967,"context_line":"        return (old_cinfo, new_cinfo)"},{"line_number":4968,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a430d35_cb7563cb","line":4965,"updated":"2017-02-08 16:36:47.000000000","message":"Not sure the note about allowing functional tests to trigger a  failure is worthwhile putting here. Instead, I\u0027d ask that you elaborate why setting the new_cinfo[\u0027serial\u0027] to the new volume ID is \"still useful to have around\". Or is the comment about \"still useful to have around\" referring to the old_cinfo[\u0027serial\u0027] being set to the old_volume_id on line 4960?\n\nIn short, the above comment is confusing at best :)","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"4836b3e3ac080583021045903d30845abe3e5789","unresolved":false,"context_lines":[{"line_number":4962,"context_line":"        # tests in TestInstanceNotificationSample to trigger a failure by"},{"line_number":4963,"context_line":"        # having the above initialize_connection call return a tuple. The"},{"line_number":4964,"context_line":"        # serial isn\u0027t always set by the backend volume driver in Cinder so"},{"line_number":4965,"context_line":"        # this is still useful to have around."},{"line_number":4966,"context_line":"        new_cinfo[\u0027serial\u0027] \u003d new_volume_id"},{"line_number":4967,"context_line":"        return (old_cinfo, new_cinfo)"},{"line_number":4968,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a430d35_d9e459ad","line":4965,"in_reply_to":"1a430d35_cb7563cb","updated":"2017-02-08 17:06:41.000000000","message":"A bunch of stuff on our side expects serial to exist, and be the volume id of the cinder volume. However, when you look at how this is set in cinder it\u0027s ad-hoc per driver, and there are actually a couple of weird drivers which don\u0027t set it.\n\nSo from a Nova pov it\u0027s essential to have around, otherwise code which expects it to be there (including, but probably not limited to, libvirt xml generation for most/all volume backends) will explode.\n\nI interpreted the functional tests comment as: If we don\u0027t do this here, lots of only tangentially related things explode. An apology for something we didn\u0027t fix this time round :)\n\nI had the context already, so I guess this comment read ok to me. If it didn\u0027t read ok to you, I expect it won\u0027t read ok to me either in a month :)","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"83bbd50deba52b3f2cb1bae22170e3a77d5448df","unresolved":false,"context_lines":[{"line_number":4962,"context_line":"        # tests in TestInstanceNotificationSample to trigger a failure by"},{"line_number":4963,"context_line":"        # having the above initialize_connection call return a tuple. The"},{"line_number":4964,"context_line":"        # serial isn\u0027t always set by the backend volume driver in Cinder so"},{"line_number":4965,"context_line":"        # this is still useful to have around."},{"line_number":4966,"context_line":"        new_cinfo[\u0027serial\u0027] \u003d new_volume_id"},{"line_number":4967,"context_line":"        return (old_cinfo, new_cinfo)"},{"line_number":4968,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a430d35_ff99f579","line":4965,"in_reply_to":"1a430d35_cb7563cb","updated":"2017-02-08 17:39:05.000000000","message":"Done","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6fc6edd0f7c25ac5c9aeb1f2596061ecbdec86ff","unresolved":false,"context_lines":[{"line_number":4981,"context_line":"            # NOTE(lyarwood): The Libvirt driver, the only virt driver"},{"line_number":4982,"context_line":"            # currently implementing swap_volume, will modify the contents of"},{"line_number":4983,"context_line":"            # new_cinfo when connect_volume is called. This is then saved to"},{"line_number":4984,"context_line":"            # the BDM in swap_volume for future use outside of this flow."},{"line_number":4985,"context_line":"            LOG.debug(\"swap_volume: Calling driver volume swap with \""},{"line_number":4986,"context_line":"                      \"connection infos: new: %(new_cinfo)s; \""},{"line_number":4987,"context_line":"                      \"old: %(old_cinfo)s\","}],"source_content_type":"text/x-python","patch_set":9,"id":"1a430d35_4e534117","line":4984,"updated":"2017-02-08 16:36:47.000000000","message":"I\u0027m a tad leery of adding comments specific to a particular driver here in the compute manager code, but I suppose I can go along with this.","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"4836b3e3ac080583021045903d30845abe3e5789","unresolved":false,"context_lines":[{"line_number":4981,"context_line":"            # NOTE(lyarwood): The Libvirt driver, the only virt driver"},{"line_number":4982,"context_line":"            # currently implementing swap_volume, will modify the contents of"},{"line_number":4983,"context_line":"            # new_cinfo when connect_volume is called. This is then saved to"},{"line_number":4984,"context_line":"            # the BDM in swap_volume for future use outside of this flow."},{"line_number":4985,"context_line":"            LOG.debug(\"swap_volume: Calling driver volume swap with \""},{"line_number":4986,"context_line":"                      \"connection infos: new: %(new_cinfo)s; \""},{"line_number":4987,"context_line":"                      \"old: %(old_cinfo)s\","}],"source_content_type":"text/x-python","patch_set":9,"id":"1a430d35_996bb1b6","line":4984,"in_reply_to":"1a430d35_4e534117","updated":"2017-02-08 17:06:41.000000000","message":"Yeah it\u0027s horrible, but the fact that it\u0027s the unexpected behaviour of a specific driver is precisely why it\u0027s required imho. Ideally we\u0027d fix the driver(s?), but that plan has too many tentacles to get in the way of this fix imho.\n\nIncidentally, I really don\u0027t think we should be touching connection_info at all. I\u0027d like to think that at any time we could re-fetch it from cinder. In fact, given that cinder does strange and unnatural things to the volume record during a retype when we call volume_api.migrate_volume_completion(), I\u0027d personally much prefer to do that. However, we can\u0027t because the libvirt driver also does strange and unnatural things to connection_info :( Instead we\u0027re left doing what we do below, which is hopefully making the corresponding change on our side too. Specifically we\u0027re stashing some client-side metadata related to the connection. Some day we\u0027re going to have a separate place in the bdm for the driver to stash its own metadata.","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6fc6edd0f7c25ac5c9aeb1f2596061ecbdec86ff","unresolved":false,"context_lines":[{"line_number":14786,"context_line":"        self._test_swap_volume_driver(source_type\u003d\u0027image\u0027)"},{"line_number":14787,"context_line":""},{"line_number":14788,"context_line":"    def test_swap_volume_driver_source_is_snapshot(self):"},{"line_number":14789,"context_line":"        self._test_swap_volume_driver(source_type\u003d\u0027snapshot\u0027)"},{"line_number":14790,"context_line":""},{"line_number":14791,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.guest.BlockDevice.is_job_complete\u0027)"},{"line_number":14792,"context_line":"    def _test_live_snapshot(self, mock_is_job_complete,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a430d35_6ef2bd07","line":14789,"updated":"2017-02-08 16:36:47.000000000","message":"Unless I\u0027m mistaken, the above changes aren\u0027t actually related to code changes included in this patch. Is that correct? In other words, these could have been in a separate patch?","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"83bbd50deba52b3f2cb1bae22170e3a77d5448df","unresolved":false,"context_lines":[{"line_number":14786,"context_line":"        self._test_swap_volume_driver(source_type\u003d\u0027image\u0027)"},{"line_number":14787,"context_line":""},{"line_number":14788,"context_line":"    def test_swap_volume_driver_source_is_snapshot(self):"},{"line_number":14789,"context_line":"        self._test_swap_volume_driver(source_type\u003d\u0027snapshot\u0027)"},{"line_number":14790,"context_line":""},{"line_number":14791,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.guest.BlockDevice.is_job_complete\u0027)"},{"line_number":14792,"context_line":"    def _test_live_snapshot(self, mock_is_job_complete,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a430d35_bf3f6db2","line":14789,"in_reply_to":"1a430d35_6ef2bd07","updated":"2017-02-08 17:39:05.000000000","message":"No I don\u0027t think so, we\u0027ve removed the bdm lookup and save from  libvirt/driver.py so I don\u0027t see the need to mock these out here anymore.","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b4b880a41e3e028830479fea37cd52e76fe5bc38","unresolved":false,"context_lines":[{"line_number":14786,"context_line":"        self._test_swap_volume_driver(source_type\u003d\u0027image\u0027)"},{"line_number":14787,"context_line":""},{"line_number":14788,"context_line":"    def test_swap_volume_driver_source_is_snapshot(self):"},{"line_number":14789,"context_line":"        self._test_swap_volume_driver(source_type\u003d\u0027snapshot\u0027)"},{"line_number":14790,"context_line":""},{"line_number":14791,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.guest.BlockDevice.is_job_complete\u0027)"},{"line_number":14792,"context_line":"    def _test_live_snapshot(self, mock_is_job_complete,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a430d35_11beb5fe","line":14789,"in_reply_to":"1a430d35_bf3f6db2","updated":"2017-02-08 18:31:54.000000000","message":"Ah, yeah. Sorry, was confusing this with the unit test for the compute manager.","commit_id":"7258d8b7917247bd152384ad7ac9f22181037281"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a832329082e644f04a08f78ae7e1c5a85cfa9d0e","unresolved":false,"context_lines":[{"line_number":1286,"context_line":"                CONF.libvirt.virt_type, disk_dev),"},{"line_number":1287,"context_line":"            \u0027type\u0027: \u0027disk\u0027,"},{"line_number":1288,"context_line":"            }"},{"line_number":1289,"context_line":"        self._connect_volume(new_connection_info, disk_info)"},{"line_number":1290,"context_line":"        conf \u003d self._get_volume_config(new_connection_info, disk_info)"},{"line_number":1291,"context_line":"        if not conf.source_path:"},{"line_number":1292,"context_line":"            self._disconnect_volume(new_connection_info, disk_dev)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_a8627dab","side":"PARENT","line":1289,"updated":"2017-02-02 14:53:21.000000000","message":"Mutation happens here, depending on the backend driver (e.g. the NFS driver adding device_path).","commit_id":"1d3ba1bedaefdd870a46497a740dd2b7d99e2754"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a832329082e644f04a08f78ae7e1c5a85cfa9d0e","unresolved":false,"context_lines":[{"line_number":1298,"context_line":"            nova_context.get_admin_context(), volume_id, instance.uuid)"},{"line_number":1299,"context_line":"        driver_bdm \u003d driver_block_device.convert_volume(bdm)"},{"line_number":1300,"context_line":"        driver_bdm[\u0027connection_info\u0027] \u003d new_connection_info"},{"line_number":1301,"context_line":"        driver_bdm.save()"},{"line_number":1302,"context_line":""},{"line_number":1303,"context_line":"        self._swap_volume(guest, disk_dev, conf.source_path, resize_to)"},{"line_number":1304,"context_line":"        self._disconnect_volume(old_connection_info, disk_dev)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_685255df","side":"PARENT","line":1301,"updated":"2017-02-02 14:53:21.000000000","message":"As noted in the commit message, we don\u0027t need to do this because it\u0027s saved later by compute manager. As the mutation and the save are so far apart, though, we\u0027re going to add a big comment.","commit_id":"1d3ba1bedaefdd870a46497a740dd2b7d99e2754"}]}
